{"version":3,"sources":["estore/cart/views/cart-btn-v1.ts"],"names":["html","render","cartEventSubscriber","CartBtnV1","HTMLElement","constructor","super","this","template","window","cartSettings","detailedCartPageUrl","_onCartBtnClick","bind","prodCount","clickAction","_clickAction","getAttribute","e","ClickAction","PreventDefault","preventDefault","OpenDetailedCartPage","location","href","_updateView","data","summary","productCount","_onSiteCartChanged","topic","connectedCallback","isConnected","onSiteCartChanged","customElements","define"],"mappings":"OAASA,KAAMC,MAAwB,KAAV,kBAEpBC,mBAAyE,KAA9C,qDAEvBC,kBAAkBC,YAC3BC,cACIC,MAAK,EAIDC,KAAAC,SAAW,GAAuBR;mBAC3BS,OAAOC,aAAaC,gCAAgCJ,KAAKK,gBAAgBC,KAAKN,IAAI;sCAC/DO;;KALlC,CAaAC,kBAEI,OADAR,KAAKS,aAAeT,KAAKU,aAAa,aAAa,EAC5CV,KAAKS,YAChB,CAEQJ,gBAAgBM,GACZX,KAAKQ,cACJI,YAAYC,eACbF,EAAEG,eAAc,GAKfF,YAAYG,qBAEbb,OAAOc,SAASC,KAAOf,OAAOC,aAAaC,oBAGvD,CAEQc,YAAYC,GAChBzB,OAAOM,KAAKC,SAASkB,EAAKC,QAAQC,YAAY,EAAGrB,IAAI,CACzD,CAEQsB,yBAAyBC,EAAeJ,GAC5CnB,KAAKkB,YAAYC,CAAI,CACzB,CAGOK,oBACAxB,KAAKyB,aACJ9B,oBAAoB+B,kBAAkB1B,KAAKsB,mBAAmBhB,KAAKN,IAAI,CAAC,CAEhF,C,CAKJ,IAAKY,YAFLe,eAAeC,OAAO,cAAehC,SAAS,EAE9C,SAAKgB,GACDA,EAAA,eAAA,iBACAA,EAAA,qBAAA,sBACH,EAHIA,YAAAA,aAAW,EAAA,SAtDHhB,SAsDG","file":"cart-btn-v1.js","sourcesContent":["import { html, render } from \"lit-html\";\nimport { IDetailedCartInfo } from \"../interfaces/detailed-cart-info.js\";\nimport { cartEventSubscriber } from \"../../../common/pubsub/cart-event-pub-sub.js\";\n\nexport class CartBtnV1 extends HTMLElement {\n constructor() {\n super();\n }\n\n /* #region Markup */\n private template = (prodCount: number) => html`\n \n
${prodCount}
\n
\n `;\n /* #endregion */\n\n /* #region Private */\n private _clickAction: string;\n\n get clickAction(){\n this._clickAction = this.getAttribute('clickaction');\n return this._clickAction;\n }\n\n private _onCartBtnClick(e: MouseEvent) {\n switch (this.clickAction) {\n case ClickAction.PreventDefault:\n e.preventDefault();\n // Explicitly set to do nothing.\n // This doens't create strong relation between components and other components can use this state to run their own action.\n // In use by cart-sidebar-v1 webcomponent at creation date.\n break;\n case ClickAction.OpenDetailedCartPage:\n default:\n window.location.href = window.cartSettings.detailedCartPageUrl;\n break;\n }\n }\n\n private _updateView(data: IDetailedCartInfo) {\n render(this.template(data.summary.productCount), this);\n }\n\n private async _onSiteCartChanged(topic: string, data: IDetailedCartInfo){\n this._updateView(data);\n }\n /* #endregion */\n\n public connectedCallback() {\n if(this.isConnected){\n cartEventSubscriber.onSiteCartChanged(this._onSiteCartChanged.bind(this));\n }\n }\n}\n\ncustomElements.define('cart-btn-v1', CartBtnV1);\n\nenum ClickAction {\n PreventDefault = 'preventdefault',\n OpenDetailedCartPage = 'opendetailedcartpage'\n}"]}