{"version":3,"sources":["estore/cart/views/cat-sidebar-v1-parts/cart-sidebar-total-summary.ts"],"names":["html","render","nothing","SiteCartController","Locale","determineTranslation","cartEventSubscriber","CartSidebarTotalSummary","HTMLElement","constructor","super","this","translations","En","incVat","excVat","totalDiscount","totalSum","No","labels","template","_summary","CssClasses","FontSizeSmall","formattedTotalDiscount","SemiboldFont","_vatLabel","_orderSumAmount","_inclVat","window","globalSettings","displayPricesIncludingVat","_siteCartController","data","formattedTotalPrice","formattedTotalPriceExclVat","_updateView","_onSiteCartChanged","topic","summary","connectedCallback","isConnected","getSiteCartInfo","onSiteCartChanged","bind","customElements","define"],"mappings":"OAASA,KAAMC,OAAQC,OAAyB,KAAV,kBAG7BC,kBAAyD,KAA/B,uCAC1BC,MAAuD,KAAzC,iDACdC,oBAA2D,KAA/B,uCAC5BC,mBAA4E,KAAjD,wDAEvBC,gCAAgCC,YACzCC,cACIC,MAAK,EAIDC,KAAAC,aAAgC,EACnCR,OAAOS,IAAI,CACRC,OAAQ,WACRC,OAAQ,WACRC,cAAe,iBACfC,SAAU,W,GAEbb,OAAOc,IAAK,CACTJ,OAAQ,YACRC,OAAQ,WACRC,cAAe,eACfC,SAAU,W,GAGVN,KAAAQ,OAASd,qBAAqBM,KAAKC,YAAY,EAI/CD,KAAAS,SAAW,IAAMpB;;cAEfW,KAAKU,SAASL,cAAgBhB;wCACJsB,WAAWC;sBAC7BZ,KAAKQ,OAAOH;oCACEL,KAAKU,SAASG;;cAElCtB;mCACmBoB,WAAWG;sBACxBd,KAAKQ,OAAOF,aAAaN,KAAKe,UAAS;oCACzBf,KAAKgB,gBAAgBhB,KAAKU,QAAQ;;;MAO1DV,KAAAiB,SAAoBC,OAAOC,eAAeC,0BAC1CpB,KAAAqB,oBAAsB,IAAI7B,kBAvClC,CA0CQuB,YACJ,OAAOf,KAAKiB,SAAWjB,KAAKQ,OAAOL,OAASH,KAAKQ,OAAOJ,MAC5D,CAEQY,gBAAgBM,GACpB,OAAOtB,KAAKiB,SAAWK,EAAKC,oBAAsBD,EAAKE,0BAC3D,CAEQC,oBACJnC,OAAOU,KAAKS,SAAQ,EAAIT,IAAI,CAChC,CAEQ0B,yBAAyBC,EAAeL,GAC5CtB,KAAKU,SAAWY,EAAKM,QACrB5B,KAAKyB,YAAW,CACpB,CAGOI,oBACA7B,KAAK8B,cACJ9B,KAAKU,SAAWV,KAAKqB,oBAAoBU,gBAAe,EAAGH,QAC3D5B,KAAKyB,YAAW,EAChB9B,oBAAoBqC,kBAAkBhC,KAAK0B,mBAAmBO,KAAKjC,IAAI,CAAC,EAEhF,C,CAiBJ,IAAKW,WAdLuB,eAAeC,OAAO,6BAA8BvC,uBAAuB,EAc3E,SAAKe,GACDA,EAAA,aAAA,cACAA,EAAA,qBAAA,qBACAA,EAAA,cAAA,QACAA,EAAA,cAAA,gBACH,EALIA,WAAAA,YAAU,EAAA,SAtFFf,uBAsFE","file":"cart-sidebar-total-summary.js","sourcesContent":["import { html, render, nothing } from \"lit-html\";\r\nimport { IDetailedCartInfo } from \"../../interfaces/detailed-cart-info.js\";\r\nimport { SummaryCartInfoContract } from \"../../interfaces/summary-cart-info-contract.js\";\r\nimport { SiteCartController } from \"../../site-cart-controller.js\";\r\nimport { Locale } from \"../../../../common/interfaces/locate.js\";\r\nimport { determineTranslation } from \"../../../../utils/language.js\";\r\nimport { cartEventSubscriber } from \"../../../../common/pubsub/cart-event-pub-sub.js\";\r\n//The Vipps checkout button was not defined by BA+Desinger to be used in sitecart sidebar! Don't add it here!\r\nexport class CartSidebarTotalSummary extends HTMLElement {\r\n constructor() {\r\n super();\r\n }\r\n\r\n /* #region Translations */\r\n private translations: ITranslationSet = {\r\n [Locale.En]:{\r\n incVat: \"Inc. TVA\",\r\n excVat: \"Exc. TVA\",\r\n totalDiscount: \"Total discount\",\r\n totalSum: \"Total sum\",\r\n },\r\n [Locale.No]: {\r\n incVat: \"Inkl. MVA\",\r\n excVat: \"Eks. MVA\",\r\n totalDiscount: \"Total rabatt\",\r\n totalSum: \"Total sum\",\r\n }\r\n };\r\n private labels = determineTranslation(this.translations) as ISiteCartSidebarLabels;\r\n /* #endregion */\r\n\r\n /* #region Markup */\r\n private template = () => html`\r\n \r\n ${this._summary.totalDiscount ? html `\r\n \r\n \r\n \r\n \r\n ` : nothing }\r\n \r\n \r\n \r\n \r\n
${this.labels.totalDiscount}:${this._summary.formattedTotalDiscount}
${this.labels.totalSum} (${this._vatLabel()}):${this._orderSumAmount(this._summary)}
\r\n `;\r\n /* #endregion */\r\n\r\n /* #region Private */\r\n private _inclVat: boolean = window.globalSettings.displayPricesIncludingVat;\r\n private _siteCartController = new SiteCartController();\r\n private _summary: SummaryCartInfoContract;\r\n\r\n private _vatLabel(){\r\n return this._inclVat ? this.labels.incVat : this.labels.excVat;\r\n }\r\n\r\n private _orderSumAmount(data: SummaryCartInfoContract){\r\n return this._inclVat ? data.formattedTotalPrice : data.formattedTotalPriceExclVat;\r\n }\r\n\r\n private async _updateView(){\r\n render(this.template(), this);\r\n }\r\n\r\n private async _onSiteCartChanged(topic: string, data: IDetailedCartInfo){\r\n this._summary = data.summary;\r\n this._updateView();\r\n }\r\n /* #endregion */\r\n\r\n public connectedCallback() {\r\n if(this.isConnected){\r\n this._summary = this._siteCartController.getSiteCartInfo().summary;\r\n this._updateView();\r\n cartEventSubscriber.onSiteCartChanged(this._onSiteCartChanged.bind(this));\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define('cart-sidebar-total-summary', CartSidebarTotalSummary);\r\n\r\n/* #region Local interfaces */\r\ninterface ISiteCartSidebarLabels{\r\n incVat: string;\r\n excVat: string;\r\n totalDiscount: string;\r\n totalSum: string;\r\n}\r\n\r\ninterface ITranslationSet {\r\n [key:string]: ISiteCartSidebarLabels\r\n}\r\n\r\nenum CssClasses {\r\n SemiboldFont = 'fw-semibold',\r\n HiddenTrBottomBorder = 'border-bottom-none',\r\n FontSizeSmall = 'fs-sm',\r\n TextGrayColor = 'text-secondary'\r\n}\r\n/* #endregion */"]}