{"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,6BAENC,6EAEIC,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\";\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}"]}