@salla.sa/twilight-components 2.14.6 → 2.14.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/cjs/app-globals-29d166ce.js.map +1 -1
  2. package/dist/cjs/salla-add-product-button_48.cjs.entry.js +1 -1
  3. package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
  4. package/dist/collection/components/salla-comments/salla-comments.js +1 -1
  5. package/dist/collection/components/salla-comments/salla-comments.js.map +1 -1
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/components/salla-comments.js +1 -1
  8. package/dist/components/salla-comments.js.map +1 -1
  9. package/dist/components/salla-quick-buy2.js.map +1 -1
  10. package/dist/esm/app-globals-f51db284.js.map +1 -1
  11. package/dist/esm/salla-add-product-button_48.entry.js +1 -1
  12. package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
  13. package/dist/esm-es5/app-globals-f51db284.js.map +1 -1
  14. package/dist/esm-es5/salla-add-product-button_48.entry.js +1 -1
  15. package/dist/esm-es5/salla-add-product-button_48.entry.js.map +1 -1
  16. package/dist/twilight/p-1d0fd8b5.js.map +1 -1
  17. package/dist/twilight/p-3d786e9f.system.js +1 -1
  18. package/dist/twilight/p-85437cd8.system.js.map +1 -1
  19. package/dist/twilight/{p-118d894f.system.entry.js → p-904a8a24.system.entry.js} +2 -2
  20. package/dist/twilight/p-904a8a24.system.entry.js.map +1 -0
  21. package/dist/twilight/{p-0e195bd3.entry.js → p-c0b70daa.entry.js} +2 -2
  22. package/dist/twilight/p-c0b70daa.entry.js.map +1 -0
  23. package/dist/twilight/twilight.esm.js +1 -1
  24. package/package.json +5 -5
  25. package/dist/twilight/p-0e195bd3.entry.js.map +0 -1
  26. package/dist/twilight/p-118d894f.system.entry.js.map +0 -1
@@ -238,7 +238,7 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
238
238
  this.sort = e.target.value;
239
239
  this.reload();
240
240
  } }, h("option", { value: "latest", selected: true }, salla.lang.get("pages.testimonials.sort_by_date_desc")), h("option", { value: "oldest" }, salla.lang.get("pages.testimonials.sort_by_date_asc")), this.allowLikes && h("option", { value: "most_helpful" }, this.mostHelpfulLabel)))
241
- : ''), h("div", { ref: wrapper => this.wrapper = wrapper }), this.nextPage && (h("div", { class: "s-infinite-scroll-wrapper", ref: status => this.status = status }, h("button", { onClick: () => this.loadMore(), class: "s-infinite-scroll-btn s-button-btn s-button-primary" }, h("span", { class: "s-button-text s-infinite-scroll-btn-text" }, this.loadMoreText ? this.loadMoreText : salla.lang.get('common.elements.load_more')), h("span", { class: "s-button-loader s-button-loader-center s-infinite-scroll-btn-loader", ref: btnLoader => this.btnLoader = btnLoader, style: { "display": "none" } })))))));
241
+ : ''), h("div", { ref: wrapper => this.wrapper = wrapper }), this.nextPage && (h("div", { class: "s-infinite-scroll-wrapper", ref: status => this.status = status }, h("button", { onClick: () => this.loadMore(), class: "s-infinite-scroll-btn s-button-btn s-button-primary", type: "button" }, h("span", { class: "s-button-text s-infinite-scroll-btn-text" }, this.loadMoreText ? this.loadMoreText : salla.lang.get('common.elements.load_more')), h("span", { class: "s-button-loader s-button-loader-center s-infinite-scroll-btn-loader", ref: btnLoader => this.btnLoader = btnLoader, style: { "display": "none" } })))))));
242
242
  }
243
243
  get host() { return this; }
244
244
  static get style() { return sallaCommentsCss; }
@@ -1 +1 @@
1
- {"file":"salla-comments.js","mappings":"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","names":["SallaComments"],"sources":["src/components/salla-comments/interfaces.ts","src/components/salla-comments/salla-comments.scss?tag=salla-comments","src/components/salla-comments/salla-comments.tsx"],"sourcesContent":["export enum CommentType {\n PAGE= \"page\",\n PRODUCT = \"product\",\n BLOG = \"blog\"\n}\n\nexport interface Comment {\n id?: number;\n avatar?: string;\n name?: string;\n has_order?: boolean;\n date?: string;\n rating?: number;\n stars?: number;\n likes_count?:number;\n content?: string;\n is_pending?: boolean;\n replies?: Comment[];\n customer?: Customer;\n type?: string;\n created_at?: CreatedAt;\n images: string[];\n}\nexport interface CreatedAt {\n date?: Date;\n timezone_type?: number;\n timezone?: string;\n}\nexport interface UserComments {\n id?: number;\n type?: string;\n next_page?: string;\n comments?: Comment[];\n}\n\n// Pagination\nexport interface Pagination {\n count?: number;\n total?: number;\n perPage?: number;\n currentPage?: number;\n totalPages?: number;\n links?: Links;\n}\nexport interface Customer {\n id?: number;\n name?: string;\n mobile?: string;\n email?: string;\n avatar?: string;\n country?: string;\n city?: string;\n}\nexport interface Links {\n next?: string;\n}\n",":host {\n display: block;\n}\n","import { Component, Prop, State, Element, h, Method } from '@stencil/core';\nimport { CommentType, UserComments, Pagination } from './interfaces';\nimport anime from 'animejs';\nimport Helper from '../../Helpers/Helper';\nimport ChatBubbles from '../../assets/svg/chat-bubbles.svg';\n@Component({\n tag: 'salla-comments',\n styleUrl: 'salla-comments.scss',\n})\nexport class SallaComments {\n\n constructor() {\n\n salla.onReady(() => {\n this.allowLikes = salla.config.get('store.settings.rating.allow_likes');\n this.showRatingSummary = salla.config.get('store.settings.rating.show_rating_summary');\n })\n \n salla.lang.onLoaded(() => {\n this.comment_title = salla.lang.get('blocks.comments.title')\n this.comment_name = salla.lang.get('blocks.comments.comment')\n this.noComments = salla.lang.get('pages.rating.no_ratings')\n\n const setNestedAsync = (lang, key, value) => {\n return new Promise((resolve) => {\n salla.helpers.setNested(salla.lang.messages[lang], key, value);\n resolve(true);\n });\n };\n\n const setTranslations = async () => {\n await setNestedAsync('ar.trans', 'blocks.comments.most_helpful', 'الأكثر إفادة');\n await setNestedAsync('en.trans', 'blocks.comments.most_helpful', 'Most helpful');\n\n this.mostHelpfulLabel = salla.lang.get('blocks.comments.most_helpful');\n this.comment_title = salla.lang.get('blocks.comments.title')\n this.comment_name = salla.lang.get('blocks.comments.comment')\n this.noComments = salla.lang.get('pages.rating.no_ratings')\n };\n\n setTranslations();\n })\n }\n\n /**\n * Page or product ID\n */\n @Prop() itemId!: number;\n\n /**\n * Load more text\n */\n @Prop() loadMoreText: string;\n\n /**\n * Load more text\n */\n @Prop() hideForm: boolean;\n\n /**\n * Block Title\n */\n @Prop() blockTitle: string;\n\n /**\n * Hide Title\n */\n @Prop() hideTitle: boolean;\n\n /**\n * Comment Type\n */\n @Prop() type: CommentType.PAGE | CommentType.PRODUCT | CommentType.BLOG = CommentType.PAGE;\n\n /**\n * Show or hide avatar\n */\n @Prop() showFormAvatar: boolean = false;\n\n /**\n * Hide Bought\n */\n @Prop() hideBought: boolean = false;\n\n /**\n * Sort comments \n */\n @Prop() sort: string | 'latest' | 'oldest' | 'bottom_rating' | 'top_rating';\n\n /**\n * Determines if the comments are testimonials\n */\n @Prop() testimonials: boolean = false;\n\n @State() comments: UserComments[];\n @State() pagination: Pagination;\n @State() total: number;\n @State() showPlaceholder: boolean;\n @State() nextPage: string;\n @State() mostHelpfulLabel: string;\n\n private status: any;\n private btnLoader: any;\n private infiniteScroll: any;\n private wrapper: any;\n\n @Element() host: HTMLElement;\n\n // Translations\n @State() noComments: string = salla.lang.get('blocks.comments.no_comments');\n @State() comment_title = salla.lang.get('blocks.comments.title')\n @State() comment_name = salla.lang.get('blocks.comments.comment')\n @State() placeholder_text: string;\n @State() showRatingSummary: boolean = salla.config.get('store.settings.rating.show_rating_summary');\n @State() allowLikes = salla.config.get('store.settings.rating.allow_likes');\n\n // TOOD: it's a good idea to move this into lang.js\n // Pluralize a string based on the count\n private pluralize(phrases: string, count: number): string {\n const options = phrases.split('|');\n\n const conditions = [\n { condition: count === 0, index: 0 },\n { condition: count === 1, index: 1 },\n { condition: count === 2, index: 2 },\n { condition: count > 2 && count <= 10, index: 3 },\n { condition: count >= 11, index: 4 }\n ];\n\n const { index } = conditions.find(({ condition }) => condition) || { index: options.length - 1 };\n\n const selectedOption = options[index];\n return selectedOption.replace(':count', salla.helpers.number(count.toString()))\n .replace(/\\{[0-9]+\\}/g, '')\n .replace(/\\[\\d+,\\d+\\]|\\[11,\\*\\]/g, '');\n }\n\n\n\n // Initiate infinite scroll\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n console.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: true,\n nextPage: this.nextPage,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', _response => {\n this.loading();\n });\n this.infiniteScroll?.on('load', response => {\n this.pagination = response.pagination;\n this.nextPage = typeof response.pagination.links == 'object' && !!response.pagination.links.next ? response.pagination.links.next : null;\n this.handleResponse(response).forEach(card => this.wrapper.append(card));\n\n let items = this.host.querySelectorAll('salla-comment-item:not(.animated):not(.s-comments-item-admin)');\n this.animateItems(items);\n this.loading(false);\n });\n this.infiniteScroll?.on('error', (e) => {\n salla.console.error('Error loading more comments:', e);\n });\n }\n\n // Show/hide loading\n private loading(isLoading = true) {\n let btnText = this.status?.querySelector('.s-button-text');\n if (btnText) {\n Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n }\n\n // Animate newly added items\n private animateItems(items) {\n anime({\n targets: items,\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n easing: 'easeOutExpo',\n complete: function (_anim) {\n items.forEach(item => {\n item.classList.add('animated');\n })\n }\n\n })\n }\n\n @Method()\n async reload() {\n this.showPlaceholder = false;\n if (this.wrapper) {\n this.wrapper.innerHTML = \"\"\n let loading = document.createElement('salla-loading');\n this.wrapper.append(loading)\n }\n this.nextPage = null;\n this.loadInitialData();\n }\n\n // Get comment item HTML\n private getCommentHTML(comment): HTMLSallaCommentItemElement {\n const commentItem = document.createElement('salla-comment-item') as HTMLSallaCommentItemElement;\n commentItem.comment = comment;\n commentItem.hideBought = this.hideBought;\n return commentItem;\n }\n\n\n\n // Parse response and return an array of comment items to be appended to the wrapper\n private handleResponse(response): Array<HTMLElement> {\n return response.data?.map(comment => this.getCommentHTML(comment)) || [];\n }\n\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.showRatingSummary = salla.config.get('store.settings.rating.show_rating_summary'))\n .then(() => this.loading())\n .then(() => {\n this.hideTitle = this.hideTitle || this.testimonials;\n this.hideForm = this.hideForm || this.testimonials;\n return this.loadInitialData();\n });\n }\n\n // Load initial data\n private async loadInitialData() {\n try {\n let resp,\n searchParams = new URLSearchParams(window.location.search);\n searchParams.has('sort') && (this.sort = searchParams.get('sort'));\n if (this.testimonials) {\n let params = {\n sort: this.sort,\n type: \"store\"\n };\n resp = await salla.api.request('reviews', { params }, 'get');\n } else {\n resp = await salla.api.comment.getComments(this.type, this.itemId);\n }\n\n if (!resp.data || !resp.data.length) {\n this.showPlaceholder = false;\n this.loading(false);\n return;\n }\n\n this.wrapper && (this.wrapper.innerHTML = \"\");\n this.comments = resp.data;\n this.pagination = resp.pagination;\n this.total = resp.pagination.total;\n this.nextPage = typeof resp.pagination.links == 'object' && !!resp.pagination.links.next ? resp.pagination.links.next : null;\n\n setTimeout(() => {\n this.handleResponse(resp).forEach(card => this.wrapper.append(card));\n this.initiateInfiniteScroll(); // Initiate infinite scroll after the initial data is loaded\n let items = this.wrapper.querySelectorAll('salla-comment-item:not(.animated)');\n this.animateItems(items);\n }, 100);\n } catch (error) {\n console.error('Error loading initial data:', error);\n this.showPlaceholder = true;\n this.loading(false);\n }\n }\n\n\n // Get next page\n async loadMore() {\n this.infiniteScroll?.loadNextPage();\n }\n\n render() {\n // We should show a different placeholder for pages and products (WIP)\n if (this.showPlaceholder) {\n return (\n <div>\n {!!this.total && !this.hideTitle ? <h2 class=\"s-comments-title\">{this.blockTitle ? this.blockTitle : this.comment_title}</h2> : ''}\n {!this.hideForm && !this.testimonials ? <salla-comment-form showAvatar={this.showFormAvatar} type={this.type} item-id={this.itemId}></salla-comment-form> : ''}\n <div class=\"s-comments-placeholder\">\n <span innerHTML={ChatBubbles} />\n <p>{this.noComments}</p>\n </div>\n </div>\n )\n }\n return (\n <div class={`s-comments s-comments-${this.testimonials ? 'testimonials' : this.type}`}>\n <div class={`${this.type == CommentType.PAGE ? \"s-comments-page-container\" : \"s-comments-container\"}`} >\n {!!this.total && !this.hideTitle ? <h2 class=\"s-comments-title\">{this.blockTitle ? this.blockTitle : this.comment_title}</h2> : ''}\n {!this.hideForm && <salla-comment-form showAvatar={this.showFormAvatar} type={this.type} item-id={this.itemId}></salla-comment-form>}\n {this.showRatingSummary && salla.url.is_page('product.single') ? <salla-reviews-summary itemId={this.itemId}></salla-reviews-summary> : ''}\n <div class={`s-comments-header ${!!this.total ? \"has-total\" : \"\"}`}>\n\n {!!this.total && <h2 class=\"s-comments-count-label\" innerHTML={this.pluralize(this.comment_name, this.total)}></h2>}\n {!!this.total && !this.testimonials && this.type !== CommentType.BLOG ?\n <div class=\"s-comments-filter-wrapper\">\n <label class=\"s-comments-filter-label\"\n htmlFor=\"comments-filter\">{salla.lang.get('pages.categories.sorting')}</label>\n <select id=\"comments-filter\" class=\"s-form-control s-comments-sort-input\" onChange={(e: Event) => {\n this.sort = (e.target as HTMLSelectElement).value;\n this.reload()\n }}>\n <option value=\"latest\" selected>{salla.lang.get(\"pages.testimonials.sort_by_date_desc\")}</option>\n <option value=\"oldest\">{salla.lang.get(\"pages.testimonials.sort_by_date_asc\")}</option>\n {this.allowLikes && <option value=\"most_helpful\">{this.mostHelpfulLabel}</option>}\n </select>\n </div>\n : ''}\n </div> \n <div ref={wrapper => this.wrapper = wrapper}></div>\n\n {this.nextPage && (\n <div class=\"s-infinite-scroll-wrapper\" ref={status => this.status = status}>\n <button onClick={() => this.loadMore()} class=\"s-infinite-scroll-btn s-button-btn s-button-primary\">\n <span class=\"s-button-text s-infinite-scroll-btn-text\">{this.loadMoreText ? this.loadMoreText : salla.lang.get('common.elements.load_more')}</span>\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" ref={btnLoader => this.btnLoader = btnLoader} style={{ \"display\": \"none\" }}></span>\n </button>\n </div>\n )}\n </div>\n </div>\n\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"salla-comments.js","mappings":"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","names":["SallaComments"],"sources":["src/components/salla-comments/interfaces.ts","src/components/salla-comments/salla-comments.scss?tag=salla-comments","src/components/salla-comments/salla-comments.tsx"],"sourcesContent":["export enum CommentType {\n PAGE= \"page\",\n PRODUCT = \"product\",\n BLOG = \"blog\"\n}\n\nexport interface Comment {\n id?: number;\n avatar?: string;\n name?: string;\n has_order?: boolean;\n date?: string;\n rating?: number;\n stars?: number;\n likes_count?:number;\n content?: string;\n is_pending?: boolean;\n replies?: Comment[];\n customer?: Customer;\n type?: string;\n created_at?: CreatedAt;\n images: string[];\n}\nexport interface CreatedAt {\n date?: Date;\n timezone_type?: number;\n timezone?: string;\n}\nexport interface UserComments {\n id?: number;\n type?: string;\n next_page?: string;\n comments?: Comment[];\n}\n\n// Pagination\nexport interface Pagination {\n count?: number;\n total?: number;\n perPage?: number;\n currentPage?: number;\n totalPages?: number;\n links?: Links;\n}\nexport interface Customer {\n id?: number;\n name?: string;\n mobile?: string;\n email?: string;\n avatar?: string;\n country?: string;\n city?: string;\n}\nexport interface Links {\n next?: string;\n}\n",":host {\n display: block;\n}\n","import { Component, Prop, State, Element, h, Method } from '@stencil/core';\nimport { CommentType, UserComments, Pagination } from './interfaces';\nimport anime from 'animejs';\nimport Helper from '../../Helpers/Helper';\nimport ChatBubbles from '../../assets/svg/chat-bubbles.svg';\n@Component({\n tag: 'salla-comments',\n styleUrl: 'salla-comments.scss',\n})\nexport class SallaComments {\n\n constructor() {\n\n salla.onReady(() => {\n this.allowLikes = salla.config.get('store.settings.rating.allow_likes');\n this.showRatingSummary = salla.config.get('store.settings.rating.show_rating_summary');\n })\n \n salla.lang.onLoaded(() => {\n this.comment_title = salla.lang.get('blocks.comments.title')\n this.comment_name = salla.lang.get('blocks.comments.comment')\n this.noComments = salla.lang.get('pages.rating.no_ratings')\n\n const setNestedAsync = (lang, key, value) => {\n return new Promise((resolve) => {\n salla.helpers.setNested(salla.lang.messages[lang], key, value);\n resolve(true);\n });\n };\n\n const setTranslations = async () => {\n await setNestedAsync('ar.trans', 'blocks.comments.most_helpful', 'الأكثر إفادة');\n await setNestedAsync('en.trans', 'blocks.comments.most_helpful', 'Most helpful');\n\n this.mostHelpfulLabel = salla.lang.get('blocks.comments.most_helpful');\n this.comment_title = salla.lang.get('blocks.comments.title')\n this.comment_name = salla.lang.get('blocks.comments.comment')\n this.noComments = salla.lang.get('pages.rating.no_ratings')\n };\n\n setTranslations();\n })\n }\n\n /**\n * Page or product ID\n */\n @Prop() itemId!: number;\n\n /**\n * Load more text\n */\n @Prop() loadMoreText: string;\n\n /**\n * Load more text\n */\n @Prop() hideForm: boolean;\n\n /**\n * Block Title\n */\n @Prop() blockTitle: string;\n\n /**\n * Hide Title\n */\n @Prop() hideTitle: boolean;\n\n /**\n * Comment Type\n */\n @Prop() type: CommentType.PAGE | CommentType.PRODUCT | CommentType.BLOG = CommentType.PAGE;\n\n /**\n * Show or hide avatar\n */\n @Prop() showFormAvatar: boolean = false;\n\n /**\n * Hide Bought\n */\n @Prop() hideBought: boolean = false;\n\n /**\n * Sort comments \n */\n @Prop() sort: string | 'latest' | 'oldest' | 'bottom_rating' | 'top_rating';\n\n /**\n * Determines if the comments are testimonials\n */\n @Prop() testimonials: boolean = false;\n\n @State() comments: UserComments[];\n @State() pagination: Pagination;\n @State() total: number;\n @State() showPlaceholder: boolean;\n @State() nextPage: string;\n @State() mostHelpfulLabel: string;\n\n private status: any;\n private btnLoader: any;\n private infiniteScroll: any;\n private wrapper: any;\n\n @Element() host: HTMLElement;\n\n // Translations\n @State() noComments: string = salla.lang.get('blocks.comments.no_comments');\n @State() comment_title = salla.lang.get('blocks.comments.title')\n @State() comment_name = salla.lang.get('blocks.comments.comment')\n @State() placeholder_text: string;\n @State() showRatingSummary: boolean = salla.config.get('store.settings.rating.show_rating_summary');\n @State() allowLikes = salla.config.get('store.settings.rating.allow_likes');\n\n // TOOD: it's a good idea to move this into lang.js\n // Pluralize a string based on the count\n private pluralize(phrases: string, count: number): string {\n const options = phrases.split('|');\n\n const conditions = [\n { condition: count === 0, index: 0 },\n { condition: count === 1, index: 1 },\n { condition: count === 2, index: 2 },\n { condition: count > 2 && count <= 10, index: 3 },\n { condition: count >= 11, index: 4 }\n ];\n\n const { index } = conditions.find(({ condition }) => condition) || { index: options.length - 1 };\n\n const selectedOption = options[index];\n return selectedOption.replace(':count', salla.helpers.number(count.toString()))\n .replace(/\\{[0-9]+\\}/g, '')\n .replace(/\\[\\d+,\\d+\\]|\\[11,\\*\\]/g, '');\n }\n\n\n\n // Initiate infinite scroll\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n console.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: true,\n nextPage: this.nextPage,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', _response => {\n this.loading();\n });\n this.infiniteScroll?.on('load', response => {\n this.pagination = response.pagination;\n this.nextPage = typeof response.pagination.links == 'object' && !!response.pagination.links.next ? response.pagination.links.next : null;\n this.handleResponse(response).forEach(card => this.wrapper.append(card));\n\n let items = this.host.querySelectorAll('salla-comment-item:not(.animated):not(.s-comments-item-admin)');\n this.animateItems(items);\n this.loading(false);\n });\n this.infiniteScroll?.on('error', (e) => {\n salla.console.error('Error loading more comments:', e);\n });\n }\n\n // Show/hide loading\n private loading(isLoading = true) {\n let btnText = this.status?.querySelector('.s-button-text');\n if (btnText) {\n Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n }\n\n // Animate newly added items\n private animateItems(items) {\n anime({\n targets: items,\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n easing: 'easeOutExpo',\n complete: function (_anim) {\n items.forEach(item => {\n item.classList.add('animated');\n })\n }\n\n })\n }\n\n @Method()\n async reload() {\n this.showPlaceholder = false;\n if (this.wrapper) {\n this.wrapper.innerHTML = \"\"\n let loading = document.createElement('salla-loading');\n this.wrapper.append(loading)\n }\n this.nextPage = null;\n this.loadInitialData();\n }\n\n // Get comment item HTML\n private getCommentHTML(comment): HTMLSallaCommentItemElement {\n const commentItem = document.createElement('salla-comment-item') as HTMLSallaCommentItemElement;\n commentItem.comment = comment;\n commentItem.hideBought = this.hideBought;\n return commentItem;\n }\n\n\n\n // Parse response and return an array of comment items to be appended to the wrapper\n private handleResponse(response): Array<HTMLElement> {\n return response.data?.map(comment => this.getCommentHTML(comment)) || [];\n }\n\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.showRatingSummary = salla.config.get('store.settings.rating.show_rating_summary'))\n .then(() => this.loading())\n .then(() => {\n this.hideTitle = this.hideTitle || this.testimonials;\n this.hideForm = this.hideForm || this.testimonials;\n return this.loadInitialData();\n });\n }\n\n // Load initial data\n private async loadInitialData() {\n try {\n let resp,\n searchParams = new URLSearchParams(window.location.search);\n searchParams.has('sort') && (this.sort = searchParams.get('sort'));\n if (this.testimonials) {\n let params = {\n sort: this.sort,\n type: \"store\"\n };\n resp = await salla.api.request('reviews', { params }, 'get');\n } else {\n resp = await salla.api.comment.getComments(this.type, this.itemId);\n }\n\n if (!resp.data || !resp.data.length) {\n this.showPlaceholder = false;\n this.loading(false);\n return;\n }\n\n this.wrapper && (this.wrapper.innerHTML = \"\");\n this.comments = resp.data;\n this.pagination = resp.pagination;\n this.total = resp.pagination.total;\n this.nextPage = typeof resp.pagination.links == 'object' && !!resp.pagination.links.next ? resp.pagination.links.next : null;\n\n setTimeout(() => {\n this.handleResponse(resp).forEach(card => this.wrapper.append(card));\n this.initiateInfiniteScroll(); // Initiate infinite scroll after the initial data is loaded\n let items = this.wrapper.querySelectorAll('salla-comment-item:not(.animated)');\n this.animateItems(items);\n }, 100);\n } catch (error) {\n console.error('Error loading initial data:', error);\n this.showPlaceholder = true;\n this.loading(false);\n }\n }\n\n\n // Get next page\n async loadMore() {\n this.infiniteScroll?.loadNextPage();\n }\n\n render() {\n // We should show a different placeholder for pages and products (WIP)\n if (this.showPlaceholder) {\n return (\n <div>\n {!!this.total && !this.hideTitle ? <h2 class=\"s-comments-title\">{this.blockTitle ? this.blockTitle : this.comment_title}</h2> : ''}\n {!this.hideForm && !this.testimonials ? <salla-comment-form showAvatar={this.showFormAvatar} type={this.type} item-id={this.itemId}></salla-comment-form> : ''}\n <div class=\"s-comments-placeholder\">\n <span innerHTML={ChatBubbles} />\n <p>{this.noComments}</p>\n </div>\n </div>\n )\n }\n return (\n <div class={`s-comments s-comments-${this.testimonials ? 'testimonials' : this.type}`}>\n <div class={`${this.type == CommentType.PAGE ? \"s-comments-page-container\" : \"s-comments-container\"}`} >\n {!!this.total && !this.hideTitle ? <h2 class=\"s-comments-title\">{this.blockTitle ? this.blockTitle : this.comment_title}</h2> : ''}\n {!this.hideForm && <salla-comment-form showAvatar={this.showFormAvatar} type={this.type} item-id={this.itemId}></salla-comment-form>}\n {this.showRatingSummary && salla.url.is_page('product.single') ? <salla-reviews-summary itemId={this.itemId}></salla-reviews-summary> : ''}\n <div class={`s-comments-header ${!!this.total ? \"has-total\" : \"\"}`}>\n\n {!!this.total && <h2 class=\"s-comments-count-label\" innerHTML={this.pluralize(this.comment_name, this.total)}></h2>}\n {!!this.total && !this.testimonials && this.type !== CommentType.BLOG ?\n <div class=\"s-comments-filter-wrapper\">\n <label class=\"s-comments-filter-label\"\n htmlFor=\"comments-filter\">{salla.lang.get('pages.categories.sorting')}</label>\n <select id=\"comments-filter\" class=\"s-form-control s-comments-sort-input\" onChange={(e: Event) => {\n this.sort = (e.target as HTMLSelectElement).value;\n this.reload()\n }}>\n <option value=\"latest\" selected>{salla.lang.get(\"pages.testimonials.sort_by_date_desc\")}</option>\n <option value=\"oldest\">{salla.lang.get(\"pages.testimonials.sort_by_date_asc\")}</option>\n {this.allowLikes && <option value=\"most_helpful\">{this.mostHelpfulLabel}</option>}\n </select>\n </div>\n : ''}\n </div> \n <div ref={wrapper => this.wrapper = wrapper}></div>\n\n {this.nextPage && (\n <div class=\"s-infinite-scroll-wrapper\" ref={status => this.status = status}>\n <button onClick={() => this.loadMore()} class=\"s-infinite-scroll-btn s-button-btn s-button-primary\" type=\"button\">\n <span class=\"s-button-text s-infinite-scroll-btn-text\">{this.loadMoreText ? this.loadMoreText : salla.lang.get('common.elements.load_more')}</span>\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" ref={btnLoader => this.btnLoader = btnLoader} style={{ \"display\": \"none\" }}></span>\n </button>\n </div>\n )}\n </div>\n </div>\n\n );\n }\n\n}\n"],"version":3}