45W Laptop Charger for HP 15-CS 15-CP 15-DA 15-DB 15-DY 15-EF 15-FD:15-ef0023dx ef0021nr ef0875ms 15-fd0083wm 15-cs3055wm 15-cs3075wm 15-cp0053cl 15-dy2024nr 15-DY2702DX dy1731ms dy0013dx dy2021nr
45W Laptop Charger for HP 15-CS 15-CP 15-DA 15-DB 15-DY 15-EF 15-FD:15-ef0023dx ef0021nr ef0875ms 15-fd0083wm 15-cs3055wm 15-cs3075wm 15-cp0053cl 15-dy2024nr 15-DY2702DX dy1731ms dy0013dx dy2021nr
${function() {
const variantData = data.variant || {"id":"d489d22c-dc8f-4ced-8b9e-1c98d197c683","product_id":"e07d992e-49cb-49e4-8038-51c7d3f69fa9","title":"","weight_unit":"lb","inventory_quantity":10,"sku":"Emaks-El003","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":15.8,"min_quantity":1}],"weight":"2.3","compare_at_price":"0","price":"15.8","retail_price":"0","available":true,"url":"\/products\/45w-laptop-charger-for-hp-15-cs-15-cp-15-da-15-db-15-dy-15-ef-15-fd-15-ef0023dx-ef0021nr-ef0875ms-15-fd0083wm-15-cs3055wm-15-cs3075wm-15-cp0053cl-15-dy2024nr-15-dy2702dx-dy1731ms-dy0013dx-dy2021nr?variant=d489d22c-dc8f-4ced-8b9e-1c98d197c683","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"d489d22c-dc8f-4ced-8b9e-1c98d197c683","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"15.8","compare_at_price":"","discount_price":"15.8","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = null;
const productSaveLabel = null;
return `
-
${ variantData.off_ratio }%
`; }()}
${function(){
return `
${data.starNum}/${data.starTotal}
`;
}()}
${function(){
return `
${data.showStarText === 'true' ? `
${data.starNum}/${data.starTotal}
` : ''}
`;
}()}
const TAG = 'spz-custom-revue-star';
class SPZCustomRevueStar extends SPZ.BaseElement {
constructor(element) {
super(element);
}
static deferredMount() {
return false;
}
buildCallback = () => {
this.action_ = SPZServices.actionServiceForDoc(this.element);
this.templates_ = SPZServices.templatesForDoc(this.element);
this.xhr_ = SPZServices.xhrFor(this.win);
this.starNum = this.element.getAttribute('starNum');
this.starTotal = this.element.getAttribute('starTotal');
this.showStarText = this.element.getAttribute('showStarText');
this.starColor = this.element.getAttribute('color');
this.interact = this.element.getAttribute('interact');
this.starSize = this.element.getAttribute('starSize') || 14;
}
mountCallback = () => {
this.doRender_({
starTotal: this.starTotal,
totalArray: Array.from({ length: Number(this.starTotal) }, (v, k) => k + 1),
starNum: this.starNum,
showStarText: this.showStarText,
starColor: this.starColor,
starSize: this.starSize
}).then(() => {
if (this.interact) {
this.addEventListeners_();
}
});
}
addEventListeners_ = () => {
const stars = document.querySelectorAll('.revue-star__star');
stars.forEach(star => {
star.addEventListener('click', event => {
const starEl = star.closest('.revue-star__star');
const starIndex = Number(starEl.dataset.index);
let isHalf = event.offsetX < star.offsetWidth / 2;
// rtl
if (document.documentElement.getAttribute('dir') === 'rtl') {
isHalf = event.offsetX > star.offsetWidth / 2;
}
const starValue = isHalf ? starIndex - 0.5 : starIndex;
this.starClickHandler_({ value: starValue });
});
});
}
renderStar = () => {
const isRtl = document.documentElement.getAttribute('dir') === 'rtl';
const stars = this.element.querySelectorAll('.revue-star__star');
stars.forEach((star, i) => {
const starIndex = i + 1;
const starEl = star.querySelector('svg:nth-child(2)');
const isHalf = this.starNum % 1 > 0 && Math.ceil(this.starNum) === starIndex;
const isSolid = starIndex <= Math.ceil(this.starNum);
starEl.style.display = isSolid ? 'block' : 'none';
if (isHalf) {
if (isRtl) {
// RTL布局下,如果是半星,显示星星的右半边
starEl.style.clipPath = `polygon(50% 0, 100% 0, 100% 100%, 50% 100%)`;
} else {
// LTR布局下,如果是半星,显示星星的左半边
starEl.style.clipPath = `polygon(0 0, 50% 0, 50% 100%, 0 100%)`;
}
} else {
starEl.style.clipPath = `polygon(0 0, 100% 0, 100% 100%, 0 100%)`
}
});
const showCountEle = this.element.querySelector('#revue-star-show-count');
showCountEle && SPZ.whenApiDefined(showCountEle).then((api) => {
api.render({ starNum: this.starNum, starTotal: this.starTotal });
});
}
doRender_ = (data) => {
return this.templates_
.findAndRenderTemplate(this.element, { starSize: this.starSize, ...data }, null)
.then((el) => {
const children = this.element.querySelector('*:not(template)');
children && SPZCore.Dom.removeElement(children);
this.element.appendChild(el);
})
.then(() => {
this.starNum = data.starNum;
this.renderStar();
});
}
starClickHandler_ = (event) => {
this.starNum = event.value;
this.renderStar();
this.triggerEvent_('change', { value: event.value });
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {});
this.action_.trigger(this.element, name, event);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
}
SPZ.defineElement(TAG, SPZCustomRevueStar)
()
try {
const productId = window.SHOPLAZZA.meta.page.resource_id;
const productType = `default`;
const getProductReviews = (star_least) =>
fetch('/api/comment/count-star-multi',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: [productId],
star_least: star_least || 1,
}),
}).then(res => res.json());
try {
const section = document.querySelector('#revue-product-star');
if(productType === "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e);
window.addEventListener('load', () => {
try {
const section = document.querySelector('#revue-product-star');
if(productType=== "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e)
}
})
}
const getReviewsConfig = async () => {
let data = {};
const url = new URL(window.location.href);
const preview_theme_id = url.searchParams.get('preview_theme_id');
const commentConfig = await fetch('/api/comment-config', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
data = commentConfig.data;
const themeConfig = await fetch(`/api/comment-config?theme_id=${preview_theme_id || ''}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
if (themeConfig?.data && themeConfig.data.star_color) {
data.star_color = themeConfig.data.star_color;
}
if (preview_theme_id) {
data.star_least = window.apps_global && apps_global.reviews && apps_global.reviews.preview_star_least;
} else if (themeConfig?.data && themeConfig.data.product_settings) {
data.star_least = themeConfig.data.product_settings.star_least;
}
return data;
};
if (productId && window.SHOPLAZZA.meta.page.template_type == 1) {
getReviewsConfig().then(async res => {
const config = res;
let review = await getProductReviews(config.star_least);
review = review.data[productId];
if (!config.open_status || (!review.comment_avg_star && !config.show_no_comment_star)) return;
const render = async () => {
const section = document.querySelector('#revue-product-star');
const starComponent = document.querySelector('#revue-product-star-component');
const count = document.querySelector('#revue-product-star-count');
count.innerText = review.published_count;
const api = await SPZ.whenApiDefined(starComponent);
api.doRender_({
starNum: review.comment_avg_star,
starTotal: 5,
showStarText: false,
starColor: config.star_color,
totalArray: Array.from({ length: 5 }, (v, k) => k + 1)
});
section.style.opacity = 1;
}
render();
document.addEventListener('dj.editor.update', render);
});
}
} catch (e) {console.warn(e)};
${function() {
const minInventory = parseInt('7');
const maxInventory = parseInt('10');
const randomInventory = Math.round(Math.random() * (maxInventory - minInventory)) + minInventory;
const customText = "Only {stock} item(s) left in stock!".replace(/\{stock\}/g, '' + randomInventory + '');
const barWidth = (randomInventory / maxInventory) * 100 + '%';
return `
`;
}()}
Product was out of stock.
Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.
Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.
Designed with the planet in mind, all our products are committed to sustainable practices.
Your payment information is always protected with our advanced, encrypted checkout security.
Emaks POWER SPECS : Input:AC 100-240V, 50-60Hz;Power:45W ;Output:19.5V 2.31A;Connector:4.5mm*3.0mm;compatible with hp laptop charger 15 compatible with hp model 15 charger Compatible with HP Laptop/Pavilion X360/Envy X360 15-BS0000 15-CP0000 15-CS0000 15-CR0000 15-CW0000 15-DA0000 15-DB0000 15-DY0000 15-EF0000 15-EH0000 15-FD0000 15-GW0000;14-AF0000 14-CF0000;15-ef1002ds 15-ef1021nr 15-ef0023dx ef0025wm ef0875ms 15-cs3055wm cs3075wm 15-DY5033DX 15-dy1043dx 15-dy1024wm 15-dy1771ms 15-dy2021nr dy1062nr dy1071wm dy2073dx dy2193dx dy2005tg 15-dy5399nr 15-db0083nr 15-db0011dx 15-db0015dx 15-db0074nr;15-da0073ms da0032wm da0012dx 15-da0076nr da0074nr;11-ah117wm ah110nr ah131nr ah012dx ah111wm ah112dx ah020nr 15-fd0083wm 15-fd0012nr 15-fd1085cl 15-fd0107dx 15-fd0081wm 15-fd0213nr 15-fd0015tg 15-fd0099nr 15-DY2702DX
Vendor by :
Emaks
Weight :
2.3
lb
Sku :
Emaks-El003
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"d489d22c-dc8f-4ced-8b9e-1c98d197c683","product_id":"e07d992e-49cb-49e4-8038-51c7d3f69fa9","title":"","weight_unit":"lb","inventory_quantity":10,"sku":"Emaks-El003","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":15.8,"min_quantity":1}],"weight":"2.3","compare_at_price":"0","price":"15.8","retail_price":"0","available":true,"url":"\/products\/45w-laptop-charger-for-hp-15-cs-15-cp-15-da-15-db-15-dy-15-ef-15-fd-15-ef0023dx-ef0021nr-ef0875ms-15-fd0083wm-15-cs3055wm-15-cs3075wm-15-cp0053cl-15-dy2024nr-15-dy2702dx-dy1731ms-dy0013dx-dy2021nr?variant=d489d22c-dc8f-4ced-8b9e-1c98d197c683","available_quantity":999999999,"options":[],"off_ratio":"0","flashsale_info":{"variant_id":"d489d22c-dc8f-4ced-8b9e-1c98d197c683","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"15.8","compare_at_price":"","discount_price":"15.8","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"0","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Vendor by :
${data.product && data.product.vendor}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
Sku :
${variantData && variantData.sku}
Inventory :
${variantData && variantData.available_quantity}
` }()}