{"version":3,"sources":["estore/cart/views/cat-sidebar-v1-parts/cart-sidebar-order-lines.ts"],"names":["html","render","nothing","GroupPosition","OrderLineType","SiteCartController","Locale","determineTranslation","cartEventSubscriber","CartSidebarOrderLines","HTMLElement","constructor","super","this","translations","En","btnRemove","quantity","incVat","excVat","No","labels","mainTemplate","orderLines","map","line","_getTrCssClass","lineType","imageUrl","window","R","_getImageSize","cantBeRemoved","removeButtonTemplate","_getFontSizeCssClass","_getFontColorCssClass","InscriptionTextLine","productName","productUrl","_showLinePriceCondition","_getMartinTopCssClass","quantityTemplate","priceTemplate","_showQuantityCondition","unit","toLowerCase","linePrice","_getSemiboldCssClass","lineDiscountPercent","lineDiscount","formattedLinePrice","_removeButtonCondition","_siteCartController","removeLine","orderLine","grouping","isChild","classNames","position","Last","CssClasses","HiddenTrBottomBorder","FontSizeSmall","TextGrayColor","SemiboldFont","_updateView","data","products","_onSiteCartChanged","topic","_render","getSiteCartInfo","connectedCallback","isConnected","onSiteCartChanged","bind","customElements","define"],"mappings":"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","file":"cart-sidebar-order-lines.js","sourcesContent":["import { html, render, nothing } from \"lit-html\";\nimport { IDetailedCartInfo, IDetailedCartInfoForUi } from \"../../interfaces/detailed-cart-info.js\";\nimport { TempOrderLineProductContractUiHelper, GroupPosition } from \"../../interfaces/temp-order-line-product-contract.js\";\nimport { OrderLineType } from \"../../../../../components-shared/enums/order-line-type.js\";\nimport { SiteCartController } from \"../../site-cart-controller.js\";\nimport { Locale } from \"../../../../common/interfaces/locate.js\";\nimport { determineTranslation } from \"../../../../utils/language.js\";\nimport { cartEventSubscriber } from \"../../../../common/pubsub/cart-event-pub-sub.js\";\n//The Vipps checkout button was not defined by BA+Desinger to be used in sitecart sidebar! Don't add it here!\nexport class CartSidebarOrderLines extends HTMLElement {\n constructor() {\n super();\n }\n\n /* #region Translations */\n private translations: ITranslationSet = {\n [Locale.En]:{\n btnRemove: \"Remove\",\n quantity: \"Quantity\",\n incVat: \"Inc. TVA\",\n excVat: \"Exc. TVA\",\n },\n [Locale.No]: {\n btnRemove: \"Fjern\",\n quantity: \"Antall\",\n incVat: \"Inkl. MVA\",\n excVat: \"Eks. MVA\",\n }\n };\n private labels = determineTranslation(this.translations) as ISiteCartSidebarOrderLinesLabels;\n /* #endregion */\n\n /* #region Markup */\n private mainTemplate = (orderLines: TempOrderLineProductContractUiHelper[]) => {\n return html`\n
\n \n ${orderLines.map(line =>\n html`\n \n \n \n \n `\n )}\n
${line.imageUrl ? html`` : nothing }\n ${this.removeButtonTemplate(line)}\n
\n ${line.lineType == OrderLineType.InscriptionTextLine ?\n line.productName\n : html`${line.productName}`}\n
\n ${this._showLinePriceCondition(line) ? html`\n
\n ${this.quantityTemplate(line)}\n ${this.priceTemplate(line)}\n
\n ` : nothing }\n
\n
\n `};\n\n private quantityTemplate = (line: TempOrderLineProductContractUiHelper) => this._showQuantityCondition(line) ? html`
${this.labels.quantity}: ${line.quantity} ${line.unit ? line.unit.toLowerCase() : ''}
` : nothing;\n\n private priceTemplate = (line: TempOrderLineProductContractUiHelper) => line.linePrice > 0 ? html`
0 || line.lineDiscount > 0 ? 'color-discount' : ''}\">${line.formattedLinePrice}
` : nothing;\n\n private removeButtonTemplate = (line: TempOrderLineProductContractUiHelper) => this._removeButtonCondition(line) ? html`` : nothing;\n /* #endregion */\n\n /* #region Private */\n private _siteCartController = new SiteCartController();\n\n private _showLinePriceCondition(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.quantity && orderLine.linePrice > 0 && orderLine.lineType !== OrderLineType.InscriptionTextLine;\n }\n\n private _showQuantityCondition(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.quantity;\n }\n\n private _removeButtonCondition(orderLine: TempOrderLineProductContractUiHelper){\n return !orderLine.cantBeRemoved && orderLine.lineType !== OrderLineType.InscriptionTextLine;\n }\n\n private _getImageSize(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.grouping?.isChild ? 54 : 60;\n }\n\n private _getTrCssClass(orderLine: TempOrderLineProductContractUiHelper){\n var classNames = orderLine.grouping && orderLine.grouping?.position !== GroupPosition.Last ? CssClasses.HiddenTrBottomBorder : '';\n classNames += orderLine.grouping?.isChild ? ' group-child' : '';\n return classNames;\n }\n\n private _getMartinTopCssClass(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.grouping?.isChild ? 'mt-sm' : 'mt-md';\n }\n\n private _getFontSizeCssClass(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.grouping?.isChild ? CssClasses.FontSizeSmall : '';\n }\n\n private _getFontColorCssClass(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.grouping?.isChild ? CssClasses.TextGrayColor : '';\n }\n\n private _getSemiboldCssClass(orderLine: TempOrderLineProductContractUiHelper){\n return orderLine.grouping?.isChild ? '' : CssClasses.SemiboldFont;\n }\n\n private _updateView(data: IDetailedCartInfoForUi) {\n render(this.mainTemplate(data.products), this);\n }\n\n private async _onSiteCartChanged(topic: string, data: IDetailedCartInfo){\n this._updateView(data);\n }\n\n private async _render() {\n const data = this._siteCartController.getSiteCartInfo();\n this._updateView(data);\n }\n /* #endregion */\n\n public connectedCallback() {\n if(this.isConnected){\n this._render();\n cartEventSubscriber.onSiteCartChanged(this._onSiteCartChanged.bind(this));\n }\n }\n\n // disconnectedCallback() : void {\n // }\n}\n\ncustomElements.define('cart-sidebar-v1-order-lines', CartSidebarOrderLines);\n\n/* #region Local interfaces */\ninterface ISiteCartSidebarOrderLinesLabels{\n btnRemove: string;\n quantity: string;\n incVat: string;\n excVat: string;\n}\n\ninterface ITranslationSet {\n [key:string]: ISiteCartSidebarOrderLinesLabels\n}\n\nenum CssClasses {\n SemiboldFont = 'fw-semibold',\n HiddenTrBottomBorder = 'border-bottom-none',\n FontSizeSmall = 'fs-sm',\n TextGrayColor = 'text-secondary'\n}\n/* #endregion */"]}