1import { 2 init_modal_sidebar_v1 3} from "./chunk-MO2D3CXO.js"; 4import { 5 Cart, 6 closeCart, 7 hasPendingOperations, 8 init_Cart, 9 syncingCart 10} from "./chunk-BY72GGKB.js"; 11import "./chunk-KIZY5IRN.js"; 12import { 13 CF2Component, 14 init_runtime, 15 registerComponent 16} from "./chunk-NQUHJ6NR.js"; 17import { 18 init_define_process 19} from "./chunk-RFSPGZ3L.js"; 20
21// projects/lib/packages/yggdrasil-blueprints/__generated__/packs/cart.ts 22init_define_process(); 23
24// projects/lib/packages/yggdrasil-blueprints/__generated__/blueprints/cart-review.ts 25init_define_process(); 26init_Cart(); 27init_runtime(); 28var CartReview = class extends CF2Component { 29 constructor(el, runtimeSel) { 30 super(el, runtimeSel); 31 } 32 disableCheckoutButton(disable = true) { 33 this.disableCheckout = disable; 34 const checkoutButtonEl = this.element.querySelector(".elCartReviewCheckoutButton > a"); 35 checkoutButtonEl?.setAttribute("data-disabled", disable); 36 } 37 hideSubtotalAmount(hide = true) { 38 const subtotalTextEl = this.element.querySelector(".elCartReviewSubtotalText"); 39 if (subtotalTextEl && hide) { 40 subtotalTextEl.innerText = "--"; 41 } 42 } 43 mount() { 44 Cart.stores.cartData.listen((cartData) => { 45 this.render(cartData); 46 if (cartData.items.length == 0) { 47 closeCart(); 48 } 49 this.disableCheckoutButton(this.disableCheckout); 50 }); 51 syncingCart.listen(() => { 52 this.disableCheckoutButton(hasPendingOperations()); 53 this.hideSubtotalAmount(hasPendingOperations()); 54 }); 55 this.element.addEventListener("click", (evt) => { 56 const closestItemEl = evt.target.closest(".elCartReviewItemWrapper"); 57 if (!closestItemEl) return true; 58 const lineItem = Cart.findItemByUniqueId(closestItemEl.dataset.lineItemUniqueId); 59 if (!lineItem) return; 60 const minusButtontEl = closestItemEl.querySelector(".elCartReviewItemQuantityMinus"); 61 const plusButtonEl = closestItemEl.querySelector(".elCartReviewItemQuantityPlus"); 62 const removeButtonEl = closestItemEl.querySelector(".elCartReviewItemRemove"); 63 if (minusButtontEl.contains(evt.target) || minusButtontEl === evt.target) { 64 const op = Cart.decrementOperation(lineItem); 65 if (op) this.disableCheckoutButton(); 66 } else if (plusButtonEl.contains(evt.target) || plusButtonEl === evt.target) { 67 const op = Cart.incrementOperation(lineItem); 68 if (op) this.disableCheckoutButton(); 69 } else if (removeButtonEl.contains(evt.target) || removeButtonEl === evt.target) { 70 const op = Cart.removeOperation(lineItem); 71 if (op) this.disableCheckoutButton(); 72 } 73 }); 74 this.element.addEventListener("focusout", (evt) => { 75 if (!evt.target.classList.contains("elCartReviewItemQuantityInput")) return true; 76 const closestItemEl = evt.target.closest(".elCartReviewItemWrapper"); 77 if (!closestItemEl) return true; 78 const lineItem = Cart.findItemByUniqueId(closestItemEl.dataset.lineItemUniqueId); 79 if (!lineItem) return; 80 const newQuantity = Number(evt.target.value); 81 if (newQuantity !== lineItem.quantity) { 82 const op = Cart.upsertOperation(lineItem, newQuantity); 83 if (op) { 84 this.disableCheckoutButton(); 85 } else { 86 evt.target.value = lineItem.quantity; 87 } 88 } 89 }); 90 this.element.addEventListener("keydown", (evt) => { 91 if (!(evt.keyCode > 95 && evt.keyCode < 106 || evt.keyCode > 47 && evt.keyCode < 58 || evt.keyCode > 36 && evt.keyCode < 41 || evt.keyCode == 8)) { 92 evt.preventDefault(); 93 } 94 }); 95 } 96 remove() { 97 this.element.innerHTML = ""; 98 } 99 render(initializeChildrenInstances = false) { 100 const is_server = true; 101 const items = this.items ?? []; 102 const button_layout_size = this.button_layout_size ?? null; 103 const display_price_subtotals = this.display_price_subtotals ?? null; 104 const header_text = this.element.getAttribute("data-param-header_text"); 105 const continue_shopping_text = this.element.getAttribute("data-param-continue_shopping_text"); 106 const checkout_text = this.element.getAttribute("data-param-checkout_text"); 107 const remove_text = this.element.getAttribute("data-param-remove_text"); 108 const empty_cart_title = this.element.getAttribute("data-param-empty_cart_title"); 109 const empty_cart_desc = this.element.getAttribute("data-param-empty_cart_desc"); 110 const editorPreviewBlankCart = this.element.getAttribute("data-param-editorPreviewBlankCart"); 111 const continue_shopping_action = this.element.getAttribute("data-param-continue_shopping_action"); 112 let html = ""; 113 { 114 html += `<div class="elCartReviewItems">`; 115 const items2 = globalResourceData?.cart?.items; 116 const cart_summary = globalResourceData?.cart?.summary; 117 if (items2?.length == 0) { 118 html += `<div class="elCartReviewEmpty"><i class="fas fa-cart-plus"></i><div class="elCartReviewEmptyTextWrapper"><span class="elCartReviewEmptyTitle">${empty_cart_title}</span><span class="elCartReviewEmptyDesc">${empty_cart_desc}</span></div></div>`; 119 } else { 120 const c0 = items2; 121 const fl1 = new CF2ForloopDrop(c0.length); 122 for (const item of c0) { 123 const forloop = fl1; 124 const line_item_unique_id = item?.product_id.toString().concat("-").toString().concat(item.variant_id).toString().concat("-").toString().concat(item.price_id); 125 html += `<div class="elCartReviewItemWrapper" data-line-item-unique-id="${line_item_unique_id}">`; 126 const product = globalResourceData?.productsById?.[item?.product_id]; 127 const variant = globalResourceData?.variantsById?.[item?.variant_id]; 128 const price = globalResourceData?.pricesById?.[item?.price_id]; 129 const image_url = variant?.image ?? product.image; 130 let variantNames = ""; 131 const c2 = variant.property_value_ids; 132 const fl3 = new CF2ForloopDrop(c2.length); 133 for (const prop_id of c2) { 134 const forloop2 = fl3; 135 variantNames = variantNames.toString().concat(product.all_properties_values[prop_id]); 136 if (forloop2?.last == false) { 137 variantNames = variantNames.toString().concat(", "); 138 } 139 forloop2.next(); 140 } 141 if (image_url && image_url != "") { 142 html += `<a class="elCartReviewImageLink" href="${product?.url}"><div data-page-element="Image/V2" class="elImageWrapper de-image-block id-Image/V2`; 143 if (CF2Blank(image_url) && CF2Blank(null) && true) { 144 html += ` forceHide`; 145 } 146 html += `" data-liquid-replace="item">`; 147 if (image_url || !CF2Blank(null)) { 148 html += `<img class="elImage" src="${image_url ?? null}" data-lazy-loading="true" data-lazy-loading="true"/>`; 149 } else if (false) { 150 html += `<div class="image-placeholder" title=""><span class="image-placeholder-header"></span></div>`; 151 } 152 html += `</div></a>`; 153 } 154 html += `<div class="elCartReviewItem"><div class="elCartReviewItemDetails"><div><span class="elCartReviewItemName"><a href="${product?.url}">${product?.name}</a></span>`;
155 if (variantNames && variantNames != "") { 156 html += `<span class="elCartReviewItemVariant">${variantNames}</span>`; 157 } 158 html += `</div><span class="elCartReviewItemPrice">${price?.name}</span></div><div class="elCartReviewItemActions"><div class="elCartReviewItemQuantity"><div class="elCartReviewItemQuantityMinus"><span>_</span></div><input class="elCartReviewItemQuantityInput" value="${item?.quantity}"/><div class="elCartReviewItemQuantityPlus"><span>+</span></div></div><span class="elCartReviewItemRemove">${remove_text}</span></div></div></div>`; 159 forloop.next(); 160 } 161 } 162 if (display_price_subtotals && items2?.length > 0) { 163 html += `<div class="elCartReviewSubtotal"> Subtotal (${cart_summary?.total_quantity} items) <span class="elCartReviewSubtotalText">${cart_summary?.display_sub_total}</span></div>`; 164 } 165 html += `</div>`; 166 if (items2?.length > 0 && editorPreviewBlankCart != true) { 167 html += `<div data-page-element="Divider/V1" class="elDividerWrapper id-Divider/V1"><div class="elDivider"></div></div>`; 168 } 169 html += `<div class="elCartReviewButtonsWrapper">`; 170 if (continue_shopping_action != "hide") { 171 html += `<div data-page-element="Button/V1" class="elBTN elCartReviewContinueShoppingButton id-Button/V1`; 172 if (button_layout_size == "xs") { 173 html += ` elCartReviewButtonExtraSmall`; 174 } 175 if (button_layout_size == "s") { 176 html += ` elCartReviewButtonSmall`; 177 } 178 if (button_layout_size == "m") { 179 html += ` elCartReviewButtonMedium`; 180 } 181 if (button_layout_size == "l") { 182 html += ` elCartReviewButtonLarge`; 183 } 184 if (button_layout_size == "xl") { 185 html += ` elCartReviewButtonExtraLarge`; 186 } 187 html += `" data-liquid-replace="item">`; 188 const label_key = (continue_shopping_action ?? "empty").replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); 189 const label_key_slice = label_key.slice(0, 6); 190 let data_content_key = ""; 191 if (label_key_slice == "scroll") { 192 data_content_key = "scroll"; 193 } else { 194 data_content_key = label_key; 195 } 196 html += `<a target="_self" href="${continue_shopping_action}" class="elButton" aria-label="" data-disabled="false" data-show-button-ids="" data-hide-button-ids="" data-on-submit-go-to="" data-param-submittingText="Submitting..." data-content="" data-style-guide-button="" rel="noopener"><span class="elButtonMain"><i class="fas fa-spinner fa-spin elButtonSpinner elButtonText"></i><span class="elButtonMainText elButtonText">${continue_shopping_text}</span></span><span class="elButtonSub"></span></a></div>`; 197 } 198 if (items2?.length > 0 && editorPreviewBlankCart != true) { 199 html += `<div data-page-element="Button/V1" class="elBTN elCartReviewCheckoutButton id-Button/V1`; 200 if (button_layout_size == "xs") { 201 html += ` elCartReviewButtonExtraSmall`; 202 } 203 if (button_layout_size == "s") { 204 html += ` elCartReviewButtonSmall`; 205 } 206 if (button_layout_size == "m") { 207 html += ` elCartReviewButtonMedium`; 208 } 209 if (button_layout_size == "l") { 210 html += ` elCartReviewButtonLarge`; 211 } 212 if (button_layout_size == "xl") { 213 html += ` elCartReviewButtonExtraLarge`; 214 } 215 html += `" data-liquid-replace="item">`; 216 const label_key = "storescheckout"; 217 const label_key_slice = "stores"; 218 let data_content_key = ""; 219 data_content_key = "storescheckout"; 220 html += `<a target="_self" href="/stores/checkout" class="elButton" aria-label="" data-disabled="false" data-show-button-ids="" data-hide-button-ids="" data-on-submit-go-to="" data-param-submittingText="Submitting..." data-content="" data-style-guide-button="" rel="noopener"><span class="elButtonMain"><i class="fas fa-spinner fa-spin elButtonSpinner elButtonText"></i><span class="elButtonMainText elButtonText">${checkout_text}</span></span><span class="elButtonSub"></span></a></div>`; 221 } 222 html += `</div>`; 223 } 224 this.replaceContent(html); 225 if (initializeChildrenInstances) { 226 const scopeToYggRender = this.element.querySelectorAll("[ygg-render]").length > 0; 227 const options = { scopeToYggRender }; 228 CF2Component.hydrateTree(this.element, options); 229 } 230 } 231}; 232registerComponent("CartReview", CartReview); 233window["CartReview"] = CartReview; 234
235// projects/lib/packages/yggdrasil-blueprints/__generated__/blueprints/cart-icon.ts 236init_define_process(); 237init_Cart(); 238init_runtime(); 239var CartIcon = class extends CF2Component { 240 constructor(el, runtimeSel) { 241 super(el, runtimeSel); 242 } 243 mount() { 244 if (!(globalResourceData.resourceName === "checkout")) { 245 Cart.stores.cartData.listen((cartData) => { 246 this.updateCount(cartData); 247 }); 248 this.updateCount(Cart.stores.cartData.get()); 249 } 250 } 251 updateCount(cartData) { 252 this.element.querySelector(".elCartIcon").dataset.count = cartData.items.reduce((acc, item) => acc + item.quantity, 0); 253 } 254}; 255registerComponent("CartIcon", CartIcon); 256window["CartIcon"] = CartIcon; 257
258// projects/lib/packages/yggdrasil-blueprints/__generated__/blueprints/cart-review-modal.ts 259init_define_process(); 260init_modal_sidebar_v1(); 261init_runtime(); 262var CartReviewModal = class extends CF2Component { 263 constructor(el, runtimeSel) { 264 super(el, runtimeSel); 265 } 266 mount() { 267 const modal = this.getComponent("ModalSidebar/V1"); 268 $(document).on("click", 'a[href="#open-cart"]', () => { 269 modal.show(); 270 }); 271 $(document).on("click", 'a[href="#close-cart"]', () => { 272 modal.hide(); 273 }); 274 if (window.location.hash == "#open-cart") { 275 modal.show(); 276 } 277 } 278}; 279registerComponent("CartReviewModal", CartReviewModal); 280window["CartReviewModal"] = CartReviewModal; 281//# sourceMappingURL=cart-NKDRZHOX.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.