{"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,WAAc,kBAEpBC,wBAA2B,qDAEvBC,kBAAkBC,YAC3BC,cACIC,QAIIC,KAAAC,SAAW,GAAuBR;mBAC3BS,OAAOC,aAAaC,gCAAgCJ,KAAKK,gBAAgBC,KAAKN;sCAC3DO;;MAQlCC,kBAEI,OADAR,KAAKS,aAAeT,KAAKU,aAAa,eAC/BV,KAAKS,aAGRJ,gBAAgBM,GACZX,KAAKQ,cACJI,YAAYC,eACbF,EAAEG,kBAKDF,YAAYG,qBAEbb,OAAOc,SAASC,KAAOf,OAAOC,aAAaC,qBAK/Cc,YAAYC,GAChBzB,OAAOM,KAAKC,SAASkB,EAAKC,QAAQC,cAAerB,MAG7CsB,yBAAyBC,EAAeJ,GAC5CnB,KAAKkB,YAAYC,GAIdK,oBACAxB,KAAKyB,aACJ9B,oBAAoB+B,kBAAkB1B,KAAKsB,mBAAmBhB,KAAKN,QAO/E,IAAKY,YAFLe,eAAeC,OAAO,cAAehC,WAErC,SAAKgB,GACDA,EAAA,eAAA,iBACAA,EAAA,qBAAA,uBAFJ,CAAKA,YAAAA,aAAW,WAtDHhB","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}"]}