@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.
- package/dist/cjs/app-globals-6591c9e6.js.map +1 -1
- package/dist/cjs/salla-add-product-button_48.cjs.entry.js +4 -0
- package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
- package/dist/collection/components/salla-scopes/salla-scopes.js +4 -0
- package/dist/collection/components/salla-scopes/salla-scopes.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/salla-quick-buy2.js.map +1 -1
- package/dist/components/salla-scopes.js +4 -0
- package/dist/components/salla-scopes.js.map +1 -1
- package/dist/esm/app-globals-4208f12e.js.map +1 -1
- package/dist/esm/salla-add-product-button_48.entry.js +4 -0
- package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
- package/dist/esm-es5/app-globals-4208f12e.js.map +1 -1
- package/dist/esm-es5/salla-add-product-button_48.entry.js +1 -1
- package/dist/esm-es5/salla-add-product-button_48.entry.js.map +1 -1
- package/dist/twilight/{p-78b998b6.entry.js → p-35d35458.entry.js} +2 -2
- package/dist/twilight/{p-78b998b6.entry.js.map → p-35d35458.entry.js.map} +1 -1
- package/dist/twilight/p-643decdc.system.js +1 -1
- package/dist/twilight/{p-0f645aca.system.entry.js → p-9d139a24.system.entry.js} +2 -2
- package/dist/twilight/{p-0f645aca.system.entry.js.map → p-9d139a24.system.entry.js.map} +1 -1
- package/dist/twilight/p-a1aa069d.system.js.map +1 -1
- package/dist/twilight/p-fb21923b.js.map +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-scopes/salla-scopes.d.ts +1 -0
- package/dist/types/global.d.ts +20 -0
- 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":"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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 //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}
|