@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.
Files changed (2) hide show
  1. package/dist/index.js +90 -9
  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.2002";
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: "$925.00 USD" }),
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 _a2;
44002
+ var _a3;
43929
44003
  configurator.current = new ThreeDConfigurator();
43930
- await ((_a2 = configurator.current) == null ? void 0 : _a2.Init(apiService2.apiKey));
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
  ] });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perceptimagery/dita-configurator-staging",
3
- "version": "0.3.2002",
3
+ "version": "0.3.2005",
4
4
  "author": "Rohan Satpute <rohan@perceptimagery.com>",
5
5
  "license": "UNLICENSED",
6
6
  "main": "dist/index.js",