@salla.sa/twilight-components 2.13.79 → 2.13.81
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-7f77f27f.js.map +1 -1
- package/dist/cjs/salla-add-product-button_48.cjs.entry.js +2 -0
- package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
- package/dist/collection/components/salla-menu/salla-menu.js +1 -0
- package/dist/collection/components/salla-menu/salla-menu.js.map +1 -1
- package/dist/collection/components/salla-scopes/salla-scopes.js +1 -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-menu.js +1 -0
- package/dist/components/salla-menu.js.map +1 -1
- package/dist/components/salla-quick-buy2.js.map +1 -1
- package/dist/components/salla-scopes.js +1 -0
- package/dist/components/salla-scopes.js.map +1 -1
- package/dist/esm/app-globals-bbd15466.js.map +1 -1
- package/dist/esm/salla-add-product-button_48.entry.js +2 -0
- package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
- package/dist/esm-es5/app-globals-bbd15466.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-12aee0dd.js.map +1 -1
- package/dist/twilight/p-2ec5364b.system.js.map +1 -1
- package/dist/twilight/{p-7bb20b82.system.entry.js → p-9c7f9820.system.entry.js} +2 -2
- package/dist/twilight/{p-7bb20b82.system.entry.js.map → p-9c7f9820.system.entry.js.map} +1 -1
- package/dist/twilight/p-a0dd6fdc.system.js +1 -1
- package/dist/twilight/{p-b512c0d4.entry.js → p-e7e6a8a4.entry.js} +2 -2
- package/dist/twilight/{p-b512c0d4.entry.js.map → p-e7e6a8a4.entry.js.map} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/package.json +5 -5
|
@@ -32,6 +32,7 @@ export class SallaMenu {
|
|
|
32
32
|
const cachedMenus = salla.storage.getWithTTL(cacheKey, []);
|
|
33
33
|
if (cachedMenus.length > 0 && !isPreview) {
|
|
34
34
|
this.menus = cachedMenus;
|
|
35
|
+
return;
|
|
35
36
|
}
|
|
36
37
|
return salla.api.component.getMenus(this.source).then(({ data }) => {
|
|
37
38
|
this.menus = data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-menu.js","sourceRoot":"","sources":["../../../src/components/salla-menu/salla-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQpE,MAAM,OAAO,SAAS;;kBAKM,QAAQ;;;wBAeF,KAAK;;iBAOR,EAAE;;EAI/B,KAAK,CAAC,iBAAiB;IACrB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;MACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;MAChE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;OAChD;WAAM;QACL,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;OAC5B;IAEH,CAAC,CAAC,CAAC;EACL,CAAC;EAGO,YAAY;IAElB;;;QAGI;IACJ,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;IACrE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAE1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;MACxC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAA;KACzB;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;MACjE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;MAClB,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;MACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAC;EACL,CAAC;EAEO,WAAW,CAAC,IAAc;;IAChC,OAAO,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,MAAM,IAAG,CAAC,CAAC;EACpC,CAAC;EAGO,WAAW,CAAC,IAAc;;IAChC,OAAO,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,MAAM,IAAG,CAAC,CAAC;EACpC,CAAC;EAGD;;;;;IAKE;EACM,iBAAiB,CAAC,IAAc,EAAE,UAAmB;IAC3D,OAAO,qBAAqB,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;MACtH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;EAClD,CAAC;EAEO,aAAa,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;MACrD,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;MACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;MACtC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;EACT,CAAC;EAED;;;;;OAKK;EACG,aAAa,CAAC,IAAc,EAAE,cAAsB;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAK,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,cAAc,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5H,OAAO,CACL,wBAAI,KAAK,EAAC,6BAA6B,IAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GACvE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;MACxB,uBAAG,IAAI,EAAE,IAAI,CAAC,GAAG,gBAAc,IAAI,CAAC,KAAK,IAAI,UAAU,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAClJ,SAAS;QACV,gBAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAQ,CAC7B;MACJ,CAAC;QACD,EAAC,QAAQ;UACP,YAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnC,SAAS;YACT,IAAI,CAAC,KAAK,CACN;UACP;YACE,UAAI,KAAK,EAAC,mBAAmB;cAC3B,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,eAAe,IAAE,cAAc,CAAK,CAC1D;YACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CACzE,CACI,CAEV,CACN,CAAA;EACH,CAAC;EAGD;;;;;OAKK;EACG,cAAc,CAAC,IAAc,EAAE,UAAmB;IAExD,OAAO,wBAAI,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;MAC5F,uBAAG,IAAI,EAAE,IAAI,CAAC,GAAG,gBAAc,IAAI,CAAC,KAAK,IAAI,UAAU,IAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9F,gBAAO,IAAI,CAAC,KAAK,CAAQ,CACvB;MACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACvB,WAAK,KAAK,EAAE,2BAA2B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE;UAC7F,UAAI,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,IAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CACjE;UACJ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,2BACE,MAAM,EAAC,UAAU,2CAEH,IAAI,IAAI,CAAC,QAAQ,GAAG,GAClC,CAAC,CAAC,CAAC,IAAI,CACP,CAAC,CAAC,CAAC,IAAI,CACZ,CAAA;EACP,CAAC;EAGD;;;OAGK;EACG,aAAa,CAAC,KAA0B;IAC9C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAEvF,OAAO;MACL,WAAK,KAAK,EAAE;UACV,oBAAoB,EAAE,CAAC,IAAI,CAAC,MAAM;UAClC,oBAAoB,EAAE,IAAI,CAAC,MAAM;SAClC,IAEE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAuB,EAAE,EAAE;QACzC,OAAO,SAAG,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;YAClE,oBAAoB,EAAE,CAAC,IAAI,CAAC,MAAM;YAClC,gDAAgD,EAAE,IAAI,CAAC,MAAM;WAC9D,IAAG,IAAI,CAAC,KAAK,CAAK,CAAA;MACrB,CAAC,CAAC,CACE,CACF,CAAA;EACR,CAAC;EAED;;;;EAIA;EACQ,aAAa,CAAC,KAAiB;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAc,EAAE,EAAE,CAClC;MACE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;MAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;KAChC,CACF,CAAA;EACH,CAAC;EAID,MAAM;IACJ,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;MAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;MAC9B,CAAC;QACD;UACE,WAAK,GAAG,EAAC,UAAU,EAAC,EAAE,EAAC,aAAa,EAAC,KAAK,EAAC,aAAa;YACtD,UAAI,KAAK,EAAC,WAAW,IAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAC5B;YACL,cAAQ,KAAK,EAAC,qDAAqD,GAAG,CAClE;UACN,cAAQ,GAAG,EAAC,WAAW,EAAC,KAAK,EAAC,qDAAqD,GAAG;SACvF,CAAA;EACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Fragment, h, Prop, State } from '@stencil/core';\nimport { MenuItem, Sources } from './interfaces';\n\n@Component({\n tag: 'salla-menu',\n styleUrl: 'salla-menu.scss',\n})\n\nexport class SallaMenu {\n\n /**\n * The source of the menu, specifying whether it is a header or footer menu.\n */\n @Prop() source: Sources = \"header\"\n\n /**\n * The source value, a stringified JSON representation of the menu content.\n */\n @Prop() sourceValue?: string;\n\n /**\n * Boolean indicating whether the menu is a top navigation menu.\n */\n @Prop() topnav: boolean;\n\n /**\n * Boolean indicating whether to use React Link elements for menu links.\n */\n @Prop() useReactLink: boolean = false;\n\n /**\n * Limiting the number of menu items\n */\n @Prop() limit: number;\n\n @State() menus: MenuItem[] = [];\n\n private displayAllText: ''\n\n async componentWillLoad() {\n return salla.onReady(() => {\n this.displayAllText = salla.lang.get('blocks.home.display_all');\n if (this.sourceValue && this.source === 'json') {\n this.menus = JSON.parse(this.sourceValue) || []\n } else {\n return this.getMenuItems();\n }\n\n });\n }\n\n\n private getMenuItems() {\n\n /**\n * Avoid saving the menu to localStorage (default) when in the development environment\n * or when modifying the theme in the dashboard\n */\n const isPreview = salla.config.isDebug() || salla.helpers.isPreview()\n const cacheKey = `${this.source}_menus_${salla.lang.locale}`\n const cachedMenus = salla.storage.getWithTTL(cacheKey, [])\n\n if (cachedMenus.length > 0 && !isPreview) {\n this.menus = cachedMenus\n }\n\n return salla.api.component.getMenus(this.source).then(({ data }) => {\n this.menus = data;\n !isPreview && salla.storage.setWithTTL(cacheKey, this.menus)\n }).catch((error) => {\n salla.logger.error('salla-menu::Error fetching menus', error)\n });\n }\n\n private hasChildren(menu: MenuItem) {\n return menu?.children?.length > 0;\n }\n\n\n private hasProducts(menu: MenuItem) {\n return menu?.products?.length > 0;\n }\n\n\n /**\n * Get the classes for desktop menu\n * @param {Object} menu\n * @param {Boolean} isRootMenu\n * @returns {String}\n */\n private getDesktopClasses(menu: MenuItem, isRootMenu: boolean) {\n return `!hidden lg:!block ${isRootMenu ? 'root-level lg:!inline-block' : 'relative'} ${menu.products ? ' mega-menu' : ''}\n ${this.hasChildren(menu) ? 'has-children' : ''}`\n }\n\n private getAttributes(attrs: string) {\n return attrs.trim().split(' ').reduce((result, attr) => {\n let [key, value] = attr.split('=');\n result[key] = value.replace(/\"/g, '');\n return result;\n }, {});\n }\n\n /**\n * Get the mobile menu\n * @param {Object} menu\n * @param {String} displayAllText\n * @returns {String}\n */\n private getMobileMenu(menu: MenuItem, displayAllText: string) {\n const menuImage = menu.image ? <img src={menu.image} class=\"rounded-full\" width=\"48\" height=\"48\" alt={menu.title} /> : null;\n\n return (\n <li class=\"lg:hidden text-sm font-bold\" {...this.getAttributes(menu.attrs)}>\n {!this.hasChildren(menu) ?\n <a href={menu.url} aria-label={menu.title || 'category'} class={`text-gray-500 ${menu.image ? '!py-3' : ''}`} {...this.getAttributes(menu.link_attrs)}>\n {menuImage}\n <span>{menu.title || ''}</span>\n </a>\n :\n <Fragment>\n <span class={menu.image ? '!py-3' : ''}>\n {menuImage}\n {menu.title}\n </span>\n <ul>\n <li class=\"text-sm font-bold\">\n <a href={menu.url} class=\"text-gray-500\">{displayAllText}</a>\n </li>\n {menu.children.map((subMenu) => this.getMobileMenu(subMenu, displayAllText))}\n </ul>\n </Fragment>\n }\n </li>\n )\n }\n\n\n /**\n * Get the desktop menu\n * @param {Object} menu\n * @param {Boolean} isRootMenu\n * @returns {String}\n */\n private getDesktopMenu(menu: MenuItem, isRootMenu: boolean) {\n\n return <li class={this.getDesktopClasses(menu, isRootMenu)} {...this.getAttributes(menu.attrs)}>\n <a href={menu.url} aria-label={menu.title || 'category'} {...this.getAttributes(menu.link_attrs)}>\n <span>{menu.title}</span>\n </a>\n {this.hasChildren(menu) ?\n <div class={`sub-menu shadow-default ${this.hasProducts(menu) ? 'w-full left-0 flex' : 'w-56'}`}>\n <ul class={this.hasProducts(menu) ? 'w-56 shrink-0 m-8 rtl:ml-0 ltr:mr-0' : ''}>\n {menu.children.map((subMenu) => this.getDesktopMenu(subMenu, false))}\n </ul>\n {this.hasProducts(menu) ?\n <salla-products-list\n source=\"selected\"\n shadow-on-hover\n source-value={`[${menu.products}]`}\n /> : null}\n </div> : null}\n </li>\n }\n\n\n /**\n * Get the footer menu\n * @param {Array} menus\n */\n private getFooterMenu(menus: Partial<MenuItem>[]) {\n const Menuitems = (this.topnav || this.limit) ? menus.slice(0, this.limit || 3) : menus\n\n return <div>\n <div class={{\n \"s-menu-footer-list\": !this.topnav,\n \"s-menu-topnav-list\": this.topnav\n }}\n >\n {Menuitems.map((menu: Partial<MenuItem>) => {\n return <a key={menu.id} href={menu.url} target={menu.target} class={{\n \"s-menu-footer-item\": !this.topnav,\n \"s-menu-topnav-item topnav-link-item right-side\": this.topnav\n }}>{menu.title}</a>\n })}\n </div>\n </div>\n }\n\n /**\n* Get the menus\n* @param {Array} menus\n* @returns {String}\n*/\n private getHeaderMenu(menus: MenuItem[]) {\n return menus.map((menu: MenuItem) =>\n [\n this.getMobileMenu(menu, this.displayAllText),\n this.getDesktopMenu(menu, true)\n ]\n )\n }\n\n\n\n render() {\n return this.source === \"footer\" ?\n this.getFooterMenu(this.menus)\n :\n [\n <nav key=\"main-nav\" id=\"mobile-menu\" class=\"mobile-menu\">\n <ul class=\"main-menu\">\n {this.getHeaderMenu(this.menus)}\n </ul>\n <button class=\"btn--close close-mobile-menu sicon-cancel lg:hidden\" />\n </nav>,\n <button key=\"close-btn\" class=\"btn--close-sm close-mobile-menu sicon-cancel hidden\" />\n ]\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"salla-menu.js","sourceRoot":"","sources":["../../../src/components/salla-menu/salla-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Fragment, h, Prop, State } from '@stencil/core';\nimport { MenuItem, Sources } from './interfaces';\n\n@Component({\n tag: 'salla-menu',\n styleUrl: 'salla-menu.scss',\n})\n\nexport class SallaMenu {\n\n /**\n * The source of the menu, specifying whether it is a header or footer menu.\n */\n @Prop() source: Sources = \"header\"\n\n /**\n * The source value, a stringified JSON representation of the menu content.\n */\n @Prop() sourceValue?: string;\n\n /**\n * Boolean indicating whether the menu is a top navigation menu.\n */\n @Prop() topnav: boolean;\n\n /**\n * Boolean indicating whether to use React Link elements for menu links.\n */\n @Prop() useReactLink: boolean = false;\n\n /**\n * Limiting the number of menu items\n */\n @Prop() limit: number;\n\n @State() menus: MenuItem[] = [];\n\n private displayAllText: ''\n\n async componentWillLoad() {\n return salla.onReady(() => {\n this.displayAllText = salla.lang.get('blocks.home.display_all');\n if (this.sourceValue && this.source === 'json') {\n this.menus = JSON.parse(this.sourceValue) || []\n } else {\n return this.getMenuItems();\n }\n\n });\n }\n\n\n private getMenuItems() {\n\n /**\n * Avoid saving the menu to localStorage (default) when in the development environment\n * or when modifying the theme in the dashboard\n */\n const isPreview = salla.config.isDebug() || salla.helpers.isPreview()\n const cacheKey = `${this.source}_menus_${salla.lang.locale}`\n const cachedMenus = salla.storage.getWithTTL(cacheKey, [])\n\n if (cachedMenus.length > 0 && !isPreview) {\n this.menus = cachedMenus\n return;\n }\n\n return salla.api.component.getMenus(this.source).then(({ data }) => {\n this.menus = data;\n !isPreview && salla.storage.setWithTTL(cacheKey, this.menus)\n }).catch((error) => {\n salla.logger.error('salla-menu::Error fetching menus', error)\n });\n }\n\n private hasChildren(menu: MenuItem) {\n return menu?.children?.length > 0;\n }\n\n\n private hasProducts(menu: MenuItem) {\n return menu?.products?.length > 0;\n }\n\n\n /**\n * Get the classes for desktop menu\n * @param {Object} menu\n * @param {Boolean} isRootMenu\n * @returns {String}\n */\n private getDesktopClasses(menu: MenuItem, isRootMenu: boolean) {\n return `!hidden lg:!block ${isRootMenu ? 'root-level lg:!inline-block' : 'relative'} ${menu.products ? ' mega-menu' : ''}\n ${this.hasChildren(menu) ? 'has-children' : ''}`\n }\n\n private getAttributes(attrs: string) {\n return attrs.trim().split(' ').reduce((result, attr) => {\n let [key, value] = attr.split('=');\n result[key] = value.replace(/\"/g, '');\n return result;\n }, {});\n }\n\n /**\n * Get the mobile menu\n * @param {Object} menu\n * @param {String} displayAllText\n * @returns {String}\n */\n private getMobileMenu(menu: MenuItem, displayAllText: string) {\n const menuImage = menu.image ? <img src={menu.image} class=\"rounded-full\" width=\"48\" height=\"48\" alt={menu.title} /> : null;\n\n return (\n <li class=\"lg:hidden text-sm font-bold\" {...this.getAttributes(menu.attrs)}>\n {!this.hasChildren(menu) ?\n <a href={menu.url} aria-label={menu.title || 'category'} class={`text-gray-500 ${menu.image ? '!py-3' : ''}`} {...this.getAttributes(menu.link_attrs)}>\n {menuImage}\n <span>{menu.title || ''}</span>\n </a>\n :\n <Fragment>\n <span class={menu.image ? '!py-3' : ''}>\n {menuImage}\n {menu.title}\n </span>\n <ul>\n <li class=\"text-sm font-bold\">\n <a href={menu.url} class=\"text-gray-500\">{displayAllText}</a>\n </li>\n {menu.children.map((subMenu) => this.getMobileMenu(subMenu, displayAllText))}\n </ul>\n </Fragment>\n }\n </li>\n )\n }\n\n\n /**\n * Get the desktop menu\n * @param {Object} menu\n * @param {Boolean} isRootMenu\n * @returns {String}\n */\n private getDesktopMenu(menu: MenuItem, isRootMenu: boolean) {\n\n return <li class={this.getDesktopClasses(menu, isRootMenu)} {...this.getAttributes(menu.attrs)}>\n <a href={menu.url} aria-label={menu.title || 'category'} {...this.getAttributes(menu.link_attrs)}>\n <span>{menu.title}</span>\n </a>\n {this.hasChildren(menu) ?\n <div class={`sub-menu shadow-default ${this.hasProducts(menu) ? 'w-full left-0 flex' : 'w-56'}`}>\n <ul class={this.hasProducts(menu) ? 'w-56 shrink-0 m-8 rtl:ml-0 ltr:mr-0' : ''}>\n {menu.children.map((subMenu) => this.getDesktopMenu(subMenu, false))}\n </ul>\n {this.hasProducts(menu) ?\n <salla-products-list\n source=\"selected\"\n shadow-on-hover\n source-value={`[${menu.products}]`}\n /> : null}\n </div> : null}\n </li>\n }\n\n\n /**\n * Get the footer menu\n * @param {Array} menus\n */\n private getFooterMenu(menus: Partial<MenuItem>[]) {\n const Menuitems = (this.topnav || this.limit) ? menus.slice(0, this.limit || 3) : menus\n\n return <div>\n <div class={{\n \"s-menu-footer-list\": !this.topnav,\n \"s-menu-topnav-list\": this.topnav\n }}\n >\n {Menuitems.map((menu: Partial<MenuItem>) => {\n return <a key={menu.id} href={menu.url} target={menu.target} class={{\n \"s-menu-footer-item\": !this.topnav,\n \"s-menu-topnav-item topnav-link-item right-side\": this.topnav\n }}>{menu.title}</a>\n })}\n </div>\n </div>\n }\n\n /**\n* Get the menus\n* @param {Array} menus\n* @returns {String}\n*/\n private getHeaderMenu(menus: MenuItem[]) {\n return menus.map((menu: MenuItem) =>\n [\n this.getMobileMenu(menu, this.displayAllText),\n this.getDesktopMenu(menu, true)\n ]\n )\n }\n\n\n\n render() {\n return this.source === \"footer\" ?\n this.getFooterMenu(this.menus)\n :\n [\n <nav key=\"main-nav\" id=\"mobile-menu\" class=\"mobile-menu\">\n <ul class=\"main-menu\">\n {this.getHeaderMenu(this.menus)}\n </ul>\n <button class=\"btn--close close-mobile-menu sicon-cancel lg:hidden\" />\n </nav>,\n <button key=\"close-btn\" class=\"btn--close-sm close-mobile-menu sicon-cancel hidden\" />\n ]\n }\n}\n"]}
|
|
@@ -91,6 +91,7 @@ export class SallaScopees {
|
|
|
91
91
|
'type': this.current_scope.type,
|
|
92
92
|
'id': this.current_scope.id
|
|
93
93
|
});
|
|
94
|
+
salla.cart.reset();
|
|
94
95
|
window.location.replace(salla.helpers.addParamToUrl('scope', this.current_scope.id));
|
|
95
96
|
}).catch(e => console.log(e))
|
|
96
97
|
.finally(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-scopes.js","sourceRoot":"","sources":["../../../src/components/salla-scopes/salla-scopes.tsx"],"names":[],"mappings":"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","sourcesContent":["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 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 } 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 < 2 ?\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"]}
|
|
1
|
+
{"version":3,"file":"salla-scopes.js","sourceRoot":"","sources":["../../../src/components/salla-scopes/salla-scopes.tsx"],"names":[],"mappings":"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","sourcesContent":["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 } 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 < 2 ?\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"]}
|