{"version":3,"names":["actionHeaderChkboxCss","ActionHeaderChkboxStyle0","ActionHeaderCheckbox","this","summaryUnsubsribe","connectedCallback","waitForAtomic","commerceBindings","initializeBindings","document","querySelector","summaryController","buildSearch","_a","engine","summary","subscribe","state","isLoading","actionBatchStore","reset","store","onChange","selectionState","checked","disconnectedCallback","handleChange","clearActionMessages","emit","removeAllProducts","addAllProducts","selectAll","deselectAll","render","h","key","class","onClick","e","stopPropagation","type"],"sources":["src/components/result-actions-batch/action-header-chkbox.css?tag=action-header-chkbox&encapsulation=shadow","src/components/result-actions-batch/action-header-chkbox.tsx"],"sourcesContent":[":host{\r\n grid-area: atomic-query-summary;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.sca-checkbox__input {\r\n z-index: -1;\r\n opacity: 0;\r\n cursor: pointer;\r\n}\r\n\r\n.sca-checkbox__label {\r\n margin-left: 0.4em;\r\n margin-top: -0.2em;\r\n position: absolute;\r\n cursor: pointer;\r\n}\r\n\r\n.sca-checkbox__label::before, .sca-checkbox__label::after {\r\n position: absolute;\r\n top: 0.15625rem;\r\n left: -1.5rem;\r\n display: block;\r\n width: 1rem;\r\n height: 1rem;\r\n pointer-events: none;\r\n content: \"\";\r\n background-color: #ddd;\r\n border: #adb5bd solid 1px;\r\n\r\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\r\n}\r\n\r\n.sca-checkbox__label::before{\r\n color: #fff;\r\n background-color: #ddd;\r\n border: #adb5bd solid 1px;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.sca-checkbox__label::after {\r\n background: no-repeat 50% / 50% 50%;\r\n cursor: pointer;\r\n}\r\n\r\n.sca-checkbox__label::after{\r\n color: #fff;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.checked .sca-checkbox__label::after {\r\n border: #18bff0 solid 1px;\r\n background-color: #18bff0;\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.intermediate .sca-checkbox__label::after {\r\n border: #18bff0 solid 1px;\r\n background-color: #18bff0;\r\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\r\n}\r\n\r\n.unchecked .sca-checkbox__label::after {\r\n border: #adb5bd solid 1px;\r\n}\r\n\r\n","import { Component, State, h, Event, EventEmitter } from \"@stencil/core\";\r\nimport { CommerceBindings, initializeBindings } from \"@coveo/atomic\"\r\nimport { Summary , SearchSummaryState, buildSearch, Unsubscribe } from '@coveo/headless/commerce';\r\nimport { waitForAtomic } from \"../../utils/atomic\";\r\nimport actionBatchStore from \"./action-batch-store\";\r\n\r\ntype TriState = 'checked' | 'unchecked' |'intermediate'\r\n\r\n@Component({\r\n tag: \"action-header-chkbox\",\r\n styleUrl: \"action-header-chkbox.css\",\r\n shadow: true,\r\n})\r\nexport class ActionHeaderCheckbox {\r\n @State() checked: TriState = 'unchecked'\r\n @Event() clearActionMessages!: EventEmitter;\r\n\r\n private commerceBindings?: CommerceBindings;\r\n\r\n private summaryController?:Summary;\r\n private summaryUnsubsribe: Unsubscribe = () => {};\r\n\r\n public async connectedCallback() {\r\n //listen to summary state to reset store on new search.\r\n await waitForAtomic();\r\n this.commerceBindings = await initializeBindings(document.querySelector(\"atomic-commerce-interface\")!);\r\n this.summaryController = buildSearch(this.commerceBindings?.engine).summary();\r\n this.summaryUnsubsribe = this.summaryController.subscribe(() => {\r\n if(this.summaryController?.state.isLoading){\r\n actionBatchStore.reset();\r\n }\r\n });\r\n\r\n //list to store's selection value change to change checkbox's check value\r\n actionBatchStore.store.onChange(('selectionState'), (selectionState) => {\r\n this.checked = selectionState == 'all' ? 'checked' : selectionState == 'none' ? 'unchecked' : 'intermediate';\r\n })\r\n }\r\n\r\n public disconnectedCallback() {\r\n this.summaryUnsubsribe();\r\n } \r\n\r\n handleChange() {\r\n this.clearActionMessages.emit();\r\n\r\n switch(this.checked) { \r\n case 'checked': { \r\n this.removeAllProducts();\r\n this.checked = 'unchecked';\r\n break; \r\n } \r\n case 'unchecked': { \r\n this.addAllProducts();\r\n this.checked = 'checked';\r\n break; \r\n } \r\n case 'intermediate': { \r\n this.removeAllProducts();\r\n this.checked = 'unchecked';\r\n break; \r\n } \r\n default: { \r\n break; \r\n } \r\n } \r\n }\r\n\r\n private addAllProducts(){\r\n actionBatchStore.selectAll();\r\n }\r\n\r\n private removeAllProducts(){\r\n actionBatchStore.deselectAll();\r\n }\r\n\r\n render() {\r\n return (\r\n /* somewhat based on massive-checkbox on lindedirect.com */\r\n
e.stopPropagation() }>\r\n
this.handleChange()}>\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n"],"mappings":"yVAAA,MAAMA,EAAwB,2vDAC9B,MAAAC,EAAeD,E,MCYFE,EAAoB,M,kFAOvBC,KAAAC,kBAAiC,O,aANZ,W,CAQtB,uBAAMC,G,YAELC,IACNH,KAAKI,uBAAyBC,EAAmBC,SAASC,cAAc,8BACxEP,KAAKQ,kBAAoBC,GAAYC,EAAAV,KAAKI,oBAAgB,MAAAM,SAAA,SAAAA,EAAEC,QAAQC,UACpEZ,KAAKC,kBAAoBD,KAAKQ,kBAAkBK,WAAU,K,MACxD,IAAGH,EAAAV,KAAKQ,qBAAiB,MAAAE,SAAA,SAAAA,EAAEI,MAAMC,UAAU,CACzCC,EAAiBC,O,KAKrBD,EAAiBE,MAAMC,SAAQ,kBAAsBC,IACnDpB,KAAKqB,QAAWD,GAAkB,MAAQ,UAAYA,GAAkB,OAAS,YAAc,cAAc,G,CAI1G,oBAAAE,GACLtB,KAAKC,mB,CAGP,YAAAsB,GACEvB,KAAKwB,oBAAoBC,OAEzB,OAAOzB,KAAKqB,SACV,IAAK,UAAW,CACdrB,KAAK0B,oBACL1B,KAAKqB,QAAU,YACf,K,CAEF,IAAK,YAAc,CACjBrB,KAAK2B,iBACL3B,KAAKqB,QAAU,UACf,K,CAEF,IAAK,eAAiB,CACpBrB,KAAK0B,oBACL1B,KAAKqB,QAAU,YACf,K,GAQE,cAAAM,GACNX,EAAiBY,W,CAGX,iBAAAF,GACNV,EAAiBa,a,CAGnB,MAAAC,GACE,OAEEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOjC,KAAKqB,QAASa,QAAUC,GAAKA,EAAEC,mBACzCL,EAAA,OAAAC,IAAA,2CAAKC,MAAM,eAAeC,QAAS,IAAKlC,KAAKuB,gBACzCQ,EAAA,SAAAC,IAAA,2CACEK,KAAK,WACLJ,MAAM,wBAERF,EAAA,SAAAC,IAAA,2CAAOC,MAAM,yB","ignoreList":[]}