@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.
- package/LICENSE +21 -0
- package/README.md +81 -0
- package/dist/cjs/index-0a139db0.js +1667 -0
- package/dist/cjs/index-0a139db0.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +24 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/modal-header_10.cjs.entry.js +12313 -0
- package/dist/cjs/modal-header_10.cjs.entry.js.map +1 -0
- package/dist/cjs/tinting.cjs.js +28 -0
- package/dist/cjs/tinting.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +21 -0
- package/dist/collection/components/api/index.js +23 -0
- package/dist/collection/components/api/index.js.map +1 -0
- package/dist/collection/components/api/services.js +96 -0
- package/dist/collection/components/api/services.js.map +1 -0
- package/dist/collection/components/backdrop/index.css +14 -0
- package/dist/collection/components/backdrop/index.js +17 -0
- package/dist/collection/components/backdrop/index.js.map +1 -0
- package/dist/collection/components/colorbox/index.css +53 -0
- package/dist/collection/components/colorbox/index.js +182 -0
- package/dist/collection/components/colorbox/index.js.map +1 -0
- package/dist/collection/components/colorinfo/index.js +239 -0
- package/dist/collection/components/colorinfo/index.js.map +1 -0
- package/dist/collection/components/component/index.css +6 -0
- package/dist/collection/components/component/index.js +220 -0
- package/dist/collection/components/component/index.js.map +1 -0
- package/dist/collection/components/header/assets/close.png +0 -0
- package/dist/collection/components/header/index.css +180 -0
- package/dist/collection/components/header/index.js +334 -0
- package/dist/collection/components/header/index.js.map +1 -0
- package/dist/collection/components/loader/index.css +85 -0
- package/dist/collection/components/loader/index.js +19 -0
- package/dist/collection/components/loader/index.js.map +1 -0
- package/dist/collection/components/modal/__mocks__/index.js +759 -0
- package/dist/collection/components/modal/__mocks__/index.js.map +1 -0
- package/dist/collection/components/modal/assets/arrow_down.png +0 -0
- package/dist/collection/components/modal/index.css +386 -0
- package/dist/collection/components/modal/index.js +646 -0
- package/dist/collection/components/modal/index.js.map +1 -0
- package/dist/collection/components/search/assets/search.svg +15 -0
- package/dist/collection/components/search/index.css +38 -0
- package/dist/collection/components/search/index.js +178 -0
- package/dist/collection/components/search/index.js.map +1 -0
- package/dist/collection/components/select/assets/chevron-down.webp +0 -0
- package/dist/collection/components/select/assets/chevron.png +0 -0
- package/dist/collection/components/select/index.css +77 -0
- package/dist/collection/components/select/index.js +231 -0
- package/dist/collection/components/select/index.js.map +1 -0
- package/dist/collection/components/slider/index.css +89 -0
- package/dist/collection/components/slider/index.js +145 -0
- package/dist/collection/components/slider/index.js.map +1 -0
- package/dist/collection/gtmUtils.js +4 -0
- package/dist/collection/gtmUtils.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/types.js +2 -0
- package/dist/collection/types.js.map +1 -0
- package/dist/collection/utils/index.js +12 -0
- package/dist/collection/utils/index.js.map +1 -0
- package/dist/components/gtmUtils.js +7 -0
- package/dist/components/gtmUtils.js.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index10.js +31 -0
- package/dist/components/index10.js.map +1 -0
- package/dist/components/index11.js +3949 -0
- package/dist/components/index11.js.map +1 -0
- package/dist/components/index2.js +2726 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +87 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/index4.js +121 -0
- package/dist/components/index4.js.map +1 -0
- package/dist/components/index5.js +26 -0
- package/dist/components/index5.js.map +1 -0
- package/dist/components/index6.js +31 -0
- package/dist/components/index6.js.map +1 -0
- package/dist/components/index7.js +75 -0
- package/dist/components/index7.js.map +1 -0
- package/dist/components/index8.js +87 -0
- package/dist/components/index8.js.map +1 -0
- package/dist/components/index9.js +5306 -0
- package/dist/components/index9.js.map +1 -0
- package/dist/components/modal-header.d.ts +11 -0
- package/dist/components/modal-header.js +8 -0
- package/dist/components/modal-header.js.map +1 -0
- package/dist/components/my-backdrop.d.ts +11 -0
- package/dist/components/my-backdrop.js +8 -0
- package/dist/components/my-backdrop.js.map +1 -0
- package/dist/components/my-colorbox.d.ts +11 -0
- package/dist/components/my-colorbox.js +8 -0
- package/dist/components/my-colorbox.js.map +1 -0
- package/dist/components/my-colorinfo.d.ts +11 -0
- package/dist/components/my-colorinfo.js +8 -0
- package/dist/components/my-colorinfo.js.map +1 -0
- package/dist/components/my-component.d.ts +11 -0
- package/dist/components/my-component.js +254 -0
- package/dist/components/my-component.js.map +1 -0
- package/dist/components/my-loader.d.ts +11 -0
- package/dist/components/my-loader.js +8 -0
- package/dist/components/my-loader.js.map +1 -0
- package/dist/components/my-modal.d.ts +11 -0
- package/dist/components/my-modal.js +8 -0
- package/dist/components/my-modal.js.map +1 -0
- package/dist/components/my-search.d.ts +11 -0
- package/dist/components/my-search.js +8 -0
- package/dist/components/my-search.js.map +1 -0
- package/dist/components/my-select.d.ts +11 -0
- package/dist/components/my-select.js +8 -0
- package/dist/components/my-select.js.map +1 -0
- package/dist/components/my-slider.d.ts +11 -0
- package/dist/components/my-slider.js +8 -0
- package/dist/components/my-slider.js.map +1 -0
- package/dist/esm/index-f3be6531.js +1638 -0
- package/dist/esm/index-f3be6531.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +20 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/modal-header_10.entry.js +12300 -0
- package/dist/esm/modal-header_10.entry.js.map +1 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/css-shim.js +1 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm/tinting.js +23 -0
- package/dist/esm/tinting.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/tinting/assets/arrow_down.png +0 -0
- package/dist/tinting/assets/chevron-down.webp +0 -0
- package/dist/tinting/assets/chevron.png +0 -0
- package/dist/tinting/assets/close.png +0 -0
- package/dist/tinting/assets/search.svg +15 -0
- package/dist/tinting/index.esm.js +2 -0
- package/dist/tinting/index.esm.js.map +1 -0
- package/dist/tinting/p-06cd865b.entry.js +15 -0
- package/dist/tinting/p-06cd865b.entry.js.map +1 -0
- package/dist/tinting/p-b135c76f.js +3 -0
- package/dist/tinting/p-b135c76f.js.map +1 -0
- package/dist/tinting/tinting.css +1 -0
- package/dist/tinting/tinting.esm.js +2 -0
- package/dist/tinting/tinting.esm.js.map +1 -0
- package/dist/types/components/api/index.d.ts +7 -0
- package/dist/types/components/api/services.d.ts +9 -0
- package/dist/types/components/backdrop/index.d.ts +3 -0
- package/dist/types/components/colorbox/index.d.ts +15 -0
- package/dist/types/components/colorinfo/index.d.ts +19 -0
- package/dist/types/components/component/index.d.ts +18 -0
- package/dist/types/components/header/index.d.ts +35 -0
- package/dist/types/components/loader/index.d.ts +3 -0
- package/dist/types/components/modal/__mocks__/index.d.ts +415 -0
- package/dist/types/components/modal/index.d.ts +77 -0
- package/dist/types/components/search/index.d.ts +15 -0
- package/dist/types/components/select/index.d.ts +31 -0
- package/dist/types/components/slider/index.d.ts +15 -0
- package/dist/types/components.d.ts +289 -0
- package/dist/types/gtmUtils.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +1637 -0
- package/dist/types/types.d.ts +68 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/loader/cdn.js +3 -0
- package/loader/index.cjs.js +3 -0
- package/loader/index.d.ts +21 -0
- package/loader/index.es2017.js +3 -0
- package/loader/index.js +4 -0
- package/loader/package.json +11 -0
- package/package.json +69 -0
- package/www/build/assets/arrow_down.png +0 -0
- package/www/build/assets/chevron-down.webp +0 -0
- package/www/build/assets/chevron.png +0 -0
- package/www/build/assets/close.png +0 -0
- package/www/build/assets/fonts/Galatea-Regular.eot +0 -0
- package/www/build/assets/fonts/Galatea-Regular.ttf +0 -0
- package/www/build/assets/fonts/Galatea-Regular.woff +0 -0
- package/www/build/assets/fonts/Galatea-Regular.woff2 +0 -0
- package/www/build/assets/search.svg +15 -0
- package/www/build/index.esm.js +2 -0
- package/www/build/index.esm.js.map +1 -0
- package/www/build/p-06cd865b.entry.js +15 -0
- package/www/build/p-06cd865b.entry.js.map +1 -0
- package/www/build/p-a4907f5e.css +4 -0
- package/www/build/p-b135c76f.js +3 -0
- package/www/build/p-b135c76f.js.map +1 -0
- package/www/build/p-e2322b6c.js +163 -0
- package/www/build/tinting.css +1 -0
- package/www/build/tinting.esm.js +2 -0
- package/www/build/tinting.esm.js.map +1 -0
- package/www/build/tinting.js +33 -0
- package/www/host.config.json +15 -0
- 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}
|