@perceptimagery/dita-configurator-staging 0.3.2001 → 0.3.2005
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/index.js +107 -18
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
try {
|
|
5
5
|
if (typeof document != "undefined") {
|
|
6
6
|
var elementStyle = document.createElement("style");
|
|
7
|
-
elementStyle.appendChild(document.createTextNode("@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@200;300;400;500;600;700;800&display=swap');\n#Sprie-config-html {\n font-size: 87.5%; /* 1rem = 14px (same on dita-website) */ \n}\n#Sprie-config-html,\n#Sprie-config-body {\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n font-family: 'Work Sans', sans-serif;\n box-sizing: border-box;\n}\n#Sprie-config-body * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.sprie-config-loadingBox {\n position: fixed;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 24px;\n font-weight: 500;\n z-index: 10000;\n background: #f2f2f2;\n}\n/*== MAIN_CONTAINER ==*/\n#Sprie-config-Main-Container {\n width: 100%;\n height: 100%;\n}\n\n/*== HEADER ==*/\n#Sprie-config-Header {\n height: 5rem; /* 70px */\n border-bottom: 1.5px solid #aeaeae;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n .sprie-config-Header-groupName {\n color: #373737;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5275rem;\n letter-spacing: -0.05rem;\n text-transform: uppercase;\n }\n}\n\n/*== 3D_VIEWER ==*/\n#Sprie-config-Viewer-Container {\n position: relative;\n width: 100%;\n\n img {\n position: absolute;\n top: 2rem;\n left: 2rem;\n }\n}\n\n/*= 3D_VIEWER-LOADER =*/\n.sprie-config-loadingFrame {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 24px;\n font-weight: 500;\n z-index: 1000;\n background: #fafafa;\n opacity: 0.7;\n}\n\n.sprie-config-loader {\n border: 8px solid #222222;\n width: 60px;\n padding: 8px;\n aspect-ratio: 1;\n border-radius: 50%;\n background: #222222;\n --_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\n -webkit-mask: var(--_m);\n mask: var(--_m);\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: spin 1s infinite linear;\n}\n\n@keyframes spin {\n to {\n transform: rotate(1turn);\n }\n}\n\n/*== CUSTOMISATION_BLOCK ==*/\n#Sprie-config-Customisation-block {\n height: 15.42rem; /* 216px */\n background-color: #f2f2f2;\n border-top: 1px solid #91847e;\n position: relative;\n flex-grow: 1;\n}\n\n.sprie-config-price-block {\n position: absolute;\n right: 0;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n align-items: end;\n gap: 0.4rem;\n p {\n font-size: 1.25rem;\n font-weight: 500;\n color: #121212;\n }\n}\n\n.frameName {\n color: #4d4d4d;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5275rem;\n letter-spacing: -0.05rem;\n text-transform: uppercase;\n}\n\n.price-tag {\n color: #222;\n font-size: 1.3125rem;\n font-weight: 400;\n line-height: 2.275rem; \n}\n\n/*=== Mobile_View ===*/\n@media (max-width: 576px) {\n /* HEADER */\n #Sprie-config-Header {\n height: 5.25rem; /* 73.5px */\n }\n\n #Sprie-config-Viewer-Container {\n img {\n position: absolute;\n top: 1.2rem;\n left: 1.2rem;\n }\n }\n}\n.sprie-config-palette {\n display: flex;\n gap: 1.5rem;\n justify-content: flex-start;\n overflow-x: auto;\n}\n\n.sprie-config-palette-img-box {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n .sprie-config-image {\n width: 60px;\n height: 60px;\n }\n\n .sprie-config-image.mobile-view {\n width: 45px;\n height: 45px;\n }\n}\n\n.sprie-config-palette-img-box > button {\n background-color: transparent;\n}\n\n.sprie-config-palette-img-text {\n position: absolute;\n z-index: 100;\n bottom: -1rem;\n\n .sprie-config-palette-imgName {\n white-space: nowrap;\n z-index: 100;\n }\n}\n.sprie-config-engraving-block {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.8rem;\n}\n\n.sprie-config-engraving-checkbox[type='checkbox'] {\n width: 1rem;\n height: 1rem;\n accent-color: #000;\n border: 0.25rem solid #000;\n border-radius: 0.5rem;\n background-color: transparent;\n}\n\n.sprie-config-engraving-inputField-block {\n width: 25rem;\n position: relative;\n}\n\n.sprie-config-engraving-inputField {\n width: 100%;\n font-size: 0.8rem;\n font-weight: 500;\n background: transparent;\n border-width: 1px;\n}\n\n.sprie-config-engraving-inputInfo {\n position: absolute;\n white-space: nowrap;\n font-size: 0.6rem;\n bottom: 0.2rem;\n right: 0.4rem;\n color: #686868;\n}\n\n.sprie-config-engraving-link {\n position: absolute;\n white-space: nowrap;\n font-size: 0.7rem;\n bottom: -1.2rem;\n right: 0;\n color: #686868;\n text-decoration: underline;\n}\n\n@media (max-width: 576px) {\n .sprie-config-engraving-inputField-block {\n width: 70%;\n }\n}\n.carousel {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.carousel-container {\n width: 80%;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.carousel-item {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 100%;\n transition-property: transform;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 500ms;\n}\n\n.carousel-header {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 2rem;\n\n .step-syntax {\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5rem;\n color: #4d4d4d;\n }\n\n .select-syntax {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n color: #91847e;\n }\n}\n\n/* Arrow-btns */\n.carousel-btn {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n background-color: transparent;\n}\n.arrow {\n border: solid #91847e;\n border-width: 0 3px 3px 0;\n display: inline-block;\n}\n\n.right-arrow {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n\n.left-arrow {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n}\n\n/* Step-tracker */\n\n.step-tracker-block {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-bottom: 1px solid #aeaeae;\n width: 26.25rem;\n}\n\n.step-tracker {\n display: flex;\n gap: 1rem;\n}\n\n.step-circle {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 1px solid #7d7d7d;\n background-color: transparent;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n font-size: 14px;\n}\n\n.step-circle.active {\n background-color: #000; /* Change color for active step */\n border-color: #000;\n}\n\n@media (max-width: 576px) {\n .carousel-container {\n width: 100%;\n }\n\n .step-tracker-block {\n width: 80%;\n }\n}\n.sprie-config-add-to-cart-block {\n width: 14.5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n}\n.sprie-config-add-to-cart-btn {\n width: 100%;\n height: 2.75rem; /* 44px */\n background-color: #000000;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 0;\n\n font-size: 0.875rem;\n letter-spacing: 0.1rem;\n font-weight: 500;\n color: #ffffff;\n}\n\n#Sprie-Config-return-policy-label {\n display: flex;\n justify-content: center;\n width:
|
|
7
|
+
elementStyle.appendChild(document.createTextNode("@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@200;300;400;500;600;700;800&display=swap');\n#Sprie-config-html {\n font-size: 87.5%; /* 1rem = 14px (same on dita-website) */ \n}\n#Sprie-config-html,\n#Sprie-config-body {\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n font-family: 'Work Sans', sans-serif;\n box-sizing: border-box;\n}\n#Sprie-config-body * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.sprie-config-loadingBox {\n position: fixed;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 24px;\n font-weight: 500;\n z-index: 10000;\n background: #f2f2f2;\n}\n/*== MAIN_CONTAINER ==*/\n#Sprie-config-Main-Container {\n width: 100%;\n height: 100%;\n}\n\n/*== HEADER ==*/\n#Sprie-config-Header {\n height: 5rem; /* 70px */\n border-bottom: 1.5px solid #aeaeae;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n .sprie-config-Header-groupName {\n color: #373737;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5275rem;\n letter-spacing: -0.05rem;\n text-transform: uppercase;\n }\n}\n\n/*== 3D_VIEWER ==*/\n#Sprie-config-Viewer-Container {\n position: relative;\n width: 100%;\n\n img {\n position: absolute;\n top: 2rem;\n left: 2rem;\n }\n}\n\n/*= 3D_VIEWER-LOADER =*/\n.sprie-config-loadingFrame {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 24px;\n font-weight: 500;\n z-index: 1000;\n background: #fafafa;\n opacity: 0.7;\n}\n\n.sprie-config-loader {\n border: 8px solid #222222;\n width: 60px;\n padding: 8px;\n aspect-ratio: 1;\n border-radius: 50%;\n background: #222222;\n --_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\n -webkit-mask: var(--_m);\n mask: var(--_m);\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: spin 1s infinite linear;\n}\n\n@keyframes spin {\n to {\n transform: rotate(1turn);\n }\n}\n\n/*== CUSTOMISATION_BLOCK ==*/\n#Sprie-config-Customisation-block {\n height: 15.42rem; /* 216px */\n background-color: #f2f2f2;\n border-top: 1px solid #91847e;\n position: relative;\n flex-grow: 1;\n}\n\n.sprie-config-price-block {\n position: absolute;\n right: 0;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n align-items: end;\n gap: 0.4rem;\n p {\n font-size: 1.25rem;\n font-weight: 500;\n color: #121212;\n }\n}\n\n.frameName {\n color: #4d4d4d;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5275rem;\n letter-spacing: -0.05rem;\n text-transform: uppercase;\n}\n\n.price-tag {\n color: #222;\n font-size: 1.3125rem;\n font-weight: 400;\n line-height: 2.275rem; \n}\n\n/*=== Mobile_View ===*/\n@media (max-width: 576px) {\n /* HEADER */\n #Sprie-config-Header {\n height: 5.25rem; /* 73.5px */\n }\n\n #Sprie-config-Viewer-Container {\n img {\n position: absolute;\n top: 1.2rem;\n left: 1.2rem;\n }\n }\n}\n.sprie-config-palette {\n display: flex;\n gap: 1.5rem;\n justify-content: flex-start;\n overflow-x: auto;\n}\n\n.sprie-config-palette-img-box {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n .sprie-config-image {\n width: 60px;\n height: 60px;\n }\n\n .sprie-config-image.mobile-view {\n width: 45px;\n height: 45px;\n }\n}\n\n.sprie-config-palette-img-box > button {\n background-color: transparent;\n}\n\n.sprie-config-palette-img-text {\n position: absolute;\n z-index: 100;\n bottom: -1rem;\n\n .sprie-config-palette-imgName {\n white-space: nowrap;\n z-index: 100;\n }\n}\n.sprie-config-engraving-block {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.8rem;\n}\n\n.sprie-config-engraving-checkbox[type='checkbox'] {\n width: 1rem;\n height: 1rem;\n accent-color: #000;\n border: 0.25rem solid #000;\n border-radius: 0.5rem;\n background-color: transparent;\n}\n\n.sprie-config-engraving-inputField-block {\n width: 25rem;\n position: relative;\n}\n\n.sprie-config-engraving-inputField {\n width: 100%;\n font-size: 0.8rem;\n font-weight: 500;\n background: transparent;\n border-width: 1px;\n}\n\n.sprie-config-engraving-inputInfo {\n position: absolute;\n white-space: nowrap;\n font-size: 0.6rem;\n bottom: 0.2rem;\n right: 0.4rem;\n color: #686868;\n}\n\n.sprie-config-engraving-link {\n position: absolute;\n white-space: nowrap;\n font-size: 0.7rem;\n bottom: -1.2rem;\n right: 0;\n color: #686868;\n text-decoration: underline;\n}\n\n@media (max-width: 576px) {\n .sprie-config-engraving-inputField-block {\n width: 70%;\n }\n}\n.carousel {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.carousel-container {\n width: 80%;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.carousel-item {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 100%;\n transition-property: transform;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 500ms;\n}\n\n.carousel-header {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 2rem;\n\n .step-syntax {\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5rem;\n color: #4d4d4d;\n }\n\n .select-syntax {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n color: #91847e;\n }\n}\n\n/* Arrow-btns */\n.carousel-btn {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n background-color: transparent;\n}\n.arrow {\n border: solid #91847e;\n border-width: 0 3px 3px 0;\n display: inline-block;\n}\n\n.right-arrow {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n\n.left-arrow {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n}\n\n/* Step-tracker */\n\n.step-tracker-block {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-bottom: 1px solid #aeaeae;\n width: 26.25rem;\n}\n\n.step-tracker {\n display: flex;\n gap: 1rem;\n}\n\n.step-circle {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 1px solid #7d7d7d;\n background-color: transparent;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n font-size: 14px;\n}\n\n.step-circle.active {\n background-color: #000; /* Change color for active step */\n border-color: #000;\n}\n\n@media (max-width: 576px) {\n .carousel-container {\n width: 100%;\n }\n\n .step-tracker-block {\n width: 80%;\n }\n}\n.sprie-config-add-to-cart-block {\n width: 14.5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n}\n.sprie-config-add-to-cart-btn {\n width: 100%;\n height: 2.75rem; /* 44px */\n background-color: #000000;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 0;\n\n font-size: 0.875rem;\n letter-spacing: 0.1rem;\n font-weight: 500;\n color: #ffffff;\n}\n\n#Sprie-Config-return-policy-label {\n display: flex;\n justify-content: center;\n width: 14rem;\n\n p {\n font-size: 0.7rem;\n text-align: left;\n margin: 0.05rem 0.08rem 0.05rem 0.5rem;\n }\n}\n#Sprie-Config-return-policy-checkbox[type='checkbox'] {\n width: 1rem;\n height: 1rem;\n accent-color: #000;\n border: 0.25rem solid #000;\n border-radius: 0.5rem;\n background-color: transparent;\n}\n\n.sprie-config-add-to-cart-btn:disabled,\n.sprie-config-add-to-cart-btn [disabled] {\n /* border: 1px solid #999999; */\n background-color: rgb(80, 79, 79);\n cursor: default;\n}\n@media (max-width: 576px) {\n .sprie-config-add-to-cart-block {\n width: 100%;\n }\n\n .sprie-config-add-to-cart-btn {\n width: 100%;\n height: 4rem; /* 64px */\n }\n\n #Sprie-Config-return-policy-label {\n width: 100%;\n gap : .5rem;\n }\n}"));
|
|
8
8
|
document.head.appendChild(elementStyle);
|
|
9
9
|
}
|
|
10
10
|
} catch (e) {
|
|
@@ -112,7 +112,7 @@ var __publicField = (obj, key, value) => {
|
|
|
112
112
|
host: "https://api.sprie.io"
|
|
113
113
|
};
|
|
114
114
|
const config$1 = Object.freeze(Config$2);
|
|
115
|
-
const version$1 = "0.3.
|
|
115
|
+
const version$1 = "0.3.2005";
|
|
116
116
|
function modifyLensArr$1(arr, element) {
|
|
117
117
|
const index2 = arr.findIndex((e) => e["sku"] === element["sku"]);
|
|
118
118
|
if (index2 !== -1) {
|
|
@@ -127,9 +127,11 @@ var __publicField = (obj, key, value) => {
|
|
|
127
127
|
__publicField(this, "shopifyAPI");
|
|
128
128
|
__publicField(this, "org");
|
|
129
129
|
__publicField(this, "apiKey");
|
|
130
|
+
__publicField(this, "dataVariants");
|
|
130
131
|
this.isAuthenticated = false;
|
|
131
132
|
this.fetcher = fetcher2;
|
|
132
133
|
this.shopifyAPI = shopifyAPI;
|
|
134
|
+
this.dataVariants = [];
|
|
133
135
|
}
|
|
134
136
|
/**
|
|
135
137
|
*
|
|
@@ -212,6 +214,15 @@ var __publicField = (obj, key, value) => {
|
|
|
212
214
|
await this.fetcher.Post(url, bodyData);
|
|
213
215
|
}
|
|
214
216
|
}
|
|
217
|
+
async PopulateDataList(listName) {
|
|
218
|
+
var _a2;
|
|
219
|
+
const t2 = (_a2 = document.querySelector(`#${listName}`)) == null ? void 0 : _a2.textContent;
|
|
220
|
+
if (t2) {
|
|
221
|
+
const data = await JSON.parse(t2);
|
|
222
|
+
return Object.values(data)[0];
|
|
223
|
+
}
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
215
226
|
async HandleShopifyAddToCart(items) {
|
|
216
227
|
let formData = {
|
|
217
228
|
"items": items,
|
|
@@ -43320,7 +43331,9 @@ bool bvhIntersectFirstHit(
|
|
|
43320
43331
|
style: {
|
|
43321
43332
|
border: "0",
|
|
43322
43333
|
cursor: modelLoading ? "default" : "pointer",
|
|
43323
|
-
opacity: (selectedFrame == null ? void 0 : selectedFrame._id) === e._id ? "1" : ".6"
|
|
43334
|
+
opacity: (selectedFrame == null ? void 0 : selectedFrame._id) === e._id ? "1" : ".6",
|
|
43335
|
+
width: isMobileView ? 45 : 60,
|
|
43336
|
+
height: isMobileView ? 45 : 60
|
|
43324
43337
|
},
|
|
43325
43338
|
onClick: () => onChangeFrame(e),
|
|
43326
43339
|
disabled: modelLoading,
|
|
@@ -43329,8 +43342,7 @@ bool bvhIntersectFirstHit(
|
|
|
43329
43342
|
{
|
|
43330
43343
|
src: e.variantImage,
|
|
43331
43344
|
alt: e.name + "image",
|
|
43332
|
-
|
|
43333
|
-
height: 60,
|
|
43345
|
+
className: `sprie-config-image ${isMobileView ? "mobile-view" : ""}`,
|
|
43334
43346
|
style: {
|
|
43335
43347
|
transform: (selectedFrame == null ? void 0 : selectedFrame._id) === e._id ? "scale(1.2,1.2)" : "scale(1,1)"
|
|
43336
43348
|
}
|
|
@@ -43366,7 +43378,9 @@ bool bvhIntersectFirstHit(
|
|
|
43366
43378
|
style: {
|
|
43367
43379
|
border: "0",
|
|
43368
43380
|
cursor: modelLoading ? "default" : "pointer",
|
|
43369
|
-
opacity: (selectedLens == null ? void 0 : selectedLens._id) === e._id ? "1" : ".6"
|
|
43381
|
+
opacity: (selectedLens == null ? void 0 : selectedLens._id) === e._id ? "1" : ".6",
|
|
43382
|
+
width: isMobileView ? 45 : 60,
|
|
43383
|
+
height: isMobileView ? 45 : 60
|
|
43370
43384
|
},
|
|
43371
43385
|
onClick: () => onChangeLens(e),
|
|
43372
43386
|
disabled: modelLoading,
|
|
@@ -43405,12 +43419,14 @@ bool bvhIntersectFirstHit(
|
|
|
43405
43419
|
}) {
|
|
43406
43420
|
const [input, setInput] = reactExports.useState("");
|
|
43407
43421
|
const [isChecked, setIsChecked] = reactExports.useState(false);
|
|
43422
|
+
const [isBlur, setIsBlur] = reactExports.useState(false);
|
|
43408
43423
|
reactExports.useEffect(() => {
|
|
43409
43424
|
onChecked(isChecked);
|
|
43410
43425
|
});
|
|
43411
43426
|
reactExports.useEffect(() => {
|
|
43412
|
-
|
|
43413
|
-
|
|
43427
|
+
if (isBlur)
|
|
43428
|
+
onTextAdded(input);
|
|
43429
|
+
}, [isBlur]);
|
|
43414
43430
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
43415
43431
|
"div",
|
|
43416
43432
|
{
|
|
@@ -43458,7 +43474,9 @@ bool bvhIntersectFirstHit(
|
|
|
43458
43474
|
onChange: (e) => setInput(e.target.value),
|
|
43459
43475
|
maxLength: 15,
|
|
43460
43476
|
style: { padding: "0.7rem" },
|
|
43461
|
-
disabled: !isChecked
|
|
43477
|
+
disabled: !isChecked,
|
|
43478
|
+
onBlur: (e) => setIsBlur(true),
|
|
43479
|
+
onFocus: (e) => setIsBlur(false)
|
|
43462
43480
|
}
|
|
43463
43481
|
),
|
|
43464
43482
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sprie-config-engraving-inputInfo", children: `${input.length}/15 characters` }),
|
|
@@ -43654,7 +43672,9 @@ bool bvhIntersectFirstHit(
|
|
|
43654
43672
|
style: {
|
|
43655
43673
|
border: "0",
|
|
43656
43674
|
cursor: modelLoading ? "default" : "pointer",
|
|
43657
|
-
opacity: (selectedOrbital == null ? void 0 : selectedOrbital._id) === e._id ? "1" : ".6"
|
|
43675
|
+
opacity: (selectedOrbital == null ? void 0 : selectedOrbital._id) === e._id ? "1" : ".6",
|
|
43676
|
+
width: isMobileView ? 45 : 60,
|
|
43677
|
+
height: isMobileView ? 45 : 60
|
|
43658
43678
|
},
|
|
43659
43679
|
onClick: () => onChangeOrbital(e),
|
|
43660
43680
|
disabled: modelLoading,
|
|
@@ -43697,7 +43717,11 @@ bool bvhIntersectFirstHit(
|
|
|
43697
43717
|
showOrbitalList,
|
|
43698
43718
|
viewerOnly,
|
|
43699
43719
|
domService,
|
|
43700
|
-
ThreeDConfigurator: ThreeDConfigurator2
|
|
43720
|
+
ThreeDConfigurator: ThreeDConfigurator2,
|
|
43721
|
+
dataVariants,
|
|
43722
|
+
dataLenses,
|
|
43723
|
+
dataOrbitals,
|
|
43724
|
+
firstDitaVariant
|
|
43701
43725
|
}) {
|
|
43702
43726
|
var _a2;
|
|
43703
43727
|
const [selectedFrame, setSelectedFrame] = reactExports.useState();
|
|
@@ -43706,11 +43730,28 @@ bool bvhIntersectFirstHit(
|
|
|
43706
43730
|
const [modelLoading, setModelLoading] = reactExports.useState(false);
|
|
43707
43731
|
const [showAddToCart, setShowAddToCart] = reactExports.useState(false);
|
|
43708
43732
|
const [viewerHeight, setViewerHeight] = reactExports.useState();
|
|
43733
|
+
const [selectedDitaVariant, setSelectedDitaVariant] = reactExports.useState();
|
|
43734
|
+
const [selectedDitaLens, setSelectedDitaLens] = reactExports.useState();
|
|
43735
|
+
const [selectedDitaOrbital, setSelectedDitaOrbital] = reactExports.useState();
|
|
43709
43736
|
const mainContainerRef = reactExports.useRef(null);
|
|
43710
43737
|
(_a2 = mainContainerRef.current) == null ? void 0 : _a2.clientHeight;
|
|
43711
43738
|
const domInstance = reactExports.useRef();
|
|
43712
43739
|
domInstance.current = domService;
|
|
43713
43740
|
const isMobileView = window.innerWidth <= 576;
|
|
43741
|
+
const defaultLensDitaVariant = {
|
|
43742
|
+
variantId: "defaultId",
|
|
43743
|
+
variantName: "defaultName",
|
|
43744
|
+
variantPrice: 0,
|
|
43745
|
+
priceCurrency: "defaultCurrency",
|
|
43746
|
+
varinatSku: "lens-default"
|
|
43747
|
+
};
|
|
43748
|
+
const defaultOrbitalDitaVariant = {
|
|
43749
|
+
variantId: "defaultId",
|
|
43750
|
+
variantName: "defaultName",
|
|
43751
|
+
variantPrice: 0,
|
|
43752
|
+
priceCurrency: "defaultCurrency",
|
|
43753
|
+
varinatSku: "orbital-default"
|
|
43754
|
+
};
|
|
43714
43755
|
const onChangeFrame = async (frame, reload) => {
|
|
43715
43756
|
if (frame._id === (selectedFrame == null ? void 0 : selectedFrame._id) && !reload) {
|
|
43716
43757
|
return;
|
|
@@ -43722,6 +43763,7 @@ bool bvhIntersectFirstHit(
|
|
|
43722
43763
|
setModelLoading(false);
|
|
43723
43764
|
});
|
|
43724
43765
|
setSelectedFrame(frame);
|
|
43766
|
+
setSelectedDitaVariant(dataVariants == null ? void 0 : dataVariants.find((x2) => x2.varinatSku == frame.sku));
|
|
43725
43767
|
};
|
|
43726
43768
|
const getLensInfo = (frame) => {
|
|
43727
43769
|
const hasSpecialDefaultLens = (frame == null ? void 0 : frame.customisation.length) == 0;
|
|
@@ -43743,6 +43785,7 @@ bool bvhIntersectFirstHit(
|
|
|
43743
43785
|
}
|
|
43744
43786
|
const isDefaultRequested = requestedLens.sku == "lens-default";
|
|
43745
43787
|
const frameDefaultLens = getLensInfo(selectedFrame);
|
|
43788
|
+
const lensVariantKey = GetLensVariantKey();
|
|
43746
43789
|
if (!frameDefaultLens && isDefaultRequested) {
|
|
43747
43790
|
setModelLoading(true);
|
|
43748
43791
|
domInstance.current.changeLens([requestedLens, selectedOrbital], true, selectedFrame).then(() => {
|
|
@@ -43774,6 +43817,14 @@ bool bvhIntersectFirstHit(
|
|
|
43774
43817
|
selectedFrame
|
|
43775
43818
|
);
|
|
43776
43819
|
}
|
|
43820
|
+
if (requestedLens.sku == "lens-default") {
|
|
43821
|
+
setSelectedDitaLens(defaultLensDitaVariant);
|
|
43822
|
+
} else {
|
|
43823
|
+
setSelectedDitaLens(dataLenses == null ? void 0 : dataLenses.find((x2) => {
|
|
43824
|
+
var _a3;
|
|
43825
|
+
return x2.variantId == ((_a3 = requestedLens.metadata.find((item) => item.key == lensVariantKey)) == null ? void 0 : _a3.value) ? x2 : null;
|
|
43826
|
+
}));
|
|
43827
|
+
}
|
|
43777
43828
|
setSelectedLens(requestedLens);
|
|
43778
43829
|
};
|
|
43779
43830
|
const onChangeOrbital = async (requestedOrbital) => {
|
|
@@ -43788,17 +43839,39 @@ bool bvhIntersectFirstHit(
|
|
|
43788
43839
|
setModelLoading(true);
|
|
43789
43840
|
if (isDefaultRequested) {
|
|
43790
43841
|
await domInstance.current.changeOrbital(frameDefaultOrbital).then(() => {
|
|
43842
|
+
setSelectedDitaOrbital(dataOrbitals == null ? void 0 : dataOrbitals.find((x2) => {
|
|
43843
|
+
var _a3;
|
|
43844
|
+
return x2.variantId == ((_a3 = frameDefaultOrbital.metadata.find((item) => item.key == "variantId")) == null ? void 0 : _a3.value);
|
|
43845
|
+
}));
|
|
43791
43846
|
setModelLoading(false);
|
|
43792
43847
|
});
|
|
43793
43848
|
} else {
|
|
43794
43849
|
await domInstance.current.changeOrbital(requestedOrbital).then(() => {
|
|
43850
|
+
setSelectedDitaOrbital(dataOrbitals == null ? void 0 : dataOrbitals.find((x2) => {
|
|
43851
|
+
var _a3;
|
|
43852
|
+
return x2.variantId == ((_a3 = requestedOrbital.metadata.find((item) => item.key == "variantId")) == null ? void 0 : _a3.value);
|
|
43853
|
+
}));
|
|
43795
43854
|
setModelLoading(false);
|
|
43796
43855
|
});
|
|
43797
43856
|
}
|
|
43798
43857
|
setSelectedOrbital(requestedOrbital);
|
|
43799
43858
|
};
|
|
43859
|
+
const GetTotalAmount = () => {
|
|
43860
|
+
const finalCost = (selectedDitaVariant == null ? void 0 : selectedDitaVariant.variantPrice) + ((selectedDitaLens == null ? void 0 : selectedDitaLens.varinatSku) !== "lens-default" ? selectedDitaLens == null ? void 0 : selectedDitaLens.variantPrice : 0);
|
|
43861
|
+
return finalCost;
|
|
43862
|
+
};
|
|
43863
|
+
const GetLensVariantKey = () => {
|
|
43864
|
+
var _a3;
|
|
43865
|
+
const baseCurve = (_a3 = selectedFrame.metadata.find((y) => y.key == "baseCurve")) == null ? void 0 : _a3.value;
|
|
43866
|
+
let lensVariantKey = "variantId";
|
|
43867
|
+
if (baseCurve == "2B") {
|
|
43868
|
+
lensVariantKey = "2bVariantId";
|
|
43869
|
+
} else if (baseCurve == "6B") {
|
|
43870
|
+
lensVariantKey = "6bVariantId";
|
|
43871
|
+
}
|
|
43872
|
+
return lensVariantKey;
|
|
43873
|
+
};
|
|
43800
43874
|
const onEngravingChecked = (checked) => {
|
|
43801
|
-
console.log(checked);
|
|
43802
43875
|
};
|
|
43803
43876
|
const onEngravingTextAdded = (text) => {
|
|
43804
43877
|
console.log(text);
|
|
@@ -43817,6 +43890,11 @@ bool bvhIntersectFirstHit(
|
|
|
43817
43890
|
lensList && setSelectedLens(lensList[0]);
|
|
43818
43891
|
orbitalList && setSelectedOrbital(orbitalList[0]);
|
|
43819
43892
|
}, [frameList, lensList, orbitalList]);
|
|
43893
|
+
reactExports.useEffect(() => {
|
|
43894
|
+
setSelectedDitaVariant(firstDitaVariant);
|
|
43895
|
+
setSelectedDitaLens(defaultLensDitaVariant);
|
|
43896
|
+
setSelectedDitaOrbital(defaultOrbitalDitaVariant);
|
|
43897
|
+
}, [firstDitaVariant]);
|
|
43820
43898
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { id: "Sprie-config-Main-Container", ref: mainContainerRef, children: [
|
|
43821
43899
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("header", { id: "Sprie-config-Header", children: [
|
|
43822
43900
|
/* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: ditaLogo, alt: "dita-logo", width: 97, height: 20 }),
|
|
@@ -43856,9 +43934,9 @@ bool bvhIntersectFirstHit(
|
|
|
43856
43934
|
top: isMobileView || !showAddToCart ? "-3rem" : "-8.5rem"
|
|
43857
43935
|
},
|
|
43858
43936
|
children: [
|
|
43859
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: { margin: " 0.8rem 0 0" }, children:
|
|
43937
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: { margin: "0 0.8rem 0 0" }, children: `${GetTotalAmount()}.00 ${selectedDitaVariant == null ? void 0 : selectedDitaVariant.priceCurrency} ` }),
|
|
43860
43938
|
!isMobileView && showAddToCart && /* @__PURE__ */ jsxRuntimeExports.jsx(AddToCartBtn, {}),
|
|
43861
|
-
showAddToCart && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: { marginRight: ".8rem", fontSize: ".6rem" }, children: "Please Allow 7-10 Days for Customization Process." })
|
|
43939
|
+
showAddToCart && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: { marginRight: ".8rem", fontSize: ".6rem", textAlign: "right" }, children: "Please Allow 7-10 Days for Customization Process." })
|
|
43862
43940
|
]
|
|
43863
43941
|
}
|
|
43864
43942
|
),
|
|
@@ -43909,17 +43987,21 @@ bool bvhIntersectFirstHit(
|
|
|
43909
43987
|
] });
|
|
43910
43988
|
}
|
|
43911
43989
|
function App({ apiService: apiService2, sku, events: events2, viewerOnly = false }) {
|
|
43990
|
+
var _a2;
|
|
43912
43991
|
const configurator = reactExports.useRef();
|
|
43913
43992
|
const [settings, setSettings] = reactExports.useState(null);
|
|
43914
43993
|
const orgName = (settings == null ? void 0 : settings.orgName) || "";
|
|
43915
43994
|
const frameList = (settings == null ? void 0 : settings.frameList) || null;
|
|
43916
43995
|
const lensList = (settings == null ? void 0 : settings.lensList) || null;
|
|
43917
43996
|
const orbitalList = (settings == null ? void 0 : settings.orbitalList) || null;
|
|
43997
|
+
(settings == null ? void 0 : settings.dataVariants) || null;
|
|
43998
|
+
(settings == null ? void 0 : settings.dataLenses) || null;
|
|
43999
|
+
(settings == null ? void 0 : settings.dataOrbitals) || null;
|
|
43918
44000
|
reactExports.useEffect(() => {
|
|
43919
44001
|
(async () => {
|
|
43920
|
-
var
|
|
44002
|
+
var _a3;
|
|
43921
44003
|
configurator.current = new ThreeDConfigurator();
|
|
43922
|
-
await ((
|
|
44004
|
+
await ((_a3 = configurator.current) == null ? void 0 : _a3.Init(apiService2.apiKey));
|
|
43923
44005
|
const apiRes = await apiService2.FetchAssetBySKUOrBarcode({
|
|
43924
44006
|
sku,
|
|
43925
44007
|
barcode: null
|
|
@@ -43941,7 +44023,10 @@ bool bvhIntersectFirstHit(
|
|
|
43941
44023
|
showOrbitals: (apiRes == null ? void 0 : apiRes.customisation).filter(
|
|
43942
44024
|
(e) => e.type === "Orbital"
|
|
43943
44025
|
).length > 0,
|
|
43944
|
-
domService: domInstance
|
|
44026
|
+
domService: domInstance,
|
|
44027
|
+
dataVariants: await apiService2.PopulateDataList("data-variants"),
|
|
44028
|
+
dataLenses: await apiService2.PopulateDataList("data-lenses"),
|
|
44029
|
+
dataOrbitals: await apiService2.PopulateDataList("data-orbital")
|
|
43945
44030
|
});
|
|
43946
44031
|
})();
|
|
43947
44032
|
return () => {
|
|
@@ -43962,7 +44047,11 @@ bool bvhIntersectFirstHit(
|
|
|
43962
44047
|
showOrbitalList: (settings == null ? void 0 : settings.showOrbitals) || false,
|
|
43963
44048
|
viewerOnly,
|
|
43964
44049
|
ThreeDConfigurator: configurator.current,
|
|
43965
|
-
domService: settings == null ? void 0 : settings.domService
|
|
44050
|
+
domService: settings == null ? void 0 : settings.domService,
|
|
44051
|
+
dataVariants: settings == null ? void 0 : settings.dataVariants,
|
|
44052
|
+
dataLenses: settings == null ? void 0 : settings.dataLenses,
|
|
44053
|
+
dataOrbitals: settings == null ? void 0 : settings.dataOrbitals,
|
|
44054
|
+
firstDitaVariant: (_a2 = settings == null ? void 0 : settings.dataVariants) == null ? void 0 : _a2.find((x2) => x2.varinatSku == sku)
|
|
43966
44055
|
}
|
|
43967
44056
|
)
|
|
43968
44057
|
] });
|