@salla.sa/twilight-components 2.14.19 → 2.14.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/cjs/app-globals-6591c9e6.js.map +1 -1
  2. package/dist/cjs/salla-add-product-button_48.cjs.entry.js +4 -0
  3. package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
  4. package/dist/collection/components/salla-scopes/salla-scopes.js +4 -0
  5. package/dist/collection/components/salla-scopes/salla-scopes.js.map +1 -1
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/components/salla-quick-buy2.js.map +1 -1
  8. package/dist/components/salla-scopes.js +4 -0
  9. package/dist/components/salla-scopes.js.map +1 -1
  10. package/dist/esm/app-globals-4208f12e.js.map +1 -1
  11. package/dist/esm/salla-add-product-button_48.entry.js +4 -0
  12. package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
  13. package/dist/esm-es5/app-globals-4208f12e.js.map +1 -1
  14. package/dist/esm-es5/salla-add-product-button_48.entry.js +1 -1
  15. package/dist/esm-es5/salla-add-product-button_48.entry.js.map +1 -1
  16. package/dist/twilight/{p-78b998b6.entry.js → p-35d35458.entry.js} +2 -2
  17. package/dist/twilight/{p-78b998b6.entry.js.map → p-35d35458.entry.js.map} +1 -1
  18. package/dist/twilight/p-643decdc.system.js +1 -1
  19. package/dist/twilight/{p-0f645aca.system.entry.js → p-9d139a24.system.entry.js} +2 -2
  20. package/dist/twilight/{p-0f645aca.system.entry.js.map → p-9d139a24.system.entry.js.map} +1 -1
  21. package/dist/twilight/p-a1aa069d.system.js.map +1 -1
  22. package/dist/twilight/p-fb21923b.js.map +1 -1
  23. package/dist/twilight/twilight.esm.js +1 -1
  24. package/dist/types/components/salla-scopes/salla-scopes.d.ts +1 -0
  25. package/dist/types/global.d.ts +20 -0
  26. package/package.json +5 -5
@@ -160,6 +160,10 @@ const SallaScopees = /*@__PURE__*/ proxyCustomElement(class SallaScopees extends
160
160
  footerContent() {
161
161
  return h("div", { class: "s-scopes-footer" }, h("slot", { name: "footer" }, h("salla-button", { ref: btn => this.changeBtn = btn, disabled: !this.current_scope, onClick: () => this.handleSubmit(), class: "s-scopes-submit", "loader-position": "center", width: "wide" }, salla.lang.get('common.elements.confirm'))));
162
162
  }
163
+ //let's wait to salla to be ready then render it.
164
+ componentWillLoad() {
165
+ return salla.onReady();
166
+ }
163
167
  render() {
164
168
  var _a, _b, _c, _d;
165
169
  return (h(Host, null, h("salla-modal", { ref: modal => this.modal = modal, isClosable: !!(this.isOpenedBefore || (this.selection == 'optional')), class: "s-scopes-modal", isLoading: this.loading, "has-skeleton": true }, this.loading ?
@@ -1 +1 @@
1
- {"file":"salla-scopes.js","mappings":"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","names":[],"sources":["src/components/salla-scopes/interfaces.ts","src/components/salla-scopes/salla-scopes.scss?tag=salla-scopes","src/components/salla-scopes/salla-scopes.tsx"],"sourcesContent":["export interface Scope {\n id: number;\n name: string;\n selected: boolean;\n}\n\nexport enum ModeType {\n DEFAULT = \"default\",\n AVAILABILITY = \"availability\"\n}\nexport interface ProductAvailability {\n name: string;\n selected: boolean;\n availability: Availability;\n}\n\nexport interface Availability {\n label: string;\n key: string;\n color: string;\n}","/*\n* Salla Branches Component: Store branches & warehouses popup modal\n* You can use these classes to target the elements in the component.\n*/\n\n.s-scopes-availability-content {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.s-scopes {\n &-title {}\n\n &-container {\n }\n\n &-input-wrap {}\n\n &-input {}\n\n &-label {}\n\n &-select {}\n\n &-space-v {}\n\n &-sr-only {}\n\n &-is-closed {}\n\n &-closed-badge {}\n\n &-clickable {}\n\n &-submit {}\n\n &-color-red {}\n\n &-color-green {}\n\n &-color-gray {}\n\n &-placeholder {\n flex: 0 0 85%;\n }\n}\n","import {Component, h, Host, Method, Prop, State} from \"@stencil/core\";\nimport StoreAlt from '../../assets/svg/store-alt.svg';\nimport Search from '../../assets/svg/search.svg';\nimport {ModeType, ProductAvailability, Scope} from './interfaces';\n\n\n/**\n * @slot footer - The bottom section of the component, used for form action. Utilizes the `handleSubmit` method to submit the form.\n */\n@Component({\n tag: 'salla-scopes',\n styleUrl: 'salla-scopes.scss',\n})\nexport class SallaScopees {\n\n constructor() {\n salla.event.on('scopes::open', ({mode = null, product_id = null}) => {\n this.open(mode, product_id)\n });\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n });\n\n }\n\n private changeBtn: HTMLSallaButtonElement;\n private modal: HTMLSallaModalElement;\n //to avoid over loading scopes in each open call\n private loadedScopes: any = {\n [ModeType.DEFAULT]: null,\n [ModeType.AVAILABILITY]: null,\n };\n @State() translationLoaded: boolean = false;\n @State() mode: ModeType.AVAILABILITY | ModeType.DEFAULT = ModeType.DEFAULT;\n @State() current_scope: any;\n @State() scopes: Scope[] | ProductAvailability[] = [];\n @State() originalScopesList: Scope[] | ProductAvailability[] = [];\n @State() selected_scope: any;\n @State() isOpenedBefore: string = salla.storage.get(\"branch-choosed-before\");\n @State() hasError: boolean = false;\n @State() loading: boolean = false;\n\n /**\n * Optionally open the modal or enforce the pop-up to the viewer\n */\n @Prop() selection: 'optional' | 'mandatory' = 'optional';\n\n /**\n * Dictates when to show the search field\n */\n @Prop() searchDisplayLimit: number = 6;\n\n\n /**\n * Closes the scope modal.\n */\n @Method()\n async close() {\n return await this.modal?.close();\n }\n\n /**\n * Opens the scope modal.\n */\n @Method()\n async open(mode: any = ModeType.DEFAULT, product_id: number = null) {\n this.hasError = false;\n this.mode = [ModeType.AVAILABILITY, ModeType.DEFAULT].includes(mode) ? mode : ModeType.DEFAULT;\n this.loading = !this.loadedScopes[this.mode];\n this.setScopeValues([]);\n\n\n salla.log('SallaScope:: opened');\n this.modal.open()\n if (!this.loading) {\n this.setScopeValues(this.loadedScopes[this.mode]);\n return this.modal.stopLoading();\n }\n\n let callback = () => mode == ModeType.AVAILABILITY ? salla.scope.getProductAvailability(product_id) : salla.scope.get();\n return await salla.api.withoutNotifier(callback)\n .then((resp) => {\n if (mode == ModeType.AVAILABILITY) {\n return this.setScopeValues(this.loadedScopes[ModeType.AVAILABILITY]=resp.data)\n }\n this.setScopeValues(this.loadedScopes[this.mode]=resp.data.scopes)\n }).catch(e => {\n console.log(e)\n this.hasError = true;\n })\n .finally(() => {\n this.modal.stopLoading()\n this.loading = false\n });\n }\n\n /**\n * Submit form to change exsiting scope.\n */\n @Method()\n async handleSubmit() {\n\n let payload = {'id': this.current_scope.id}\n this.changeBtn.load();\n return await salla.scope.change(payload)\n .then(() => {\n salla.storage.set(\"branch-choosed-before\", true);\n salla.storage.set(\"scope\", {\n 'type': this.current_scope.type,\n 'id': this.current_scope.id\n });\n salla.cart.reset();\n window.location.replace(salla.helpers.addParamToUrl('scope', this.current_scope.id));\n }).catch(e => console.log(e))\n .finally(() => {\n this.changeBtn.stop()\n })\n }\n\n private setScopeValues(value: Scope[]) {\n this.scopes = value;\n this.originalScopesList = value;\n\n if (value?.length == 1) {\n this.current_scope = value[0]\n this.selected_scope = value[0]\n this.scopes = [value[0]]; // Just to make sure it's consistent, might not have that much effect though.\n } else {\n this.current_scope = value?.find(scope => scope.selected)\n this.selected_scope = value?.find(scope => scope.selected)\n }\n }\n\n private handleSearchFieldTyping(e) {\n let value = e.target.value.toLocaleLowerCase()\n if (!!value) {\n this.scopes = (this.originalScopesList as any).filter(scope => scope.name.toLowerCase().includes(value))\n } else {\n this.scopes = this.originalScopesList\n }\n }\n\n private handleScopeSelection(event: any) {\n this.current_scope = (this.scopes as any)?.find(scope => scope.id == event.target.value)\n }\n\n private getFormTitle = () => {\n if (this.originalScopesList?.length < 2) return \"\";\n return this.mode === ModeType.DEFAULT ?\n salla.lang.get(\"blocks.scope.shopping_from_another_branch\") :\n salla.lang.get('blocks.scope.search_for_availability_in_other_branches');\n }\n\n private placeholderContent() {\n return <salla-placeholder alignment=\"center\" class=\"s-scopes-placeholder\">\n <span slot=\"title\">{salla.lang.get(\"blocks.scope.branch_looking_for_not_found\")}</span>\n <span slot=\"description\">{salla.lang.get(\"blocks.scope.our_services_not_available_in_this_branch\")}</span>\n </salla-placeholder>\n }\n\n private defaultContent() {\n return [<div class=\"s-scopes-container s-scrollbar\">\n {this.scopes?.map((scope) =>\n <div class=\"s-scopes-input-wrap\" data-selection={this.selection}>\n <input\n id={`${this.selection} + '_scope_' + ${scope.id}`}\n name=\"lang\" type=\"radio\"\n value={scope.id}\n onChange={(event) => this.handleScopeSelection(event)}\n class=\"s-scopes-input\"\n checked={!!this.current_scope && this.current_scope.id == scope.id}/>\n <label\n htmlFor={`${this.selection} + '_scope_' + ${scope.id}`}\n class=\"s-scopes-label s-scopes-clickable\">\n <span>{scope.name}</span>\n </label>\n </div>\n )}\n </div>,\n this.footerContent()]\n }\n\n private availabilityContent() {\n return <div class=\"s-scopes-container\">\n {this.scopes?.map((scope: any) =>\n <div class=\"s-scopes-input-wrap\" data-selection={this.selection}>\n <h2\n class={{\"s-scopes-label\": true, \"s-scopes-clickable\": this.mode === ModeType.DEFAULT}}>\n <span>{scope.name}</span>\n </h2>\n <h2 style={{'color': (scope as ProductAvailability)?.availability?.color}}\n class={`s-scopes-${(scope as ProductAvailability)?.availability?.key}`}>{(scope as ProductAvailability)?.availability?.label}</h2>\n </div>\n )\n }\n </div>\n }\n\n private footerContent() {\n return <div class=\"s-scopes-footer\">\n <slot name=\"footer\">\n <salla-button ref={btn => this.changeBtn = btn} disabled={!this.current_scope}\n onClick={() => this.handleSubmit()} class=\"s-scopes-submit\" loader-position=\"center\" width=\"wide\">\n {salla.lang.get('common.elements.confirm')}\n </salla-button>\n </slot>\n </div>\n }\n\n render() {\n return (\n <Host>\n <salla-modal\n ref={modal => this.modal = modal}\n isClosable={!!(this.isOpenedBefore || (this.selection == 'optional'))}\n class=\"s-scopes-modal\"\n isLoading={this.loading}\n has-skeleton>\n {this.loading ?\n <div slot=\"loading\">\n <div class=\"s-scopes-skeleton\">\n <salla-list-tile class=\"s-scopes-header\">\n <div slot=\"icon\" class=\"s-scopes-header-icon\">\n <salla-skeleton type=\"circle\"></salla-skeleton>\n </div>\n\n <div slot=\"title\" class=\"s-scopes-header-title mb-5\">\n <salla-skeleton height='15px' width='50%'></salla-skeleton>\n </div>\n <div slot=\"subtitle\" class=\"s-scopes-header-subtitle\">\n <salla-skeleton height='10px'></salla-skeleton>\n <salla-skeleton height='10px' width='75%'></salla-skeleton>\n </div>\n </salla-list-tile>\n <div class=\"s-scopes-skeleton-search\">\n <salla-skeleton height='10px' width='50%'></salla-skeleton>\n <salla-skeleton height='30px' width='100%'></salla-skeleton>\n </div>\n <div class=\"s-scopes-skeleton-scopes\">\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n </div>\n <div class=\"s-scopes-skeleton-btn\">\n <salla-skeleton height='40px' width='100%'></salla-skeleton>\n </div>\n\n </div>\n </div>\n :\n [<salla-list-tile class={this.originalScopesList?.length ? \"s-scopes-header block\" : \"s-hidden\"}>\n <div slot=\"icon\" class=\"s-scopes-header-icon\" innerHTML={StoreAlt}/>\n <div slot=\"title\" class=\"s-scopes-header-title\">\n {salla.lang.get('blocks.scope.you_are_browse_store_from')}\n </div>\n <div slot=\"subtitle\" class=\"s-scopes-header-subtitle\">\n {!!this.selected_scope ? this.selected_scope.name : \"\"}\n </div>\n </salla-list-tile>,\n <div class=\"s-scopes-wrap\">\n {!!this.originalScopesList?.length && <h4 class=\"s-scopes-title\">{this.getFormTitle()}</h4>}\n {this.originalScopesList?.length > this.searchDisplayLimit ?\n <div class=\"s-scopes-search-wrapper\">\n <div class=\"s-scopes-search-icon\" innerHTML={Search}/>\n <input type=\"text\" class=\"s-scopes-search-input\" onInput={e => this.handleSearchFieldTyping(e)}\n enterkeyhint=\"search\"\n placeholder={salla.lang.get('blocks.scope.searching_for_a_branch')}/>\n </div>\n : \"\"\n }\n {this.hasError || (!this.originalScopesList?.length && this.mode !== ModeType.AVAILABILITY) ?\n this.placeholderContent()\n : this.mode === ModeType.DEFAULT ? this.defaultContent() : this.availabilityContent()}\n </div>]\n }\n </salla-modal>\n </Host>\n );\n }\n\n componentDidLoad() {\n if (!this.isOpenedBefore && this.selection == 'mandatory') {\n this.open()\n }\n }\n}\n"],"version":3}
1
+ {"file":"salla-scopes.js","mappings":";;;;;;;;;;;;;;;;;;;AAMA,IAAY,QAGX;AAHD,WAAY,QAAQ;EAChB,+BAAmB,CAAA;EACnB,yCAA6B,CAAA;AACjC,CAAC,EAHW,QAAQ,KAAR,QAAQ;;ACNpB,MAAM,cAAc,GAAG,2MAA2M;;MCarN,YAAY;EAEvB;;;;IAcQ,iBAAY,GAAQ;MAC1B,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI;MACxB,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI;KAC9B,CAAC;IAmHM,iBAAY,GAAG;;MACrB,IAAI,CAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,IAAG,CAAC;QAAE,OAAO,EAAE,CAAC;MACnD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO;QACnC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;KAC5E,CAAA;6BAvHqC,KAAK;gBACe,QAAQ,CAAC,OAAO;;kBAEvB,EAAE;8BACU,EAAE;;0BAE/B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;oBAC/C,KAAK;mBACN,KAAK;qBAKa,UAAU;8BAKnB,CAAC;IAnCpC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,EAAC,IAAI,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAC;MAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;KAC5B,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;MAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B,CAAC,CAAC;GAEJ;;;;EAkCD,MAAM,KAAK;;IACT,OAAO,OAAM,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAA,CAAC;GAClC;;;;EAMD,MAAM,IAAI,CAAC,OAAY,QAAQ,CAAC,OAAO,EAAE,aAAqB,IAAI;IAChE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC/F,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAGxB,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;MACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAClD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,IAAI,QAAQ,GAAG,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACxH,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC;OAC7C,IAAI,CAAC,CAAC,IAAI;MACT,IAAI,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;OAC/E;MACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACnE,CAAC,CAAC,KAAK,CAAC,CAAC;MACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;MACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB,CAAC;OACD,OAAO,CAAC;MACP,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;MACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;KACrB,CAAC,CAAC;GACN;;;;EAMD,MAAM,YAAY;IAEhB,IAAI,OAAO,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAC,CAAA;IAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;OACrC,IAAI,CAAC;MACJ,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;MACjD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;QAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;OAC5B,CAAC,CAAC;MACH,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;KACtF,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;OAC5B,OAAO,CAAC;MACP,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;KACtB,CAAC,CAAA;GACL;EAEO,cAAc,CAAC,KAAc;IACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAEhC,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,CAAC,EAAE;MACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;MAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;MAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM;MACL,IAAI,CAAC,aAAa,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;MACzD,IAAI,CAAC,cAAc,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;KAC3D;GACF;EAEO,uBAAuB,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAA;IAC9C,IAAI,CAAC,CAAC,KAAK,EAAE;MACX,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,kBAA0B,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;KACzG;SAAM;MACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAA;KACtC;GACF;EAEO,oBAAoB,CAAC,KAAU;;IACrC,IAAI,CAAC,aAAa,GAAG,MAAC,IAAI,CAAC,MAAc,0CAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;GACzF;EASO,kBAAkB;IACxB,OAAO,yBAAmB,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAC,sBAAsB,IACvE,YAAM,IAAI,EAAC,OAAO,IAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAQ,EACvF,YAAM,IAAI,EAAC,aAAa,IAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAQ,CACxF,CAAA;GACrB;EAEO,cAAc;;IACpB,OAAO,CAAC,WAAK,KAAK,EAAC,gCAAgC,IAChD,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,KAAK,KACtB,WAAK,KAAK,EAAC,qBAAqB,oBAAiB,IAAI,CAAC,SAAS,IAC7D,aACE,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,kBAAkB,KAAK,CAAC,EAAE,EAAE,EACjD,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EACxB,KAAK,EAAE,KAAK,CAAC,EAAE,EACf,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EACrD,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,EACvE,aACE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,kBAAkB,KAAK,CAAC,EAAE,EAAE,EACtD,KAAK,EAAC,mCAAmC,IACzC,gBAAO,KAAK,CAAC,IAAI,CAAQ,CACnB,CACJ,CACP,CACG,EACJ,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;GACxB;EAEO,mBAAmB;;IACzB,OAAO,WAAK,KAAK,EAAC,oBAAoB,IACnC,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,KAAU;;MAC3B,OAAA,WAAK,KAAK,EAAC,qBAAqB,oBAAiB,IAAI,CAAC,SAAS,IAC7D,UACE,KAAK,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAC,IACrF,gBAAO,KAAK,CAAC,IAAI,CAAQ,CACtB,EACL,UAAI,KAAK,EAAE,EAAC,OAAO,EAAE,MAAC,KAA6B,aAA7B,KAAK,uBAAL,KAAK,CAA0B,YAAY,0CAAE,KAAK,EAAC,EACrE,KAAK,EAAE,YAAY,MAAC,KAA6B,aAA7B,KAAK,uBAAL,KAAK,CAA0B,YAAY,0CAAE,GAAG,EAAE,IAAG,MAAC,KAA6B,aAA7B,KAAK,uBAAL,KAAK,CAA0B,YAAY,0CAAE,KAAK,CAAM,CAClI,CAAA;KAAA,CACP,CAEG,CAAA;GACP;EAEO,aAAa;IACnB,OAAO,WAAK,KAAK,EAAC,iBAAiB,IACjC,YAAM,IAAI,EAAC,QAAQ,IACjB,oBAAc,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAC/D,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAC,iBAAiB,qBAAiB,QAAQ,EAAC,KAAK,EAAC,MAAM,IAC5G,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAC7B,CACV,CACH,CAAA;GACP;;EAGD,iBAAiB;IACf,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;GACxB;EAED,MAAM;;IACJ,QACE,EAAC,IAAI,QACH,mBACE,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,EAChC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,EACrE,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAE,IAAI,CAAC,OAAO,0BAEtB,IAAI,CAAC,OAAO;MACX,WAAK,IAAI,EAAC,SAAS,IACjB,WAAK,KAAK,EAAC,mBAAmB,IAC5B,uBAAiB,KAAK,EAAC,iBAAiB,IACtC,WAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,sBAAsB,IAC3C,sBAAgB,IAAI,EAAC,QAAQ,GAAkB,CAC3C,EAEN,WAAK,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,4BAA4B,IAClD,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,CACvD,EACN,WAAK,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,0BAA0B,IACnD,sBAAgB,MAAM,EAAC,MAAM,GAAkB,EAC/C,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,CACvD,CACU,EAClB,WAAK,KAAK,EAAC,0BAA0B,IACnC,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAkB,CACxD,EACN,WAAK,KAAK,EAAC,0BAA0B,IACnC,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,EAC3D,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAkB,CACvD,EACN,WAAK,KAAK,EAAC,uBAAuB,IAChC,sBAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAkB,CACxD,CAEF,CACF;;QAEN,CAAC,uBAAiB,KAAK,EAAE,CAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,IAAG,uBAAuB,GAAG,UAAU,IAC7F,WAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,QAAQ,GAAG,EACpE,WAAK,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,uBAAuB,IAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CACrD,EACN,WAAK,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,0BAA0B,IAClD,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAClD,CACU,EAChB,WAAK,KAAK,EAAC,eAAe,IACvB,CAAC,EAAC,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,CAAA,IAAI,UAAI,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,YAAY,EAAE,CAAM,EAC1F,CAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,IAAG,IAAI,CAAC,kBAAkB;YACxD,WAAK,KAAK,EAAC,yBAAyB,IAClC,WAAK,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,MAAM,GAAG,EACtD,aAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,uBAAuB,EAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EACvF,YAAY,EAAC,QAAQ,EACrB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,CACxE;cACJ,EAAE,EAEL,IAAI,CAAC,QAAQ,KAAK,EAAC,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,CAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,YAAY,CAAC;YACzF,IAAI,CAAC,kBAAkB,EAAE;cACvB,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CACnF,CAAC,CAEC,CACT,EACP;GACH;EAED,gBAAgB;IACd,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE;MACzD,IAAI,CAAC,IAAI,EAAE,CAAA;KACZ;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/salla-scopes/interfaces.ts","src/components/salla-scopes/salla-scopes.scss?tag=salla-scopes","src/components/salla-scopes/salla-scopes.tsx"],"sourcesContent":["export interface Scope {\n id: number;\n name: string;\n selected: boolean;\n}\n\nexport enum ModeType {\n DEFAULT = \"default\",\n AVAILABILITY = \"availability\"\n}\nexport interface ProductAvailability {\n name: string;\n selected: boolean;\n availability: Availability;\n}\n\nexport interface Availability {\n label: string;\n key: string;\n color: string;\n}","/*\n* Salla Branches Component: Store branches & warehouses popup modal\n* You can use these classes to target the elements in the component.\n*/\n\n.s-scopes-availability-content {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.s-scopes {\n &-title {}\n\n &-container {\n }\n\n &-input-wrap {}\n\n &-input {}\n\n &-label {}\n\n &-select {}\n\n &-space-v {}\n\n &-sr-only {}\n\n &-is-closed {}\n\n &-closed-badge {}\n\n &-clickable {}\n\n &-submit {}\n\n &-color-red {}\n\n &-color-green {}\n\n &-color-gray {}\n\n &-placeholder {\n flex: 0 0 85%;\n }\n}\n","import {Component, h, Host, Method, Prop, State} from \"@stencil/core\";\nimport StoreAlt from '../../assets/svg/store-alt.svg';\nimport Search from '../../assets/svg/search.svg';\nimport {ModeType, ProductAvailability, Scope} from './interfaces';\n\n\n/**\n * @slot footer - The bottom section of the component, used for form action. Utilizes the `handleSubmit` method to submit the form.\n */\n@Component({\n tag: 'salla-scopes',\n styleUrl: 'salla-scopes.scss',\n})\nexport class SallaScopees {\n\n constructor() {\n salla.event.on('scopes::open', ({mode = null, product_id = null}) => {\n this.open(mode, product_id)\n });\n\n salla.lang.onLoaded(() => {\n this.translationLoaded = true;\n });\n\n }\n\n private changeBtn: HTMLSallaButtonElement;\n private modal: HTMLSallaModalElement;\n //to avoid over loading scopes in each open call\n private loadedScopes: any = {\n [ModeType.DEFAULT]: null,\n [ModeType.AVAILABILITY]: null,\n };\n @State() translationLoaded: boolean = false;\n @State() mode: ModeType.AVAILABILITY | ModeType.DEFAULT = ModeType.DEFAULT;\n @State() current_scope: any;\n @State() scopes: Scope[] | ProductAvailability[] = [];\n @State() originalScopesList: Scope[] | ProductAvailability[] = [];\n @State() selected_scope: any;\n @State() isOpenedBefore: string = salla.storage.get(\"branch-choosed-before\");\n @State() hasError: boolean = false;\n @State() loading: boolean = false;\n\n /**\n * Optionally open the modal or enforce the pop-up to the viewer\n */\n @Prop() selection: 'optional' | 'mandatory' = 'optional';\n\n /**\n * Dictates when to show the search field\n */\n @Prop() searchDisplayLimit: number = 6;\n\n\n /**\n * Closes the scope modal.\n */\n @Method()\n async close() {\n return await this.modal?.close();\n }\n\n /**\n * Opens the scope modal.\n */\n @Method()\n async open(mode: any = ModeType.DEFAULT, product_id: number = null) {\n this.hasError = false;\n this.mode = [ModeType.AVAILABILITY, ModeType.DEFAULT].includes(mode) ? mode : ModeType.DEFAULT;\n this.loading = !this.loadedScopes[this.mode];\n this.setScopeValues([]);\n\n\n salla.log('SallaScope:: opened');\n this.modal.open()\n if (!this.loading) {\n this.setScopeValues(this.loadedScopes[this.mode]);\n return this.modal.stopLoading();\n }\n\n let callback = () => mode == ModeType.AVAILABILITY ? salla.scope.getProductAvailability(product_id) : salla.scope.get();\n return await salla.api.withoutNotifier(callback)\n .then((resp) => {\n if (mode == ModeType.AVAILABILITY) {\n return this.setScopeValues(this.loadedScopes[ModeType.AVAILABILITY]=resp.data)\n }\n this.setScopeValues(this.loadedScopes[this.mode]=resp.data.scopes)\n }).catch(e => {\n console.log(e)\n this.hasError = true;\n })\n .finally(() => {\n this.modal.stopLoading()\n this.loading = false\n });\n }\n\n /**\n * Submit form to change exsiting scope.\n */\n @Method()\n async handleSubmit() {\n\n let payload = {'id': this.current_scope.id}\n this.changeBtn.load();\n return await salla.scope.change(payload)\n .then(() => {\n salla.storage.set(\"branch-choosed-before\", true);\n salla.storage.set(\"scope\", {\n 'type': this.current_scope.type,\n 'id': this.current_scope.id\n });\n salla.cart.reset();\n window.location.replace(salla.helpers.addParamToUrl('scope', this.current_scope.id));\n }).catch(e => console.log(e))\n .finally(() => {\n this.changeBtn.stop()\n })\n }\n\n private setScopeValues(value: Scope[]) {\n this.scopes = value;\n this.originalScopesList = value;\n\n if (value?.length == 1) {\n this.current_scope = value[0]\n this.selected_scope = value[0]\n this.scopes = [value[0]]; // Just to make sure it's consistent, might not have that much effect though.\n } else {\n this.current_scope = value?.find(scope => scope.selected)\n this.selected_scope = value?.find(scope => scope.selected)\n }\n }\n\n private handleSearchFieldTyping(e) {\n let value = e.target.value.toLocaleLowerCase()\n if (!!value) {\n this.scopes = (this.originalScopesList as any).filter(scope => scope.name.toLowerCase().includes(value))\n } else {\n this.scopes = this.originalScopesList\n }\n }\n\n private handleScopeSelection(event: any) {\n this.current_scope = (this.scopes as any)?.find(scope => scope.id == event.target.value)\n }\n\n private getFormTitle = () => {\n if (this.originalScopesList?.length < 2) return \"\";\n return this.mode === ModeType.DEFAULT ?\n salla.lang.get(\"blocks.scope.shopping_from_another_branch\") :\n salla.lang.get('blocks.scope.search_for_availability_in_other_branches');\n }\n\n private placeholderContent() {\n return <salla-placeholder alignment=\"center\" class=\"s-scopes-placeholder\">\n <span slot=\"title\">{salla.lang.get(\"blocks.scope.branch_looking_for_not_found\")}</span>\n <span slot=\"description\">{salla.lang.get(\"blocks.scope.our_services_not_available_in_this_branch\")}</span>\n </salla-placeholder>\n }\n\n private defaultContent() {\n return [<div class=\"s-scopes-container s-scrollbar\">\n {this.scopes?.map((scope) =>\n <div class=\"s-scopes-input-wrap\" data-selection={this.selection}>\n <input\n id={`${this.selection} + '_scope_' + ${scope.id}`}\n name=\"lang\" type=\"radio\"\n value={scope.id}\n onChange={(event) => this.handleScopeSelection(event)}\n class=\"s-scopes-input\"\n checked={!!this.current_scope && this.current_scope.id == scope.id}/>\n <label\n htmlFor={`${this.selection} + '_scope_' + ${scope.id}`}\n class=\"s-scopes-label s-scopes-clickable\">\n <span>{scope.name}</span>\n </label>\n </div>\n )}\n </div>,\n this.footerContent()]\n }\n\n private availabilityContent() {\n return <div class=\"s-scopes-container\">\n {this.scopes?.map((scope: any) =>\n <div class=\"s-scopes-input-wrap\" data-selection={this.selection}>\n <h2\n class={{\"s-scopes-label\": true, \"s-scopes-clickable\": this.mode === ModeType.DEFAULT}}>\n <span>{scope.name}</span>\n </h2>\n <h2 style={{'color': (scope as ProductAvailability)?.availability?.color}}\n class={`s-scopes-${(scope as ProductAvailability)?.availability?.key}`}>{(scope as ProductAvailability)?.availability?.label}</h2>\n </div>\n )\n }\n </div>\n }\n\n private footerContent() {\n return <div class=\"s-scopes-footer\">\n <slot name=\"footer\">\n <salla-button ref={btn => this.changeBtn = btn} disabled={!this.current_scope}\n onClick={() => this.handleSubmit()} class=\"s-scopes-submit\" loader-position=\"center\" width=\"wide\">\n {salla.lang.get('common.elements.confirm')}\n </salla-button>\n </slot>\n </div>\n }\n\n //let's wait to salla to be ready then render it.\n componentWillLoad() {\n return salla.onReady();\n }\n\n render() {\n return (\n <Host>\n <salla-modal\n ref={modal => this.modal = modal}\n isClosable={!!(this.isOpenedBefore || (this.selection == 'optional'))}\n class=\"s-scopes-modal\"\n isLoading={this.loading}\n has-skeleton>\n {this.loading ?\n <div slot=\"loading\">\n <div class=\"s-scopes-skeleton\">\n <salla-list-tile class=\"s-scopes-header\">\n <div slot=\"icon\" class=\"s-scopes-header-icon\">\n <salla-skeleton type=\"circle\"></salla-skeleton>\n </div>\n\n <div slot=\"title\" class=\"s-scopes-header-title mb-5\">\n <salla-skeleton height='15px' width='50%'></salla-skeleton>\n </div>\n <div slot=\"subtitle\" class=\"s-scopes-header-subtitle\">\n <salla-skeleton height='10px'></salla-skeleton>\n <salla-skeleton height='10px' width='75%'></salla-skeleton>\n </div>\n </salla-list-tile>\n <div class=\"s-scopes-skeleton-search\">\n <salla-skeleton height='10px' width='50%'></salla-skeleton>\n <salla-skeleton height='30px' width='100%'></salla-skeleton>\n </div>\n <div class=\"s-scopes-skeleton-scopes\">\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n <salla-skeleton height='10px' width='30%'></salla-skeleton>\n <salla-skeleton height='10px' width='25%'></salla-skeleton>\n </div>\n <div class=\"s-scopes-skeleton-btn\">\n <salla-skeleton height='40px' width='100%'></salla-skeleton>\n </div>\n\n </div>\n </div>\n :\n [<salla-list-tile class={this.originalScopesList?.length ? \"s-scopes-header block\" : \"s-hidden\"}>\n <div slot=\"icon\" class=\"s-scopes-header-icon\" innerHTML={StoreAlt}/>\n <div slot=\"title\" class=\"s-scopes-header-title\">\n {salla.lang.get('blocks.scope.you_are_browse_store_from')}\n </div>\n <div slot=\"subtitle\" class=\"s-scopes-header-subtitle\">\n {!!this.selected_scope ? this.selected_scope.name : \"\"}\n </div>\n </salla-list-tile>,\n <div class=\"s-scopes-wrap\">\n {!!this.originalScopesList?.length && <h4 class=\"s-scopes-title\">{this.getFormTitle()}</h4>}\n {this.originalScopesList?.length > this.searchDisplayLimit ?\n <div class=\"s-scopes-search-wrapper\">\n <div class=\"s-scopes-search-icon\" innerHTML={Search}/>\n <input type=\"text\" class=\"s-scopes-search-input\" onInput={e => this.handleSearchFieldTyping(e)}\n enterkeyhint=\"search\"\n placeholder={salla.lang.get('blocks.scope.searching_for_a_branch')}/>\n </div>\n : \"\"\n }\n {this.hasError || (!this.originalScopesList?.length && this.mode !== ModeType.AVAILABILITY) ?\n this.placeholderContent()\n : this.mode === ModeType.DEFAULT ? this.defaultContent() : this.availabilityContent()}\n </div>]\n }\n </salla-modal>\n </Host>\n );\n }\n\n componentDidLoad() {\n if (!this.isOpenedBefore && this.selection == 'mandatory') {\n this.open()\n }\n }\n}\n"],"version":3}