{"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\";\r\nimport { IDetailedCartInfo } from \"../interfaces/detailed-cart-info.js\";\r\nimport { cartEventSubscriber } from \"../../../common/pubsub/cart-event-pub-sub.js\";\r\n\r\nexport class CartBtnV1 extends HTMLElement {\r\n constructor() {\r\n super();\r\n }\r\n\r\n /* #region Markup */\r\n private template = (prodCount: number) => html`\r\n \r\n
${prodCount}
\r\n
\r\n `;\r\n /* #endregion */\r\n\r\n /* #region Private */\r\n private _clickAction: string;\r\n\r\n get clickAction(){\r\n this._clickAction = this.getAttribute('clickaction');\r\n return this._clickAction;\r\n }\r\n\r\n private _onCartBtnClick(e: MouseEvent) {\r\n switch (this.clickAction) {\r\n case ClickAction.PreventDefault:\r\n e.preventDefault();\r\n // Explicitly set to do nothing.\r\n // This doens't create strong relation between components and other components can use this state to run their own action.\r\n // In use by cart-sidebar-v1 webcomponent at creation date.\r\n break;\r\n case ClickAction.OpenDetailedCartPage:\r\n default:\r\n window.location.href = window.cartSettings.detailedCartPageUrl;\r\n break;\r\n }\r\n }\r\n\r\n private _updateView(data: IDetailedCartInfo) {\r\n render(this.template(data.summary.productCount), this);\r\n }\r\n\r\n private async _onSiteCartChanged(topic: string, data: IDetailedCartInfo){\r\n this._updateView(data);\r\n }\r\n /* #endregion */\r\n\r\n public connectedCallback() {\r\n if(this.isConnected){\r\n cartEventSubscriber.onSiteCartChanged(this._onSiteCartChanged.bind(this));\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define('cart-btn-v1', CartBtnV1);\r\n\r\nenum ClickAction {\r\n PreventDefault = 'preventdefault',\r\n OpenDetailedCartPage = 'opendetailedcartpage'\r\n}"]}