@ppg_pl/tinting 0.0.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 (197) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/index-0a139db0.js +1667 -0
  4. package/dist/cjs/index-0a139db0.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +4 -0
  6. package/dist/cjs/index.cjs.js.map +1 -0
  7. package/dist/cjs/loader.cjs.js +24 -0
  8. package/dist/cjs/loader.cjs.js.map +1 -0
  9. package/dist/cjs/modal-header_10.cjs.entry.js +12313 -0
  10. package/dist/cjs/modal-header_10.cjs.entry.js.map +1 -0
  11. package/dist/cjs/tinting.cjs.js +28 -0
  12. package/dist/cjs/tinting.cjs.js.map +1 -0
  13. package/dist/collection/collection-manifest.json +21 -0
  14. package/dist/collection/components/api/index.js +23 -0
  15. package/dist/collection/components/api/index.js.map +1 -0
  16. package/dist/collection/components/api/services.js +96 -0
  17. package/dist/collection/components/api/services.js.map +1 -0
  18. package/dist/collection/components/backdrop/index.css +14 -0
  19. package/dist/collection/components/backdrop/index.js +17 -0
  20. package/dist/collection/components/backdrop/index.js.map +1 -0
  21. package/dist/collection/components/colorbox/index.css +53 -0
  22. package/dist/collection/components/colorbox/index.js +182 -0
  23. package/dist/collection/components/colorbox/index.js.map +1 -0
  24. package/dist/collection/components/colorinfo/index.js +239 -0
  25. package/dist/collection/components/colorinfo/index.js.map +1 -0
  26. package/dist/collection/components/component/index.css +6 -0
  27. package/dist/collection/components/component/index.js +220 -0
  28. package/dist/collection/components/component/index.js.map +1 -0
  29. package/dist/collection/components/header/assets/close.png +0 -0
  30. package/dist/collection/components/header/index.css +180 -0
  31. package/dist/collection/components/header/index.js +334 -0
  32. package/dist/collection/components/header/index.js.map +1 -0
  33. package/dist/collection/components/loader/index.css +85 -0
  34. package/dist/collection/components/loader/index.js +19 -0
  35. package/dist/collection/components/loader/index.js.map +1 -0
  36. package/dist/collection/components/modal/__mocks__/index.js +759 -0
  37. package/dist/collection/components/modal/__mocks__/index.js.map +1 -0
  38. package/dist/collection/components/modal/assets/arrow_down.png +0 -0
  39. package/dist/collection/components/modal/index.css +386 -0
  40. package/dist/collection/components/modal/index.js +646 -0
  41. package/dist/collection/components/modal/index.js.map +1 -0
  42. package/dist/collection/components/search/assets/search.svg +15 -0
  43. package/dist/collection/components/search/index.css +38 -0
  44. package/dist/collection/components/search/index.js +178 -0
  45. package/dist/collection/components/search/index.js.map +1 -0
  46. package/dist/collection/components/select/assets/chevron-down.webp +0 -0
  47. package/dist/collection/components/select/assets/chevron.png +0 -0
  48. package/dist/collection/components/select/index.css +77 -0
  49. package/dist/collection/components/select/index.js +231 -0
  50. package/dist/collection/components/select/index.js.map +1 -0
  51. package/dist/collection/components/slider/index.css +89 -0
  52. package/dist/collection/components/slider/index.js +145 -0
  53. package/dist/collection/components/slider/index.js.map +1 -0
  54. package/dist/collection/gtmUtils.js +4 -0
  55. package/dist/collection/gtmUtils.js.map +1 -0
  56. package/dist/collection/index.js +2 -0
  57. package/dist/collection/index.js.map +1 -0
  58. package/dist/collection/types.js +2 -0
  59. package/dist/collection/types.js.map +1 -0
  60. package/dist/collection/utils/index.js +12 -0
  61. package/dist/collection/utils/index.js.map +1 -0
  62. package/dist/components/gtmUtils.js +7 -0
  63. package/dist/components/gtmUtils.js.map +1 -0
  64. package/dist/components/index.d.ts +27 -0
  65. package/dist/components/index.js +3 -0
  66. package/dist/components/index.js.map +1 -0
  67. package/dist/components/index10.js +31 -0
  68. package/dist/components/index10.js.map +1 -0
  69. package/dist/components/index11.js +3949 -0
  70. package/dist/components/index11.js.map +1 -0
  71. package/dist/components/index2.js +2726 -0
  72. package/dist/components/index2.js.map +1 -0
  73. package/dist/components/index3.js +87 -0
  74. package/dist/components/index3.js.map +1 -0
  75. package/dist/components/index4.js +121 -0
  76. package/dist/components/index4.js.map +1 -0
  77. package/dist/components/index5.js +26 -0
  78. package/dist/components/index5.js.map +1 -0
  79. package/dist/components/index6.js +31 -0
  80. package/dist/components/index6.js.map +1 -0
  81. package/dist/components/index7.js +75 -0
  82. package/dist/components/index7.js.map +1 -0
  83. package/dist/components/index8.js +87 -0
  84. package/dist/components/index8.js.map +1 -0
  85. package/dist/components/index9.js +5306 -0
  86. package/dist/components/index9.js.map +1 -0
  87. package/dist/components/modal-header.d.ts +11 -0
  88. package/dist/components/modal-header.js +8 -0
  89. package/dist/components/modal-header.js.map +1 -0
  90. package/dist/components/my-backdrop.d.ts +11 -0
  91. package/dist/components/my-backdrop.js +8 -0
  92. package/dist/components/my-backdrop.js.map +1 -0
  93. package/dist/components/my-colorbox.d.ts +11 -0
  94. package/dist/components/my-colorbox.js +8 -0
  95. package/dist/components/my-colorbox.js.map +1 -0
  96. package/dist/components/my-colorinfo.d.ts +11 -0
  97. package/dist/components/my-colorinfo.js +8 -0
  98. package/dist/components/my-colorinfo.js.map +1 -0
  99. package/dist/components/my-component.d.ts +11 -0
  100. package/dist/components/my-component.js +254 -0
  101. package/dist/components/my-component.js.map +1 -0
  102. package/dist/components/my-loader.d.ts +11 -0
  103. package/dist/components/my-loader.js +8 -0
  104. package/dist/components/my-loader.js.map +1 -0
  105. package/dist/components/my-modal.d.ts +11 -0
  106. package/dist/components/my-modal.js +8 -0
  107. package/dist/components/my-modal.js.map +1 -0
  108. package/dist/components/my-search.d.ts +11 -0
  109. package/dist/components/my-search.js +8 -0
  110. package/dist/components/my-search.js.map +1 -0
  111. package/dist/components/my-select.d.ts +11 -0
  112. package/dist/components/my-select.js +8 -0
  113. package/dist/components/my-select.js.map +1 -0
  114. package/dist/components/my-slider.d.ts +11 -0
  115. package/dist/components/my-slider.js +8 -0
  116. package/dist/components/my-slider.js.map +1 -0
  117. package/dist/esm/index-f3be6531.js +1638 -0
  118. package/dist/esm/index-f3be6531.js.map +1 -0
  119. package/dist/esm/index.js +3 -0
  120. package/dist/esm/index.js.map +1 -0
  121. package/dist/esm/loader.js +20 -0
  122. package/dist/esm/loader.js.map +1 -0
  123. package/dist/esm/modal-header_10.entry.js +12300 -0
  124. package/dist/esm/modal-header_10.entry.js.map +1 -0
  125. package/dist/esm/polyfills/core-js.js +11 -0
  126. package/dist/esm/polyfills/css-shim.js +1 -0
  127. package/dist/esm/polyfills/dom.js +79 -0
  128. package/dist/esm/polyfills/es5-html-element.js +1 -0
  129. package/dist/esm/polyfills/index.js +34 -0
  130. package/dist/esm/polyfills/system.js +6 -0
  131. package/dist/esm/tinting.js +23 -0
  132. package/dist/esm/tinting.js.map +1 -0
  133. package/dist/index.cjs.js +1 -0
  134. package/dist/index.js +1 -0
  135. package/dist/tinting/assets/arrow_down.png +0 -0
  136. package/dist/tinting/assets/chevron-down.webp +0 -0
  137. package/dist/tinting/assets/chevron.png +0 -0
  138. package/dist/tinting/assets/close.png +0 -0
  139. package/dist/tinting/assets/search.svg +15 -0
  140. package/dist/tinting/index.esm.js +2 -0
  141. package/dist/tinting/index.esm.js.map +1 -0
  142. package/dist/tinting/p-06cd865b.entry.js +15 -0
  143. package/dist/tinting/p-06cd865b.entry.js.map +1 -0
  144. package/dist/tinting/p-b135c76f.js +3 -0
  145. package/dist/tinting/p-b135c76f.js.map +1 -0
  146. package/dist/tinting/tinting.css +1 -0
  147. package/dist/tinting/tinting.esm.js +2 -0
  148. package/dist/tinting/tinting.esm.js.map +1 -0
  149. package/dist/types/components/api/index.d.ts +7 -0
  150. package/dist/types/components/api/services.d.ts +9 -0
  151. package/dist/types/components/backdrop/index.d.ts +3 -0
  152. package/dist/types/components/colorbox/index.d.ts +15 -0
  153. package/dist/types/components/colorinfo/index.d.ts +19 -0
  154. package/dist/types/components/component/index.d.ts +18 -0
  155. package/dist/types/components/header/index.d.ts +35 -0
  156. package/dist/types/components/loader/index.d.ts +3 -0
  157. package/dist/types/components/modal/__mocks__/index.d.ts +415 -0
  158. package/dist/types/components/modal/index.d.ts +77 -0
  159. package/dist/types/components/search/index.d.ts +15 -0
  160. package/dist/types/components/select/index.d.ts +31 -0
  161. package/dist/types/components/slider/index.d.ts +15 -0
  162. package/dist/types/components.d.ts +289 -0
  163. package/dist/types/gtmUtils.d.ts +1 -0
  164. package/dist/types/index.d.ts +1 -0
  165. package/dist/types/stencil-public-runtime.d.ts +1637 -0
  166. package/dist/types/types.d.ts +68 -0
  167. package/dist/types/utils/index.d.ts +1 -0
  168. package/loader/cdn.js +3 -0
  169. package/loader/index.cjs.js +3 -0
  170. package/loader/index.d.ts +21 -0
  171. package/loader/index.es2017.js +3 -0
  172. package/loader/index.js +4 -0
  173. package/loader/package.json +11 -0
  174. package/package.json +69 -0
  175. package/www/build/assets/arrow_down.png +0 -0
  176. package/www/build/assets/chevron-down.webp +0 -0
  177. package/www/build/assets/chevron.png +0 -0
  178. package/www/build/assets/close.png +0 -0
  179. package/www/build/assets/fonts/Galatea-Regular.eot +0 -0
  180. package/www/build/assets/fonts/Galatea-Regular.ttf +0 -0
  181. package/www/build/assets/fonts/Galatea-Regular.woff +0 -0
  182. package/www/build/assets/fonts/Galatea-Regular.woff2 +0 -0
  183. package/www/build/assets/search.svg +15 -0
  184. package/www/build/index.esm.js +2 -0
  185. package/www/build/index.esm.js.map +1 -0
  186. package/www/build/p-06cd865b.entry.js +15 -0
  187. package/www/build/p-06cd865b.entry.js.map +1 -0
  188. package/www/build/p-a4907f5e.css +4 -0
  189. package/www/build/p-b135c76f.js +3 -0
  190. package/www/build/p-b135c76f.js.map +1 -0
  191. package/www/build/p-e2322b6c.js +163 -0
  192. package/www/build/tinting.css +1 -0
  193. package/www/build/tinting.esm.js +2 -0
  194. package/www/build/tinting.esm.js.map +1 -0
  195. package/www/build/tinting.js +33 -0
  196. package/www/host.config.json +15 -0
  197. package/www/index.html +31 -0
@@ -0,0 +1,121 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, getAssetPath } from '@stencil/core/internal/client';
2
+
3
+ function debounce(func, wait) {
4
+ let timeout;
5
+ return function executedFunction(...args) {
6
+ const later = () => {
7
+ clearTimeout(timeout);
8
+ func(...args);
9
+ };
10
+ clearTimeout(timeout);
11
+ timeout = setTimeout(later, wait);
12
+ };
13
+ }
14
+
15
+ const indexCss = "@import url(\"https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1.sc-my-select,300..900&family=Poppins.sc-my-select:ital,wght@0.sc-my-select,100.sc-my-select;0.sc-my-select,200.sc-my-select;0.sc-my-select,300.sc-my-select;0.sc-my-select,400.sc-my-select;0.sc-my-select,500.sc-my-select;0.sc-my-select,600.sc-my-select;0.sc-my-select,700.sc-my-select;0.sc-my-select,800.sc-my-select;0.sc-my-select,900.sc-my-select;1.sc-my-select,100.sc-my-select;1.sc-my-select,200.sc-my-select;1.sc-my-select,300.sc-my-select;1.sc-my-select,400.sc-my-select;1.sc-my-select,500.sc-my-select;1.sc-my-select,600.sc-my-select;1.sc-my-select,700.sc-my-select;1.sc-my-select,800.sc-my-select;1.sc-my-select,900&display=swap\").sc-my-select; .tinting-wrapper.sc-my-select *.sc-my-select{font-family:\"Poppins\", sans-serif}.select.sc-my-select{position:relative;width:300px}@media (max-width: 768px){.select.sc-my-select{width:100%}}.select.sc-my-select .input-wrapper.sc-my-select{position:relative;display:flex;align-items:flex-start}.select.sc-my-select input.sc-my-select{font-size:16px;padding:16px;border-radius:27.35px;border:1px solid #dfdfdf;width:100%;color:#4c4c4c;box-sizing:border-box;padding-right:50px}.select.sc-my-select button.sc-my-select{position:absolute;right:10px;background:transparent;border:none;cursor:pointer;width:40px;height:100%;display:flex;align-items:center;justify-content:center}.select.sc-my-select button.sc-my-select img.sc-my-select{transition:transform 0.3s ease}.select.sc-my-select button.sc-my-select img.rotated.sc-my-select{transform:rotate(180deg)}.select.sc-my-select .dropdown.sc-my-select{position:absolute;top:100%;left:0;width:100%;background:white;border:1px solid #dfdfdf;border-radius:5px;max-height:200px;overflow-y:auto;z-index:1000;padding:0;margin:0}.select.sc-my-select .dropdown.sc-my-select li.sc-my-select{padding:0;margin:0;padding:10px;cursor:pointer;list-style:none;text-align:left}.select.sc-my-select .dropdown.sc-my-select li.sc-my-select:hover{background:#f5f5f5}.select.sc-my-select .dropdown.sc-my-select .no-results.sc-my-select{padding:10px;text-align:center;color:#999}";
16
+
17
+ const MySelect = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
18
+ constructor() {
19
+ super();
20
+ this.__registerHost();
21
+ this.onReset = createEvent(this, "onReset", 7);
22
+ this.selectValue = createEvent(this, "selectValue", 7);
23
+ this.inputValueChange = createEvent(this, "inputValueChange", 7);
24
+ this.defaultOption = { name: this.placeholder, id: null };
25
+ this.debouncedSearch = debounce((value) => {
26
+ const optionsWithDefault = [this.defaultOption, ...this.options];
27
+ this.filteredOptions = optionsWithDefault.filter(option => option.name.toLowerCase().includes(value.toLowerCase()));
28
+ this.inputValueChange.emit(value);
29
+ }, 300);
30
+ this.handleClickOutside = (event) => {
31
+ if (!this.el.contains(event.target)) {
32
+ this.showDropdown = false;
33
+ }
34
+ };
35
+ this.options = [];
36
+ this.placeholder = 'Select an option';
37
+ this.isMobile = false;
38
+ this.searchIcon = 'chevron.png';
39
+ this.searchText = '';
40
+ this.filteredOptions = [];
41
+ this.showDropdown = false;
42
+ this.selectedValue = null;
43
+ }
44
+ reset() {
45
+ this.onReset.emit();
46
+ }
47
+ componentWillLoad() {
48
+ this.filteredOptions = [this.defaultOption, ...this.options];
49
+ }
50
+ componentDidLoad() {
51
+ document.addEventListener('click', this.handleClickOutside);
52
+ }
53
+ disconnectedCallback() {
54
+ document.removeEventListener('click', this.handleClickOutside);
55
+ }
56
+ handleInput(event) {
57
+ const value = event.target.value;
58
+ this.searchText = value;
59
+ this.showDropdown = true;
60
+ this.debouncedSearch(value);
61
+ }
62
+ selectOption(option) {
63
+ if (option.value === null) {
64
+ this.selectedValue = null;
65
+ this.searchText = '';
66
+ this.reset();
67
+ }
68
+ else {
69
+ this.selectedValue = option.key;
70
+ this.searchText = option.key;
71
+ this.selectValue.emit(option);
72
+ }
73
+ this.showDropdown = false;
74
+ }
75
+ toggleDropdown() {
76
+ this.showDropdown = !this.showDropdown;
77
+ }
78
+ updateOptions(newOptions) {
79
+ this.filteredOptions = [this.defaultOption, ...newOptions];
80
+ }
81
+ clearSearchTextHandler() {
82
+ this.searchText = '';
83
+ this.selectedValue = null;
84
+ this.reset();
85
+ }
86
+ render() {
87
+ return (h("div", { class: "select" }, h("div", { class: "input-wrapper" }, h("input", { type: "text", placeholder: this.placeholder, value: this.searchText, onInput: this.handleInput.bind(this), onFocus: () => (this.showDropdown = true) }), h("button", { onClick: () => this.toggleDropdown() }, h("img", { src: getAssetPath(`./assets/${this.searchIcon}`), alt: "dropdown icon", class: this.showDropdown ? 'rotated' : '' }))), this.showDropdown && (h("ul", { class: "dropdown" }, this.filteredOptions.length > 0 ? (this.filteredOptions.map(option => (h("li", { class: option.id === null ? 'default-option' : '', onClick: () => this.selectOption({ key: option.name, value: option.id }) }, option.name)))) : (h("li", { class: "no-results" }, "No results found"))))));
88
+ }
89
+ static get assetsDirs() { return ["assets"]; }
90
+ get el() { return this; }
91
+ static get watchers() { return {
92
+ "options": ["updateOptions"]
93
+ }; }
94
+ static get style() { return indexCss; }
95
+ }, [2, "my-select", {
96
+ "options": [16],
97
+ "placeholder": [1],
98
+ "isMobile": [4, "is-mobile"],
99
+ "searchIcon": [1, "search-icon"],
100
+ "searchText": [32],
101
+ "filteredOptions": [32],
102
+ "showDropdown": [32],
103
+ "selectedValue": [32]
104
+ }, [[4, "clearSearchText", "clearSearchTextHandler"]]]);
105
+ function defineCustomElement() {
106
+ if (typeof customElements === "undefined") {
107
+ return;
108
+ }
109
+ const components = ["my-select"];
110
+ components.forEach(tagName => { switch (tagName) {
111
+ case "my-select":
112
+ if (!customElements.get(tagName)) {
113
+ customElements.define(tagName, MySelect);
114
+ }
115
+ break;
116
+ } });
117
+ }
118
+
119
+ export { MySelect as M, debounce as a, defineCustomElement as d };
120
+
121
+ //# sourceMappingURL=index4.js.map
@@ -0,0 +1 @@
1
+ {"file":"index4.js","mappings":"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","names":[],"sources":["./src/utils/index.ts","./src/components/select/index.scss?tag=my-select&encapsulation=scoped","./src/components/select/index.tsx"],"sourcesContent":["export function debounce(func: (...args: any[]) => void, wait: number) {\n let timeout: ReturnType<typeof setTimeout>;\n\n return function executedFunction(...args: any[]) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n","@import '../../global/app.scss';\n\n.select {\n position: relative;\n width: 300px;\n\n @media (max-width: $small) {\n width: 100%;\n }\n\n .input-wrapper {\n position: relative;\n display: flex;\n align-items: flex-start;\n }\n\n input {\n font-size: 16px;\n padding: 16px;\n border-radius: 27.35px;\n border: 1px solid #dfdfdf;\n width: 100%;\n color: #4c4c4c;\n box-sizing: border-box;\n padding-right: 50px;\n }\n\n button {\n position: absolute;\n right: 10px;\n background: transparent;\n border: none;\n cursor: pointer;\n width: 40px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n transition: transform 0.3s ease;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n }\n\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background: white;\n border: 1px solid #dfdfdf;\n border-radius: 5px;\n max-height: 200px;\n overflow-y: auto;\n z-index: 1000;\n padding: 0;\n margin: 0;\n\n li {\n padding: 0;\n margin: 0;\n padding: 10px;\n cursor: pointer;\n list-style: none;\n text-align: left;\n &:hover {\n background: #f5f5f5;\n }\n }\n\n .no-results {\n padding: 10px;\n text-align: center;\n color: #999;\n }\n }\n}\n","import { Component, Prop, h, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\nimport { getAssetPath } from '@stencil/core';\nimport { debounce } from '../../utils';\n\n@Component({\n tag: 'my-select',\n styleUrl: 'index.scss',\n assetsDirs: ['assets'],\n scoped: true,\n})\nexport class MySelect {\n @Element() el: HTMLElement;\n\n @Prop() options: any[] = []; // List of selectable options\n @Prop() placeholder: string = 'Select an option'; // Placeholder text\n @Prop() isMobile: boolean = false;\n @Prop() searchIcon: string = 'chevron.png'; // Search icon asset\n\n @State() searchText: string = '';\n @State() filteredOptions: any[] = [];\n @State() showDropdown: boolean = false;\n @State() selectedValue: string | null = null;\n @Event() onReset: EventEmitter<void>;\n @Event() selectValue: EventEmitter<{ key: string; value: number | null }>; // Emits selected value\n @Event() inputValueChange: EventEmitter<string>; // Emits input changes for filtering\n\n private defaultOption = { name: this.placeholder, id: null };\n\n private debouncedSearch = debounce((value: string) => {\n const optionsWithDefault = [this.defaultOption, ...this.options];\n this.filteredOptions = optionsWithDefault.filter(option => option.name.toLowerCase().includes(value.toLowerCase()));\n this.inputValueChange.emit(value);\n }, 300);\n\n private reset() {\n this.onReset.emit();\n }\n\n componentWillLoad() {\n this.filteredOptions = [this.defaultOption, ...this.options];\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n if (!this.el.contains(event.target as Node)) {\n this.showDropdown = false;\n }\n };\n\n private handleInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchText = value;\n this.showDropdown = true;\n this.debouncedSearch(value);\n }\n\n private selectOption(option: { key: string; value: number | null }) {\n if (option.value === null) {\n this.selectedValue = null;\n this.searchText = '';\n this.reset();\n } else {\n this.selectedValue = option.key;\n this.searchText = option.key;\n this.selectValue.emit(option);\n }\n this.showDropdown = false;\n }\n\n private toggleDropdown() {\n this.showDropdown = !this.showDropdown;\n }\n\n @Watch('options')\n updateOptions(newOptions: any[]) {\n this.filteredOptions = [this.defaultOption, ...newOptions];\n }\n\n @Listen('clearSearchText', { target: 'document' })\n clearSearchTextHandler() {\n this.searchText = '';\n this.selectedValue = null;\n this.reset();\n }\n\n render() {\n return (\n <div class=\"select\">\n <div class=\"input-wrapper\">\n <input type=\"text\" placeholder={this.placeholder} value={this.searchText} onInput={this.handleInput.bind(this)} onFocus={() => (this.showDropdown = true)} />\n <button onClick={() => this.toggleDropdown()}>\n <img src={getAssetPath(`./assets/${this.searchIcon}`)} alt=\"dropdown icon\" class={this.showDropdown ? 'rotated' : ''} />\n </button>\n </div>\n\n {this.showDropdown && (\n <ul class=\"dropdown\">\n {this.filteredOptions.length > 0 ? (\n this.filteredOptions.map(option => (\n <li class={option.id === null ? 'default-option' : ''} onClick={() => this.selectOption({ key: option.name, value: option.id })}>\n {option.name}\n </li>\n ))\n ) : (\n <li class=\"no-results\">No results found</li>\n )}\n </ul>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,26 @@
1
+ const APIURL = 'https://color-selector.pl/tinting'; // 'https://color-selector.pl/tinting'; // 'http://localhost:8056'; //'https://pallete-colors-backend.herokuapp.com';
2
+ const accessToken = 'f3_Pwse3EwxFKucDNtPBq-6iBB30L6Gv'; //'jVle5YFcJQmyVhYPVBg_V7gg1qS920Pu'; // 'f3_Pwse3EwxFKucDNtPBq-6iBB30L6Gv';
3
+ class API {
4
+ async getData(ep) {
5
+ try {
6
+ const request = await fetch(`${APIURL}/${ep}`, {
7
+ method: 'GET',
8
+ headers: {
9
+ 'Authorization': `Bearer ${accessToken}`,
10
+ 'Content-Type': 'application/json',
11
+ },
12
+ // mode: 'no-cors',
13
+ });
14
+ const response = await request.json();
15
+ return response;
16
+ }
17
+ catch (error) {
18
+ console.error(error);
19
+ }
20
+ }
21
+ }
22
+ const ApiService = new API();
23
+
24
+ export { ApiService as A, APIURL as a, accessToken as b };
25
+
26
+ //# sourceMappingURL=index5.js.map
@@ -0,0 +1 @@
1
+ {"file":"index5.js","mappings":"MAAa,MAAM,GAAG,oCAAoC;MAC7C,WAAW,GAAG,mCAAmC;AAC9D,MAAM,GAAG;EACP,MAAM,OAAO,CAAC,EAAU;IACtB,IAAI;MACF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,EAAE;QAC7C,MAAM,EAAE,KAAK;QAEb,OAAO,EAAE;UACP,eAAe,EAAE,UAAU,WAAW,EAAE;UACxC,cAAc,EAAE,kBAAkB;SACnC;;OAEF,CAAC,CAAC;MAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;MAEtC,OAAO,QAAQ,CAAC;KACjB;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;GACF;CACF;MAEY,UAAU,GAAG,IAAI,GAAG;;;;","names":[],"sources":["./src/components/api/index.ts"],"sourcesContent":["export const APIURL = 'https://color-selector.pl/tinting'; // 'https://color-selector.pl/tinting'; // 'http://localhost:8056'; //'https://pallete-colors-backend.herokuapp.com';\nexport const accessToken = 'f3_Pwse3EwxFKucDNtPBq-6iBB30L6Gv'; //'jVle5YFcJQmyVhYPVBg_V7gg1qS920Pu'; // 'f3_Pwse3EwxFKucDNtPBq-6iBB30L6Gv';\nclass API {\n async getData(ep: string) {\n try {\n const request = await fetch(`${APIURL}/${ep}`, {\n method: 'GET',\n\n headers: {\n 'Authorization': `Bearer ${accessToken}`,\n 'Content-Type': 'application/json',\n },\n // mode: 'no-cors',\n });\n\n const response = await request.json();\n\n return response;\n } catch (error) {\n console.error(error);\n }\n }\n}\n\nexport const ApiService = new API();\n"],"version":3}
@@ -0,0 +1,31 @@
1
+ import { proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
2
+
3
+ const indexCss = "@import url(\"https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap\"); .tinting-wrapper *{font-family:\"Poppins\", sans-serif}my-backdrop{width:100%;height:100%;background-color:rgba(0, 0, 0, 0.7);position:fixed;z-index:100;left:0;top:0}";
4
+
5
+ const MyBackdrop = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ }
10
+ render() {
11
+ return null;
12
+ }
13
+ static get style() { return indexCss; }
14
+ }, [0, "my-backdrop"]);
15
+ function defineCustomElement() {
16
+ if (typeof customElements === "undefined") {
17
+ return;
18
+ }
19
+ const components = ["my-backdrop"];
20
+ components.forEach(tagName => { switch (tagName) {
21
+ case "my-backdrop":
22
+ if (!customElements.get(tagName)) {
23
+ customElements.define(tagName, MyBackdrop);
24
+ }
25
+ break;
26
+ } });
27
+ }
28
+
29
+ export { MyBackdrop as M, defineCustomElement as d };
30
+
31
+ //# sourceMappingURL=index6.js.map
@@ -0,0 +1 @@
1
+ {"file":"index6.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,6ZAA6Z;;MCMja,UAAU;;;;;EACrB,MAAM;IACJ,OAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/backdrop/index.scss?tag=my-backdrop","./src/components/backdrop/index.tsx"],"sourcesContent":["@import '../../global/app.scss';\n\nmy-backdrop {\n width: 100%;\n height: 100%;\n background-color: $backdrop_black;\n position: fixed;\n z-index: 100;\n left: 0;\n top: 0;\n}\n","import { Component } from '@stencil/core';\n\n@Component({\n tag: 'my-backdrop',\n styleUrl: 'index.scss',\n})\nexport class MyBackdrop {\n render() {\n return null;\n }\n}\n"],"version":3}
@@ -0,0 +1,75 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { s as setDataLayer } from './gtmUtils.js';
3
+ import { a as APIURL, b as accessToken } from './index5.js';
4
+
5
+ const indexCss = "@import url(\"https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap\"); .tinting-wrapper *{font-family:\"Poppins\", sans-serif}.my-color-box{width:125px;height:125px;display:block;margin-bottom:5px;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;position:relative}@media (max-width: 1024px){.my-color-box{width:65px;height:65px}}.my-color-box .color-name{width:100%;background-color:#fff;padding:15px 0px 10px;border-top-left-radius:15px;border-top-right-radius:15px;opacity:0;transition:0.3s opacity ease-in-out;font-size:10px;color:#232323;text-transform:lowercase}.my-color-box.active .color-name{opacity:1}.my-color-box.categoryactive{width:120px;height:115px}.my-color-box.categoryactive .color-name{opacity:1}@media (max-width: 1024px){.my-color-box.categoryactive{width:72px;height:72px}}.my-color-box:hover .color-name{opacity:1}";
6
+
7
+ const MyColorBox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
8
+ constructor() {
9
+ super();
10
+ this.__registerHost();
11
+ this.colorCheck = () => {
12
+ this.checkTimeout = setTimeout(() => {
13
+ setDataLayer({
14
+ event: 'ColorCheck',
15
+ shop: this.shop,
16
+ product: this.product,
17
+ color: this.name,
18
+ });
19
+ }, 2000);
20
+ };
21
+ this.colorUnCheck = () => {
22
+ if (this.checkTimeout)
23
+ clearTimeout(this.checkTimeout);
24
+ this.checkTimeout = undefined;
25
+ };
26
+ this.darkenColor = (color) => {
27
+ const red = parseInt(color[1] + color[2], 16) - 20;
28
+ const green = parseInt(color[3] + color[4], 16) - 20;
29
+ const blue = parseInt(color[5] + color[6], 16) - 20;
30
+ return `rgb(${red},${green},${blue})`;
31
+ };
32
+ this.color = undefined;
33
+ this.name = undefined;
34
+ this.shop = undefined;
35
+ this.product = undefined;
36
+ this.isActive = undefined;
37
+ this.isCategoryActive = undefined;
38
+ this.isImageInsteadHex = undefined;
39
+ }
40
+ render() {
41
+ var _a, _b, _c;
42
+ return (h("div", { onMouseEnter: () => this.colorCheck(), onMouseLeave: () => this.colorUnCheck(), class: `my-color-box ${this.isActive ? 'active' : ''} ${this.isCategoryActive ? 'categoryactive' : ''}`, style: {
43
+ backgroundSize: ((_a = this.isImageInsteadHex) === null || _a === void 0 ? void 0 : _a.isImageInsteadHex) ? 'cover' : '',
44
+ backgroundImage: ((_b = this.isImageInsteadHex) === null || _b === void 0 ? void 0 : _b.isImageInsteadHex) ? `url(${APIURL}/assets/${this.isImageInsteadHex.bigImage}?access_token=${accessToken})` : '',
45
+ background: ((_c = this.isImageInsteadHex) === null || _c === void 0 ? void 0 : _c.isImageInsteadHex) ? this.isImageInsteadHex.bigImage : this.color,
46
+ border: this.isCategoryActive ? `5px solid ${this.darkenColor(this.color)}` : '',
47
+ } }, h("div", { class: "color-name" }, this.name)));
48
+ }
49
+ static get style() { return indexCss; }
50
+ }, [0, "my-colorbox", {
51
+ "color": [1],
52
+ "name": [1],
53
+ "shop": [1],
54
+ "product": [1],
55
+ "isActive": [4, "is-active"],
56
+ "isCategoryActive": [4, "is-category-active"],
57
+ "isImageInsteadHex": [16]
58
+ }]);
59
+ function defineCustomElement() {
60
+ if (typeof customElements === "undefined") {
61
+ return;
62
+ }
63
+ const components = ["my-colorbox"];
64
+ components.forEach(tagName => { switch (tagName) {
65
+ case "my-colorbox":
66
+ if (!customElements.get(tagName)) {
67
+ customElements.define(tagName, MyColorBox);
68
+ }
69
+ break;
70
+ } });
71
+ }
72
+
73
+ export { MyColorBox as M, defineCustomElement as d };
74
+
75
+ //# sourceMappingURL=index7.js.map
@@ -0,0 +1 @@
1
+ {"file":"index7.js","mappings":";;;;AAAA,MAAM,QAAQ,GAAG,+gCAA+gC;;MCSnhC,UAAU;;;;IAWrB,eAAU,GAAG;MACX,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC7B,YAAY,CAAC;UACX,KAAK,EAAE,YAAY;UACnB,IAAI,EAAE,IAAI,CAAC,IAAI;UACf,OAAO,EAAE,IAAI,CAAC,OAAO;UACrB,KAAK,EAAE,IAAI,CAAC,IAAI;SACjB,CAAC,CAAC;OACJ,EAAE,IAAI,CAAC,CAAC;KACV,CAAC;IAEF,iBAAY,GAAG;MACb,IAAI,IAAI,CAAC,YAAY;QAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MACvD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;KAC/B,CAAC;IAEF,gBAAW,GAAG,CAAC,KAAa;MAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;MACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;MACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;MACpD,OAAO,OAAO,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC;KACvC,CAAC;;;;;;;;;EAEF,MAAM;;IACJ,QACE,WACE,YAAY,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,EACrC,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EACvC,KAAK,EAAE,gBAAgB,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,EAAE,EAAE,EACvG,KAAK,EAAE;QACL,cAAc,EAAE,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,IAAG,OAAO,GAAG,EAAE;QACxE,eAAe,EAAE,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,IAAG,OAAO,MAAM,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,iBAAiB,WAAW,GAAG,GAAG,EAAE;QACxJ,UAAU,EAAE,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,IAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;QACpG,MAAM,EAAE,IAAI,CAAC,gBAAgB,GAAG,aAAa,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;OACjF,IAED,WAAK,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,IAAI,CAAO,CACrC,EACN;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/colorbox/index.scss?tag=my-colorbox","./src/components/colorbox/index.tsx"],"sourcesContent":["@import '../../global/app.scss';\n\n.my-color-box {\n width: 125px;\n height: 125px;\n display: block;\n margin-bottom: 5px;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n position: relative;\n\n @media (max-width: $medium) {\n width: 65px;\n height: 65px;\n }\n .color-name {\n width: 100%;\n background-color: $white;\n padding: 15px 0px 10px;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n opacity: 0;\n transition: 0.3s opacity ease-in-out;\n font-size: 10px;\n color: $black;\n text-transform: lowercase;\n }\n &.active {\n .color-name {\n opacity: 1;\n }\n }\n\n &.categoryactive {\n width: 120px;\n height: 115px;\n .color-name {\n opacity: 1;\n }\n\n @media (max-width: $medium) {\n width: 72px;\n height: 72px;\n }\n }\n &:hover {\n .color-name {\n opacity: 1;\n }\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { setDataLayer } from '../../gtmUtils';\nimport { ColorBoxyIsImageInsteadHex } from '../../types';\nimport { APIURL, accessToken } from '../api';\n\n@Component({\n tag: 'my-colorbox',\n styleUrl: 'index.scss',\n})\nexport class MyColorBox {\n private checkTimeout: ReturnType<typeof setTimeout> | undefined;\n\n @Prop() color: string;\n @Prop() name: string;\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() isActive?: boolean;\n @Prop() isCategoryActive?: boolean;\n @Prop() isImageInsteadHex?: ColorBoxyIsImageInsteadHex;\n\n colorCheck = () => {\n this.checkTimeout = setTimeout(() => {\n setDataLayer({\n event: 'ColorCheck',\n shop: this.shop,\n product: this.product,\n color: this.name,\n });\n }, 2000);\n };\n\n colorUnCheck = () => {\n if (this.checkTimeout) clearTimeout(this.checkTimeout);\n this.checkTimeout = undefined;\n };\n\n darkenColor = (color: string) => {\n const red = parseInt(color[1] + color[2], 16) - 20;\n const green = parseInt(color[3] + color[4], 16) - 20;\n const blue = parseInt(color[5] + color[6], 16) - 20;\n return `rgb(${red},${green},${blue})`;\n };\n\n render() {\n return (\n <div\n onMouseEnter={() => this.colorCheck()}\n onMouseLeave={() => this.colorUnCheck()}\n class={`my-color-box ${this.isActive ? 'active' : ''} ${this.isCategoryActive ? 'categoryactive' : ''}`}\n style={{\n backgroundSize: this.isImageInsteadHex?.isImageInsteadHex ? 'cover' : '',\n backgroundImage: this.isImageInsteadHex?.isImageInsteadHex ? `url(${APIURL}/assets/${this.isImageInsteadHex.bigImage}?access_token=${accessToken})` : '',\n background: this.isImageInsteadHex?.isImageInsteadHex ? this.isImageInsteadHex.bigImage : this.color,\n border: this.isCategoryActive ? `5px solid ${this.darkenColor(this.color)}` : '',\n }}\n >\n <div class=\"color-name\">{this.name}</div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,87 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, getAssetPath } from '@stencil/core/internal/client';
2
+ import { s as setDataLayer } from './gtmUtils.js';
3
+ import { a as APIURL, b as accessToken } from './index5.js';
4
+ import { d as defineCustomElement$1 } from './index9.js';
5
+
6
+ const MyColorInfo = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.onCurrentColor = createEvent(this, "onCurrentColor", 7);
11
+ this.closeInfoBox = createEvent(this, "closeInfoBox", 7);
12
+ this.goToProduct = () => {
13
+ var _a;
14
+ this.onCurrentColor.emit(this.currentColor);
15
+ this.currentColor &&
16
+ setDataLayer({
17
+ event: 'GoToProduct',
18
+ shop: this.shop,
19
+ product: this.product,
20
+ color: (_a = this.currentColor) === null || _a === void 0 ? void 0 : _a.name,
21
+ });
22
+ this.closeInfoBox.emit();
23
+ };
24
+ this.onCloseButtonClick = () => {
25
+ this.closeInfoBox.emit();
26
+ };
27
+ this.renderSliderOrImage = () => {
28
+ var _a;
29
+ if (this.currentColor.imageInsteadHex) {
30
+ return h("img", { class: 'color-big-image', src: `${APIURL}/assets/${this.currentColor.bigImage}?access_token=${accessToken}`, alt: "color-image" });
31
+ }
32
+ else {
33
+ return h("my-slider", { color: this.currentColor.name, shop: this.shop, product: this.product, slides: (_a = this.data) === null || _a === void 0 ? void 0 : _a.images });
34
+ }
35
+ };
36
+ this.capitalizeFirstLetter = (string) => {
37
+ return string.charAt(0).toUpperCase() + string.slice(1).toLocaleLowerCase();
38
+ };
39
+ this.currentColor = undefined;
40
+ this.shop = undefined;
41
+ this.product = undefined;
42
+ this.baselink = undefined;
43
+ this.data = null;
44
+ this.isMobile = false;
45
+ this.infoBoxWidth = undefined;
46
+ this.closeImage = 'close.png';
47
+ }
48
+ render() {
49
+ return (h("div", { class: `boxes__box-content ${this.currentColor.textWhite ? 'boxes__box-content__white' : ''}`, style: {
50
+ background: this.currentColor.imageInsteadHex ? 'white' : this.currentColor.hex,
51
+ maxWidth: `${this.infoBoxWidth && this.infoBoxWidth - 4}px`,
52
+ } }, this.isMobile && h("img", { class: 'closebtn', onClick: this.onCloseButtonClick, src: getAssetPath(`./assets/${this.closeImage}`), alt: "closebtn" }), h("div", { class: "boxes__box-content__info", style: {
53
+ maxWidth: this.isMobile ? `${this.infoBoxWidth && this.infoBoxWidth - 35}px` : ``,
54
+ } }, !this.isMobile && h("img", { class: 'closebtn', onClick: this.onCloseButtonClick, src: getAssetPath(`./assets/${this.closeImage}`), alt: "closebtn" }), h("h2", null, this.currentColor.name), !this.isMobile && h("h4", null, this.currentColor.number), h("div", { class: "boxes__box-content__info__value" }, h("div", { class: "boxes__box-content__info__value-product" }, this.isMobile && h("div", { class: 'divider' }), this.currentColor && (h("button", { onClick: this.goToProduct, class: `button ${this.currentColor.imageInsteadHex ? 'brown' : this.currentColor.buttonInverse ? 'inverse' : ''}` }, "wybierz kolor"))))), h("div", { class: "boxes__box-content__slider" }, this.renderSliderOrImage())));
55
+ }
56
+ }, [0, "my-colorinfo", {
57
+ "currentColor": [16],
58
+ "shop": [1],
59
+ "product": [1],
60
+ "baselink": [1],
61
+ "data": [16],
62
+ "isMobile": [4, "is-mobile"],
63
+ "infoBoxWidth": [2, "info-box-width"],
64
+ "closeImage": [1, "close-image"]
65
+ }]);
66
+ function defineCustomElement() {
67
+ if (typeof customElements === "undefined") {
68
+ return;
69
+ }
70
+ const components = ["my-colorinfo", "my-slider"];
71
+ components.forEach(tagName => { switch (tagName) {
72
+ case "my-colorinfo":
73
+ if (!customElements.get(tagName)) {
74
+ customElements.define(tagName, MyColorInfo);
75
+ }
76
+ break;
77
+ case "my-slider":
78
+ if (!customElements.get(tagName)) {
79
+ defineCustomElement$1();
80
+ }
81
+ break;
82
+ } });
83
+ }
84
+
85
+ export { MyColorInfo as M, defineCustomElement as d };
86
+
87
+ //# sourceMappingURL=index8.js.map
@@ -0,0 +1 @@
1
+ {"file":"index8.js","mappings":"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","names":[],"sources":["./src/components/colorinfo/index.tsx"],"sourcesContent":["import { Component, Prop, h, getAssetPath, Event, EventEmitter } from '@stencil/core';\nimport { setDataLayer } from '../../gtmUtils';\nimport { Color, Product } from '../../types';\nimport { APIURL, accessToken } from '../api';\n\n@Component({\n tag: 'my-colorinfo',\n})\nexport class MyColorInfo {\n @Prop() currentColor: Color;\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() baselink: string;\n @Prop() data: Product | null = null;\n @Prop() isMobile: boolean = false;\n @Prop() infoBoxWidth: number | null;\n @Prop() closeImage = 'close.png';\n @Event({ bubbles: true, composed: true }) onCurrentColor: EventEmitter<Color>;\n\n @Event() closeInfoBox: EventEmitter;\n\n goToProduct = () => {\n this.onCurrentColor.emit(this.currentColor);\n this.currentColor &&\n setDataLayer({\n event: 'GoToProduct',\n shop: this.shop,\n product: this.product,\n color: this.currentColor?.name,\n });\n\n this.closeInfoBox.emit();\n };\n\n onCloseButtonClick = () => {\n this.closeInfoBox.emit();\n };\n\n renderSliderOrImage = () => {\n if (this.currentColor.imageInsteadHex) {\n return <img class={'color-big-image'} src={`${APIURL}/assets/${this.currentColor.bigImage}?access_token=${accessToken}`} alt=\"color-image\" />;\n } else {\n return <my-slider color={this.currentColor.name} shop={this.shop} product={this.product} slides={this.data?.images}></my-slider>;\n }\n };\n\n capitalizeFirstLetter = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1).toLocaleLowerCase();\n };\n\n render() {\n return (\n <div\n class={`boxes__box-content ${this.currentColor.textWhite ? 'boxes__box-content__white' : ''}`}\n style={{\n background: this.currentColor.imageInsteadHex ? 'white' : this.currentColor.hex,\n maxWidth: `${this.infoBoxWidth && this.infoBoxWidth - 4}px`,\n }}\n >\n {this.isMobile && <img class={'closebtn'} onClick={this.onCloseButtonClick} src={getAssetPath(`./assets/${this.closeImage}`)} alt=\"closebtn\" />}\n <div\n class=\"boxes__box-content__info\"\n style={{\n maxWidth: this.isMobile ? `${this.infoBoxWidth && this.infoBoxWidth - 35}px` : ``,\n }}\n >\n {!this.isMobile && <img class={'closebtn'} onClick={this.onCloseButtonClick} src={getAssetPath(`./assets/${this.closeImage}`)} alt=\"closebtn\" />}\n <h2>{this.currentColor.name}</h2>\n {!this.isMobile && <h4>{this.currentColor.number}</h4>}\n\n <div class=\"boxes__box-content__info__value\">\n {/* <div class=\"boxes__box-content__info__value-image\">\n {this.currentColor?.image! && <img src={`${APIURL}/assets/${this.currentColor.image}?access_token=${accessToken}`} alt=\"color-image\" />}\n </div> */}\n <div class=\"boxes__box-content__info__value-product\">\n {/* <div>\n {!this.isMobile && <p>Produkt:</p>}\n {this.isMobile && <h2>{this.currentColor?.name}</h2>} <p>{this.product}</p>\n </div> */}\n\n {this.isMobile && <div class={'divider'}></div>}\n {this.currentColor && (\n <button onClick={this.goToProduct} class={`button ${this.currentColor.imageInsteadHex ? 'brown' : this.currentColor.buttonInverse ? 'inverse' : ''}`}>\n wybierz kolor\n </button>\n )}\n </div>\n </div>\n </div>\n <div class=\"boxes__box-content__slider\">{this.renderSliderOrImage()}</div>\n </div>\n );\n }\n}\n"],"version":3}