@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.
Files changed (2) hide show
  1. package/dist/index.js +107 -18
  2. 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: 13.5rem;\n\n p {\n font-size: 0.7rem;\n text-align: end;\n margin-top: 0.05rem;\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}"));
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.2001";
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
- width: 60,
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
- onTextAdded(input);
43413
- }, [input]);
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: "$925.00 USD" }),
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 _a2;
44002
+ var _a3;
43921
44003
  configurator.current = new ThreeDConfigurator();
43922
- await ((_a2 = configurator.current) == null ? void 0 : _a2.Init(apiService2.apiKey));
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
  ] });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perceptimagery/dita-configurator-staging",
3
- "version": "0.3.2001",
3
+ "version": "0.3.2005",
4
4
  "author": "Rohan Satpute <rohan@perceptimagery.com>",
5
5
  "license": "UNLICENSED",
6
6
  "main": "dist/index.js",