@perceptimagery/dita-configurator-staging 0.3.2002 → 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 +90 -9
- 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,
|
|
@@ -43706,7 +43717,11 @@ bool bvhIntersectFirstHit(
|
|
|
43706
43717
|
showOrbitalList,
|
|
43707
43718
|
viewerOnly,
|
|
43708
43719
|
domService,
|
|
43709
|
-
ThreeDConfigurator: ThreeDConfigurator2
|
|
43720
|
+
ThreeDConfigurator: ThreeDConfigurator2,
|
|
43721
|
+
dataVariants,
|
|
43722
|
+
dataLenses,
|
|
43723
|
+
dataOrbitals,
|
|
43724
|
+
firstDitaVariant
|
|
43710
43725
|
}) {
|
|
43711
43726
|
var _a2;
|
|
43712
43727
|
const [selectedFrame, setSelectedFrame] = reactExports.useState();
|
|
@@ -43715,11 +43730,28 @@ bool bvhIntersectFirstHit(
|
|
|
43715
43730
|
const [modelLoading, setModelLoading] = reactExports.useState(false);
|
|
43716
43731
|
const [showAddToCart, setShowAddToCart] = reactExports.useState(false);
|
|
43717
43732
|
const [viewerHeight, setViewerHeight] = reactExports.useState();
|
|
43733
|
+
const [selectedDitaVariant, setSelectedDitaVariant] = reactExports.useState();
|
|
43734
|
+
const [selectedDitaLens, setSelectedDitaLens] = reactExports.useState();
|
|
43735
|
+
const [selectedDitaOrbital, setSelectedDitaOrbital] = reactExports.useState();
|
|
43718
43736
|
const mainContainerRef = reactExports.useRef(null);
|
|
43719
43737
|
(_a2 = mainContainerRef.current) == null ? void 0 : _a2.clientHeight;
|
|
43720
43738
|
const domInstance = reactExports.useRef();
|
|
43721
43739
|
domInstance.current = domService;
|
|
43722
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
|
+
};
|
|
43723
43755
|
const onChangeFrame = async (frame, reload) => {
|
|
43724
43756
|
if (frame._id === (selectedFrame == null ? void 0 : selectedFrame._id) && !reload) {
|
|
43725
43757
|
return;
|
|
@@ -43731,6 +43763,7 @@ bool bvhIntersectFirstHit(
|
|
|
43731
43763
|
setModelLoading(false);
|
|
43732
43764
|
});
|
|
43733
43765
|
setSelectedFrame(frame);
|
|
43766
|
+
setSelectedDitaVariant(dataVariants == null ? void 0 : dataVariants.find((x2) => x2.varinatSku == frame.sku));
|
|
43734
43767
|
};
|
|
43735
43768
|
const getLensInfo = (frame) => {
|
|
43736
43769
|
const hasSpecialDefaultLens = (frame == null ? void 0 : frame.customisation.length) == 0;
|
|
@@ -43752,6 +43785,7 @@ bool bvhIntersectFirstHit(
|
|
|
43752
43785
|
}
|
|
43753
43786
|
const isDefaultRequested = requestedLens.sku == "lens-default";
|
|
43754
43787
|
const frameDefaultLens = getLensInfo(selectedFrame);
|
|
43788
|
+
const lensVariantKey = GetLensVariantKey();
|
|
43755
43789
|
if (!frameDefaultLens && isDefaultRequested) {
|
|
43756
43790
|
setModelLoading(true);
|
|
43757
43791
|
domInstance.current.changeLens([requestedLens, selectedOrbital], true, selectedFrame).then(() => {
|
|
@@ -43783,6 +43817,14 @@ bool bvhIntersectFirstHit(
|
|
|
43783
43817
|
selectedFrame
|
|
43784
43818
|
);
|
|
43785
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
|
+
}
|
|
43786
43828
|
setSelectedLens(requestedLens);
|
|
43787
43829
|
};
|
|
43788
43830
|
const onChangeOrbital = async (requestedOrbital) => {
|
|
@@ -43797,15 +43839,38 @@ bool bvhIntersectFirstHit(
|
|
|
43797
43839
|
setModelLoading(true);
|
|
43798
43840
|
if (isDefaultRequested) {
|
|
43799
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
|
+
}));
|
|
43800
43846
|
setModelLoading(false);
|
|
43801
43847
|
});
|
|
43802
43848
|
} else {
|
|
43803
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
|
+
}));
|
|
43804
43854
|
setModelLoading(false);
|
|
43805
43855
|
});
|
|
43806
43856
|
}
|
|
43807
43857
|
setSelectedOrbital(requestedOrbital);
|
|
43808
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
|
+
};
|
|
43809
43874
|
const onEngravingChecked = (checked) => {
|
|
43810
43875
|
};
|
|
43811
43876
|
const onEngravingTextAdded = (text) => {
|
|
@@ -43825,6 +43890,11 @@ bool bvhIntersectFirstHit(
|
|
|
43825
43890
|
lensList && setSelectedLens(lensList[0]);
|
|
43826
43891
|
orbitalList && setSelectedOrbital(orbitalList[0]);
|
|
43827
43892
|
}, [frameList, lensList, orbitalList]);
|
|
43893
|
+
reactExports.useEffect(() => {
|
|
43894
|
+
setSelectedDitaVariant(firstDitaVariant);
|
|
43895
|
+
setSelectedDitaLens(defaultLensDitaVariant);
|
|
43896
|
+
setSelectedDitaOrbital(defaultOrbitalDitaVariant);
|
|
43897
|
+
}, [firstDitaVariant]);
|
|
43828
43898
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { id: "Sprie-config-Main-Container", ref: mainContainerRef, children: [
|
|
43829
43899
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("header", { id: "Sprie-config-Header", children: [
|
|
43830
43900
|
/* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: ditaLogo, alt: "dita-logo", width: 97, height: 20 }),
|
|
@@ -43864,9 +43934,9 @@ bool bvhIntersectFirstHit(
|
|
|
43864
43934
|
top: isMobileView || !showAddToCart ? "-3rem" : "-8.5rem"
|
|
43865
43935
|
},
|
|
43866
43936
|
children: [
|
|
43867
|
-
/* @__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} ` }),
|
|
43868
43938
|
!isMobileView && showAddToCart && /* @__PURE__ */ jsxRuntimeExports.jsx(AddToCartBtn, {}),
|
|
43869
|
-
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." })
|
|
43870
43940
|
]
|
|
43871
43941
|
}
|
|
43872
43942
|
),
|
|
@@ -43917,17 +43987,21 @@ bool bvhIntersectFirstHit(
|
|
|
43917
43987
|
] });
|
|
43918
43988
|
}
|
|
43919
43989
|
function App({ apiService: apiService2, sku, events: events2, viewerOnly = false }) {
|
|
43990
|
+
var _a2;
|
|
43920
43991
|
const configurator = reactExports.useRef();
|
|
43921
43992
|
const [settings, setSettings] = reactExports.useState(null);
|
|
43922
43993
|
const orgName = (settings == null ? void 0 : settings.orgName) || "";
|
|
43923
43994
|
const frameList = (settings == null ? void 0 : settings.frameList) || null;
|
|
43924
43995
|
const lensList = (settings == null ? void 0 : settings.lensList) || null;
|
|
43925
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;
|
|
43926
44000
|
reactExports.useEffect(() => {
|
|
43927
44001
|
(async () => {
|
|
43928
|
-
var
|
|
44002
|
+
var _a3;
|
|
43929
44003
|
configurator.current = new ThreeDConfigurator();
|
|
43930
|
-
await ((
|
|
44004
|
+
await ((_a3 = configurator.current) == null ? void 0 : _a3.Init(apiService2.apiKey));
|
|
43931
44005
|
const apiRes = await apiService2.FetchAssetBySKUOrBarcode({
|
|
43932
44006
|
sku,
|
|
43933
44007
|
barcode: null
|
|
@@ -43949,7 +44023,10 @@ bool bvhIntersectFirstHit(
|
|
|
43949
44023
|
showOrbitals: (apiRes == null ? void 0 : apiRes.customisation).filter(
|
|
43950
44024
|
(e) => e.type === "Orbital"
|
|
43951
44025
|
).length > 0,
|
|
43952
|
-
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")
|
|
43953
44030
|
});
|
|
43954
44031
|
})();
|
|
43955
44032
|
return () => {
|
|
@@ -43970,7 +44047,11 @@ bool bvhIntersectFirstHit(
|
|
|
43970
44047
|
showOrbitalList: (settings == null ? void 0 : settings.showOrbitals) || false,
|
|
43971
44048
|
viewerOnly,
|
|
43972
44049
|
ThreeDConfigurator: configurator.current,
|
|
43973
|
-
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)
|
|
43974
44055
|
}
|
|
43975
44056
|
)
|
|
43976
44057
|
] });
|