@salla.sa/twilight-components
Version:
Salla Web Component
83 lines (76 loc) • 4.76 kB
JavaScript
/*!
* Crafted with ❤ by Salla
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const index = require('./index-a2d7a914.js');
const arrowLeft = require('./arrow-left-21273312.js');
const Helper = require('./Helper-ebee48d1.js');
require('./anime.es-78730411.js');
const IconQuoteOpen = `<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>quote-open</title>
<path d="M8 12v-5.333c0-0.737-0.596-1.333-1.333-1.333-3.676 0-6.667 2.991-6.667 6.667v8c0 3.676 2.991 6.667 6.667 6.667h1.333c3.676 0 6.667-2.991 6.667-6.667v-1.333c0-3.676-2.991-6.667-6.667-6.667zM12 20c0 2.205-1.795 4-4 4h-1.333c-2.205 0-4-1.795-4-4v-8c0-1.739 1.115-3.221 2.667-3.772v5.105c0 0.737 0.596 1.333 1.333 1.333h1.333c2.205 0 4 1.795 4 4zM25.333 12v-5.333c0-0.737-0.596-1.333-1.333-1.333-3.676 0-6.667 2.991-6.667 6.667v8c0 3.676 2.991 6.667 6.667 6.667h1.333c3.676 0 6.667-2.991 6.667-6.667v-1.333c0-3.676-2.991-6.667-6.667-6.667zM29.333 20c0 2.205-1.795 4-4 4h-1.333c-2.205 0-4-1.795-4-4v-8c0-1.739 1.115-3.221 2.667-3.772v5.105c0 0.737 0.596 1.333 1.333 1.333h1.333c2.205 0 4 1.795 4 4z"></path>
</svg>
`;
const sallaReviewsCss = "";
const SallaReviews = class {
constructor(hostRef) {
index.registerInstance(this, hostRef);
this.displayAllURL = null;
this.displayAllLink = undefined;
this.source = undefined;
this.sourceValue = undefined;
this.limit = 5;
this.type = "store";
this.sort = "latest";
this.hideCustomerInfo = false;
this.reviews = [];
this.isRTL = undefined;
this.showReviews = false;
this.testimonialText = salla.lang.get('blocks.home.testimonials');
this.displayAllLinkText = salla.lang.get('blocks.home.display_all');
this.source = this.source;
salla.onReady(() => {
this.displayAllURL = salla.url.get('testimonials');
this.isRTL = salla.config.get('theme.is_rtl', true);
});
salla.lang.onLoaded(() => {
this.testimonialText = salla.lang.get('blocks.home.testimonials');
this.displayAllLinkText = salla.lang.get('blocks.home.display_all');
});
}
fetchReviews() {
if (this.source === 'json') {
return Promise.resolve(JSON.parse(this.sourceValue));
}
const isJsonEncoded = ['products', 'categories'].includes(this.source);
const params = {
limit: this.limit,
source: this.source,
items: isJsonEncoded ? JSON.parse(this.sourceValue) : this.sourceValue,
sort: this.sort,
type: this.type,
hide_customer_info: this.hideCustomerInfo ? 1 : 0
};
return salla.api.request('reviews', { params }, 'get');
}
componentWillLoad() {
return (new Promise(resolve => salla.onReady(resolve)))
.then(() => this.fetchReviews())
.then((resp) => resp.data || [])
.then(reviews => {
if (reviews.length) {
this.reviews = reviews;
this.showReviews = true;
Helper.Helper.generateReviewSchema(this.reviews);
}
});
}
render() {
return (index.h("div", { class: "s-reviews-container" }, index.h("div", { class: "s-reviews-header-wrapper" }, index.h("h1", { class: "s-reviews-header" }, this.testimonialText), !!this.displayAllLink ? (index.h("a", { href: this.displayAllURL, class: "s-reviews-display-all" }, this.displayAllLinkText, index.h("span", { class: "s-reviews-display-all-icon", innerHTML: arrowLeft.arrowLeft }))) : null), index.h("salla-slider", { centered: true, "slides-per-view": 1, type: "testimonials", class: "s-reviews-testimonials-slider", "controls-outer": true, "auto-play": true, id: `testimonials-${this.source}-slider` }, index.h("div", { slot: "items" }, this.reviews.map((item, index$1) => (index.h("div", { key: index$1, class: "s-reviews-swiper-slide" }, index.h("div", { class: "s-reviews-testimonial" }, index.h("div", { class: "s-reviews-testimonial__inner" }, index.h("div", { class: "s-reviews-testimonial__avatar" }, index.h("img", { src: 'images/s-empty.png', "data-src": item.avatar, alt: item.name ? item.name : 'testimonial-' + index$1, class: "lazy" })), index.h("div", { class: "s-reviews-testimonial__text" }, index.h("p", { innerHTML: item.content }), index.h("div", { class: "s-reviews-testimonial__name_wrapper" }, index.h("div", { class: "s-reviews-testimonial__info" }, item.name && index.h("h2", null, `${item.name}`)), index.h("div", { class: "s-reviews-testimonial__rating" }, index.h("salla-rating-stars", { size: "small", value: item.stars })))), index.h("span", { class: "s-reviews-testimonial__icon", innerHTML: IconQuoteOpen }))))))))));
}
};
SallaReviews.style = sallaReviewsCss;
exports.salla_reviews = SallaReviews;
//# sourceMappingURL=salla-reviews.cjs.entry.js.map