@salla.sa/twilight-components 2.11.127 → 2.11.128

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 (90) hide show
  1. package/dist/cjs/{Helper-63d6ab45.js → Helper-f14223e6.js} +48 -1
  2. package/dist/cjs/Helper-f14223e6.js.map +1 -0
  3. package/dist/cjs/app-globals-8c76baa2.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/salla-add-product-button_40.cjs.entry.js +1 -1
  6. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  7. package/dist/cjs/salla-products-list.cjs.entry.js +27 -47
  8. package/dist/cjs/salla-products-list.cjs.entry.js.map +1 -1
  9. package/dist/cjs/salla-products-slider.cjs.entry.js +9 -35
  10. package/dist/cjs/salla-products-slider.cjs.entry.js.map +1 -1
  11. package/dist/cjs/twilight.cjs.js +1 -1
  12. package/dist/collection/Helpers/Helper.js +47 -0
  13. package/dist/collection/Helpers/Helper.js.map +1 -1
  14. package/dist/collection/components/salla-products-list/salla-products-list.js +27 -47
  15. package/dist/collection/components/salla-products-list/salla-products-list.js.map +1 -1
  16. package/dist/collection/components/salla-products-slider/salla-products-slider.js +26 -52
  17. package/dist/collection/components/salla-products-slider/salla-products-slider.js.map +1 -1
  18. package/dist/components/Helper.js +47 -0
  19. package/dist/components/Helper.js.map +1 -1
  20. package/dist/components/index.js.map +1 -1
  21. package/dist/components/salla-products-list.js +27 -47
  22. package/dist/components/salla-products-list.js.map +1 -1
  23. package/dist/components/salla-products-slider.js +10 -36
  24. package/dist/components/salla-products-slider.js.map +1 -1
  25. package/dist/esm/{Helper-30bbdc37.js → Helper-a7971963.js} +48 -1
  26. package/dist/esm/Helper-a7971963.js.map +1 -0
  27. package/dist/esm/app-globals-8e3be062.js.map +1 -1
  28. package/dist/esm/loader.js +1 -1
  29. package/dist/esm/salla-add-product-button_40.entry.js +1 -1
  30. package/dist/esm/salla-filters-widget.entry.js +1 -1
  31. package/dist/esm/salla-products-list.entry.js +27 -47
  32. package/dist/esm/salla-products-list.entry.js.map +1 -1
  33. package/dist/esm/salla-products-slider.entry.js +9 -35
  34. package/dist/esm/salla-products-slider.entry.js.map +1 -1
  35. package/dist/esm/twilight.js +1 -1
  36. package/dist/esm-es5/Helper-a7971963.js +5 -0
  37. package/dist/esm-es5/Helper-a7971963.js.map +1 -0
  38. package/dist/esm-es5/app-globals-8e3be062.js.map +1 -1
  39. package/dist/esm-es5/loader.js +1 -1
  40. package/dist/esm-es5/salla-add-product-button_40.entry.js +1 -1
  41. package/dist/esm-es5/salla-filters-widget.entry.js +1 -1
  42. package/dist/esm-es5/salla-products-list.entry.js +2 -2
  43. package/dist/esm-es5/salla-products-list.entry.js.map +1 -1
  44. package/dist/esm-es5/salla-products-slider.entry.js +1 -1
  45. package/dist/esm-es5/salla-products-slider.entry.js.map +1 -1
  46. package/dist/esm-es5/twilight.js +1 -1
  47. package/dist/twilight/p-0254e9be.system.js +1 -1
  48. package/dist/twilight/p-059b0be0.system.js.map +1 -1
  49. package/dist/twilight/{p-3544bca0.entry.js → p-05e73fab.entry.js} +2 -2
  50. package/dist/twilight/p-2042f370.system.js +5 -0
  51. package/dist/twilight/p-2042f370.system.js.map +1 -0
  52. package/dist/twilight/p-24d6867a.entry.js +5 -0
  53. package/dist/twilight/p-24d6867a.entry.js.map +1 -0
  54. package/dist/twilight/p-3278e007.js.map +1 -1
  55. package/dist/twilight/p-5ffffea6.js +5 -0
  56. package/dist/twilight/p-5ffffea6.js.map +1 -0
  57. package/dist/twilight/p-7857f10e.system.entry.js +5 -0
  58. package/dist/twilight/p-7857f10e.system.entry.js.map +1 -0
  59. package/dist/twilight/{p-710f64c1.entry.js → p-84baa754.entry.js} +2 -2
  60. package/dist/twilight/p-908e0bc9.system.entry.js +5 -0
  61. package/dist/twilight/p-908e0bc9.system.entry.js.map +1 -0
  62. package/dist/twilight/{p-3ae8f976.system.entry.js → p-941f36a6.system.entry.js} +2 -2
  63. package/dist/twilight/{p-e4f8147f.system.entry.js → p-d38d47c0.system.entry.js} +2 -2
  64. package/dist/twilight/p-ef0c75da.entry.js +5 -0
  65. package/dist/twilight/p-ef0c75da.entry.js.map +1 -0
  66. package/dist/twilight/twilight.esm.js +1 -1
  67. package/dist/types/Helpers/Helper.d.ts +2 -0
  68. package/dist/types/components/salla-products-list/salla-products-list.d.ts +4 -2
  69. package/dist/types/components/salla-products-slider/salla-products-slider.d.ts +6 -6
  70. package/package.json +2 -2
  71. package/dist/cjs/Helper-63d6ab45.js.map +0 -1
  72. package/dist/esm/Helper-30bbdc37.js.map +0 -1
  73. package/dist/esm-es5/Helper-30bbdc37.js +0 -5
  74. package/dist/esm-es5/Helper-30bbdc37.js.map +0 -1
  75. package/dist/twilight/p-77944169.system.js +0 -5
  76. package/dist/twilight/p-77944169.system.js.map +0 -1
  77. package/dist/twilight/p-82053aa3.system.entry.js +0 -5
  78. package/dist/twilight/p-82053aa3.system.entry.js.map +0 -1
  79. package/dist/twilight/p-be3279c0.entry.js +0 -5
  80. package/dist/twilight/p-be3279c0.entry.js.map +0 -1
  81. package/dist/twilight/p-c3539119.entry.js +0 -5
  82. package/dist/twilight/p-c3539119.entry.js.map +0 -1
  83. package/dist/twilight/p-cf703bcf.system.entry.js +0 -5
  84. package/dist/twilight/p-cf703bcf.system.entry.js.map +0 -1
  85. package/dist/twilight/p-dad8bacc.js +0 -5
  86. package/dist/twilight/p-dad8bacc.js.map +0 -1
  87. /package/dist/twilight/{p-3544bca0.entry.js.map → p-05e73fab.entry.js.map} +0 -0
  88. /package/dist/twilight/{p-710f64c1.entry.js.map → p-84baa754.entry.js.map} +0 -0
  89. /package/dist/twilight/{p-3ae8f976.system.entry.js.map → p-941f36a6.system.entry.js.map} +0 -0
  90. /package/dist/twilight/{p-e4f8147f.system.entry.js.map → p-d38d47c0.system.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["sallaProductsListCss","SallaProductsList","exports","class_1","prototype","connectedCallback","_this","this","salla","onReady","hasCustomComponent","customElements","get","sourceValueIsValid","getSourceValue","isSourceWithoutValue","hasInfiniteScroll","includes","getSource","searchParams","URLSearchParams","window","location","search","sortBy","filters","parsedFilters","JSON","parse","decodeURIComponent","e","logger","warn","message","buildNextPageUrl","createStatusDom","isReady","concat","event","on","setFilters","stringify","scrollTo","top","behavior","reload","infiniteScroll","destroy","wrapper","innerHTML","init","isFilterable","config","filtersResults","animateItems","anime","targets","opacity","duration","translateY","delay","_el","i","status","document","createElement","className","lang","btnLoader","querySelector","onLoaded","placeholderText","initBaseNextPageUrl","source","nextPage","url","api","limit","key","value","this_1","Array","isArray","forEach","item","_d","_e","Object","entries","length","_f","k","v","_i","_b","_c","join","sourceValue","loading","isLoading","style","display","getItemHTML","product","customComponentTag","customComponent","toggleAttribute","classList","add","horizontalCards","fetchProducts","fetch","source_value","then","res","data","showPlaceholder","handleResponse","card","append","initiateInfiniteScroll","host","insertAdjacentElement","initiate","path","history","scrollThreshold","response","_a","appendItems","pageIndex","remove","loadNextPage","canRender","render","h","class","ShoppingBag","Host","ref","componentDidLoad","map","emit","cursor","next","option","loadOnScroll"],"sources":["src/components/salla-products-list/salla-products-list.scss?tag=salla-products-list","src/components/salla-products-list/salla-products-list.tsx"],"sourcesContent":["\n","import {Component, Host, h, Prop, State, Element, Method} from '@stencil/core';\nimport anime from 'animejs';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\n\n@Component({\n tag: 'salla-products-list',\n styleUrl: 'salla-products-list.scss'\n})\nexport class SallaProductsList {\n connectedCallback() {\n salla.onReady(() => {\n this.hasCustomComponent = !!customElements.get('custom-salla-product-card');\n this.sourceValueIsValid = !!(this.getSourceValue() || this.isSourceWithoutValue());\n this.hasInfiniteScroll = !['json', 'selected', 'related', 'landing-page'].includes(this.getSource());\n try {\n let searchParams = new URLSearchParams(window.location.search);\n this.sortBy = this.sortBy || searchParams.get('sort') || searchParams.get('by');\n let filters = searchParams.get('filters')\n this.parsedFilters = filters ? JSON.parse(decodeURIComponent(filters)) : {};\n } catch (e) {\n salla.logger.warn('failed to get filters from url', e.message);\n }\n this.buildNextPageUrl();\n this.createStatusDom();\n\n this.isReady = true;\n });\n\n if (!this.sourceValueIsValid) {\n salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`);\n return;\n }\n salla.event.on('salla-filters::changed', filters => this.setFilters(filters))\n\n\n }\n\n @Method()\n async setFilters(filters) {\n if (!!filters && JSON.stringify(this.parsedFilters) === JSON.stringify(filters)) {\n return;\n }\n window.scrollTo({top: 0,behavior: 'smooth'});\n this.parsedFilters = filters;\n return this.reload();\n }\n\n\n @Method()\n async reload() {\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.buildNextPageUrl();\n this.wrapper.innerHTML = '';\n this.init();\n }\n\n\n private status: HTMLDivElement;\n private btnLoader: HTMLAnchorElement;\n @Element() host: HTMLElement;\n private wrapper: any;\n private infiniteScroll: any;\n /**\n * The source of the products list\n * @type {string}\n * */\n @Prop({\n reflect: true,\n mutable: true\n }) source: 'categories' | 'latest' | 'related' | 'brands' | 'json' | 'search' | 'tags' | 'selected' | 'offers' | 'landing-page' | 'sales';\n\n /**\n * The source value, cloud be different values as following:\n * - array of ids when `source` in ['categories', 'brands', 'tags', 'selected']\n * - keyword when `source` = 'search'\n * - products payload when `source` = 'json'\n * - product_id when `source` = 'related'\n *\n * @type {string}\n * */\n @Prop({mutable: true}) sourceValue: any;\n\n /**\n * Limit for number of products in the list.\n */\n @Prop({mutable: true}) limit: number;\n\n /**\n * Sorting the list of products\n */\n @Prop({mutable: true}) sortBy?: string | 'ourSuggest' | 'bestSell' | 'topRated' | 'priceFromTopToLow' | 'priceFromLowToTop';\n\n /**\n * should listen to filters events `salla-filters::changed` and re-render\n */\n @Prop({reflect: true, mutable: true}) filtersResults: boolean;\n\n /**\n * Horizontal cards\n */\n @Prop({reflect: true}) horizontalCards: boolean\n\n // State\n @State() page: number = 1;\n @State() nextPage: string;\n @State() hasInfiniteScroll: boolean;\n @State() hasCustomComponent: boolean;\n @State() sourceValueIsValid: boolean;\n @State() placeholderText: string;\n @State() isReady: boolean;\n @State() showPlaceholder: boolean;\n @State() parsedFilters: any;\n\n private isFilterable() {\n return salla.config.get('store.settings.product.filters') && this.filtersResults;\n }\n\n private isSourceWithoutValue() {\n return ['offers', 'latest', 'sales'].includes(this.getSource());\n }\n\n private animateItems() {\n anime({\n targets: 'salla-products-list salla-product-card',\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n })\n }\n\n private createStatusDom() {\n this.status = document.createElement('div');\n this.status.className = 's-infinite-scroll-wrapper';\n this.status.innerHTML = `<div class=\"s-infinite-scroll-status\">\n <p class=\"s-infinite-scroll-last infinite-scroll-last s-hidden\" >${salla.lang.get('common.elements.end_of_content')}</p>\n <p class=\"s-infinite-scroll-error infinite-scroll-error s-hidden\">${salla.lang.get('common.elements.failed_to_load_more')}</p>\n </div>\n <a href=\"#\" class=\"s-infinite-scroll-btn s-button-btn\">\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" style=\"display: none\"></span>\n </a>`;\n this.btnLoader = this.status.querySelector('.s-button-loader');\n salla.lang.onLoaded(() => {\n this.status.querySelector('.s-infinite-scroll-last').innerHTML = salla.lang.get('common.elements.end_of_content');\n this.status.querySelector('.s-infinite-scroll-error').innerHTML = salla.lang.get('common.elements.failed_to_load_more');\n this.placeholderText = salla.lang.get('pages.categories.no_products');\n });\n }\n\n private initBaseNextPageUrl(source: string) {\n\n this.nextPage = salla.url.api(`products?source=${source}`);\n\n if (this.limit) {\n this.nextPage += `&per_page=${this.limit > 32 ? 32 : this.limit}`;\n }\n if (this.sortBy) {\n this.nextPage += `&sort=${this.sortBy}`;\n }\n // if (!this.isFilterable()) {\n // return this.nextPage;\n // }\n this.nextPage += '&filterable=1';\n for (const [key, value] of Object.entries(this.parsedFilters || {})) {\n if ([\"string\", \"number\"].includes(typeof value)) {\n this.nextPage += `&filters[${key}]=${value}`;\n } else if (Array.isArray(value)) {\n (value as any).forEach(item => this.nextPage += `&filters[${key}][]=${item}`)\n } else if (typeof value === 'object') {\n for (const [k, v] of Object.entries(value)) {\n this.nextPage += `&filters[${key}][${k}]=${v}`;\n }\n }\n }\n }\n\n private buildNextPageUrl() {\n let source = this.getSource();\n if (source === 'json') {\n return;\n }\n this.initBaseNextPageUrl(source);\n if (this.isSourceWithoutValue()) {\n return;\n }\n\n if (['search', 'related', 'landing-page'].includes(source)) {\n this.nextPage += `&source_value=${this.getSourceValue()}`;\n return;\n }\n\n try {\n this.nextPage += `&source_value[]=${this.getSourceValue().join('&source_value[]=')}`;\n } catch (e) {\n salla.logger.warn(`source-value prop should be array of ids ex source-value=\"[1,2,3]\" for the source [${source}]`);\n this.sourceValueIsValid = false;\n }\n }\n\n private getSource() {\n return {\n 'brands.single': 'brands',\n 'product.index': 'categories',\n 'product.index.latest': 'latest',\n 'product.index.offers': 'offers',\n 'product.index.search': 'search',\n 'landing-page': 'landing-page',\n 'product.index.tag': 'tags',\n 'product.index.sales': 'sales',\n 'components.most_sales_products': 'sales',//temporary, delete it after two days from now\n }[this.source || salla.config.get('page.slug')] || this.source || 'latest';\n }\n\n private getSourceValue() {\n let source = this.getSource();\n\n //todo:: enhance this code, it call JSON.parse too many times.\n if (!['search', 'json', 'offers', 'latest', 'sales'].includes(source)) {\n if (this.sourceValue && Array.isArray(JSON.parse(this.sourceValue)) && JSON.parse(this.sourceValue).length) {\n return JSON.parse(this.sourceValue);\n }\n\n if (this.sourceValue && typeof JSON.parse(this.sourceValue) == 'number') {\n return [JSON.parse(this.sourceValue)];\n }\n if (!this.sourceValue && ['categories', 'tags', 'brands'].includes(this.getSource())) {\n return [salla.config.get('page.id')];\n }\n }\n\n if (this.sourceValue) {\n return this.sourceValue;\n }\n\n\n if (source === 'search') {\n return (new URLSearchParams(window.location.search)).get('q');\n }\n\n return salla.config.get('page.id');\n }\n\n\n private loading(isLoading = true) {\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n\n private getItemHTML(product) {\n let customComponentTag: string = this.hasCustomComponent ? 'custom-salla-product-card' : 'salla-product-card';\n let customComponent: HTMLSallaProductCardElement = document.createElement(customComponentTag) as HTMLSallaProductCardElement;\n customComponent.product = product;\n // customComponent.setAttribute('product', JSON.stringify(product));\n if (this.getSource() == 'landing-page' && !this.hasCustomComponent) {\n customComponent.toggleAttribute('hide-add-btn', true);\n customComponent.classList.add('s-product-card-fit-height');\n }\n if (this.horizontalCards && !this.hasCustomComponent) {\n customComponent.toggleAttribute('horizontal', true);\n customComponent.toggleAttribute('shadow-on-hover', true);\n }\n return customComponent;\n }\n\n private fetchProducts() {\n salla.product.fetch({\n source: this.getSource(),\n source_value: this.getSourceValue(),\n limit: this.limit\n })\n .then(res => {\n if (!res.data.length) {\n this.showPlaceholder = true;\n this.loading(false);\n return;\n }\n this.handleResponse(res).forEach(card => this.wrapper.append(card));\n })\n }\n \n private initiateInfiniteScroll() {\n if (!this.hasInfiniteScroll) {\n return;\n }\n\n this.host.insertAdjacentElement('beforeend', this.status);\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: false,\n nextPage: this.nextPage,\n scrollThreshold: 100,\n }, /* infinite via api*/true);\n this.infiniteScroll.on('request', () => this.loading())\n this.infiniteScroll.on('load', response => {\n if (!response.data?.length) {\n this.showPlaceholder = true;\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.loading(false);\n return;\n }else{\n this.showPlaceholder = false;\n\n }\n this.infiniteScroll.appendItems(this.handleResponse(response))\n if (this.infiniteScroll.pageIndex == 2) {\n this.animateItems();\n }\n })\n this.infiniteScroll.on('error', () => {\n this.status.querySelector('.s-infinite-scroll-error').classList.remove('s-hidden')\n this.loading(false);\n });\n salla.onReady(() => salla.infiniteScroll.loadNextPage(this.infiniteScroll))\n }\n\n private canRender() {\n return this.sourceValueIsValid && this.isReady;\n }\n\n render() {\n if (!this.canRender()) {\n return '';\n }\n if (this.showPlaceholder) {\n return <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag}/>\n <p>{this.placeholderText}</p>\n </div>;\n }\n return (\n <Host class=\"s-products-list\">\n <div class={{\n \"s-products-list-wrapper\": true,\n 's-products-list-horizontal-cards': this.horizontalCards && !this.filtersResults,\n 's-products-list-vertical-cards': !this.horizontalCards && !this.filtersResults,\n 's-products-list-filters-results': this.filtersResults,\n }}\n ref={wrapper => this.wrapper = wrapper}/>\n </Host>\n );\n }\n\n componentDidLoad() {\n if (!this.canRender()) {\n return;\n }\n\n // Handle json source\n if (this.getSource() === 'json') {\n if (!this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n this.getSourceValue().map(product => this.wrapper.append(this.getItemHTML(product)));\n return;\n }\n // Handle selected source\n if (this.getSource() === 'selected' || this.getSource() === 'landing-page') {\n if (this.getSource() === 'selected' && !this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n this.fetchProducts()\n return;\n }\n this.init();\n }\n\n private init() {\n this.initiateInfiniteScroll();\n this.loading();\n }\n\n private handleResponse(response): Array<HTMLElement> {\n //💡 when source is related, cursor will not be existed\n if (response.filters && this.isFilterable()) {\n this.filtersResults = true;\n salla.event.emit('filters::fetched', {filters: response.filters});\n } else if (this.isFilterable()) {\n salla.event.emit('filters::hidden');\n }\n this.nextPage = response.cursor ? response.cursor.next : this.nextPage;\n this.loading(false);\n if (this.hasInfiniteScroll && !this.nextPage) {\n this.infiniteScroll.option({scrollThreshold: false, loadOnScroll: false});\n this.status.querySelector('.s-infinite-scroll-last').classList.remove('s-hidden');\n }\n return response.data?.map(product => this.getItemHTML(product)) || [];\n }\n}\n"],"mappings":";;;+5BAAA,IAAMA,EAAuB,G,ICQhBC,EAAiBC,EAAA,iC,2LA+FJ,E,+OA9FxBC,EAAAC,UAAAC,kBAAA,eAAAC,EAAAC,KACEC,MAAMC,SAAQ,WACZH,EAAKI,qBAAuBC,eAAeC,IAAI,6BAC/CN,EAAKO,sBAAwBP,EAAKQ,kBAAoBR,EAAKS,wBAC3DT,EAAKU,mBAAqB,CAAC,OAAQ,WAAY,UAAW,gBAAgBC,SAASX,EAAKY,aACxF,IACE,IAAIC,EAAe,IAAIC,gBAAgBC,OAAOC,SAASC,QACvDjB,EAAKkB,OAASlB,EAAKkB,QAAUL,EAAaP,IAAI,SAAWO,EAAaP,IAAI,MAC1E,IAAIa,EAAUN,EAAaP,IAAI,WAC/BN,EAAKoB,cAAgBD,EAAUE,KAAKC,MAAMC,mBAAmBJ,IAAY,E,CACzE,MAAOK,GACPtB,MAAMuB,OAAOC,KAAK,iCAAkCF,EAAEG,Q,CAExD3B,EAAK4B,mBACL5B,EAAK6B,kBAEL7B,EAAK8B,QAAU,I,IAGjB,IAAK7B,KAAKM,mBAAoB,CAC5BL,MAAMuB,OAAOC,KAAK,6CAAAK,OAA6C9B,KAAKW,YAAW,MAC/E,M,CAEFV,MAAM8B,MAAMC,GAAG,0BAA0B,SAAAd,GAAW,OAAAnB,EAAKkC,WAAWf,EAAhB,G,EAMhDtB,EAAAC,UAAAoC,WAAN,SAAiBf,G,qFACf,KAAMA,GAAWE,KAAKc,UAAUlC,KAAKmB,iBAAmBC,KAAKc,UAAUhB,GAAU,CAC/E,S,CAEFJ,OAAOqB,SAAS,CAACC,IAAK,EAAEC,SAAU,WAClCrC,KAAKmB,cAAgBD,EACrB,SAAOlB,KAAKsC,S,QAKR1C,EAAAC,UAAAyC,OAAN,W,qFACErC,MAAMsC,eAAeC,QAAQxC,KAAKuC,gBAClCvC,KAAK2B,mBACL3B,KAAKyC,QAAQC,UAAY,GACzB1C,KAAK2C,O,iBA4DC/C,EAAAC,UAAA+C,aAAA,WACN,OAAO3C,MAAM4C,OAAOxC,IAAI,mCAAqCL,KAAK8C,c,EAG5DlD,EAAAC,UAAAW,qBAAA,WACN,MAAO,CAAC,SAAU,SAAU,SAASE,SAASV,KAAKW,Y,EAG7Cf,EAAAC,UAAAkD,aAAA,WACNC,EAAM,CACJC,QAAS,yCACTC,QAAS,CAAC,EAAG,GACbC,SAAU,KACVC,WAAY,CAAC,GAAI,GACjBC,MAAO,SAAUC,EAAKC,GACpB,OAAOA,EAAI,G,KAKT3D,EAAAC,UAAA+B,gBAAA,eAAA7B,EAAAC,KACNA,KAAKwD,OAASC,SAASC,cAAc,OACrC1D,KAAKwD,OAAOG,UAAY,4BACxB3D,KAAKwD,OAAOd,UAAY,oHAAAZ,OAC+C7B,MAAM2D,KAAKvD,IAAI,kCAAiC,oFAAAyB,OAC/C7B,MAAM2D,KAAKvD,IAAI,uCAAsC,0NAK7HL,KAAK6D,UAAY7D,KAAKwD,OAAOM,cAAc,oBAC3C7D,MAAM2D,KAAKG,UAAS,WAClBhE,EAAKyD,OAAOM,cAAc,2BAA2BpB,UAAYzC,MAAM2D,KAAKvD,IAAI,kCAChFN,EAAKyD,OAAOM,cAAc,4BAA4BpB,UAAYzC,MAAM2D,KAAKvD,IAAI,uCACjFN,EAAKiE,gBAAkB/D,MAAM2D,KAAKvD,IAAI,+B,KAIlCT,EAAAC,UAAAoE,oBAAA,SAAoBC,GAApB,IAAAnE,EAAAC,KAENA,KAAKmE,SAAWlE,MAAMmE,IAAIC,IAAI,mBAAAvC,OAAmBoC,IAEjD,GAAIlE,KAAKsE,MAAO,CACdtE,KAAKmE,UAAY,aAAArC,OAAa9B,KAAKsE,MAAQ,GAAK,GAAKtE,KAAKsE,M,CAE5D,GAAItE,KAAKiB,OAAQ,CACfjB,KAAKmE,UAAY,SAAArC,OAAS9B,KAAKiB,O,CAKjCjB,KAAKmE,UAAY,gB,eACLI,EAAKC,GACf,GAAI,CAAC,SAAU,UAAU9D,gBAAgB8D,GAAQ,CAC/CC,EAAKN,UAAY,YAAArC,OAAYyC,EAAG,MAAAzC,OAAK0C,E,MAChC,GAAIE,MAAMC,QAAQH,GAAQ,CAC9BA,EAAcI,SAAQ,SAAAC,GAAQ,OAAA9E,EAAKoE,UAAY,YAAArC,OAAYyC,EAAG,QAAAzC,OAAO+C,EAAvC,G,MAC1B,UAAWL,IAAU,SAAU,CACpC,IAAqB,IAAAM,EAAA,EAAAC,EAAAC,OAAOC,QAAQT,GAAfM,EAAAC,EAAAG,OAAAJ,IAAuB,CAAjC,IAAAK,EAAAJ,EAAAD,GAACM,EAACD,EAAA,GAAEE,EAACF,EAAA,GACdV,EAAKN,UAAY,YAAArC,OAAYyC,EAAG,MAAAzC,OAAKsD,EAAC,MAAAtD,OAAKuD,E,eAPjD,IAA2B,IAAAC,EAAA,EAAAC,EAAAP,OAAOC,QAAQjF,KAAKmB,eAAiB,IAArCmE,EAAAC,EAAAL,OAAAI,IAAwC,CAAxD,IAAAE,EAAAD,EAAAD,GAACf,EAAGiB,EAAA,GAAEhB,EAAKgB,EAAA,G,EAAVjB,EAAKC,E,GAaX5E,EAAAC,UAAA8B,iBAAA,WACN,IAAIuC,EAASlE,KAAKW,YAClB,GAAIuD,IAAW,OAAQ,CACrB,M,CAEFlE,KAAKiE,oBAAoBC,GACzB,GAAIlE,KAAKQ,uBAAwB,CAC/B,M,CAGF,GAAI,CAAC,SAAU,UAAW,gBAAgBE,SAASwD,GAAS,CAC1DlE,KAAKmE,UAAY,iBAAArC,OAAiB9B,KAAKO,kBACvC,M,CAGF,IACEP,KAAKmE,UAAY,mBAAArC,OAAmB9B,KAAKO,iBAAiBkF,KAAK,oB,CAC/D,MAAOlE,GACPtB,MAAMuB,OAAOC,KAAK,sFAAAK,OAAsFoC,EAAM,MAC9GlE,KAAKM,mBAAqB,K,GAItBV,EAAAC,UAAAc,UAAA,WACN,MAAO,CACL,gBAAiB,SACjB,gBAAiB,aACjB,uBAAwB,SACxB,uBAAwB,SACxB,uBAAwB,SACxB,eAAgB,eAChB,oBAAqB,OACrB,sBAAuB,QACvB,iCAAkC,SAClCX,KAAKkE,QAAUjE,MAAM4C,OAAOxC,IAAI,eAAiBL,KAAKkE,QAAU,Q,EAG5DtE,EAAAC,UAAAU,eAAA,WACN,IAAI2D,EAASlE,KAAKW,YAGlB,IAAK,CAAC,SAAU,OAAQ,SAAU,SAAU,SAASD,SAASwD,GAAS,CACrE,GAAIlE,KAAK0F,aAAehB,MAAMC,QAAQvD,KAAKC,MAAMrB,KAAK0F,eAAiBtE,KAAKC,MAAMrB,KAAK0F,aAAaR,OAAQ,CAC1G,OAAO9D,KAAKC,MAAMrB,KAAK0F,Y,CAGzB,GAAI1F,KAAK0F,oBAAsBtE,KAAKC,MAAMrB,KAAK0F,cAAgB,SAAU,CACvE,MAAO,CAACtE,KAAKC,MAAMrB,KAAK0F,a,CAE1B,IAAK1F,KAAK0F,aAAe,CAAC,aAAc,OAAQ,UAAUhF,SAASV,KAAKW,aAAc,CACpF,MAAO,CAACV,MAAM4C,OAAOxC,IAAI,W,EAI7B,GAAIL,KAAK0F,YAAa,CACpB,OAAO1F,KAAK0F,W,CAId,GAAIxB,IAAW,SAAU,CACvB,OAAO,IAAKrD,gBAAgBC,OAAOC,SAASC,QAASX,IAAI,I,CAG3D,OAAOJ,MAAM4C,OAAOxC,IAAI,U,EAIlBT,EAAAC,UAAA8F,QAAA,SAAQC,GAAA,GAAAA,SAAA,GAAAA,EAAA,IAAgB,CAC9B5F,KAAK6D,UAAUgC,MAAMC,QAAUF,EAAY,UAAY,M,EAGjDhG,EAAAC,UAAAkG,YAAA,SAAYC,GAClB,IAAIC,EAA6BjG,KAAKG,mBAAqB,4BAA8B,qBACzF,IAAI+F,EAA+CzC,SAASC,cAAcuC,GAC1EC,EAAgBF,QAAUA,EAE1B,GAAIhG,KAAKW,aAAe,iBAAmBX,KAAKG,mBAAoB,CAClE+F,EAAgBC,gBAAgB,eAAgB,MAChDD,EAAgBE,UAAUC,IAAI,4B,CAEhC,GAAIrG,KAAKsG,kBAAoBtG,KAAKG,mBAAoB,CACpD+F,EAAgBC,gBAAgB,aAAc,MAC9CD,EAAgBC,gBAAgB,kBAAmB,K,CAErD,OAAOD,C,EAGDtG,EAAAC,UAAA0G,cAAA,eAAAxG,EAAAC,KACNC,MAAM+F,QAAQQ,MAAM,CAClBtC,OAAQlE,KAAKW,YACb8F,aAAczG,KAAKO,iBACnB+D,MAAOtE,KAAKsE,QAEXoC,MAAK,SAAAC,GACJ,IAAKA,EAAIC,KAAK1B,OAAQ,CACpBnF,EAAK8G,gBAAkB,KACvB9G,EAAK4F,QAAQ,OACb,M,CAEF5F,EAAK+G,eAAeH,GAAK/B,SAAQ,SAAAmC,GAAQ,OAAAhH,EAAK0C,QAAQuE,OAAOD,EAApB,G,KAIvCnH,EAAAC,UAAAoH,uBAAA,eAAAlH,EAAAC,KACN,IAAKA,KAAKS,kBAAmB,CAC3B,M,CAGFT,KAAKkH,KAAKC,sBAAsB,YAAanH,KAAKwD,QAClDxD,KAAKuC,eAAiBtC,MAAMsC,eAAe6E,SAASpH,KAAKyC,QAASzC,KAAKyC,QAAS,CAC9E4E,KAAM,WAAM,OAAAtH,EAAKoE,QAAL,EACZmD,QAAS,MACTnD,SAAUnE,KAAKmE,SACfoD,gBAAiB,KACK,MACxBvH,KAAKuC,eAAeP,GAAG,WAAW,WAAM,OAAAjC,EAAK4F,SAAL,IACxC3F,KAAKuC,eAAeP,GAAG,QAAQ,SAAAwF,G,MAC7B,MAAKC,EAAAD,EAASZ,QAAI,MAAAa,SAAA,SAAAA,EAAEvC,QAAQ,CAC1BnF,EAAK8G,gBAAkB,KACvB5G,MAAMsC,eAAeC,QAAQzC,EAAKwC,gBAClCxC,EAAK4F,QAAQ,OACb,M,KACG,CACH5F,EAAK8G,gBAAkB,K,CAGzB9G,EAAKwC,eAAemF,YAAY3H,EAAK+G,eAAeU,IACpD,GAAIzH,EAAKwC,eAAeoF,WAAa,EAAG,CACtC5H,EAAKgD,c,KAGT/C,KAAKuC,eAAeP,GAAG,SAAS,WAC9BjC,EAAKyD,OAAOM,cAAc,4BAA4BsC,UAAUwB,OAAO,YACvE7H,EAAK4F,QAAQ,M,IAEf1F,MAAMC,SAAQ,WAAM,OAAAD,MAAMsC,eAAesF,aAAa9H,EAAKwC,eAAvC,G,EAGd3C,EAAAC,UAAAiI,UAAA,WACN,OAAO9H,KAAKM,oBAAsBN,KAAK6B,O,EAGzCjC,EAAAC,UAAAkI,OAAA,eAAAhI,EAAAC,KACE,IAAKA,KAAK8H,YAAa,CACrB,MAAO,E,CAET,GAAI9H,KAAK6G,gBAAiB,CACxB,OAAOmB,EAAA,OAAKC,MAAM,+BAChBD,EAAA,QAAMtF,UAAWwF,IACjBF,EAAA,SAAIhI,KAAKgE,iB,CAGb,OACEgE,EAACG,EAAI,CAACF,MAAM,mBACVD,EAAA,OAAKC,MAAO,CACV,0BAA2B,KAC3B,mCAAoCjI,KAAKsG,kBAAoBtG,KAAK8C,eAClE,kCAAmC9C,KAAKsG,kBAAoBtG,KAAK8C,eACjE,kCAAmC9C,KAAK8C,gBAErCsF,IAAK,SAAA3F,GAAW,OAAA1C,EAAK0C,QAAUA,CAAf,I,EAK3B7C,EAAAC,UAAAwI,iBAAA,eAAAtI,EAAAC,KACE,IAAKA,KAAK8H,YAAa,CACrB,M,CAIF,GAAI9H,KAAKW,cAAgB,OAAQ,CAC/B,IAAKX,KAAKO,iBAAiB2E,OAAQ,CACjClF,KAAK6G,gBAAkB,KACvB,M,CAEF7G,KAAKO,iBAAiB+H,KAAI,SAAAtC,GAAW,OAAAjG,EAAK0C,QAAQuE,OAAOjH,EAAKgG,YAAYC,GAArC,IACrC,M,CAGF,GAAIhG,KAAKW,cAAgB,YAAcX,KAAKW,cAAgB,eAAgB,CAC1E,GAAIX,KAAKW,cAAgB,aAAeX,KAAKO,iBAAiB2E,OAAQ,CACpElF,KAAK6G,gBAAkB,KACvB,M,CAEF7G,KAAKuG,gBACL,M,CAEFvG,KAAK2C,M,EAGC/C,EAAAC,UAAA8C,KAAA,WACN3C,KAAKiH,yBACLjH,KAAK2F,S,EAGC/F,EAAAC,UAAAiH,eAAA,SAAeU,GAAf,IAAAzH,EAAAC,K,MAEN,GAAIwH,EAAStG,SAAWlB,KAAK4C,eAAgB,CAC3C5C,KAAK8C,eAAiB,KACtB7C,MAAM8B,MAAMwG,KAAK,mBAAoB,CAACrH,QAASsG,EAAStG,S,MACnD,GAAIlB,KAAK4C,eAAgB,CAC9B3C,MAAM8B,MAAMwG,KAAK,kB,CAEnBvI,KAAKmE,SAAWqD,EAASgB,OAAShB,EAASgB,OAAOC,KAAOzI,KAAKmE,SAC9DnE,KAAK2F,QAAQ,OACb,GAAI3F,KAAKS,oBAAsBT,KAAKmE,SAAU,CAC5CnE,KAAKuC,eAAemG,OAAO,CAACnB,gBAAiB,MAAOoB,aAAc,QAClE3I,KAAKwD,OAAOM,cAAc,2BAA2BsC,UAAUwB,OAAO,W,CAExE,QAAOH,EAAAD,EAASZ,QAAI,MAAAa,SAAA,SAAAA,EAAEa,KAAI,SAAAtC,GAAW,OAAAjG,EAAKgG,YAAYC,EAAjB,MAA8B,E,yHA5XzC,I"}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Crafted with ❤ by Salla
3
- */
4
- salla.event.setMaxListeners(100);class u{toggleElementClassIf(u,d,e,c){d=Array.isArray(d)?d:d.split(" ");e=Array.isArray(e)?e:e.split(" ");let f=c(u);u===null||u===void 0?void 0:u.classList.remove(...f?e:d);u===null||u===void 0?void 0:u.classList.add(...f?d:e);return this}toggleClassIf(u,d,e,c){document.querySelectorAll(u).forEach((u=>this.toggleElementClassIf(u,d,e,c)));return this}isValidEmail(u){const d=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return d.test(String(u).toLowerCase())}filterEmojies(u){var d=/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g;return u.replace(d,"")}debounce(u,...d){if(!this.debounce_){this.debounce_=salla.helpers.debounce(((u,...d)=>u(...d)),500)}return this.debounce_(u,...d)}}const d=new u;export{d as H};
5
- //# sourceMappingURL=p-dad8bacc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["salla","event","setMaxListeners","Helper","toggleElementClassIf","element","classes1","classes2","callback","Array","isArray","split","isClasses1","classList","remove","add","this","toggleClassIf","selector","document","querySelectorAll","forEach","isValidEmail","email","re","test","String","toLowerCase","filterEmojies","text","characterFilter","replace","debounce","fn","data","debounce_","helpers","innerData","Helper$1"],"sources":["./src/Helpers/Helper.ts"],"sourcesContent":["//TODO::reduce it to 10\nsalla.event.setMaxListeners(100);\n\nclass Helper {\n private debounce_: Boolean;\n\n toggleElementClassIf(element, classes1, classes2, callback) {\n classes1 = Array.isArray(classes1) ? classes1 : classes1.split(' ');\n classes2 = Array.isArray(classes2) ? classes2 : classes2.split(' ');\n let isClasses1 = callback(element);\n element?.classList.remove(...(isClasses1 ? classes2 : classes1));\n element?.classList.add(...(isClasses1 ? classes1 : classes2));\n return this;\n }\n\n toggleClassIf(selector, classes1, classes2, callback) {\n document.querySelectorAll(selector).forEach(element => this.toggleElementClassIf(element, classes1, classes2, callback));\n return this;\n }\n\n isValidEmail(email) {\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n }\n\n filterEmojies(text) {\n var characterFilter = /(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff])/g;\n return text.replace(characterFilter, \"\");\n }\n\n debounce(fn, ...data) {\n if (!this.debounce_) {\n this.debounce_ = salla.helpers.debounce((callback, ...innerData) => callback(...innerData), 500);\n }\n //@ts-ignore\n return this.debounce_(fn, ...data);\n }\n}\n\nexport default new Helper;\n"],"mappings":";;;AACAA,MAAMC,MAAMC,gBAAgB,KAE5B,MAAMC,EAGJC,qBAAqBC,EAASC,EAAUC,EAAUC,GAChDF,EAAWG,MAAMC,QAAQJ,GAAYA,EAAWA,EAASK,MAAM,KAC/DJ,EAAWE,MAAMC,QAAQH,GAAYA,EAAWA,EAASI,MAAM,KAC/D,IAAIC,EAAaJ,EAASH,GAC1BA,IAAO,MAAPA,SAAO,SAAPA,EAASQ,UAAUC,UAAWF,EAAaL,EAAWD,GACtDD,IAAO,MAAPA,SAAO,SAAPA,EAASQ,UAAUE,OAAQH,EAAaN,EAAWC,GACnD,OAAOS,I,CAGTC,cAAcC,EAAUZ,EAAUC,EAAUC,GAC1CW,SAASC,iBAAiBF,GAAUG,SAAQhB,GAAWW,KAAKZ,qBAAqBC,EAASC,EAAUC,EAAUC,KAC9G,OAAOQ,I,CAGTM,aAAaC,GACX,MAAMC,EAAK,wJACX,OAAOA,EAAGC,KAAKC,OAAOH,GAAOI,c,CAG/BC,cAAcC,GACZ,IAAIC,EAAkB,imBACtB,OAAOD,EAAKE,QAAQD,EAAiB,G,CAGvCE,SAASC,KAAOC,GACd,IAAKlB,KAAKmB,UAAW,CACnBnB,KAAKmB,UAAYnC,MAAMoC,QAAQJ,UAAS,CAACxB,KAAa6B,IAAc7B,KAAY6B,IAAY,I,CAG9F,OAAOrB,KAAKmB,UAAUF,KAAOC,E,EAIjC,MAAAI,EAAe,IAAInC,S"}