@thefittingroom/shop-ui 3.2.3 → 4.2.0

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 (70) hide show
  1. package/dist/index.js +22270 -0
  2. package/dist/index.umd.cjs +22274 -0
  3. package/package.json +20 -22
  4. package/.env.dev +0 -2
  5. package/.env.example +0 -3
  6. package/.env.prod +0 -2
  7. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ErrorModal.js +0 -43
  8. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ErrorModal.js.map +0 -1
  9. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/FitModal.js +0 -106
  10. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/FitModal.js.map +0 -1
  11. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ForgotPasswordModal.js +0 -43
  12. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ForgotPasswordModal.js.map +0 -1
  13. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/LoadingAvatarModal.js +0 -38
  14. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/LoadingAvatarModal.js.map +0 -1
  15. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/LoggedOutModal.js +0 -36
  16. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/LoggedOutModal.js.map +0 -1
  17. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ModalManager.js +0 -107
  18. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ModalManager.js.map +0 -1
  19. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/NoAvatarModal.js +0 -19
  20. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/NoAvatarModal.js.map +0 -1
  21. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ResetLinkModal.js +0 -31
  22. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ResetLinkModal.js.map +0 -1
  23. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ScanCodeModal.js +0 -77
  24. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/ScanCodeModal.js.map +0 -1
  25. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/SignInModal.js +0 -94
  26. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/SignInModal.js.map +0 -1
  27. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/SizeErrorModal.js +0 -43
  28. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/SizeErrorModal.js.map +0 -1
  29. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/TryOnModal.js +0 -51
  30. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Modals/TryOnModal.js.map +0 -1
  31. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/SizeRec.js +0 -365
  32. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/SizeRec.js.map +0 -1
  33. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Vto.js +0 -52
  34. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/Vto.js.map +0 -1
  35. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/index.js +0 -16
  36. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/index.js.map +0 -1
  37. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/locale.js +0 -108
  38. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/locale.js.map +0 -1
  39. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/slider.js +0 -44
  40. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/slider.js.map +0 -1
  41. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/svgs.js +0 -33
  42. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/svgs.js.map +0 -1
  43. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/uiError.js +0 -8
  44. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/components/uiError.js.map +0 -1
  45. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/helpers/telephone.js +0 -12368
  46. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/helpers/telephone.js.map +0 -1
  47. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/helpers/validations.js +0 -15
  48. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/helpers/validations.js.map +0 -1
  49. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/index.js +0 -3
  50. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/index.js.map +0 -1
  51. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/init.js +0 -7
  52. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/init.js.map +0 -1
  53. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/styles/index.js +0 -12
  54. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/styles/index.js.map +0 -1
  55. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr-modal.js +0 -77
  56. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr-modal.js.map +0 -1
  57. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr-size-rec.js +0 -202
  58. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr-size-rec.js.map +0 -1
  59. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr.js +0 -212
  60. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/tfr.js.map +0 -1
  61. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/types/index.js +0 -15
  62. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/esm/types/index.js.map +0 -1
  63. package/.rollup.cache/home/runner/work/shop-sdk-ui/shop-sdk-ui/dist/tsconfig.tsbuildinfo +0 -1
  64. package/README.md +0 -153
  65. package/dist/esm/index.js +0 -28142
  66. package/dist/esm/index.js.map +0 -1
  67. package/dist/esm/index.min.js +0 -3399
  68. package/dist/esm/index.min.js.map +0 -1
  69. package/dist/tsconfig.tsbuildinfo +0 -1
  70. package/index.html +0 -126
package/package.json CHANGED
@@ -1,38 +1,36 @@
1
1
  {
2
2
  "name": "@thefittingroom/shop-ui",
3
- "version": "3.2.3",
3
+ "version": "4.2.0",
4
4
  "description": "the fitting room UI library",
5
5
  "type": "module",
6
- "main": "./dist/esm/index.js",
6
+ "main": "./dist/index.js",
7
+ "files": [
8
+ "dist"
9
+ ],
7
10
  "scripts": {
8
11
  "clean": "rm -rf dist",
9
- "clean:all": "rm -rf dist build .rollup.cache",
10
- "build:prod": "npm run clean && NODE_ENV=prod rollup --config",
11
- "build:dev": "npm run clean && NODE_ENV=dev rollup --config",
12
- "watch:prod": "npm run clean && NODE_ENV=prod rollup --config -w",
13
- "watch:dev": "npm run clean && NODE_ENV=dev rollup --config -w",
14
- "serve": "live-server --host=localhost --port=3030 --cors",
15
- "pub": "npm run build:prod && npm publish --access public"
12
+ "clean:all": "rm -rf dist build",
13
+ "build:prod": "npm run clean && vite build --mode production",
14
+ "build:dev": "npm run clean && vite build --mode development",
15
+ "dev": "vite --mode development",
16
+ "watch:prod": "vite build --mode production --watch",
17
+ "watch:dev": "vite build --mode development --watch",
18
+ "serve": "vite preview",
19
+ "prune": "ts-prune"
16
20
  },
17
21
  "engines": {
18
22
  "node": ">=20"
19
23
  },
20
24
  "devDependencies": {
21
- "@rollup/plugin-node-resolve": "^16.0.1",
22
- "@rollup/plugin-terser": "^0.4.4",
23
- "@rollup/plugin-typescript": "^12.1.4",
24
- "@trivago/prettier-plugin-sort-imports": "^5.2.2",
25
- "live-server": "^1.2.0",
26
- "postcss": "^8.5.6",
25
+ "@biomejs/biome": "2.3.5",
26
+ "@trivago/prettier-plugin-sort-imports": "^6.0.0",
27
27
  "prettier": "^3.6.2",
28
- "rollup": "^4.18.1",
29
- "rollup-plugin-dotenv": "^0.5.1",
30
- "rollup-plugin-postcss": "^4.0.2",
31
- "ts-node": "^10.9.2",
32
- "tslib": "^2.6.3",
33
- "typescript": "^5.5.4"
28
+ "ts-prune": "^0.10.3",
29
+ "typescript": "^5.9.3",
30
+ "vite": "^7.2.2"
34
31
  },
35
32
  "dependencies": {
36
- "@thefittingroom/sdk": "2.0.8"
33
+ "dayjs": "^1.11.19",
34
+ "firebase": "^12.5.0"
37
35
  }
38
36
  }
package/.env.dev DELETED
@@ -1,2 +0,0 @@
1
- LANGUAGE_URL=https://assets.dev.thefittingroom.xyz/shop-sdk/${GITHUB_SHA_7}/languages
2
- ASSETS_URL=https://assets.dev.thefittingroom.xyz/shop-sdk/assets
package/.env.example DELETED
@@ -1,3 +0,0 @@
1
- NODE_ENV
2
- LANGUAGE_URL
3
- ASSETS_URL
package/.env.prod DELETED
@@ -1,2 +0,0 @@
1
- LANGUAGE_URL=https://assets.p.thefittingroom.xyz/shop-sdk/${GITHUB_REF}/languages
2
- ASSETS_URL=https://assets.p.thefittingroom.xyz/shop-sdk/assets
@@ -1,43 +0,0 @@
1
- import { L } from '../locale';
2
- const ErrorModal = (props) => {
3
- const { error } = props;
4
- const onNavBack = () => {
5
- props.onNavBack();
6
- };
7
- const onClose = () => {
8
- props.onClose();
9
- };
10
- const Hook = () => {
11
- var _a, _b;
12
- (_a = document.getElementById('tfr-back')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', onNavBack);
13
- (_b = document.getElementById('tfr-close')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', onClose);
14
- };
15
- const Unhook = () => {
16
- var _a, _b;
17
- (_a = document.getElementById('tfr-back')) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', onNavBack);
18
- (_b = document.getElementById('tfr-close')) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', onClose);
19
- };
20
- const Body = () => {
21
- if (!error) {
22
- console.error('ErrorModal: No error provided');
23
- }
24
- return `
25
- <div class="tfr-mt-15-p tfr-mb-13-p">
26
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-c-black">${error || L.SomethingWentWrong}</div>
27
- </div>
28
-
29
- <div class="tfr-t-a-center">
30
- <span id="tfr-back" tfr-element="true" class="tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20">${L.ReturnToCatalogPage || 'Return to Catalog Page'}</span>
31
- <span id="tfr-close" tfr-element="true" class="tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor" id="returnToSite">${L.ReturnToProductPage || 'Return to Product Page'}</span>
32
- </div>
33
- `;
34
- };
35
- return {
36
- Hook,
37
- Unhook,
38
- Body,
39
- useFullModalContent: true,
40
- };
41
- };
42
- export default ErrorModal;
43
- //# sourceMappingURL=ErrorModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/ErrorModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEvB,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,KAAK,CAAC,SAAS,EAAE,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;;QAChB,MAAA,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACzE,MAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;;QAClB,MAAA,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC5E,MAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7E,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAChD,CAAC;QACD,OAAO;;0FAGG,KAAK,IAAI,CAAC,CAAC,kBACb;;;;4IAKE,CAAC,CAAC,mBAAmB,IAAI,wBAC3B;qJAEE,CAAC,CAAC,mBAAmB,IAAI,wBAC3B;;SAEH,CAAA;IACP,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA","sourcesContent":["import { ErrorModalProps } from '../../types'\nimport { L } from '../locale'\n\nconst ErrorModal = (props: ErrorModalProps) => {\n const { error } = props\n\n const onNavBack = () => {\n props.onNavBack()\n }\n\n const onClose = () => {\n props.onClose()\n }\n\n const Hook = () => {\n document.getElementById('tfr-back')?.addEventListener('click', onNavBack)\n document.getElementById('tfr-close')?.addEventListener('click', onClose)\n }\n\n const Unhook = () => {\n document.getElementById('tfr-back')?.removeEventListener('click', onNavBack)\n document.getElementById('tfr-close')?.removeEventListener('click', onClose)\n }\n\n const Body = () => {\n if (!error) {\n console.error('ErrorModal: No error provided')\n }\n return `\n <div class=\"tfr-mt-15-p tfr-mb-13-p\">\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-c-black\">${\n error || L.SomethingWentWrong\n }</div>\n </div>\n\n <div class=\"tfr-t-a-center\">\n <span id=\"tfr-back\" tfr-element=\"true\" class=\"tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20\">${\n L.ReturnToCatalogPage || 'Return to Catalog Page'\n }</span>\n <span id=\"tfr-close\" tfr-element=\"true\" class=\"tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor\" id=\"returnToSite\">${\n L.ReturnToProductPage || 'Return to Product Page'\n }</span>\n </div>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: true,\n }\n}\n\nexport default ErrorModal\n"]}
@@ -1,106 +0,0 @@
1
- import { tfrDoor } from '../svgs';
2
- const FitModal = (props) => {
3
- const imageBaseUrl = 'https://assets.dev.thefittingroom.xyz/images/';
4
- const onSignInNav = () => props.onSignInNav();
5
- const Hook = () => {
6
- document.getElementById('cta-link').addEventListener('click', onSignInNav);
7
- };
8
- const Unhook = () => {
9
- document.getElementById('cta-link').removeEventListener('click', onSignInNav);
10
- };
11
- const Body = () => {
12
- return `
13
- <div>
14
- <div id="fit-title">Fit Scale</div>
15
-
16
- <div id="fit-line-container">
17
- <div id="fit-line-text-container">
18
- <div class="fit-line-item mobile-hidden">Too Tight</div>
19
-
20
- <div class="fit-line-item">
21
- <div>Tight <span class="light-text">or</span><br /> More fitted</div>
22
-
23
- <div class="desktop-hidden margin-top-10">Too Tight</div>
24
- </div>
25
-
26
- <div class="fit-line-item fit-line-item-green">Slightly tight <br /><span class="light-text">or</span> Fitted</div>
27
- <div class="fit-line-item fit-line-item-green">Perfect Fit</div>
28
- <div class="fit-line-item fit-line-item-green">Slightly loose <br /><span class="light-text">or</span> Less fitted</div>
29
-
30
- <div class="fit-line-item">
31
- <div>Loose <span class="light-text">or</span><br /> Not fitted</div>
32
-
33
- <div class="desktop-hidden margin-top-10">Oversized</div>
34
- </div>
35
-
36
- <div class="fit-line-item mobile-hidden">Oversized</div>
37
- </div>
38
-
39
- <div id="fit-line">
40
- <div id="fit-line-1" class="mobile-hidden">&nbsp;</div>
41
- <div id="fit-line-2">&nbsp;</div>
42
- <div id="fit-line-3">&nbsp;</div>
43
- <div id="fit-line-4">&nbsp;</div>
44
- <div id="fit-line-5">&nbsp;</div>
45
- <div id="fit-line-6">&nbsp;</div>
46
- <div id="fit-line-7" class="mobile-hidden">&nbsp;</div>
47
- </div>
48
-
49
- <div id="fit-line-texts">
50
- <div>Poor Fit</div>
51
- <div>Acceptable Fit</div>
52
- <div>Poor Fit</div>
53
- </div>
54
- </div>
55
-
56
- <div id="fit-subtitle-mobile" class="desktop-hidden">Measurement&nbsp;Points</div>
57
-
58
- <div id="fit-outline-container">
59
- <div id="fit-outline-inner-left">
60
- <div class="fit-outline-line-text fit-outline-line-p-waist-text">Pant&nbsp;Waist</div>
61
- <div class="fit-outline-line-text fit-outline-line-thigh-text">Thigh</div>
62
- </div>
63
-
64
- <div id="fit-outline-inner">
65
- <div class="fit-outline-line fit-outline-line-chest"></div>
66
- <div class="fit-outline-line fit-outline-line-n-waist"></div>
67
- <div class="fit-outline-line fit-outline-line-p-waist"></div>
68
- <div class="fit-outline-line fit-outline-line-h-hip"></div>
69
- <div class="fit-outline-line fit-outline-line-l-hip"></div>
70
- <div class="fit-outline-line fit-outline-line-thigh-l"></div>
71
- <div class="fit-outline-line fit-outline-line-thigh-r"></div>
72
-
73
- <img id="tfr-fit-outline-img" src="${imageBaseUrl}fit-outline.png" />
74
- </div>
75
-
76
- <div id="fit-outline-inner-right">
77
- <div id="fit-subtitle" class="mobile-hidden">Measurement&nbsp;Points</div>
78
-
79
- <div class="fit-outline-line-text fit-outline-line-chest-text">Chest/Bust</div>
80
- <div class="fit-outline-line-text fit-outline-line-n-waist-text">Natural&nbsp;Waist</div>
81
- <div class="fit-outline-line-text fit-outline-line-h-hip-text">High&nbsp;Hip</div>
82
- <div class="fit-outline-line-text fit-outline-line-l-hip-text">Low&nbsp;Hip</div>
83
- </div>
84
- </div>
85
- </div>
86
-
87
- <div id="cta-section">
88
- <div id="cta-link">Sign Up or Login</div>
89
-
90
- <div class="powered-by">
91
- <div>Powered by</div>
92
- <div class="tfr-powered-by-logo">${tfrDoor}</div>
93
- <div class="tfr-powered-by-text-bold">The Fitting Room</div>
94
- </div>
95
- </div>
96
- `;
97
- };
98
- return {
99
- Hook,
100
- Unhook,
101
- Body,
102
- useFullModalContent: false,
103
- };
104
- };
105
- export default FitModal;
106
- //# sourceMappingURL=FitModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FitModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/FitModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAgB,EAAE;IACtD,MAAM,YAAY,GAAG,+CAA+C,CAAA;IACpE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IAE7C,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC/E,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA6DsC,YAAY;;;;;;;;;;;;;;;;;;;6CAmBhB,OAAO;;;;KAI/C,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,KAAK;KAC3B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["import { FitModalProps, ModalContent } from '../../types'\nimport { tfrDoor } from '../svgs'\n\nconst FitModal = (props: FitModalProps): ModalContent => {\n const imageBaseUrl = 'https://assets.dev.thefittingroom.xyz/images/'\n const onSignInNav = () => props.onSignInNav()\n\n const Hook = () => {\n document.getElementById('cta-link').addEventListener('click', onSignInNav)\n }\n\n const Unhook = () => {\n document.getElementById('cta-link').removeEventListener('click', onSignInNav)\n }\n\n const Body = () => {\n return `\n <div>\n <div id=\"fit-title\">Fit Scale</div>\n\n <div id=\"fit-line-container\">\n <div id=\"fit-line-text-container\">\n <div class=\"fit-line-item mobile-hidden\">Too Tight</div>\n\n <div class=\"fit-line-item\">\n <div>Tight <span class=\"light-text\">or</span><br /> More fitted</div>\n\n <div class=\"desktop-hidden margin-top-10\">Too Tight</div>\n </div>\n\n <div class=\"fit-line-item fit-line-item-green\">Slightly tight <br /><span class=\"light-text\">or</span> Fitted</div>\n <div class=\"fit-line-item fit-line-item-green\">Perfect Fit</div>\n <div class=\"fit-line-item fit-line-item-green\">Slightly loose <br /><span class=\"light-text\">or</span> Less fitted</div>\n\n <div class=\"fit-line-item\">\n <div>Loose <span class=\"light-text\">or</span><br /> Not fitted</div>\n\n <div class=\"desktop-hidden margin-top-10\">Oversized</div>\n </div>\n\n <div class=\"fit-line-item mobile-hidden\">Oversized</div>\n </div>\n\n <div id=\"fit-line\">\n <div id=\"fit-line-1\" class=\"mobile-hidden\">&nbsp;</div>\n <div id=\"fit-line-2\">&nbsp;</div>\n <div id=\"fit-line-3\">&nbsp;</div>\n <div id=\"fit-line-4\">&nbsp;</div>\n <div id=\"fit-line-5\">&nbsp;</div>\n <div id=\"fit-line-6\">&nbsp;</div>\n <div id=\"fit-line-7\" class=\"mobile-hidden\">&nbsp;</div>\n </div>\n\n <div id=\"fit-line-texts\">\n <div>Poor Fit</div>\n <div>Acceptable Fit</div>\n <div>Poor Fit</div>\n </div>\n </div>\n\n <div id=\"fit-subtitle-mobile\" class=\"desktop-hidden\">Measurement&nbsp;Points</div>\n\n <div id=\"fit-outline-container\">\n <div id=\"fit-outline-inner-left\">\n <div class=\"fit-outline-line-text fit-outline-line-p-waist-text\">Pant&nbsp;Waist</div>\n <div class=\"fit-outline-line-text fit-outline-line-thigh-text\">Thigh</div>\n </div>\n\n <div id=\"fit-outline-inner\">\n <div class=\"fit-outline-line fit-outline-line-chest\"></div>\n <div class=\"fit-outline-line fit-outline-line-n-waist\"></div>\n <div class=\"fit-outline-line fit-outline-line-p-waist\"></div>\n <div class=\"fit-outline-line fit-outline-line-h-hip\"></div>\n <div class=\"fit-outline-line fit-outline-line-l-hip\"></div>\n <div class=\"fit-outline-line fit-outline-line-thigh-l\"></div>\n <div class=\"fit-outline-line fit-outline-line-thigh-r\"></div>\n\n <img id=\"tfr-fit-outline-img\" src=\"${imageBaseUrl}fit-outline.png\" />\n </div>\n\n <div id=\"fit-outline-inner-right\">\n <div id=\"fit-subtitle\" class=\"mobile-hidden\">Measurement&nbsp;Points</div>\n\n <div class=\"fit-outline-line-text fit-outline-line-chest-text\">Chest/Bust</div>\n <div class=\"fit-outline-line-text fit-outline-line-n-waist-text\">Natural&nbsp;Waist</div>\n <div class=\"fit-outline-line-text fit-outline-line-h-hip-text\">High&nbsp;Hip</div>\n <div class=\"fit-outline-line-text fit-outline-line-l-hip-text\">Low&nbsp;Hip</div>\n </div>\n </div>\n </div>\n\n <div id=\"cta-section\">\n <div id=\"cta-link\">Sign Up or Login</div>\n\n <div class=\"powered-by\">\n <div>Powered by</div>\n <div class=\"tfr-powered-by-logo\">${tfrDoor}</div>\n <div class=\"tfr-powered-by-text-bold\">The Fitting Room</div>\n </div>\n </div>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: false,\n }\n}\n\nexport default FitModal\n"]}
@@ -1,43 +0,0 @@
1
- import { L } from '../locale';
2
- const ForgotPasswordModal = (props) => {
3
- const onNavSignIn = () => {
4
- const email = document.getElementById('tfr-email').value;
5
- props.onNavSignIn(email);
6
- };
7
- const onPasswordReset = () => {
8
- const email = document.getElementById('tfr-email').value;
9
- props.onPasswordReset(email);
10
- };
11
- const Hook = () => {
12
- var _a, _b;
13
- (_a = document.getElementById('tfr-send-password-reset')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', onPasswordReset);
14
- (_b = document.getElementById('tfr-back-to-signin')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', onNavSignIn);
15
- };
16
- const Unhook = () => {
17
- var _a, _b;
18
- (_a = document.getElementById('tfr-send-password-reset')) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', onPasswordReset);
19
- (_b = document.getElementById('tfr-back-to-signin')) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', onNavSignIn);
20
- };
21
- const Body = () => {
22
- return `
23
- <div tfr-element="true" class="tfr-title-font tfr-light-16-300 tfr-mt-20 tfr-w-70-p tfr-m-h-auto">${L.EnterEmailAddress}</div>
24
- <fieldset class="tfr-fieldset-element tfr-fieldset tfr-mt-30">
25
- <legend tfr-element="true" class="tfr-label-element tfr-body-font tfr-14-default tfr-c-black-o5">${L.EmailAddress}</legend>
26
- <input tfr-element="true" type="email" id="tfr-email" />
27
- </fieldset>
28
- <div tfr-element="true" class="tfr-body-font tfr-12-default tfr-c-red tfr-mt-10 tfr-d-none" id="error-msg"></div>
29
- <div id="tfr-back-to-signin" tfr-element="true" class="tfr-body-font tfr-12-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mt-30">${L.BackToSignIn}</div>
30
- <button id="tfr-send-password-reset" tfr-element="true" class="tfr-standard-button tfr-c-brand-bg tfr-c-whitetfr-title-font tfr-medium-16-default tfr-cursor tfr-mt-30">
31
- ${L.Send}
32
- </button>
33
- `;
34
- };
35
- return {
36
- Hook,
37
- Unhook,
38
- Body,
39
- useFullModalContent: true,
40
- };
41
- };
42
- export default ForgotPasswordModal;
43
- //# sourceMappingURL=ForgotPasswordModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForgotPasswordModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/ForgotPasswordModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAgB,EAAE;IAC5E,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,KAAK,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAA;QAC5E,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAsB,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC,KAAK,CAAA;QAC5E,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;;QAChB,MAAA,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC9F,MAAA,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvF,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;;QAClB,MAAA,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QACjG,MAAA,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC1F,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;4GACiG,CAAC,CAAC,iBAAiB;;+GAEhB,CAAC,CAAC,YAAY;;;;iJAIoB,CAAC,CAAC,YAAY;;cAEjJ,CAAC,CAAC,IAAI;;KAEf,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,mBAAmB,CAAA","sourcesContent":["import { ForgotPasswordModalProps, ModalContent } from '../../types'\nimport { L } from '../locale'\n\nconst ForgotPasswordModal = (props: ForgotPasswordModalProps): ModalContent => {\n const onNavSignIn = () => {\n const email = (<HTMLInputElement>document.getElementById('tfr-email')).value\n props.onNavSignIn(email)\n }\n\n const onPasswordReset = () => {\n const email = (<HTMLInputElement>document.getElementById('tfr-email')).value\n props.onPasswordReset(email)\n }\n\n const Hook = () => {\n document.getElementById('tfr-send-password-reset')?.addEventListener('click', onPasswordReset)\n document.getElementById('tfr-back-to-signin')?.addEventListener('click', onNavSignIn)\n }\n\n const Unhook = () => {\n document.getElementById('tfr-send-password-reset')?.removeEventListener('click', onPasswordReset)\n document.getElementById('tfr-back-to-signin')?.removeEventListener('click', onNavSignIn)\n }\n\n const Body = () => {\n return `\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-16-300 tfr-mt-20 tfr-w-70-p tfr-m-h-auto\">${L.EnterEmailAddress}</div>\n <fieldset class=\"tfr-fieldset-element tfr-fieldset tfr-mt-30\">\n <legend tfr-element=\"true\" class=\"tfr-label-element tfr-body-font tfr-14-default tfr-c-black-o5\">${L.EmailAddress}</legend>\n <input tfr-element=\"true\" type=\"email\" id=\"tfr-email\" />\n </fieldset>\n <div tfr-element=\"true\" class=\"tfr-body-font tfr-12-default tfr-c-red tfr-mt-10 tfr-d-none\" id=\"error-msg\"></div>\n <div id=\"tfr-back-to-signin\" tfr-element=\"true\" class=\"tfr-body-font tfr-12-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mt-30\">${L.BackToSignIn}</div>\n <button id=\"tfr-send-password-reset\" tfr-element=\"true\" class=\"tfr-standard-button tfr-c-brand-bg tfr-c-whitetfr-title-font tfr-medium-16-default tfr-cursor tfr-mt-30\">\n ${L.Send}\n </button>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: true,\n }\n}\n\nexport default ForgotPasswordModal\n"]}
@@ -1,38 +0,0 @@
1
- import { L } from '../locale';
2
- const LoadingAvatarModal = (props) => {
3
- function startProgressBar(milliseconds, progressBar) {
4
- let percentCount = 0;
5
- const millisecondStep = milliseconds / 200;
6
- progressBar.style.width = percentCount + '%';
7
- const id = setInterval(() => {
8
- if (percentCount >= 100) {
9
- clearInterval(id);
10
- }
11
- else {
12
- percentCount += 0.5;
13
- progressBar.style.width = percentCount + '%';
14
- }
15
- }, millisecondStep);
16
- }
17
- const Hook = () => {
18
- const progressBar = document.querySelector('.progress-bar-fill');
19
- startProgressBar(props.timeoutMS, progressBar);
20
- };
21
- const Unhook = () => void 0;
22
- const Body = () => {
23
- return `
24
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-60" > ${L.LoadingAvatar} </div>
25
- <div class="progress-bar">
26
- <span class="progress-bar-fill"></span>
27
- </div>
28
- `;
29
- };
30
- return {
31
- Hook,
32
- Unhook,
33
- Body,
34
- useFullModalContent: true,
35
- };
36
- };
37
- export default LoadingAvatarModal;
38
- //# sourceMappingURL=LoadingAvatarModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingAvatarModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/LoadingAvatarModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAgB,EAAE;IAC1E,SAAS,gBAAgB,CAAC,YAAY,EAAE,WAAW;QACjD,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,MAAM,eAAe,GAAG,YAAY,GAAG,GAAG,CAAA;QAC1C,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,CAAA;QAC5C,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;gBACxB,aAAa,CAAC,EAAE,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,GAAG,CAAA;gBACnB,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,CAAA;YAC9C,CAAC;QACH,CAAC,EAAE,eAAe,CAAC,CAAA;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;QAChE,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAChD,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAE3B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;kGACuF,CAAC,CAAC,aAAa;;;;SAIxG,CAAA;IACP,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA","sourcesContent":["import { LoadingAvatarModalProps, ModalContent } from '../../types'\nimport { L } from '../locale'\n\nconst LoadingAvatarModal = (props: LoadingAvatarModalProps): ModalContent => {\n function startProgressBar(milliseconds, progressBar) {\n let percentCount = 0\n const millisecondStep = milliseconds / 200\n progressBar.style.width = percentCount + '%'\n const id = setInterval(() => {\n if (percentCount >= 100) {\n clearInterval(id)\n } else {\n percentCount += 0.5\n progressBar.style.width = percentCount + '%'\n }\n }, millisecondStep)\n }\n\n const Hook = () => {\n const progressBar = document.querySelector('.progress-bar-fill')\n startProgressBar(props.timeoutMS, progressBar)\n }\n\n const Unhook = () => void 0\n\n const Body = () => {\n return `\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-60\" > ${L.LoadingAvatar} </div>\n <div class=\"progress-bar\">\n <span class=\"progress-bar-fill\"></span>\n </div>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: true,\n }\n}\n\nexport default LoadingAvatarModal\n"]}
@@ -1,36 +0,0 @@
1
- import { L } from '../locale';
2
- const LoggedOutModal = (props) => {
3
- const onNavSignIn = () => {
4
- props.onNavSignIn('');
5
- };
6
- const onClose = () => {
7
- props.onClose();
8
- };
9
- const Hook = () => {
10
- var _a, _b;
11
- (_a = document.getElementById('tfr-sign-in')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', onNavSignIn);
12
- (_b = document.getElementById('tfr-close')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', onClose);
13
- };
14
- const Unhook = () => {
15
- var _a, _b;
16
- (_a = document.getElementById('tfr-sign-in')) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', onNavSignIn);
17
- (_b = document.getElementById('tfr-close')) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', onClose);
18
- };
19
- const Body = () => {
20
- return `
21
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-mt-15-p tfr-mb-13-p">${L.SuccessfullyLoggedOut}</div>
22
- <div class="tfr-t-a-center">
23
- <span id="tfr-sign-in" tfr-element="true" class="tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20">${L.SignBackIn}</span>
24
- <span id="tfr-close" tfr-element="true" class="tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor" >${L.ReturnToSite}</span>
25
- </div>
26
- `;
27
- };
28
- return {
29
- Hook,
30
- Unhook,
31
- Body,
32
- useFullModalContent: true,
33
- };
34
- };
35
- export default LoggedOutModal;
36
- //# sourceMappingURL=LoggedOutModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoggedOutModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/LoggedOutModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAgB,EAAE;IAClE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;;QAChB,MAAA,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9E,MAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAS,EAAE;;QACxB,MAAA,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACjF,MAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7E,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;kGACuF,CAAC,CAAC,qBAAqB;;+IAEsB,CAAC,CAAC,UAAU;oIACvB,CAAC,CAAC,YAAY;;KAE7I,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["import { LoggedOutModalProps, ModalContent } from '../../types'\nimport { L } from '../locale'\n\nconst LoggedOutModal = (props: LoggedOutModalProps): ModalContent => {\n const onNavSignIn = () => {\n props.onNavSignIn('')\n }\n\n const onClose = () => {\n props.onClose()\n }\n\n const Hook = () => {\n document.getElementById('tfr-sign-in')?.addEventListener('click', onNavSignIn)\n document.getElementById('tfr-close')?.addEventListener('click', onClose)\n }\n\n const Unhook = (): void => {\n document.getElementById('tfr-sign-in')?.removeEventListener('click', onNavSignIn)\n document.getElementById('tfr-close')?.removeEventListener('click', onClose)\n }\n\n const Body = () => {\n return `\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-mt-15-p tfr-mb-13-p\">${L.SuccessfullyLoggedOut}</div>\n <div class=\"tfr-t-a-center\">\n <span id=\"tfr-sign-in\" tfr-element=\"true\" class=\"tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20\">${L.SignBackIn}</span>\n <span id=\"tfr-close\" tfr-element=\"true\" class=\"tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor\" >${L.ReturnToSite}</span>\n </div>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: true,\n }\n}\n\nexport default LoggedOutModal\n"]}
@@ -1,107 +0,0 @@
1
- import { L } from '../locale';
2
- const InitModalManager = (elementID) => {
3
- const modalRoot = document.getElementById(elementID);
4
- const body = document.querySelector('body');
5
- if (!modalRoot) {
6
- throw new Error(`element with id ${elementID} not found`);
7
- }
8
- let previousContent;
9
- const renderBody = (modalBody, useFullModalContent) => {
10
- console.log({ useFullModalContent });
11
- return `
12
- <div class="tfr-modal" id="tfr-modal-background">
13
- <div class="tfr-modal-content-container tfr-p-20">
14
- <div class="tfr-close-container">
15
- <span id="tfr-close-container" class="tfr-close tfr-cursor">&times;</span>
16
- </div>
17
-
18
- <div class="tfr-modal-content-flex">
19
- <div class="tfr-modal-content">
20
- ${renderModalContent(useFullModalContent)}
21
- ${modalBody}
22
- </div>
23
- </div>
24
- </div>
25
- </div>
26
- `;
27
- };
28
- const renderModalContent = (useFullModalContent) => {
29
- if (!useFullModalContent)
30
- return '';
31
- return `
32
- <div class="tfr-modal-title-logo-container">
33
- <div tfr-element="true" class="trf-logo-title tfr-title-font tfr-light-24-300 tfr-c-black tfr-mr-10">${L.ModalTagline}</div>
34
- <div tfr-element="true" class="tfr-logo-container">
35
- <div class="tfr-mr-15">
36
- <svg width="26" height="47" viewBox="0 0 68 124" fill="none" xmlns="http://www.w3.org/2000/svg">
37
- <path d="M0.911938 0L67.4819 17.09V106.49L0.911938 123.51V0Z" fill="#209DA7">
38
- </path>
39
- <path d="M52.8019 64.44C54.7791 64.44 56.3819 62.4387 56.3819 59.97C56.3819 57.5013 54.7791 55.5 52.8019 55.5C50.8248 55.5 49.2219 57.5013 49.2219 59.97C49.2219 62.4387 50.8248 64.44 52.8019 64.44Z" fill="white">
40
- </path>
41
- </svg>
42
- </div>
43
- <div tfr-element="true" class="tfr-title-font tfr-light-24-500 tfr-c-black tfr-mr-10">${L.TheFittingRoom}</div>
44
- </div>
45
- </div>
46
- `;
47
- };
48
- const Open = (content) => {
49
- body.style.overflow = 'hidden';
50
- if (previousContent) {
51
- previousContent.Unhook();
52
- }
53
- modalRoot.innerHTML = renderBody(content.Body(), content.useFullModalContent);
54
- hook();
55
- content.Hook();
56
- modalRoot.style.display = 'block';
57
- previousContent = content;
58
- };
59
- const Close = () => {
60
- body.style.overflow = 'auto';
61
- if (previousContent) {
62
- previousContent.Unhook();
63
- unhook();
64
- }
65
- modalRoot.style.display = 'none';
66
- };
67
- const EscClose = (e) => {
68
- if (e.key === 'Escape') {
69
- Close();
70
- }
71
- };
72
- const ContainerClose = (e) => {
73
- const background = modalRoot.querySelector('#tfr-modal-background');
74
- if (e.target === background) {
75
- console.debug('container close');
76
- Close();
77
- }
78
- };
79
- const hook = () => {
80
- modalRoot.querySelector('#tfr-close-container').addEventListener('click', Close);
81
- document.addEventListener('keydown', EscClose);
82
- document.addEventListener('click', ContainerClose);
83
- };
84
- const unhook = () => {
85
- var _a;
86
- const closeLink = modalRoot.querySelector('#tfr-close-container');
87
- if (closeLink) {
88
- closeLink.removeEventListener('click', Close);
89
- }
90
- else {
91
- console.error('#tfr-close-container not found on unhook');
92
- console.debug((_a = document.getElementById(elementID)) === null || _a === void 0 ? void 0 : _a.innerHTML);
93
- }
94
- document.removeEventListener('keydown', EscClose);
95
- document.removeEventListener('click', ContainerClose);
96
- };
97
- const Content = () => {
98
- return previousContent;
99
- };
100
- return {
101
- open: Open,
102
- close: Close,
103
- Content,
104
- };
105
- };
106
- export { InitModalManager };
107
- //# sourceMappingURL=ModalManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalManager.js","sourceRoot":"","sources":["../../../../src/components/Modals/ModalManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { ModalContent } from '../../types'\nimport { L } from '../locale'\n\ninterface ModalManager {\n open(content: ModalContent): void\n close(): void\n Content(): ModalContent\n}\n\nconst InitModalManager = (elementID: string): ModalManager => {\n const modalRoot = document.getElementById(elementID)\n const body = document.querySelector('body')\n\n if (!modalRoot) {\n throw new Error(`element with id ${elementID} not found`)\n }\n\n let previousContent: ModalContent\n\n const renderBody = (modalBody: string, useFullModalContent: boolean) => {\n console.log({ useFullModalContent })\n return `\n <div class=\"tfr-modal\" id=\"tfr-modal-background\">\n <div class=\"tfr-modal-content-container tfr-p-20\">\n <div class=\"tfr-close-container\">\n <span id=\"tfr-close-container\" class=\"tfr-close tfr-cursor\">&times;</span>\n </div>\n\n <div class=\"tfr-modal-content-flex\">\n <div class=\"tfr-modal-content\">\n ${renderModalContent(useFullModalContent)}\n ${modalBody}\n </div>\n </div>\n </div>\n </div>\n `\n }\n\n const renderModalContent = (useFullModalContent: boolean) => {\n if (!useFullModalContent) return ''\n\n return `\n <div class=\"tfr-modal-title-logo-container\">\n <div tfr-element=\"true\" class=\"trf-logo-title tfr-title-font tfr-light-24-300 tfr-c-black tfr-mr-10\">${L.ModalTagline}</div>\n <div tfr-element=\"true\" class=\"tfr-logo-container\">\n <div class=\"tfr-mr-15\">\n <svg width=\"26\" height=\"47\" viewBox=\"0 0 68 124\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0.911938 0L67.4819 17.09V106.49L0.911938 123.51V0Z\" fill=\"#209DA7\">\n </path>\n <path d=\"M52.8019 64.44C54.7791 64.44 56.3819 62.4387 56.3819 59.97C56.3819 57.5013 54.7791 55.5 52.8019 55.5C50.8248 55.5 49.2219 57.5013 49.2219 59.97C49.2219 62.4387 50.8248 64.44 52.8019 64.44Z\" fill=\"white\">\n </path>\n </svg>\n </div>\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-24-500 tfr-c-black tfr-mr-10\">${L.TheFittingRoom}</div>\n </div>\n </div>\n `\n }\n\n const Open = (content: ModalContent) => {\n body.style.overflow = 'hidden'\n if (previousContent) {\n previousContent.Unhook()\n }\n modalRoot.innerHTML = renderBody(content.Body(), content.useFullModalContent)\n hook()\n content.Hook()\n modalRoot.style.display = 'block'\n previousContent = content\n }\n\n const Close = () => {\n body.style.overflow = 'auto'\n if (previousContent) {\n previousContent.Unhook()\n unhook()\n }\n modalRoot.style.display = 'none'\n }\n\n const EscClose = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n Close()\n }\n }\n\n const ContainerClose = (e: MouseEvent) => {\n const background = modalRoot.querySelector('#tfr-modal-background')\n if (e.target === background) {\n console.debug('container close')\n Close()\n }\n }\n\n const hook = () => {\n modalRoot.querySelector('#tfr-close-container').addEventListener('click', Close)\n document.addEventListener('keydown', EscClose)\n document.addEventListener('click', ContainerClose)\n }\n\n const unhook = () => {\n const closeLink = modalRoot.querySelector('#tfr-close-container')\n if (closeLink) {\n closeLink.removeEventListener('click', Close)\n } else {\n console.error('#tfr-close-container not found on unhook')\n console.debug(document.getElementById(elementID)?.innerHTML)\n }\n document.removeEventListener('keydown', EscClose)\n document.removeEventListener('click', ContainerClose)\n }\n\n const Content = () => {\n return previousContent\n }\n\n return {\n open: Open,\n close: Close,\n Content,\n }\n}\n\nexport { InitModalManager, ModalManager }\n"]}
@@ -1,19 +0,0 @@
1
- import { L } from '../locale';
2
- const NoAvatarModal = () => {
3
- const Hook = () => void 0;
4
- const Unhook = () => void 0;
5
- const Body = () => {
6
- return `
7
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-60">${L.DontHaveAvatar}</div>
8
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-c-black tfr-mb-60">${L.ReturnToTfr}</div>
9
- `;
10
- };
11
- return {
12
- Body,
13
- Hook,
14
- Unhook,
15
- useFullModalContent: true,
16
- };
17
- };
18
- export default NoAvatarModal;
19
- //# sourceMappingURL=NoAvatarModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoAvatarModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/NoAvatarModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,aAAa,GAAG,GAAiB,EAAE;IACvC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;gGACqF,CAAC,CAAC,cAAc;gGAChB,CAAC,CAAC,WAAW;KACxG,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA","sourcesContent":["import { ModalContent } from '../../types'\nimport { L } from '../locale'\n\nconst NoAvatarModal = (): ModalContent => {\n const Hook = () => void 0\n const Unhook = () => void 0\n const Body = () => {\n return `\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-60\">${L.DontHaveAvatar}</div>\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-c-black tfr-mb-60\">${L.ReturnToTfr}</div>\n `\n }\n\n return {\n Body,\n Hook,\n Unhook,\n useFullModalContent: true,\n }\n}\n\nexport default NoAvatarModal\n"]}
@@ -1,31 +0,0 @@
1
- import { L } from '../locale';
2
- const ResetLinkModal = (props) => {
3
- const { email } = props;
4
- const onNavSignIn = () => {
5
- props.onNavSignIn(email || '');
6
- };
7
- const Hook = () => {
8
- var _a;
9
- (_a = document.getElementById('tfr-back-to-signin')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', onNavSignIn);
10
- };
11
- const Unhook = () => {
12
- var _a;
13
- (_a = document.getElementById('tfr-back-to-signin')) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', onNavSignIn);
14
- };
15
- const Body = () => {
16
- return `
17
- <div tfr-element="true" class="tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-15-p tfr-mb-13-p tfr-w-80-p tfr-m-h-auto">${L.AssociatedEmail}</div>
18
- <div class="tfr-t-a-center">
19
- <span id="tfr-back-to-signin" tfr-element="true" class="tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20">${L.BackToSignIn}</span>
20
- </div>
21
- `;
22
- };
23
- return {
24
- Hook,
25
- Unhook,
26
- Body,
27
- useFullModalContent: true,
28
- };
29
- };
30
- export default ResetLinkModal;
31
- //# sourceMappingURL=ResetLinkModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResetLinkModal.js","sourceRoot":"","sources":["../../../../src/components/Modals/ResetLinkModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAE7B,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAgB,EAAE;IAClE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEvB,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;;QAChB,MAAA,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACvF,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;;QAClB,MAAA,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,0CAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC1F,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO;kIACuH,CAAC,CAAC,eAAe;;kJAED,CAAC,CAAC,YAAY;;KAE3J,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,mBAAmB,EAAE,IAAI;KAC1B,CAAA;AACH,CAAC,CAAA;AACD,eAAe,cAAc,CAAA","sourcesContent":["import { ModalContent, ResetLinkModalProps } from '../../types'\nimport { L } from '../locale'\n\nconst ResetLinkModal = (props: ResetLinkModalProps): ModalContent => {\n const { email } = props\n\n const onNavSignIn = () => {\n props.onNavSignIn(email || '')\n }\n\n const Hook = () => {\n document.getElementById('tfr-back-to-signin')?.addEventListener('click', onNavSignIn)\n }\n\n const Unhook = () => {\n document.getElementById('tfr-back-to-signin')?.removeEventListener('click', onNavSignIn)\n }\n\n const Body = () => {\n return `\n <div tfr-element=\"true\" class=\"tfr-title-font tfr-light-22-300 tfr-c-black tfr-mt-15-p tfr-mb-13-p tfr-w-80-p tfr-m-h-auto\">${L.AssociatedEmail}</div>\n <div class=\"tfr-t-a-center\">\n <span id=\"tfr-back-to-signin\" tfr-element=\"true\" class=\"tfr-body-font tfr-16-default tfr-c-black-o5 tfr-underline tfr-cursor tfr-mr-20\">${L.BackToSignIn}</span>\n </div>\n `\n }\n\n return {\n Hook,\n Unhook,\n Body,\n useFullModalContent: true,\n }\n}\nexport default ResetLinkModal\n"]}