@thefittingroom/shop-ui 3.0.0-alpha-3 → 3.0.0-alpha-5
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/esm/components/SizeRec.d.ts +1 -1
- package/dist/esm/index.js +69 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +56 -56
- package/dist/esm/init.d.ts +10 -1
- package/dist/esm/tfr-size-rec.d.ts +1 -1
- package/dist/esm/tfr.d.ts +1 -1
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ export declare class SizeRecComponent {
|
|
|
38
38
|
private tfrToggleClosedElements;
|
|
39
39
|
private isCollapsed;
|
|
40
40
|
private redraw;
|
|
41
|
-
constructor(sizeRecMainDivId: string, onSignInClick: () => void, onSignOutClick: () => void, onFitInfoClick: () => void, onTryOnClick: (styleId: number, sizeId: number) => void);
|
|
41
|
+
constructor(sizeRecMainDivId: string, onSignInClick: () => void, onSignOutClick: () => void, onFitInfoClick: () => void, onTryOnClick: (styleId: number, sizeId: number, shouldDisplay: boolean) => Promise<void>);
|
|
42
42
|
get sku(): string;
|
|
43
43
|
setSku(sku: string): void;
|
|
44
44
|
get styleId(): number;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* thefittingroom v3.0.0-alpha-
|
|
2
|
+
* thefittingroom v3.0.0-alpha-5 (2025-04-18T16:10:37.729Z)
|
|
3
3
|
* Copyright 2022-present, TheFittingRoom, Inc. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
function loadImageRecursive(imageURL, imageURLs) {
|
|
@@ -29,7 +29,7 @@ const InitImageSlider = (sliderID, onChange) => {
|
|
|
29
29
|
return new Error('slider has no images to load');
|
|
30
30
|
}
|
|
31
31
|
loadImages(imageURLs);
|
|
32
|
-
const defaultScrollValue =
|
|
32
|
+
const defaultScrollValue = 0;
|
|
33
33
|
slider.value = defaultScrollValue.toString();
|
|
34
34
|
slider.max = (imageURLs.length - 1).toString();
|
|
35
35
|
const handleSliderChange = () => {
|
|
@@ -26685,7 +26685,7 @@ n(css$a,{});
|
|
|
26685
26685
|
var css$9 = "#fit-title{margin-bottom:20px;margin-top:-30px}#fit-subtitle,#fit-title{color:#209da7;font-size:24px;font-weight:700}#fit-subtitle{position:absolute;right:17px;top:100px}#fit-subtitle-mobile{color:#7d7d7d;font-size:24px;font-weight:700;margin-top:20px}#fit-outline-container{display:flex;justify-content:center}#fit-outline-inner{position:relative}#fit-outline-inner,#tfr-fit-outline-img{width:184px}#fit-outline-inner,#fit-outline-inner-left,#fit-outline-inner-right,#tfr-fit-outline-img{height:701px}#fit-outline-inner-left,#fit-outline-inner-right{position:relative;width:260px}#fit-outline-container .fit-outline-line{display:block}.fit-outline-line{background:#000;height:1px;position:absolute}.fit-outline-line-text{border-bottom:1px solid #000;font-size:24px;position:absolute}.fit-outline-line-chest-text{left:-11px;text-align:right;top:163px;width:254px}.fit-outline-line-n-waist-text{left:-11px;text-align:right;top:208px;width:254px}.fit-outline-line-p-waist-text{right:-10px;text-align:left;top:233px;width:253px}.fit-outline-line-h-hip-text{left:-3px;text-align:right;top:255px;width:246px}.fit-outline-line-l-hip-text{left:-3px;text-align:right;top:302px;width:246px}.fit-outline-line-thigh-text{right:3px;text-align:left;top:341px;width:240px}.fit-outline-line-chest{left:42px;top:194px;width:99px}.fit-outline-line-n-waist{left:50px;top:239px;width:83px}.fit-outline-line-p-waist{left:45px;top:264px;width:93px}.fit-outline-line-h-hip{left:30px;top:286px;width:122px}.fit-outline-line-l-hip{left:21px;top:333px;width:141px}.fit-outline-line-thigh-l{left:27px;top:372px;width:60px}.fit-outline-line-thigh-r{left:95px;top:372px;width:61px}#fit-line-container{position:relative;width:100%}#fit-line-text-container{align-items:center;display:flex;justify-content:space-between}.fit-line-item{font-weight:700;width:110px}.fit-line-item .light-text{font-weight:500}.fit-line-item-green{color:#209da7}#fit-line{display:flex;justify-content:space-around;margin-bottom:4px;margin-top:30px}#fit-line-1,#fit-line-2,#fit-line-3,#fit-line-4,#fit-line-5,#fit-line-6,#fit-line-7{background:#000;height:2px;position:relative;width:110px}#fit-line-3,#fit-line-4,#fit-line-5{background:#209da7}#fit-line-1:before,#fit-line-2:before,#fit-line-3:before,#fit-line-5:before,#fit-line-6:before,#fit-line-7:before{background:#000;border-radius:50%;content:\"\";height:12px;position:absolute;top:-5px;width:12px}#fit-line-1:before,#fit-line-2:before,#fit-line-3:before{left:0}#fit-line-5:before,#fit-line-6:before,#fit-line-7:before{right:0}#fit-line-1:before,#fit-line-2:before,#fit-line-6:before,#fit-line-7:before{background:#000}#fit-line-3:before,#fit-line-5:before{background:#209da7}#fit-line-2:before,#fit-line-6:before{display:none}#fit-line-1:after,#fit-line-2:after,#fit-line-3:after,#fit-line-4:after,#fit-line-5:after,#fit-line-6:after,#fit-line-7:after{border-left:2px dashed #000;content:\"\";display:block;height:20px;left:50%;position:absolute;top:-20px}#fit-line-3:after,#fit-line-4:after,#fit-line-5:after{border-left:2px dashed #209da7}#fit-line-texts{display:flex;justify-content:space-between;padding:0 70px}#fit-line-texts div:nth-of-type(2){color:#209da7}.margin-top-10{margin-top:10px}.desktop-hidden{display:none}#cta-link{cursor:pointer;font-size:20px;margin:auto;text-decoration:underline;width:150px}.powered-by{align-items:center;display:flex;justify-content:center;margin-top:10px}@media screen and (max-width:599px){#fit-outline-inner,#fit-outline-inner-left,#fit-outline-inner-right{height:400px}#fit-outline-inner{flex-shrink:0;overflow:hidden}#fit-title{margin-top:0}#fit-outline-container{margin-top:-50px;transform:scale(.7)}.fit-line-item{font-size:10px;font-weight:500}.fit-outline-line-text{font-size:16px;line-height:31px}.fit-outline-line-chest-text,.fit-outline-line-n-waist-text{left:-11px;width:auto}.fit-outline-line-p-waist-text{right:-10px;width:auto}.fit-outline-line-h-hip-text,.fit-outline-line-l-hip-text{left:-3px;width:auto}.fit-outline-line-thigh-text{right:3px;width:auto}#fit-line{margin-top:10px}#fit-line-texts{font-size:12px;padding:0 15px}#cta-section{margin-top:-30px}#fit-line-2:before,#fit-line-6:before,.desktop-hidden{display:block}#fit-line-1:after,#fit-line-2:after,#fit-line-3:after,#fit-line-4:after,#fit-line-5:after,#fit-line-6:after,#fit-line-7:after,.mobile-hidden{display:none}}";
|
|
26686
26686
|
n(css$9,{});
|
|
26687
26687
|
|
|
26688
|
-
var css$8 = ".tfr-home-button-container{display:flex;flex-wrap:wrap;margin:20px}.tfr-home-button-container>button{border:0;cursor:pointer;height:60px;margin:20px;width:200px}.tfr-home-button-container>button:hover{background-color:#e6e6e6}[data-tfr=hidden]{display:none}.tfr-modal{background-color:rgba(0,0,0,.53);display:flex;height:100%;left:0;position:fixed;top:0;width:100%;z-index:10000}.tfr-modal-content{margin:0 auto;text-align:center;width:90%}.tfr-modal-content-flex{align-items:center;display:flex}.tfr-modal-content-container{background-color:#fff;border:1px solid #434343;border-radius:0;box-shadow:0 6px 6px #00000029;line-height:normal;max-height:100vh;max-width:850px;overflow:auto;width:100%}#tfr-close-container{padding-right:10px}.tfr-close-container{text-align:end}.tfr-close{color:#aaa;font-size:28px;font-weight:700;height:50px;width:50px}.tfr-close:focus,.tfr-close:hover{color:#000;text-decoration:none}.tfr-cursor:hover{cursor:pointer}.tfr-underline{text-decoration:underline}.tfr-standard-button{border:0;border-radius:3px;color:#fff;height:43px;width:138px}.tfr-logo-container{align-items:center;display:flex}.tfr-modal-title-logo-container{align-items:center;display:flex;justify-content:center}.tfr-girl-clothes{display:inline-block;height:316px;width:253px}.tfr-t-a-center{text-align:center}.tfr-w-70-p{width:70%}.tfr-w-80-p{width:80%}.tfr-w-85-p{width:85%}.tfr-w-150{width:150px}.tfr-h-150{height:150px}.tfr-d-none{display:none}.tfr-d-block{display:block}.tfr-d-flex{display:flex}.tfr-how-it-works-item{align-items:center;display:flex;justify-items:center}.tfr-try-on-content{margin-left:60px}#tfr-tryon-image{max-width:30vw}.progress-bar{background-color:#fff;border:1px solid #bdbdbd;height:10px;margin:15px auto 0;width:55%}.progress-bar-fill{animation-duration:120s;animation-name:progress;background-color:#209da7;color:#fff;display:block;font-size:16px;height:100%;text-align:center;transition:width .6s linear}#tfr-video{height:100%;max-height:350px;max-width:350px}.tfr-logo-box{display:flex;margin:auto;max-height:400px;max-width:860px;padding:20px}.tfr-flex,.tfr-logo-box{align-items:center;justify-content:center}.tfr-qr-code{width:200px}.tfr-space-above{margin-top:10px}.tfr-max-w-600{margin:auto;max-width:600px}#tfr-qr-border-box{align-items:center;border:2px solid var(--tfr-brand-color);border-radius:16px;display:flex;flex-direction:column;height:350px;justify-content:center;margin-left:20px;padding:0 30px;width:300px}.tfr-mobile-logo{height:60px}#email-input,#password-input{font-size:16px}.tfr-door-icon,.tfr-user-icon{color:#209da7}.tfr-logged-in,.tfr-toggle-closed{display:none}.tfr-flex{display:flex}.tfr-gap{gap:4px}.tfr-items-center{align-items:center}.tfr-mb-2{margin-bottom:8px}#tfr-logged-out-overlay-container{position:relative}#tfr-logged-out-overlay{align-items:center;background:hsla(0,0%,100%,.8);bottom:0;display:flex;font-size:16px;font-weight:700;justify-content:center;left:0;line-height:16px;position:absolute;right:0;text-align:center;top:0}";
|
|
26688
|
+
var css$8 = ".tfr-home-button-container{display:flex;flex-wrap:wrap;margin:20px}.tfr-home-button-container>button{border:0;cursor:pointer;height:60px;margin:20px;width:200px}.tfr-home-button-container>button:hover{background-color:#e6e6e6}[data-tfr=hidden]{display:none}.tfr-modal{background-color:rgba(0,0,0,.53);display:flex;height:100%;left:0;position:fixed;top:0;width:100%;z-index:10000}.tfr-modal-content{margin:0 auto;text-align:center;width:90%}.tfr-modal-content-flex{align-items:center;display:flex}.tfr-modal-content-container{background-color:#fff;border:1px solid #434343;border-radius:0;box-shadow:0 6px 6px #00000029;line-height:normal;max-height:100vh;max-width:850px;overflow:auto;width:100%}#tfr-close-container{padding-right:10px}.tfr-close-container{text-align:end}.tfr-close{color:#aaa;font-size:28px;font-weight:700;height:50px;width:50px}.tfr-close:focus,.tfr-close:hover{color:#000;text-decoration:none}.tfr-cursor:hover{cursor:pointer}.tfr-underline{text-decoration:underline}.tfr-standard-button{border:0;border-radius:3px;color:#fff;height:43px;width:138px}.tfr-logo-container{align-items:center;display:flex}.tfr-modal-title-logo-container{align-items:center;display:flex;justify-content:center}.tfr-girl-clothes{display:inline-block;height:316px;width:253px}.tfr-t-a-center{text-align:center}.tfr-w-70-p{width:70%}.tfr-w-80-p{width:80%}.tfr-w-85-p{width:85%}.tfr-w-150{width:150px}.tfr-h-150{height:150px}.tfr-d-none{display:none}.tfr-d-block{display:block}.tfr-d-flex{display:flex}.tfr-how-it-works-item{align-items:center;display:flex;justify-items:center}.tfr-try-on-content{margin-left:60px}#tfr-tryon-image{max-width:30vw}.progress-bar{background-color:#fff;border:1px solid #bdbdbd;height:10px;margin:15px auto 0;width:55%}.progress-bar-fill{animation-duration:120s;animation-name:progress;background-color:#209da7;color:#fff;display:block;font-size:16px;height:100%;text-align:center;transition:width .6s linear}#tfr-video{height:100%;max-height:350px;max-width:350px}.tfr-logo-box{display:flex;margin:auto;max-height:400px;max-width:860px;padding:20px}.tfr-flex,.tfr-logo-box{align-items:center;justify-content:center}.tfr-qr-code{width:200px}.tfr-space-above{margin-top:10px}.tfr-max-w-600{margin:auto;max-width:600px}#tfr-qr-border-box{align-items:center;border:2px solid var(--tfr-brand-color);border-radius:16px;display:flex;flex-direction:column;height:350px;justify-content:center;margin-left:20px;padding:0 30px;width:300px}.tfr-mobile-logo{height:60px}#email-input,#password-input{font-size:16px}.tfr-door-icon,.tfr-user-icon{color:#209da7}.tfr-logged-in,.tfr-toggle-closed{display:none}.tfr-flex{display:flex}.tfr-gap{gap:4px}.tfr-items-center{align-items:center}.tfr-mb-2{margin-bottom:8px}#tfr-logged-out-overlay-container{position:relative}#tfr-logged-out-overlay{align-items:center;background:hsla(0,0%,100%,.8);bottom:0;display:flex;font-size:16px;font-weight:700;justify-content:center;left:0;line-height:16px;position:absolute;right:0;text-align:center;top:0}.tfr-slider-wrapper{align-items:center;display:flex;flex-direction:column}#tfr-slider{accent-color:var(--tfr-brand-color)}";
|
|
26689
26689
|
n(css$8,{});
|
|
26690
26690
|
|
|
26691
26691
|
var css$7 = "input{border:none;box-shadow:none!important;width:100%}input:focus,select:focus,textarea:focus{border:none;outline:none}.tfr-fieldset{margin-left:auto;margin-right:auto;width:65%}.tfr-fieldset,.tfr-fieldset-inline{border-color:rgba(0,0,0,.5);border-radius:10px;border-width:1px;padding:5px 10px 10px;text-align:left}.tfr-fieldset-inline{margin-right:10px;width:250px}.tfr-fieldset-err{border-color:red}";
|
|
@@ -26697,7 +26697,7 @@ n(css$6,{});
|
|
|
26697
26697
|
var css$5 = "@media screen and (max-width:702px){.tfr-modal-title-logo-container{display:flex;flex-direction:column}}@media screen and (min-width:600px){.tfr-modal-content-container{border-radius:10px;height:auto;margin:auto;width:100%}}@media screen and (max-width:599px){#tfr-size-recommendations{width:calc(100vw - 30px)!important}.tfr-mobile-small-text{font-size:12px}.tfr-mobile-hidden{display:none}.tfr-modal-content{overflow:hidden}.tfr-modal-content-container{max-height:none;max-width:100vw;min-height:100vh;min-width:100vw}.trf-logo-title{margin-bottom:10px}.tfr-modal-content-flex{overflow:auto}}@media screen and (max-width:500px){.tfr-fieldset{width:90%}.tfr-how-it-works-item{flex-direction:column}.tfr-try-on-content{margin-left:0;margin-top:20px}}@media screen and (max-height:800px){.tfr-video-responsive{height:280px!important}}";
|
|
26698
26698
|
n(css$5,{});
|
|
26699
26699
|
|
|
26700
|
-
var css$4 = "#tfr-size-recommendations{align-items:center;background-color:var(--tfr-main-bg-color);border:var(--tfr-main-border-width) solid var(--tfr-main-border-color);border-radius:var(--tfr-main-border-radius);color:var(--tfr-dark);display:flex;flex-direction:column;font-family:var(--tfr-main-font);justify-content:center;padding:var(--tfr-main-v-padding) var(--tfr-main-h-padding);width:var(--tfr-main-width)}#tfr-size-recommendations-container{align-items:center;display:none;flex-direction:column;justify-content:center;position:relative;width:100%}#tfr-size-rec-select-container{align-items:center;display:none;flex-direction:column;font-size:13px;width:100%}#tfr-size-rec-title{align-items:center;display:flex;font-family:var(--tfr-title-font);margin-bottom:8px}#tfr-size-rec-title-toggle{color:var(--tfr-grey);cursor:pointer;position:absolute;right:0;top:0;transition:all .3s ease}.tfr-chevron-up{transform:rotate(180deg) scaleY(.6)}.tfr-chevron-down{transform:rotate(0deg) scaleY(.6)}#tfr-info-icon{cursor:pointer}#tfr-size-rec-subtitle{border-bottom:2px solid #000;font-size:18px;font-weight:700;text-align:center;width:100%}#tfr-size-rec-title{font-size:14px}#tfr-size-rec-table{display:flex;flex-direction:column;font-size:12px;padding:0 10px;width:100%}.tfr-size-rec-table-row:first-of-type{border-top-width:0}.tfr-size-rec-table-row{align-items:center;border-top:var(--tfr-main-border-width) solid var(--tfr-main-border-color);display:flex;font-family:var(--tfr-row-font);justify-content:center;min-height:40px}.tfr-size-rec-table-cell-left,.tfr-size-rec-table-cell-right{flex:1 1 0px}.tfr-size-rec-table-cell-left{flex-grow:1;padding-left:8px;text-align:right}.tfr-size-rec-table-cell-right{
|
|
26700
|
+
var css$4 = "#tfr-size-recommendations{align-items:center;background-color:var(--tfr-main-bg-color);border:var(--tfr-main-border-width) solid var(--tfr-main-border-color);border-radius:var(--tfr-main-border-radius);color:var(--tfr-dark);display:flex;flex-direction:column;font-family:var(--tfr-main-font);justify-content:center;padding:var(--tfr-main-v-padding) var(--tfr-main-h-padding);width:var(--tfr-main-width)}#tfr-size-recommendations-container{align-items:center;display:none;flex-direction:column;justify-content:center;position:relative;width:100%}#tfr-size-rec-select-container{align-items:center;display:none;flex-direction:column;font-size:13px;width:100%}#tfr-size-rec-title{align-items:center;display:flex;font-family:var(--tfr-title-font);margin-bottom:8px}#tfr-size-rec-title-toggle{color:var(--tfr-grey);cursor:pointer;position:absolute;right:0;top:0;transition:all .3s ease}.tfr-chevron-up{transform:rotate(180deg) scaleY(.6)}.tfr-chevron-down{transform:rotate(0deg) scaleY(.6)}#tfr-info-icon{cursor:pointer}#tfr-size-rec-subtitle{border-bottom:2px solid #000;font-size:18px;font-weight:700;text-align:center;width:100%}#tfr-size-rec-title{font-size:14px}#tfr-size-rec-table{display:flex;flex-direction:column;font-size:12px;padding:0 10px;width:100%}.tfr-size-rec-table-row:first-of-type{border-top-width:0}.tfr-size-rec-table-row{align-items:center;border-top:var(--tfr-main-border-width) solid var(--tfr-main-border-color);display:flex;font-family:var(--tfr-row-font);justify-content:center;min-height:40px}.tfr-size-rec-table-cell-left,.tfr-size-rec-table-cell-right{flex:1 1 0px}.tfr-size-rec-table-cell-left{flex-grow:1;padding-left:8px;padding-right:8px;text-align:right}.tfr-size-rec-table-cell-right{flex-grow:1;padding-left:8px;padding-right:8px;text-align:left}.tfr-size-rec-table-cell-right.perfect{color:var(--tfr-brand-color)}#tfr-size-rec-size{display:inline-block}#tfr-size-rec-size>.tfr-size-rec-login-cta{font-weight:500;margin-left:10px}.tfr-size-rec-login-cta,.tfr-size-rec-table-cell-right{font-size:12px}.tfr-size-rec-login-cta{color:var(--tfr-muted);display:flex;width:150px}#tfr-size-rec-action-login,#tfr-size-rec-action-logout{display:none;font-family:var(--tfr-cta-font)}#tfr-size-rec-action{cursor:pointer;font-size:16px;text-decoration:underline}#tfr-size-rec-select{background-color:var(--tfr-size-selector-bg-color);border-color:var(--tfr-size-selector-border-color);border-radius:var(--tfr-size-selector-button-radius);border-style:solid;border-width:var(--tfr-size-selector-border-width);box-shadow:var(--tfr-size-selector-button-shadow);color:var(--tfr-size-selector-text-color);display:none;font-size:var(--tfr-size-selector-font-size);font-weight:var(--tfr-size-selector-font-weight);margin-bottom:20px;margin-top:10px}#tfr-size-rec-select,.tfr-size-rec-select-button{align-items:center;height:var(--tfr-size-selector-button-height);justify-content:center}.tfr-size-rec-select-button{cursor:pointer;display:flex;transition:all .15s ease-in;width:80px}.tfr-size-rec-select-button:hover:not(.active):not(.tfr-disabled){background-color:var(--tfr-size-selector-bg-color-hover);opacity:.7}.tfr-size-rec-select-button.active{background-color:var(--tfr-size-selector-bg-color-active);border-color:var(--tfr-size-selector-button-active-border-color);border-style:solid;border-width:var(--tfr-size-selector-button-active-border-width);height:var(--tfr-size-selector-button-active-height)}.tfr-size-rec-select-button.active,.tfr-size-rec-select-button:first-of-type{border-bottom-left-radius:var(--tfr-size-selector-button-radius);border-top-left-radius:var(--tfr-size-selector-button-radius)}.tfr-size-rec-select-button.active,.tfr-size-rec-select-button:last-of-type{border-bottom-right-radius:var(--tfr-size-selector-button-radius);border-top-right-radius:var(--tfr-size-selector-button-radius)}.tfr-powered-by{align-items:center;display:flex;font-size:10px;margin-top:10px}.tfr-powered-by-logo{margin:0 4px}.tfr-powered-by-logo,.tfr-powered-by-logo img,.tfr-powered-by-logo svg{height:24px;width:12px}.tfr-powered-by-text-bold{font-weight:700}#tfr-size-recommendation-error{color:#8d0000;display:none}#tfr-sign-in-nav{margin-bottom:80px}.tfr-disabled{cursor:default}#tfr-login-to-view{cursor:pointer}.tfr-try-on-button{align-items:center;background-color:var(--tfr-size-selector-bg-color-active);border-color:var(--tfr-size-selector-border-color);border-radius:var(--tfr-size-selector-button-radius);border-style:solid;border-width:var(--tfr-size-selector-border-width);box-shadow:var(--tfr-size-selector-button-shadow);color:var(--tfr-size-selector-text-color);cursor:pointer;display:flex;font-size:var(--tfr-size-selector-font-size);font-weight:var(--tfr-size-selector-font-weight);height:var(--tfr-size-selector-button-height);justify-content:center;margin-bottom:10px;margin-top:20px;max-width:200px;position:relative;transition:all .15s ease-in;width:100%}.tfr-try-on-button.loading,.tfr-try-on-button:disabled{cursor:not-allowed;opacity:.7}.tfr-try-on-button.loading:after{animation:spin 1s linear infinite;border:2px solid var(--tfr-size-selector-text-color);border-radius:50%;border-top:2px solid transparent;content:\"\";height:16px;margin-left:8px;position:absolute;width:16px}@keyframes spin{to{transform:rotate(1turn)}}";
|
|
26701
26701
|
n(css$4,{});
|
|
26702
26702
|
|
|
26703
26703
|
var css$3 = ".tfr-mt-10{margin-top:10px}.tfr-mt-20{margin-top:20px}.tfr-mt-15{margin-top:15px}.tfr-mt-30{margin-top:30px}.mt-40{margin-top:40px}.tfr-mb-40{margin-bottom:40px}.tfr-mb-20{margin-bottom:20px}.tfr-mr-10{margin-right:10px}.tfr-mr-15{margin-right:15px}.tfr-mt-50{margin-top:50px}.tfr-mt-60{margin-top:60px}.tfr-mb-60{margin-bottom:60px}.tfr-mr-20{margin-right:20px}.tfr-mt-15-p{margin-top:15%}.tfr-mb-13-p{margin-bottom:13%}.tfr-m-h-auto{margin-left:auto;margin-right:auto}.tfr-pt-20{padding-top:20px}.tfr-pb-50{padding-bottom:50px}.tfr-p-20{padding:20px 10px}.tfr-pr-20{padding-right:20px}.tfr-pl-20{padding-left:20px}.tfr-pb-7-p{padding-bottom:7%}";
|
|
@@ -27501,6 +27501,9 @@ class SizeRecComponent {
|
|
|
27501
27501
|
this.isCollapsed = false;
|
|
27502
27502
|
this.tfrSizeRecTitleToggle.classList.add('tfr-chevron-up');
|
|
27503
27503
|
this.tfrSizeRecTitleToggle.classList.remove('tfr-chevron-down');
|
|
27504
|
+
// Ensure the container is visible
|
|
27505
|
+
this.tfrSizeRecSelectContainer.style.display = 'flex';
|
|
27506
|
+
this.tfrSizeRecSelectContainer.style.opacity = '1';
|
|
27504
27507
|
}
|
|
27505
27508
|
else {
|
|
27506
27509
|
this.tfrSizeHowItFits.style.opacity = '0.4';
|
|
@@ -27577,6 +27580,48 @@ class SizeRecComponent {
|
|
|
27577
27580
|
this.tfrSizeRecTitleToggle.addEventListener('click', this.toggletSizeRecSelectContainer.bind(this));
|
|
27578
27581
|
this.tfrInfoIcon.addEventListener('click', this.onFitInfoClick);
|
|
27579
27582
|
this.tfrLoginToView.addEventListener('click', this.onSignInClick);
|
|
27583
|
+
const tryOnButton = document.getElementById('tfr-try-on-button');
|
|
27584
|
+
if (!tryOnButton)
|
|
27585
|
+
return;
|
|
27586
|
+
tryOnButton.addEventListener('click', async () => {
|
|
27587
|
+
// Prevent multiple clicks while loading
|
|
27588
|
+
if (tryOnButton.classList.contains('loading')) {
|
|
27589
|
+
return;
|
|
27590
|
+
}
|
|
27591
|
+
const activeButton = document.querySelector('.tfr-size-rec-select-button.active');
|
|
27592
|
+
if (!activeButton)
|
|
27593
|
+
return;
|
|
27594
|
+
const selectedSizeId = Number(activeButton.getAttribute('data-size-id'));
|
|
27595
|
+
if (Number.isNaN(selectedSizeId))
|
|
27596
|
+
return;
|
|
27597
|
+
// Set loading state
|
|
27598
|
+
tryOnButton.classList.add('loading');
|
|
27599
|
+
const originalText = tryOnButton.textContent;
|
|
27600
|
+
tryOnButton.textContent = ' ';
|
|
27601
|
+
tryOnButton.setAttribute('disabled', 'true');
|
|
27602
|
+
try {
|
|
27603
|
+
// Get all size buttons
|
|
27604
|
+
const allSizeButtons = Array.from(document.querySelectorAll('.tfr-size-rec-select-button'));
|
|
27605
|
+
// Request frames for all sizes
|
|
27606
|
+
for (const button of allSizeButtons) {
|
|
27607
|
+
const sizeId = Number(button.getAttribute('data-size-id'));
|
|
27608
|
+
if (Number.isNaN(sizeId))
|
|
27609
|
+
continue;
|
|
27610
|
+
// Only display the active size, others are just requested
|
|
27611
|
+
const shouldDisplay = button === activeButton;
|
|
27612
|
+
await this.onTryOnClick(this.styleId, sizeId, shouldDisplay);
|
|
27613
|
+
}
|
|
27614
|
+
}
|
|
27615
|
+
catch (error) {
|
|
27616
|
+
console.error('Error during try-on:', error);
|
|
27617
|
+
}
|
|
27618
|
+
finally {
|
|
27619
|
+
// Reset loading state
|
|
27620
|
+
tryOnButton.classList.remove('loading');
|
|
27621
|
+
tryOnButton.textContent = originalText;
|
|
27622
|
+
tryOnButton.removeAttribute('disabled');
|
|
27623
|
+
}
|
|
27624
|
+
});
|
|
27580
27625
|
}
|
|
27581
27626
|
onSizeRecSelectClick(e) {
|
|
27582
27627
|
const target = e.target;
|
|
@@ -27593,7 +27638,7 @@ class SizeRecComponent {
|
|
|
27593
27638
|
const selectedSizeId = Number(target.getAttribute('data-size-id'));
|
|
27594
27639
|
if (Number.isNaN(selectedSizeId))
|
|
27595
27640
|
return;
|
|
27596
|
-
this.onTryOnClick(this.styleId, selectedSizeId);
|
|
27641
|
+
this.onTryOnClick(this.styleId, selectedSizeId, true);
|
|
27597
27642
|
}
|
|
27598
27643
|
renderSizeRec(recommended, sizes) {
|
|
27599
27644
|
this.tfrSizeRecSize.innerHTML = ` ${recommended}`;
|
|
@@ -27601,8 +27646,6 @@ class SizeRecComponent {
|
|
|
27601
27646
|
this.redraw = (index) => this.renderSizeRecTable(sizes, index);
|
|
27602
27647
|
this.redraw(selectedSizeIndex);
|
|
27603
27648
|
this.renderSizeRecSelect(sizes, selectedSizeIndex);
|
|
27604
|
-
const selectedSizeId = sizes[selectedSizeIndex].size_id;
|
|
27605
|
-
this.onTryOnClick(this.styleId, selectedSizeId);
|
|
27606
27649
|
}
|
|
27607
27650
|
renderSizeRecTable(sizes, index) {
|
|
27608
27651
|
const { locations } = sizes[index];
|
|
@@ -27724,6 +27767,8 @@ class SizeRecComponent {
|
|
|
27724
27767
|
</div>
|
|
27725
27768
|
|
|
27726
27769
|
<div id="tfr-size-rec-table"></div>
|
|
27770
|
+
|
|
27771
|
+
<div id="tfr-try-on-button" class="tfr-try-on-button">Try On</div>
|
|
27727
27772
|
</div>
|
|
27728
27773
|
</div>
|
|
27729
27774
|
|
|
@@ -27836,10 +27881,10 @@ class TfrSizeRec {
|
|
|
27836
27881
|
if (!sizeRec)
|
|
27837
27882
|
return null;
|
|
27838
27883
|
return {
|
|
27839
|
-
recommended: sizeRec.recommended_size.
|
|
27884
|
+
recommended: sizeRec.recommended_size.size_value.size,
|
|
27840
27885
|
sizes: sizeRec.fits.map((fit) => {
|
|
27841
27886
|
return {
|
|
27842
|
-
size: sizeRec.available_sizes.find((size) => size.id === fit.size_id).
|
|
27887
|
+
size: sizeRec.available_sizes.find((size) => size.id === fit.size_id).size_value.size,
|
|
27843
27888
|
size_id: fit.size_id,
|
|
27844
27889
|
locations: fit.measurement_location_fits
|
|
27845
27890
|
.map((locationFit) => {
|
|
@@ -27955,10 +28000,8 @@ class FittingRoom {
|
|
|
27955
28000
|
this.tfrModal = new TfrModal(modalDivId, this.signIn.bind(this), this.forgotPassword.bind(this), this.submitTel.bind(this));
|
|
27956
28001
|
this.tfrShop = initShop(Number(this.shopId), env);
|
|
27957
28002
|
this.tfrSizeRec = new TfrSizeRec(sizeRecMainDivId, cssVariables, this.tfrShop, this.onSignInClick.bind(this), this.signOut.bind(this), this.onFitInfoClick.bind(this), this.onTryOnClick.bind(this));
|
|
27958
|
-
|
|
28003
|
+
if (vtoMainDivId)
|
|
27959
28004
|
this.vtoComponent = new VtoComponent(vtoMainDivId);
|
|
27960
|
-
}
|
|
27961
|
-
catch (_a) { }
|
|
27962
28005
|
}
|
|
27963
28006
|
get shop() {
|
|
27964
28007
|
return this.tfrShop;
|
|
@@ -28057,10 +28100,19 @@ class FittingRoom {
|
|
|
28057
28100
|
onFitInfoClick() {
|
|
28058
28101
|
this.tfrModal.toFitInfo();
|
|
28059
28102
|
}
|
|
28060
|
-
async onTryOnClick(styleId, sizeId) {
|
|
28103
|
+
async onTryOnClick(styleId, sizeId, shouldDisplay = true) {
|
|
28104
|
+
if (!this.vtoComponent)
|
|
28105
|
+
return console.error('VtoComponent is not initialized');
|
|
28061
28106
|
const frames = await this.shop.tryOn(styleId, sizeId);
|
|
28062
|
-
|
|
28063
|
-
|
|
28107
|
+
if (shouldDisplay) {
|
|
28108
|
+
try {
|
|
28109
|
+
this.vtoComponent.init();
|
|
28110
|
+
this.vtoComponent.onNewFramesReady(frames);
|
|
28111
|
+
}
|
|
28112
|
+
catch (e) {
|
|
28113
|
+
console.error(e);
|
|
28114
|
+
}
|
|
28115
|
+
}
|
|
28064
28116
|
}
|
|
28065
28117
|
onUserProfileChange(userProfile) {
|
|
28066
28118
|
var _a, _b, _c, _d;
|
|
@@ -28120,8 +28172,8 @@ class FittingRoom {
|
|
|
28120
28172
|
}
|
|
28121
28173
|
}
|
|
28122
28174
|
|
|
28123
|
-
const initFittingRoom = async (shopId, modalDivId, sizeRecMainDivId, hooks = {}, cssVariables = {}, env = 'dev') => {
|
|
28124
|
-
const tfr = new FittingRoom(shopId, modalDivId, sizeRecMainDivId, hooks, cssVariables, env);
|
|
28175
|
+
const initFittingRoom = async ({ shopId, modalDivId, sizeRecMainDivId, vtoMainDivId, hooks = {}, cssVariables = {}, env = 'dev', }) => {
|
|
28176
|
+
const tfr = new FittingRoom(shopId, modalDivId, sizeRecMainDivId, vtoMainDivId, hooks, cssVariables, env);
|
|
28125
28177
|
await tfr.onInit();
|
|
28126
28178
|
return tfr;
|
|
28127
28179
|
};
|