@salla.sa/twilight-components 2.14.139 → 2.14.140
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/salla-add-product-button_48.cjs.entry.js +4 -0
- package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
- package/dist/collection/components/salla-reviews-summary/salla-reviews-summary.js +4 -0
- package/dist/collection/components/salla-reviews-summary/salla-reviews-summary.js.map +1 -1
- package/dist/components/salla-reviews-summary2.js +4 -0
- package/dist/components/salla-reviews-summary2.js.map +1 -1
- package/dist/esm/salla-add-product-button_48.entry.js +4 -0
- package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
- package/dist/esm-es5/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-a3c95fbd.entry.js → p-098f88d1.entry.js} +2 -2
- package/dist/twilight/{p-a3c95fbd.entry.js.map → p-098f88d1.entry.js.map} +1 -1
- package/dist/twilight/p-40f204a6.system.js +1 -1
- package/dist/twilight/{p-7bd8bfbe.system.entry.js → p-6ace6f76.system.entry.js} +2 -2
- package/dist/twilight/{p-7bd8bfbe.system.entry.js.map → p-6ace6f76.system.entry.js.map} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/package.json +5 -5
|
@@ -29,6 +29,10 @@ export class SallaReviewsSummary {
|
|
|
29
29
|
.then(() => this.loadSummary());
|
|
30
30
|
}
|
|
31
31
|
async loadSummary() {
|
|
32
|
+
if (!this.itemId) {
|
|
33
|
+
console.error('Error loading reviews summary: itemId is not defined');
|
|
34
|
+
return this.canRender = false;
|
|
35
|
+
}
|
|
32
36
|
try {
|
|
33
37
|
let resp = await salla.api.request(`rating/summary/${this.itemId}`);
|
|
34
38
|
if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-reviews-summary.js","sourceRoot":"","sources":["../../../src/components/salla-reviews-summary/salla-reviews-summary.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State } from '@stencil/core';\nimport Star2 from \"../../assets/svg/star2.svg\";\n\n@Component({\n tag: 'salla-reviews-summary',\n styleUrl: 'salla-reviews-summary.scss'\n})\nexport class SallaReviewsSummary {\n constructor() {\n salla.lang.onLoaded(() => {\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.based_on', 'بناءً على');\n await setNestedAsync('en.trans', 'blocks.comments.based_on', 'Based on');\n\n this.basedOnLabel = salla.lang.get('blocks.comments.based_on');\n };\n\n setTranslations();\n });\n }\n\n /**\n * Product ID\n */\n @Prop() itemId!: number;\n\n @State() canRender: boolean = false;\n @State() data: any;\n @State() basedOnLabel: string;\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.loadSummary());\n }\n\n private async loadSummary() {\n try {\n let resp = await salla.api.request(`rating/summary/${this.itemId}`);\n if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {\n return this.canRender = false;\n } else {\n this.data = resp.data;\n this.canRender = true;\n }\n } catch (error) {\n console.error('Error loading reviews summary:', error);\n }\n }\n\n render() {\n if (!this.canRender) {\n return null;\n }\n\n // Initialize all ratings with 0 if missing\n const ratings = {\n \"1\": 0,\n \"2\": 0,\n \"3\": 0,\n \"4\": 0,\n \"5\": 0,\n ...this.data.reviews\n };\n\n\n const reviewElements = Object.keys(ratings).reverse().map(rating => {\n const percentage = ratings[rating];\n return (\n <div class=\"s-reviews-summary-row\">\n <div class=\"s-reviews-summary-row-rate\">{rating} <span innerHTML={Star2}></span></div>\n <salla-progress-bar class=\"s-reviews-summary-progress\" value={percentage} target={100} hideUnits={true} height='14px'></salla-progress-bar>\n <span class=\"s-reviews-summary-percentage\">{percentage}%</span>\n </div>\n );\n });\n\n return (\n <Host class=\"s-reviews-summary-wrapper\">\n <div class=\"s-reviews-summary-header\">\n <h3 class=\"s-reviews-summary-average\">{this.data.rating}</h3>\n <div>\n <salla-rating-stars value={this.data.rating}></salla-rating-stars>\n <p class=\"s-reviews-summary-count\">{this.basedOnLabel} {salla.helpers.number(salla.lang.choice('pages.rating.reviews', this.data.count))}</p>\n </div>\n </div>\n <div class=\"s-reviews-summary-rows\">\n {reviewElements}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"salla-reviews-summary.js","sourceRoot":"","sources":["../../../src/components/salla-reviews-summary/salla-reviews-summary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAM/C,MAAM,OAAO,mBAAmB;EAC9B;;qBAyB8B,KAAK;;;IAxBjC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACvB,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;UAC7B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;UAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;MACL,CAAC,CAAC;MAEF,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,MAAM,cAAc,CAAC,UAAU,EAAE,0BAA0B,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,cAAc,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;MACjE,CAAC,CAAC;MAEF,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;GACJ;EAWD,iBAAiB;IACf,OAAO,KAAK,CAAC,OAAO,EAAE;OACnB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;EACpC,CAAC;EAEO,KAAK,CAAC,WAAW;IACvB,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;MACZ,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;MACtE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACjC;IACD,IAAI;MACF,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;MACpE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACjE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;OAC/B;WAAM;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;OACvB;KACF;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;KACxD;EACH,CAAC;EAED,MAAM;IACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;MACnB,OAAO,IAAI,CAAC;KACb;IAED,2CAA2C;IAC3C,MAAM,OAAO,mBACX,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,IACH,IAAI,CAAC,IAAI,CAAC,OAAO,CACrB,CAAC;IAGF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;MACjE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;MACnC,OAAO,CACL,WAAK,KAAK,EAAC,uBAAuB;QAChC,WAAK,KAAK,EAAC,4BAA4B;UAAE,MAAM;;UAAE,YAAM,SAAS,EAAE,KAAK,GAAS,CAAM;QACtF,0BAAoB,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,GAAsB;QAC3I,YAAM,KAAK,EAAC,8BAA8B;UAAE,UAAU;cAAS,CAC3D,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAC,2BAA2B;MACrC,WAAK,KAAK,EAAC,0BAA0B;QACnC,UAAI,KAAK,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM;QAC7D;UACE,0BAAoB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAuB;UAClE,SAAG,KAAK,EAAC,yBAAyB;YAAE,IAAI,CAAC,YAAY;;YAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAK,CACzI,CACF;MACN,WAAK,KAAK,EAAC,wBAAwB,IAChC,cAAc,CACX,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, State } from '@stencil/core';\nimport Star2 from \"../../assets/svg/star2.svg\";\n\n@Component({\n tag: 'salla-reviews-summary',\n styleUrl: 'salla-reviews-summary.scss'\n})\nexport class SallaReviewsSummary {\n constructor() {\n salla.lang.onLoaded(() => {\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.based_on', 'بناءً على');\n await setNestedAsync('en.trans', 'blocks.comments.based_on', 'Based on');\n\n this.basedOnLabel = salla.lang.get('blocks.comments.based_on');\n };\n\n setTranslations();\n });\n }\n\n /**\n * Product ID\n */\n @Prop() itemId!: number;\n\n @State() canRender: boolean = false;\n @State() data: any;\n @State() basedOnLabel: string;\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.loadSummary());\n }\n\n private async loadSummary() {\n if(!this.itemId){\n console.error('Error loading reviews summary: itemId is not defined');\n return this.canRender = false;\n }\n try {\n let resp = await salla.api.request(`rating/summary/${this.itemId}`);\n if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {\n return this.canRender = false;\n } else {\n this.data = resp.data;\n this.canRender = true;\n }\n } catch (error) {\n console.error('Error loading reviews summary:', error);\n }\n }\n\n render() {\n if (!this.canRender) {\n return null;\n }\n\n // Initialize all ratings with 0 if missing\n const ratings = {\n \"1\": 0,\n \"2\": 0,\n \"3\": 0,\n \"4\": 0,\n \"5\": 0,\n ...this.data.reviews\n };\n\n\n const reviewElements = Object.keys(ratings).reverse().map(rating => {\n const percentage = ratings[rating];\n return (\n <div class=\"s-reviews-summary-row\">\n <div class=\"s-reviews-summary-row-rate\">{rating} <span innerHTML={Star2}></span></div>\n <salla-progress-bar class=\"s-reviews-summary-progress\" value={percentage} target={100} hideUnits={true} height='14px'></salla-progress-bar>\n <span class=\"s-reviews-summary-percentage\">{percentage}%</span>\n </div>\n );\n });\n\n return (\n <Host class=\"s-reviews-summary-wrapper\">\n <div class=\"s-reviews-summary-header\">\n <h3 class=\"s-reviews-summary-average\">{this.data.rating}</h3>\n <div>\n <salla-rating-stars value={this.data.rating}></salla-rating-stars>\n <p class=\"s-reviews-summary-count\">{this.basedOnLabel} {salla.helpers.number(salla.lang.choice('pages.rating.reviews', this.data.count))}</p>\n </div>\n </div>\n <div class=\"s-reviews-summary-rows\">\n {reviewElements}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -36,6 +36,10 @@ const SallaReviewsSummary = /*@__PURE__*/ proxyCustomElement(class SallaReviewsS
|
|
|
36
36
|
.then(() => this.loadSummary());
|
|
37
37
|
}
|
|
38
38
|
async loadSummary() {
|
|
39
|
+
if (!this.itemId) {
|
|
40
|
+
console.error('Error loading reviews summary: itemId is not defined');
|
|
41
|
+
return this.canRender = false;
|
|
42
|
+
}
|
|
39
43
|
try {
|
|
40
44
|
let resp = await salla.api.request(`rating/summary/${this.itemId}`);
|
|
41
45
|
if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"salla-reviews-summary2.js","mappings":";;;;;;;;AAAA,MAAM,sBAAsB,GAAG,sBAAsB;;MCOxC,mBAAmB;EAC9B;;;;qBAyB8B,KAAK;;;IAxBjC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;MAClB,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;UACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;UAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;SACf,CAAC,CAAC;OACJ,CAAC;MAEF,MAAM,eAAe,GAAG;QACtB,MAAM,cAAc,CAAC,UAAU,EAAE,0BAA0B,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,cAAc,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;OAChE,CAAC;MAEF,eAAe,EAAE,CAAC;KACnB,CAAC,CAAC;GACJ;EAWD,iBAAiB;IACf,OAAO,KAAK,CAAC,OAAO,EAAE;OACnB,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;GACnC;EAEO,MAAM,WAAW;IACvB,IAAI;MACF,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;MACpE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACjE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;OAC/B;WAAM;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;OACvB;KACF;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;KACxD;GACF;EAED,MAAM;IACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;MACnB,OAAO,IAAI,CAAC;KACb;;IAGD,MAAM,OAAO,mBACX,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,IACH,IAAI,CAAC,IAAI,CAAC,OAAO,CACrB,CAAC;IAGF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM;MAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;MACnC,QACE,WAAK,KAAK,EAAC,uBAAuB,IAChC,WAAK,KAAK,EAAC,4BAA4B,IAAE,MAAM,OAAE,YAAM,SAAS,EAAEA,IAAK,GAAS,CAAM,EACtF,0BAAoB,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,GAAsB,EAC3I,YAAM,KAAK,EAAC,8BAA8B,IAAE,UAAU,MAAS,CAC3D,EACN;KACH,CAAC,CAAC;IAEH,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,2BAA2B,IACrC,WAAK,KAAK,EAAC,0BAA0B,IACnC,UAAI,KAAK,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,EAC7D,eACE,0BAAoB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAuB,EAClE,SAAG,KAAK,EAAC,yBAAyB,IAAE,IAAI,CAAC,YAAY,OAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAK,CACzI,CACF,EACN,WAAK,KAAK,EAAC,wBAAwB,IAChC,cAAc,CACX,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["Star2"],"sources":["src/components/salla-reviews-summary/salla-reviews-summary.scss?tag=salla-reviews-summary","src/components/salla-reviews-summary/salla-reviews-summary.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport Star2 from \"../../assets/svg/star2.svg\";\n\n@Component({\n tag: 'salla-reviews-summary',\n styleUrl: 'salla-reviews-summary.scss'\n})\nexport class SallaReviewsSummary {\n constructor() {\n salla.lang.onLoaded(() => {\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.based_on', 'بناءً على');\n await setNestedAsync('en.trans', 'blocks.comments.based_on', 'Based on');\n\n this.basedOnLabel = salla.lang.get('blocks.comments.based_on');\n };\n\n setTranslations();\n });\n }\n\n /**\n * Product ID\n */\n @Prop() itemId!: number;\n\n @State() canRender: boolean = false;\n @State() data: any;\n @State() basedOnLabel: string;\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.loadSummary());\n }\n\n private async loadSummary() {\n try {\n let resp = await salla.api.request(`rating/summary/${this.itemId}`);\n if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {\n return this.canRender = false;\n } else {\n this.data = resp.data;\n this.canRender = true;\n }\n } catch (error) {\n console.error('Error loading reviews summary:', error);\n }\n }\n\n render() {\n if (!this.canRender) {\n return null;\n }\n\n // Initialize all ratings with 0 if missing\n const ratings = {\n \"1\": 0,\n \"2\": 0,\n \"3\": 0,\n \"4\": 0,\n \"5\": 0,\n ...this.data.reviews\n };\n\n\n const reviewElements = Object.keys(ratings).reverse().map(rating => {\n const percentage = ratings[rating];\n return (\n <div class=\"s-reviews-summary-row\">\n <div class=\"s-reviews-summary-row-rate\">{rating} <span innerHTML={Star2}></span></div>\n <salla-progress-bar class=\"s-reviews-summary-progress\" value={percentage} target={100} hideUnits={true} height='14px'></salla-progress-bar>\n <span class=\"s-reviews-summary-percentage\">{percentage}%</span>\n </div>\n );\n });\n\n return (\n <Host class=\"s-reviews-summary-wrapper\">\n <div class=\"s-reviews-summary-header\">\n <h3 class=\"s-reviews-summary-average\">{this.data.rating}</h3>\n <div>\n <salla-rating-stars value={this.data.rating}></salla-rating-stars>\n <p class=\"s-reviews-summary-count\">{this.basedOnLabel} {salla.helpers.number(salla.lang.choice('pages.rating.reviews', this.data.count))}</p>\n </div>\n </div>\n <div class=\"s-reviews-summary-rows\">\n {reviewElements}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"salla-reviews-summary2.js","mappings":"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","names":["Star2"],"sources":["src/components/salla-reviews-summary/salla-reviews-summary.scss?tag=salla-reviews-summary","src/components/salla-reviews-summary/salla-reviews-summary.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport Star2 from \"../../assets/svg/star2.svg\";\n\n@Component({\n tag: 'salla-reviews-summary',\n styleUrl: 'salla-reviews-summary.scss'\n})\nexport class SallaReviewsSummary {\n constructor() {\n salla.lang.onLoaded(() => {\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.based_on', 'بناءً على');\n await setNestedAsync('en.trans', 'blocks.comments.based_on', 'Based on');\n\n this.basedOnLabel = salla.lang.get('blocks.comments.based_on');\n };\n\n setTranslations();\n });\n }\n\n /**\n * Product ID\n */\n @Prop() itemId!: number;\n\n @State() canRender: boolean = false;\n @State() data: any;\n @State() basedOnLabel: string;\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => this.loadSummary());\n }\n\n private async loadSummary() {\n if(!this.itemId){\n console.error('Error loading reviews summary: itemId is not defined');\n return this.canRender = false;\n }\n try {\n let resp = await salla.api.request(`rating/summary/${this.itemId}`);\n if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {\n return this.canRender = false;\n } else {\n this.data = resp.data;\n this.canRender = true;\n }\n } catch (error) {\n console.error('Error loading reviews summary:', error);\n }\n }\n\n render() {\n if (!this.canRender) {\n return null;\n }\n\n // Initialize all ratings with 0 if missing\n const ratings = {\n \"1\": 0,\n \"2\": 0,\n \"3\": 0,\n \"4\": 0,\n \"5\": 0,\n ...this.data.reviews\n };\n\n\n const reviewElements = Object.keys(ratings).reverse().map(rating => {\n const percentage = ratings[rating];\n return (\n <div class=\"s-reviews-summary-row\">\n <div class=\"s-reviews-summary-row-rate\">{rating} <span innerHTML={Star2}></span></div>\n <salla-progress-bar class=\"s-reviews-summary-progress\" value={percentage} target={100} hideUnits={true} height='14px'></salla-progress-bar>\n <span class=\"s-reviews-summary-percentage\">{percentage}%</span>\n </div>\n );\n });\n\n return (\n <Host class=\"s-reviews-summary-wrapper\">\n <div class=\"s-reviews-summary-header\">\n <h3 class=\"s-reviews-summary-average\">{this.data.rating}</h3>\n <div>\n <salla-rating-stars value={this.data.rating}></salla-rating-stars>\n <p class=\"s-reviews-summary-count\">{this.basedOnLabel} {salla.helpers.number(salla.lang.choice('pages.rating.reviews', this.data.count))}</p>\n </div>\n </div>\n <div class=\"s-reviews-summary-rows\">\n {reviewElements}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -27645,6 +27645,10 @@ const SallaReviewsSummary = class {
|
|
|
27645
27645
|
.then(() => this.loadSummary());
|
|
27646
27646
|
}
|
|
27647
27647
|
async loadSummary() {
|
|
27648
|
+
if (!this.itemId) {
|
|
27649
|
+
console.error('Error loading reviews summary: itemId is not defined');
|
|
27650
|
+
return this.canRender = false;
|
|
27651
|
+
}
|
|
27648
27652
|
try {
|
|
27649
27653
|
let resp = await salla.api.request(`rating/summary/${this.itemId}`);
|
|
27650
27654
|
if (Array.isArray(resp.data.reviews) && !resp.data.reviews.length) {
|