@zanichelli/albe-web-components 17.0.3 → 17.0.4
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/CHANGELOG.md +2 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/web-components-library.cjs.js +1 -1
- package/dist/cjs/z-anchor-navigation.cjs.entry.js +1 -1
- package/dist/cjs/z-anchor-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/z-app-header_12.cjs.entry.js +12 -13
- package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
- package/dist/cjs/z-date-picker.cjs.entry.js +5 -3
- package/dist/cjs/z-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/z-pagination.cjs.entry.js +1 -1
- package/dist/cjs/z-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/z-select.cjs.entry.js +27 -35
- package/dist/cjs/z-select.cjs.entry.js.map +1 -1
- package/dist/collection/components/date-picker/z-date-picker/index.js +41 -3
- package/dist/collection/components/date-picker/z-date-picker/index.js.map +1 -1
- package/dist/collection/components/date-picker/z-date-picker/index.stories.js +17 -5
- package/dist/collection/components/date-picker/z-date-picker/index.stories.js.map +1 -1
- package/dist/collection/components/z-anchor-navigation/index.stories.js +16 -4
- package/dist/collection/components/z-anchor-navigation/index.stories.js.map +1 -1
- package/dist/collection/components/z-anchor-navigation/styles.css +7 -4
- package/dist/collection/components/z-input/index.js +9 -11
- package/dist/collection/components/z-input/index.js.map +1 -1
- package/dist/collection/components/z-input/index.stories.js +21 -21
- package/dist/collection/components/z-input/index.stories.js.map +1 -1
- package/dist/collection/components/z-input/styles.css +97 -75
- package/dist/collection/components/z-input-message/index.js +19 -1
- package/dist/collection/components/z-input-message/index.js.map +1 -1
- package/dist/collection/components/z-input-message/styles.css +9 -4
- package/dist/collection/components/z-pagination/styles.css +7 -11
- package/dist/collection/components/z-select/index.js +27 -35
- package/dist/collection/components/z-select/index.js.map +1 -1
- package/dist/collection/components/z-select/styles.css +18 -17
- package/dist/components/index11.js +10 -12
- package/dist/components/index11.js.map +1 -1
- package/dist/components/index12.js +4 -2
- package/dist/components/index12.js.map +1 -1
- package/dist/components/utils.js +1 -1
- package/dist/components/z-anchor-navigation.js +1 -1
- package/dist/components/z-anchor-navigation.js.map +1 -1
- package/dist/components/z-date-picker.js +7 -3
- package/dist/components/z-date-picker.js.map +1 -1
- package/dist/components/z-pagination.js +1 -1
- package/dist/components/z-pagination.js.map +1 -1
- package/dist/components/z-select.js +28 -36
- package/dist/components/z-select.js.map +1 -1
- package/dist/components/z-skip-to-content.js +1 -1
- package/dist/esm/{index-8df19678.js → index-092fc7cc.js} +2 -2
- package/dist/esm/{index-8df19678.js.map → index-092fc7cc.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{utils-ed82ce58.js → utils-b924649f.js} +2 -2
- package/dist/esm/{utils-ed82ce58.js.map → utils-b924649f.js.map} +1 -1
- package/dist/esm/web-components-library.js +1 -1
- package/dist/esm/z-anchor-navigation.entry.js +1 -1
- package/dist/esm/z-anchor-navigation.entry.js.map +1 -1
- package/dist/esm/z-app-header_12.entry.js +13 -14
- package/dist/esm/z-app-header_12.entry.js.map +1 -1
- package/dist/esm/z-book-card-deprecated.entry.js +1 -1
- package/dist/esm/z-breadcrumb.entry.js +1 -1
- package/dist/esm/z-combobox.entry.js +1 -1
- package/dist/esm/z-date-picker.entry.js +5 -3
- package/dist/esm/z-date-picker.entry.js.map +1 -1
- package/dist/esm/z-menu.entry.js +1 -1
- package/dist/esm/z-myz-card-info.entry.js +1 -1
- package/dist/esm/z-myz-list-item.entry.js +1 -1
- package/dist/esm/z-pagination.entry.js +1 -1
- package/dist/esm/z-pagination.entry.js.map +1 -1
- package/dist/esm/z-select.entry.js +28 -36
- package/dist/esm/z-select.entry.js.map +1 -1
- package/dist/esm/z-skip-to-content.entry.js +1 -1
- package/dist/esm/z-slideshow.entry.js +1 -1
- package/dist/esm/z-table.entry.js +2 -2
- package/dist/esm/z-toggle-switch.entry.js +1 -1
- package/dist/esm/z-tr.entry.js +2 -2
- package/dist/types/components/date-picker/z-date-picker/index.d.ts +4 -0
- package/dist/types/components/z-input-message/index.d.ts +2 -0
- package/dist/types/components/z-select/index.d.ts +1 -1
- package/dist/types/components.d.ts +24 -0
- package/dist/web-components-library/index.esm.js +1 -1
- package/{www/build/p-caccf490.entry.js → dist/web-components-library/p-22e32e11.entry.js} +2 -2
- package/{www/build/p-caccf490.entry.js.map → dist/web-components-library/p-22e32e11.entry.js.map} +1 -1
- package/{www/build/p-20b628e7.entry.js → dist/web-components-library/p-2fa0042e.entry.js} +2 -2
- package/dist/web-components-library/{p-107c2635.entry.js → p-4a3fedbf.entry.js} +2 -2
- package/dist/web-components-library/p-4a3fedbf.entry.js.map +1 -0
- package/dist/web-components-library/{p-4fedcbc2.entry.js → p-5387e6f3.entry.js} +2 -2
- package/dist/web-components-library/{p-0565f1b2.entry.js → p-758333dc.entry.js} +2 -2
- package/{www/build/p-605f6780.entry.js → dist/web-components-library/p-7af33b00.entry.js} +2 -2
- package/{www/build/p-b309bd71.entry.js → dist/web-components-library/p-7f370d17.entry.js} +2 -2
- package/dist/web-components-library/{p-65f1b68b.entry.js → p-9c4b7a51.entry.js} +2 -2
- package/dist/web-components-library/{p-037c59b3.js → p-bba6129f.js} +2 -2
- package/dist/web-components-library/{p-cc8186a9.entry.js → p-bd571858.entry.js} +2 -2
- package/dist/web-components-library/p-c29a520b.entry.js +2 -0
- package/{www/build/p-34f4f441.entry.js.map → dist/web-components-library/p-c29a520b.entry.js.map} +1 -1
- package/dist/web-components-library/p-ce0d5448.entry.js +2 -0
- package/dist/web-components-library/p-ce0d5448.entry.js.map +1 -0
- package/dist/web-components-library/{p-9f0a3d88.entry.js → p-cf7b7e73.entry.js} +2 -2
- package/dist/web-components-library/p-d1cca5ea.entry.js +2 -0
- package/dist/web-components-library/p-d1cca5ea.entry.js.map +1 -0
- package/dist/web-components-library/p-d6a2b1c6.entry.js +2 -0
- package/dist/web-components-library/p-d6a2b1c6.entry.js.map +1 -0
- package/dist/web-components-library/p-e185545c.entry.js +2 -0
- package/dist/web-components-library/{p-10607a39.js → p-e691c0b8.js} +2 -2
- package/{www/build/p-3bf02cab.entry.js → dist/web-components-library/p-e78353d6.entry.js} +2 -2
- package/dist/web-components-library/web-components-library.css +125 -72
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/dist/web-components-library/web-components-library.esm.js.map +1 -1
- package/package.json +1 -1
- package/www/build/index.esm.js +1 -1
- package/www/build/p-01994cd6.js +2 -0
- package/{dist/web-components-library/p-caccf490.entry.js → www/build/p-22e32e11.entry.js} +2 -2
- package/{dist/web-components-library/p-caccf490.entry.js.map → www/build/p-22e32e11.entry.js.map} +1 -1
- package/{dist/web-components-library/p-20b628e7.entry.js → www/build/p-2fa0042e.entry.js} +2 -2
- package/www/build/{p-107c2635.entry.js → p-4a3fedbf.entry.js} +2 -2
- package/www/build/p-4a3fedbf.entry.js.map +1 -0
- package/www/build/{p-4fedcbc2.entry.js → p-5387e6f3.entry.js} +2 -2
- package/www/build/{p-0565f1b2.entry.js → p-758333dc.entry.js} +2 -2
- package/{dist/web-components-library/p-605f6780.entry.js → www/build/p-7af33b00.entry.js} +2 -2
- package/{dist/web-components-library/p-b309bd71.entry.js → www/build/p-7f370d17.entry.js} +2 -2
- package/www/build/{p-65f1b68b.entry.js → p-9c4b7a51.entry.js} +2 -2
- package/www/build/{p-4c358c38.css → p-a35437c8.css} +125 -72
- package/www/build/{p-037c59b3.js → p-bba6129f.js} +2 -2
- package/www/build/{p-cc8186a9.entry.js → p-bd571858.entry.js} +2 -2
- package/www/build/p-c29a520b.entry.js +2 -0
- package/{dist/web-components-library/p-34f4f441.entry.js.map → www/build/p-c29a520b.entry.js.map} +1 -1
- package/www/build/p-ce0d5448.entry.js +2 -0
- package/www/build/p-ce0d5448.entry.js.map +1 -0
- package/www/build/{p-9f0a3d88.entry.js → p-cf7b7e73.entry.js} +2 -2
- package/www/build/p-d1cca5ea.entry.js +2 -0
- package/www/build/p-d1cca5ea.entry.js.map +1 -0
- package/www/build/p-d6a2b1c6.entry.js +2 -0
- package/www/build/p-d6a2b1c6.entry.js.map +1 -0
- package/www/build/p-e185545c.entry.js +2 -0
- package/www/build/{p-10607a39.js → p-e691c0b8.js} +2 -2
- package/{dist/web-components-library/p-3bf02cab.entry.js → www/build/p-e78353d6.entry.js} +2 -2
- package/www/build/web-components-library.css +125 -72
- package/www/build/web-components-library.esm.js +1 -1
- package/www/build/web-components-library.esm.js.map +1 -1
- package/www/index.html +1 -1
- package/dist/web-components-library/p-107c2635.entry.js.map +0 -1
- package/dist/web-components-library/p-34f4f441.entry.js +0 -2
- package/dist/web-components-library/p-38e8c15d.entry.js +0 -2
- package/dist/web-components-library/p-38e8c15d.entry.js.map +0 -1
- package/dist/web-components-library/p-972098a5.entry.js +0 -2
- package/dist/web-components-library/p-972098a5.entry.js.map +0 -1
- package/dist/web-components-library/p-a90027c2.entry.js +0 -2
- package/dist/web-components-library/p-a90027c2.entry.js.map +0 -1
- package/dist/web-components-library/p-deb86b5c.entry.js +0 -2
- package/www/build/p-107c2635.entry.js.map +0 -1
- package/www/build/p-34f4f441.entry.js +0 -2
- package/www/build/p-38e8c15d.entry.js +0 -2
- package/www/build/p-38e8c15d.entry.js.map +0 -1
- package/www/build/p-972098a5.entry.js +0 -2
- package/www/build/p-972098a5.entry.js.map +0 -1
- package/www/build/p-a90027c2.entry.js +0 -2
- package/www/build/p-a90027c2.entry.js.map +0 -1
- package/www/build/p-b8da5b69.js +0 -2
- package/www/build/p-deb86b5c.entry.js +0 -2
- /package/dist/web-components-library/{p-20b628e7.entry.js.map → p-2fa0042e.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-4fedcbc2.entry.js.map → p-5387e6f3.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-0565f1b2.entry.js.map → p-758333dc.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-605f6780.entry.js.map → p-7af33b00.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-b309bd71.entry.js.map → p-7f370d17.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-65f1b68b.entry.js.map → p-9c4b7a51.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-037c59b3.js.map → p-bba6129f.js.map} +0 -0
- /package/dist/web-components-library/{p-cc8186a9.entry.js.map → p-bd571858.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-9f0a3d88.entry.js.map → p-cf7b7e73.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-deb86b5c.entry.js.map → p-e185545c.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-10607a39.js.map → p-e691c0b8.js.map} +0 -0
- /package/dist/web-components-library/{p-3bf02cab.entry.js.map → p-e78353d6.entry.js.map} +0 -0
- /package/www/build/{p-20b628e7.entry.js.map → p-2fa0042e.entry.js.map} +0 -0
- /package/www/build/{p-4fedcbc2.entry.js.map → p-5387e6f3.entry.js.map} +0 -0
- /package/www/build/{p-0565f1b2.entry.js.map → p-758333dc.entry.js.map} +0 -0
- /package/www/build/{p-605f6780.entry.js.map → p-7af33b00.entry.js.map} +0 -0
- /package/www/build/{p-b309bd71.entry.js.map → p-7f370d17.entry.js.map} +0 -0
- /package/www/build/{p-65f1b68b.entry.js.map → p-9c4b7a51.entry.js.map} +0 -0
- /package/www/build/{p-037c59b3.js.map → p-bba6129f.js.map} +0 -0
- /package/www/build/{p-cc8186a9.entry.js.map → p-bd571858.entry.js.map} +0 -0
- /package/www/build/{p-9f0a3d88.entry.js.map → p-cf7b7e73.entry.js.map} +0 -0
- /package/www/build/{p-deb86b5c.entry.js.map → p-e185545c.entry.js.map} +0 -0
- /package/www/build/{p-10607a39.js.map → p-e691c0b8.js.map} +0 -0
- /package/www/build/{p-3bf02cab.entry.js.map → p-e78353d6.entry.js.map} +0 -0
|
@@ -7,7 +7,7 @@ const index$1 = require('./index-f5ebcaa2.js');
|
|
|
7
7
|
const utils = require('./utils-d08d4b80.js');
|
|
8
8
|
require('./breakpoints-8a1e87e0.js');
|
|
9
9
|
|
|
10
|
-
const stylesCss = ".sc-z-select-h{display:inline-block;width:inherit;color:var(--color-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg)}[size=\"small\"].sc-z-select-h,[size=\"x-small\"].sc-z-select-h{font-size:var(--font-size-2)}.select-wrapper.sc-z-select>z-input.sc-z-select{width:100%}.select-wrapper.sc-z-select>div.sc-z-select{position:relative}.select-wrapper.sc-z-select>div.closed.sc-z-select{overflow:hidden;height:0}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select{position:absolute;width:100%;box-sizing:border-box;
|
|
10
|
+
const stylesCss = ".sc-z-select-h{display:inline-block;width:inherit;color:var(--color-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg)}[size=\"small\"].sc-z-select-h,[size=\"x-small\"].sc-z-select-h{font-size:var(--font-size-2)}.select-wrapper.sc-z-select>z-input.sc-z-select{width:100%}.select-wrapper.sc-z-select>z-input.sc-z-select .input-icon.sc-z-select{cursor:pointer}.select-wrapper.sc-z-select>div.sc-z-select{position:relative}.select-wrapper.sc-z-select>div.closed.sc-z-select{overflow:hidden;height:0}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select{position:absolute;width:100%;box-sizing:border-box;border-top:none;background:var(--color-form-background);box-shadow:var(--shadow-2);outline:none}.select-wrapper.sc-z-select .closed.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:10}.select-wrapper.sc-z-select .open.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:20}.select-wrapper.sc-z-select .ul-scroll-wrapper.fixed.sc-z-select{position:static}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select{position:relative;overflow:auto;max-height:240px;padding:0 calc(var(--space-unit) * 1.5);outline:none;scrollbar-color:var(--color-primary01) transparent}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select::-webkit-scrollbar{width:10px;background:linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);border-radius:var(--border-radius)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select::-webkit-scrollbar-track{background-color:transparent}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select::-webkit-scrollbar-thumb{width:10px;background-color:var(--color-primary01);border-radius:var(--border-radius)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element[disabled].sc-z-select{color:var(--color-form-disabled03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select{display:flex;align-items:center;padding:calc(var(--space-unit) / 2) var(--space-unit);column-gap:var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{margin-right:auto}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:calc(var(--space-unit) * 0.5) var(--space-unit)}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{padding:0}[size=\"small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:16px;--z-icon-height:16px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:14px;--z-icon-height:14px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:0 var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.selected.sc-z-select{font-weight:var(--font-sb)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select .no-results.sc-z-select z-icon.sc-z-select{margin-right:var(--space-unit)}.z-list-group-title.sc-z-select{color:var(--color-default-text)}.reset-item.sc-z-select{color:var(--color-primary01);fill:var(--color-primary01-icon)}.reset-item-content.sc-z-select{display:flex;align-items:center}.reset-item.reset-item-margin.sc-z-select .reset-item-content.sc-z-select{margin-left:var(--space-unit)}.reset-item.sc-z-select .reset-item-content.sc-z-select>z-icon.sc-z-select{margin-right:var(--space-unit)}.reset-item.hide.sc-z-select{display:none}";
|
|
11
11
|
const ZSelectStyle0 = stylesCss;
|
|
12
12
|
|
|
13
13
|
const ZSelect = class {
|
|
@@ -38,7 +38,6 @@ const ZSelect = class {
|
|
|
38
38
|
this.focusedItemId = undefined;
|
|
39
39
|
this.searchString = undefined;
|
|
40
40
|
this.toggleSelectUl = this.toggleSelectUl.bind(this);
|
|
41
|
-
this.selectItem = this.selectItem.bind(this);
|
|
42
41
|
this.handleSelectFocus = this.handleSelectFocus.bind(this);
|
|
43
42
|
}
|
|
44
43
|
watchItems() {
|
|
@@ -129,20 +128,18 @@ const ZSelect = class {
|
|
|
129
128
|
this.toggleSelectUl();
|
|
130
129
|
}
|
|
131
130
|
}
|
|
132
|
-
selectItem(
|
|
133
|
-
if (
|
|
131
|
+
selectItem(selected) {
|
|
132
|
+
if (selected === null || selected === void 0 ? void 0 : selected.disabled) {
|
|
134
133
|
return;
|
|
135
134
|
}
|
|
136
135
|
this.itemsList = this.mapSelectedItemToItemsArray();
|
|
137
|
-
this.itemsList
|
|
138
|
-
i.selected =
|
|
139
|
-
if (i.id === (item === null || item === void 0 ? void 0 : item.id)) {
|
|
140
|
-
i.selected = selected;
|
|
141
|
-
}
|
|
136
|
+
this.itemsList.forEach((i) => {
|
|
137
|
+
i.selected = i.id === (selected === null || selected === void 0 ? void 0 : selected.id);
|
|
142
138
|
return i;
|
|
143
139
|
});
|
|
144
140
|
this.selectedItem = this.itemsList.find((item) => item.selected);
|
|
145
141
|
this.emitOptionSelect();
|
|
142
|
+
this.toggleSelectUl(true);
|
|
146
143
|
if (this.searchString) {
|
|
147
144
|
this.searchString = null;
|
|
148
145
|
}
|
|
@@ -178,10 +175,8 @@ const ZSelect = class {
|
|
|
178
175
|
this.focusSelectItem(index);
|
|
179
176
|
}
|
|
180
177
|
focusSelectItem(index) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
focusElem.focus();
|
|
184
|
-
}
|
|
178
|
+
var _a;
|
|
179
|
+
(_a = this.host.querySelector(`#${this.htmlid}_${index}`)) === null || _a === void 0 ? void 0 : _a.focus();
|
|
185
180
|
}
|
|
186
181
|
toggleSelectUl(selfFocusOnClose = false) {
|
|
187
182
|
if (this.disabled || this.readonly) {
|
|
@@ -195,22 +190,24 @@ const ZSelect = class {
|
|
|
195
190
|
document.removeEventListener("click", this.handleSelectFocus);
|
|
196
191
|
document.removeEventListener("keyup", this.handleSelectFocus);
|
|
197
192
|
if (selfFocusOnClose) {
|
|
198
|
-
this.
|
|
193
|
+
this.host.querySelector(`#${this.htmlid}_input`).focus();
|
|
199
194
|
}
|
|
200
195
|
}
|
|
201
196
|
this.focusedItemId = "";
|
|
202
197
|
this.isOpen = !this.isOpen;
|
|
203
198
|
}
|
|
204
199
|
handleInputClick(e) {
|
|
205
|
-
|
|
206
|
-
const clearIcon = cp.find((item) => item.classList && item.classList.contains("reset-icon"));
|
|
207
|
-
if (clearIcon) {
|
|
200
|
+
if (e.target.closest(".reset-icon")) {
|
|
208
201
|
e.stopPropagation();
|
|
209
202
|
return;
|
|
210
203
|
}
|
|
211
204
|
this.toggleSelectUl();
|
|
212
205
|
}
|
|
213
206
|
handleSelectFocus(e) {
|
|
207
|
+
const clickedElement = utils.getClickedElement();
|
|
208
|
+
if (clickedElement === null || clickedElement === void 0 ? void 0 : clickedElement.hasAttribute("disabled")) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
214
211
|
if (e instanceof KeyboardEvent && e.key === index$1.KeyboardCode.ESC) {
|
|
215
212
|
e.stopPropagation();
|
|
216
213
|
return this.toggleSelectUl(true);
|
|
@@ -218,18 +215,14 @@ const ZSelect = class {
|
|
|
218
215
|
if (e instanceof KeyboardEvent && e.key !== index$1.KeyboardCode.TAB && e.key !== index$1.KeyboardCode.ENTER) {
|
|
219
216
|
return;
|
|
220
217
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return elem.nodeName.toLowerCase() === "z-input" && elem.id === `${this.htmlid}_input`;
|
|
224
|
-
});
|
|
225
|
-
if (!parent) {
|
|
226
|
-
this.toggleSelectUl(e instanceof MouseEvent ? true : false);
|
|
218
|
+
if (!utils.containsElement(this.host, clickedElement)) {
|
|
219
|
+
this.toggleSelectUl(e instanceof MouseEvent);
|
|
227
220
|
}
|
|
228
221
|
}
|
|
229
222
|
scrollToLetter(letter) {
|
|
230
|
-
const foundItem = this.itemsList.
|
|
231
|
-
if (foundItem) {
|
|
232
|
-
this.focusSelectItem(
|
|
223
|
+
const foundItem = this.itemsList.findIndex((item) => item.name.charAt(0) === letter);
|
|
224
|
+
if (foundItem > -1) {
|
|
225
|
+
this.focusSelectItem(foundItem);
|
|
233
226
|
}
|
|
234
227
|
}
|
|
235
228
|
renderInput() {
|
|
@@ -239,7 +232,7 @@ const ZSelect = class {
|
|
|
239
232
|
}, id: `${this.htmlid}_input`, htmlid: `${this.htmlid}_select_input`, placeholder: this.placeholder, value: !this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, "") : null, label: this.label, "aria-expanded": this.isOpen ? "true" : "false", "aria-label": this.ariaLabel, "aria-controls": `${this.htmlid}_list`, "aria-autocomplete": this.hasAutocomplete() ? "list" : "none", "aria-activedescendant": this.isOpen ? this.focusedItemId : "", icon: this.isOpen ? "caret-up" : "caret-down", hasclearicon: this.hasAutocomplete(), message: false, disabled: this.disabled, readonly: this.readonly || (!this.hasAutocomplete() && this.isOpen), status: this.isOpen ? undefined : this.status, role: "combobox", size: this.size, onClick: (e) => {
|
|
240
233
|
this.handleInputClick(e);
|
|
241
234
|
}, onKeyUp: (e) => {
|
|
242
|
-
if (e.
|
|
235
|
+
if (e.key !== index$1.KeyboardCode.ENTER) {
|
|
243
236
|
e.preventDefault();
|
|
244
237
|
}
|
|
245
238
|
utils.handleKeyboardSubmit(e, this.toggleSelectUl);
|
|
@@ -255,13 +248,12 @@ const ZSelect = class {
|
|
|
255
248
|
} }));
|
|
256
249
|
}
|
|
257
250
|
renderSelectUl() {
|
|
258
|
-
return (index.h("div", { class: this.isOpen ? "open" : "closed"
|
|
251
|
+
return (index.h("div", { class: this.isOpen ? "open" : "closed" }, index.h("div", { class: {
|
|
259
252
|
"ul-scroll-wrapper": true,
|
|
260
253
|
"fixed": this.isfixed,
|
|
261
|
-
}
|
|
254
|
+
} }, index.h("z-list", { role: "listbox", "aria-label": this.ariaLabel || this.label, tabindex: this.disabled || this.readonly || !this.isOpen ? -1 : 0, id: `${this.htmlid}_list`, "aria-multiselectable": false, size: this.listSizeType(), class: {
|
|
262
255
|
disabled: this.disabled,
|
|
263
256
|
readonly: this.readonly,
|
|
264
|
-
filled: !!this.selectedItem,
|
|
265
257
|
[`input-${this.status}`]: !this.isOpen && !!this.status,
|
|
266
258
|
} }, this.resetItem && this.renderResetItem(), this.renderSelectUlItems()))));
|
|
267
259
|
}
|
|
@@ -277,7 +269,7 @@ const ZSelect = class {
|
|
|
277
269
|
}, onKeyDown: (e) => this.arrowsSelectNav(e, 0) }, index.h("div", { class: "reset-item-content" }, index.h("z-icon", { name: "multiply-circled" }), index.h("span", null, this.resetItem))));
|
|
278
270
|
}
|
|
279
271
|
renderItem(item, key, lastItem) {
|
|
280
|
-
return (index.h("z-list-element", { clickable: !item.disabled, disabled: item.disabled, dividerType: lastItem ? index$1.ListDividerType.HEADER : index$1.ListDividerType.ELEMENT, role: "option", tabindex: item.disabled || !this.isOpen ? -1 : 0, "aria-selected": item.selected ? "true" : "false", id: `${this.htmlid}_${key}`, size: this.listSizeType(), onClickItem: () => this.selectItem(item
|
|
272
|
+
return (index.h("z-list-element", { clickable: !item.disabled, disabled: item.disabled, dividerType: lastItem ? index$1.ListDividerType.HEADER : index$1.ListDividerType.ELEMENT, role: "option", tabindex: item.disabled || !this.isOpen ? -1 : 0, "aria-selected": item.selected ? "true" : "false", id: `${this.htmlid}_${key}`, size: this.listSizeType(), onClickItem: () => this.selectItem(item), onKeyDown: (e) => this.arrowsSelectNav(e, key) }, index.h("div", { class: "list-element-container" }, index.h("div", { class: {
|
|
281
273
|
"selected": !!item.selected,
|
|
282
274
|
"list-element-content": true,
|
|
283
275
|
}, innerHTML: item.name }), item.icon && index.h("z-tag", { icon: item.icon }))));
|
|
@@ -317,18 +309,18 @@ const ZSelect = class {
|
|
|
317
309
|
});
|
|
318
310
|
}
|
|
319
311
|
renderNoSearchResults() {
|
|
320
|
-
return (index.h("z-list-element", { color: "
|
|
312
|
+
return (index.h("z-list-element", { color: "color-primary01", class: "no-results", size: this.listSizeType() }, index.h("z-icon", { name: "multiply-circle", fill: "color-primary01-icon" }), this.noresultslabel));
|
|
321
313
|
}
|
|
322
314
|
renderMessage() {
|
|
323
315
|
if (utils.boolean(this.message) === false) {
|
|
324
316
|
return;
|
|
325
317
|
}
|
|
326
|
-
return (index.h("z-input-message", { message: utils.boolean(this.message) === true ? undefined : this.message, status: this.status, class: this.size }));
|
|
318
|
+
return (index.h("z-input-message", { message: utils.boolean(this.message) === true ? undefined : this.message, status: this.status, class: this.size, disabled: this.disabled }));
|
|
327
319
|
}
|
|
328
320
|
render() {
|
|
329
|
-
return (index.h("div", { key: '
|
|
321
|
+
return (index.h("div", { key: 'e6bd4b8c9c016ca713f09226ebe4a81866f6caba', class: "select-wrapper" }, this.renderInput(), this.renderSelectUl(), this.renderMessage()));
|
|
330
322
|
}
|
|
331
|
-
get
|
|
323
|
+
get host() { return index.getElement(this); }
|
|
332
324
|
static get watchers() { return {
|
|
333
325
|
"items": ["watchItems"]
|
|
334
326
|
}; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"z-select.entry.cjs.js","mappings":"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","names":["randomId","ControlSize","boolean","KeyboardCode","getElementTree","getClickedElement","h","handleKeyboardSubmit","ListDividerType","ListSize"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n}\n\n:host([size=\"small\"]),\n:host([size=\"x-small\"]) {\n font-size: var(--font-size-2);\n}\n\n.select-wrapper > z-input {\n width: 100%;\n}\n\n.select-wrapper > div {\n position: relative;\n}\n\n.select-wrapper > div.closed {\n overflow: hidden;\n height: 0;\n}\n\n.select-wrapper .ul-scroll-wrapper {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n border: var(--border-size-small) solid var(--gray200);\n border-top: none;\n background: var(--color-surface01);\n outline: none;\n}\n\n.select-wrapper .closed .ul-scroll-wrapper {\n z-index: 10;\n}\n\n.select-wrapper .open .ul-scroll-wrapper {\n z-index: 20;\n}\n\n.select-wrapper .ul-scroll-wrapper.fixed {\n position: static;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: calc(var(--space-unit) * 0.5);\n outline: none;\n\n /* Firefox scrollbar */\n scrollbar-color: var(--color-primary01) transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar {\n width: 10px;\n background: linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-track {\n background-color: transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb {\n width: 10px;\n background-color: var(--color-primary01);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: calc(var(--space-unit) * 1.5);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n display: block;\n padding: calc(var(--space-unit) * 0.5) 0;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-tag {\n margin-right: calc(var(--space-unit));\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n display: block;\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n .list-element-content {\n padding: 0;\n}\n\n:host([size=\"small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host([size=\"x-small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n > z-icon\n + .list-element-content {\n padding: 0 var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content.selected {\n font-weight: bold;\n}\n\n.select-wrapper .ul-scroll-wrapper .no-results z-icon {\n margin-right: var(--space-unit);\n}\n\n.z-list-group-title {\n color: var(--gray800);\n}\n\n.reset-item {\n color: var(--color-primary01);\n fill: var(--color-primary01);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: calc(var(--space-unit));\n}\n\n.reset-item .reset-item-content > z-icon {\n margin-right: var(--space-unit);\n}\n\n.reset-item.hide {\n display: none;\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, handleKeyboardSubmit, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() element: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string;\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n private itemsList: SelectItem[] = [];\n\n constructor() {\n this.toggleSelectUl = this.toggleSelectUl.bind(this);\n this.selectItem = this.selectItem.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => values.includes(item.id));\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n if (!searchString?.length) {\n this.itemsList = prevList;\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => {\n return item.name.toUpperCase().includes(searchString.toUpperCase());\n })\n .map((item: SelectItem) => {\n const start = item.name.toUpperCase().indexOf(searchString.toUpperCase());\n const end = start + searchString.length;\n const newName =\n item.name.substring(0, start) +\n `<strong>${item.name.substring(start, end)}</strong>` +\n item.name.substring(end, item.name.length);\n item.name = newName;\n\n return item;\n });\n }\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private selectItem(item: null | SelectItem, selected: boolean): void {\n if (item && item.disabled) {\n return;\n }\n\n this.itemsList = this.mapSelectedItemToItemsArray();\n this.itemsList = this.itemsList.map((i: SelectItem) => {\n i.selected = false;\n if (i.id === item?.id) {\n i.selected = selected;\n }\n\n return i;\n });\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n\n this.emitOptionSelect();\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private arrowsSelectNav(e: KeyboardEvent, key: number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n\n let index: number;\n\n if (this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length + 1 ? +!showResetIcon : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= +!showResetIcon ? this.itemsList.length : key - 1;\n }\n }\n\n if (!this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length ? 0 : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= 0 ? this.itemsList.length - 1 : key - 1;\n }\n }\n\n this.focusSelectItem(index);\n }\n\n private focusSelectItem(index: number): void {\n const focusElem: HTMLLIElement = this.element.querySelector(`#${this.htmlid}_${index}`);\n if (focusElem) {\n focusElem.focus();\n }\n }\n\n private toggleSelectUl(selfFocusOnClose = false): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (!this.isOpen) {\n document.addEventListener(\"click\", this.handleSelectFocus);\n document.addEventListener(\"keyup\", this.handleSelectFocus);\n } else {\n document.removeEventListener(\"click\", this.handleSelectFocus);\n document.removeEventListener(\"keyup\", this.handleSelectFocus);\n if (selfFocusOnClose) {\n (this.element.querySelector(`#${this.htmlid}_input`) as HTMLInputElement).focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n const cp = e.composedPath();\n const clearIcon = cp.find((item: HTMLElement) => item.classList && item.classList.contains(\"reset-icon\"));\n if (clearIcon) {\n e.stopPropagation();\n\n return;\n }\n\n this.toggleSelectUl();\n }\n\n private handleSelectFocus(e: MouseEvent | KeyboardEvent): void {\n if (e instanceof KeyboardEvent && e.key === KeyboardCode.ESC) {\n e.stopPropagation();\n\n return this.toggleSelectUl(true);\n }\n\n if (e instanceof KeyboardEvent && e.key !== KeyboardCode.TAB && e.key !== KeyboardCode.ENTER) {\n return;\n }\n\n const tree = getElementTree(getClickedElement());\n const parent = tree.find((elem: HTMLElement) => {\n return elem.nodeName.toLowerCase() === \"z-input\" && elem.id === `${this.htmlid}_input`;\n });\n\n if (!parent) {\n this.toggleSelectUl(e instanceof MouseEvent ? true : false);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.find((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem) {\n this.focusSelectItem(this.itemsList.indexOf(foundItem));\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n if (e.keyCode !== 13) {\n e.preventDefault();\n }\n handleKeyboardSubmit(e, this.toggleSelectUl);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n return this.arrowsSelectNav(\n e,\n this.selectedItem ? this.itemsList.indexOf(this.selectedItem) : this.resetItem ? 0 : -1\n );\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div\n class={this.isOpen ? \"open\" : \"closed\"}\n tabindex=\"-1\"\n >\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n tabindex=\"-1\"\n >\n <z-list\n role=\"listbox\"\n aria-label={this.ariaLabel || this.label}\n tabindex={this.disabled || this.readonly || !this.isOpen ? -1 : 0}\n id={`${this.htmlid}_list`}\n aria-multiselectable={false}\n size={this.listSizeType()}\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n filled: !!this.selectedItem,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_${this.resetItem ? \"0\" : \"none\"}`}\n size={this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, 0)}\n >\n <div class=\"reset-item-content\">\n <z-icon name=\"multiply-circled\" />\n <span>{this.resetItem}</span>\n </div>\n </z-list-element>\n );\n }\n\n private renderItem(item: SelectItem, key: number, lastItem: boolean): HTMLZListElementElement {\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_${key}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item, true)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, key)}\n >\n <div class=\"list-element-container\">\n <span\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\n if (this.size === ControlSize.SMALL || this.size === ControlSize.X_SMALL) {\n return ListSize.SMALL;\n }\n\n return ListSize.MEDIUM;\n }\n\n private renderSelectUlItems(): HTMLZListElementElement | HTMLZListElementElement[] {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems) {\n return this.renderSelectGroupItems();\n }\n\n return this.itemsList.map((item: SelectItem, key, array) => {\n const lastItem = array.length === key + 1;\n const itemKey = this.resetItem ? key + 1 : key;\n\n return this.renderItem(item, itemKey, lastItem);\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement | HTMLZListElementElement[] {\n const newData = this.itemsList.reduce((group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const itemKey = this.resetItem ? index + 1 : index;\n const zListItem = this.renderItem(item, itemKey, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n return Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"blue500\"\n class=\"no-results\"\n size={this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"blue500\"\n />\n {this.noresultslabel}\n </z-list-element>\n );\n }\n\n private renderMessage(): HTMLZInputMessageElement {\n if (boolean(this.message) === false) {\n return;\n }\n\n return (\n <z-input-message\n message={boolean(this.message) === true ? undefined : (this.message as string)}\n status={this.status}\n class={this.size}\n />\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div class=\"select-wrapper\">\n {this.renderInput()}\n {this.renderSelectUl()}\n {this.renderMessage()}\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"z-select.entry.cjs.js","mappings":"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","names":["randomId","ControlSize","boolean","KeyboardCode","getClickedElement","containsElement","h","handleKeyboardSubmit","ListDividerType","ListSize"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n}\n\n:host([size=\"small\"]),\n:host([size=\"x-small\"]) {\n font-size: var(--font-size-2);\n}\n\n.select-wrapper > z-input {\n width: 100%;\n}\n\n.select-wrapper > z-input .input-icon {\n cursor: pointer;\n}\n\n.select-wrapper > div {\n position: relative;\n}\n\n.select-wrapper > div.closed {\n overflow: hidden;\n height: 0;\n}\n\n.select-wrapper .ul-scroll-wrapper {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n border-top: none;\n background: var(--color-form-background);\n box-shadow: var(--shadow-2);\n outline: none;\n}\n\n.select-wrapper .closed .ul-scroll-wrapper {\n z-index: 10;\n}\n\n.select-wrapper .open .ul-scroll-wrapper {\n z-index: 20;\n}\n\n.select-wrapper .ul-scroll-wrapper.fixed {\n position: static;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: 0 calc(var(--space-unit) * 1.5);\n outline: none;\n\n /* Firefox scrollbar */\n scrollbar-color: var(--color-primary01) transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar {\n width: 10px;\n background: linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-track {\n background-color: transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb {\n width: 10px;\n background-color: var(--color-primary01);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element[disabled] {\n color: var(--color-form-disabled03);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container {\n display: flex;\n align-items: center;\n padding: calc(var(--space-unit) / 2) var(--space-unit);\n column-gap: var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n margin-right: auto;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n .list-element-content {\n padding: 0;\n}\n\n:host([size=\"small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host([size=\"x-small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n > z-icon\n + .list-element-content {\n padding: 0 var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content.selected {\n font-weight: var(--font-sb);\n}\n\n.select-wrapper .ul-scroll-wrapper .no-results z-icon {\n margin-right: var(--space-unit);\n}\n\n.z-list-group-title {\n color: var(--color-default-text);\n}\n\n.reset-item {\n color: var(--color-primary01);\n fill: var(--color-primary01-icon);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: var(--space-unit);\n}\n\n.reset-item .reset-item-content > z-icon {\n margin-right: var(--space-unit);\n}\n\n.reset-item.hide {\n display: none;\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, containsElement, getClickedElement, handleKeyboardSubmit, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string;\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n private itemsList: SelectItem[] = [];\n\n constructor() {\n this.toggleSelectUl = this.toggleSelectUl.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => values.includes(item.id));\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n if (!searchString?.length) {\n this.itemsList = prevList;\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => {\n return item.name.toUpperCase().includes(searchString.toUpperCase());\n })\n .map((item: SelectItem) => {\n const start = item.name.toUpperCase().indexOf(searchString.toUpperCase());\n const end = start + searchString.length;\n const newName =\n item.name.substring(0, start) +\n `<strong>${item.name.substring(start, end)}</strong>` +\n item.name.substring(end, item.name.length);\n item.name = newName;\n\n return item;\n });\n }\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.mapSelectedItemToItemsArray();\n this.itemsList.forEach((i: SelectItem) => {\n i.selected = i.id === selected?.id;\n\n return i;\n });\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n\n this.emitOptionSelect();\n this.toggleSelectUl(true);\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private arrowsSelectNav(e: KeyboardEvent, key: number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n\n let index: number;\n\n if (this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length + 1 ? +!showResetIcon : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= +!showResetIcon ? this.itemsList.length : key - 1;\n }\n }\n\n if (!this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length ? 0 : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= 0 ? this.itemsList.length - 1 : key - 1;\n }\n }\n\n this.focusSelectItem(index);\n }\n\n private focusSelectItem(index: number): void {\n this.host.querySelector<HTMLLIElement>(`#${this.htmlid}_${index}`)?.focus();\n }\n\n private toggleSelectUl(selfFocusOnClose = false): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (!this.isOpen) {\n document.addEventListener(\"click\", this.handleSelectFocus);\n document.addEventListener(\"keyup\", this.handleSelectFocus);\n } else {\n document.removeEventListener(\"click\", this.handleSelectFocus);\n document.removeEventListener(\"keyup\", this.handleSelectFocus);\n if (selfFocusOnClose) {\n (this.host.querySelector(`#${this.htmlid}_input`) as HTMLInputElement).focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n if ((e.target as HTMLElement).closest(\".reset-icon\")) {\n e.stopPropagation();\n\n return;\n }\n\n this.toggleSelectUl();\n }\n\n private handleSelectFocus(e: MouseEvent | KeyboardEvent): void {\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\n return;\n }\n\n if (e instanceof KeyboardEvent && e.key === KeyboardCode.ESC) {\n e.stopPropagation();\n\n return this.toggleSelectUl(true);\n }\n\n if (e instanceof KeyboardEvent && e.key !== KeyboardCode.TAB && e.key !== KeyboardCode.ENTER) {\n return;\n }\n\n if (!containsElement(this.host, clickedElement)) {\n this.toggleSelectUl(e instanceof MouseEvent);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.findIndex((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem > -1) {\n this.focusSelectItem(foundItem);\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n if (e.key !== KeyboardCode.ENTER) {\n e.preventDefault();\n }\n handleKeyboardSubmit(e, this.toggleSelectUl);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n return this.arrowsSelectNav(\n e,\n this.selectedItem ? this.itemsList.indexOf(this.selectedItem) : this.resetItem ? 0 : -1\n );\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div class={this.isOpen ? \"open\" : \"closed\"}>\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n >\n <z-list\n role=\"listbox\"\n aria-label={this.ariaLabel || this.label}\n tabindex={this.disabled || this.readonly || !this.isOpen ? -1 : 0}\n id={`${this.htmlid}_list`}\n aria-multiselectable={false}\n size={this.listSizeType()}\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_${this.resetItem ? \"0\" : \"none\"}`}\n size={this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, 0)}\n >\n <div class=\"reset-item-content\">\n <z-icon name=\"multiply-circled\" />\n <span>{this.resetItem}</span>\n </div>\n </z-list-element>\n );\n }\n\n private renderItem(item: SelectItem, key: number, lastItem: boolean): HTMLZListElementElement {\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_${key}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, key)}\n >\n <div class=\"list-element-container\">\n <div\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\n if (this.size === ControlSize.SMALL || this.size === ControlSize.X_SMALL) {\n return ListSize.SMALL;\n }\n\n return ListSize.MEDIUM;\n }\n\n private renderSelectUlItems(): HTMLZListElementElement | HTMLZListElementElement[] {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems) {\n return this.renderSelectGroupItems();\n }\n\n return this.itemsList.map((item: SelectItem, key, array) => {\n const lastItem = array.length === key + 1;\n const itemKey = this.resetItem ? key + 1 : key;\n\n return this.renderItem(item, itemKey, lastItem);\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement | HTMLZListElementElement[] {\n const newData = this.itemsList.reduce((group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const itemKey = this.resetItem ? index + 1 : index;\n const zListItem = this.renderItem(item, itemKey, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n return Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"color-primary01\"\n class=\"no-results\"\n size={this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"color-primary01-icon\"\n />\n {this.noresultslabel}\n </z-list-element>\n );\n }\n\n private renderMessage(): HTMLZInputMessageElement {\n if (boolean(this.message) === false) {\n return;\n }\n\n return (\n <z-input-message\n message={boolean(this.message) === true ? undefined : (this.message as string)}\n status={this.status}\n class={this.size}\n disabled={this.disabled}\n />\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div class=\"select-wrapper\">\n {this.renderInput()}\n {this.renderSelectUl()}\n {this.renderMessage()}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -10,6 +10,8 @@ export class ZDatePicker {
|
|
|
10
10
|
this.ariaLabel = "";
|
|
11
11
|
this.label = undefined;
|
|
12
12
|
this.mode = ZDatePickerMode.DATE;
|
|
13
|
+
this.name = undefined;
|
|
14
|
+
this.value = undefined;
|
|
13
15
|
this.flatpickrPosition = ZDatePickerPosition.BOTTOM;
|
|
14
16
|
this.inputError = false;
|
|
15
17
|
}
|
|
@@ -146,17 +148,17 @@ export class ZDatePicker {
|
|
|
146
148
|
}
|
|
147
149
|
}
|
|
148
150
|
renderSlottedContent() {
|
|
149
|
-
return (h("div", { class: `${this.datePickerId}-hidden` }, h("input", { class: "hidden-input", "data-input": true }), h("slot", { name: "toggle" })));
|
|
151
|
+
return (h("div", { class: `${this.datePickerId}-hidden` }, h("input", { class: "hidden-input", "data-input": true, name: this.name, value: this.value }), h("slot", { name: "toggle" })));
|
|
150
152
|
}
|
|
151
153
|
renderZInput() {
|
|
152
|
-
return (h("div", { class: `${this.datePickerId}-container` }, h("z-input", { "data-input": "data-input", ariaLabel: this.ariaLabel, label: this.label, class: this.datePickerId, type: InputType.TEXT, icon: "event", message: false, tabindex: "0", value:
|
|
154
|
+
return (h("div", { class: `${this.datePickerId}-container` }, h("z-input", { "data-input": "data-input", ariaLabel: this.ariaLabel, label: this.label, class: this.datePickerId, type: InputType.TEXT, icon: "event", message: false, name: this.name, tabindex: "0", value: this.value, onStopTyping: (value) => {
|
|
153
155
|
this.onStopTyping(value);
|
|
154
156
|
}, onStartTyping: () => {
|
|
155
157
|
this.inputError = false;
|
|
156
158
|
} })));
|
|
157
159
|
}
|
|
158
160
|
render() {
|
|
159
|
-
return (h("div", { key: '
|
|
161
|
+
return (h("div", { key: 'd9ddcadf506aed9515054eae4460ffc3745be7bc', class: {
|
|
160
162
|
"flatpickr-toggle-container": true,
|
|
161
163
|
[this.flatpickrPosition]: true,
|
|
162
164
|
[this.mode]: true,
|
|
@@ -250,6 +252,42 @@ export class ZDatePicker {
|
|
|
250
252
|
"attribute": "mode",
|
|
251
253
|
"reflect": false,
|
|
252
254
|
"defaultValue": "ZDatePickerMode.DATE"
|
|
255
|
+
},
|
|
256
|
+
"name": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"mutable": false,
|
|
259
|
+
"complexType": {
|
|
260
|
+
"original": "string",
|
|
261
|
+
"resolved": "string",
|
|
262
|
+
"references": {}
|
|
263
|
+
},
|
|
264
|
+
"required": false,
|
|
265
|
+
"optional": true,
|
|
266
|
+
"docs": {
|
|
267
|
+
"tags": [],
|
|
268
|
+
"text": "[Optional] the datepicker input name"
|
|
269
|
+
},
|
|
270
|
+
"attribute": "name",
|
|
271
|
+
"reflect": false,
|
|
272
|
+
"defaultValue": "undefined"
|
|
273
|
+
},
|
|
274
|
+
"value": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"mutable": false,
|
|
277
|
+
"complexType": {
|
|
278
|
+
"original": "string",
|
|
279
|
+
"resolved": "string",
|
|
280
|
+
"references": {}
|
|
281
|
+
},
|
|
282
|
+
"required": false,
|
|
283
|
+
"optional": true,
|
|
284
|
+
"docs": {
|
|
285
|
+
"tags": [],
|
|
286
|
+
"text": "[Optional] the datepicker input value"
|
|
287
|
+
},
|
|
288
|
+
"attribute": "value",
|
|
289
|
+
"reflect": false,
|
|
290
|
+
"defaultValue": "undefined"
|
|
253
291
|
}
|
|
254
292
|
};
|
|
255
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/z-date-picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, Event, EventEmitter, Listen, Prop, State, Watch, h} from \"@stencil/core\";\n\nimport flatpickr from \"flatpickr\";\nimport {Italian} from \"flatpickr/dist/l10n/it.js\";\nimport monthSelectPlugin from \"flatpickr/dist/plugins/monthSelect\";\nimport {InputType, ZDatePickerMode, ZDatePickerPosition} from \"../../../beans\";\nimport {setAriaOptions, setFlatpickrPosition, validateDate} from \"../utils\";\n\n@Component({\n tag: \"z-date-picker\",\n styleUrl: \"../styles.css\",\n shadow: false,\n})\nexport class ZDatePicker {\n @Element() element: HTMLZDatePickerElement;\n\n /** unique id */\n @Prop()\n datePickerId: string;\n\n /** z-input aria label */\n @Prop()\n ariaLabel = \"\";\n\n /** z-input label */\n @Prop()\n label?: string;\n\n /** [Optional] datepicker mode: date, datetime, only months */\n @Prop()\n mode: ZDatePickerMode = ZDatePickerMode.DATE;\n\n @State()\n flatpickrPosition: ZDatePickerPosition = ZDatePickerPosition.BOTTOM;\n\n @State()\n inputError = false;\n\n private picker;\n\n private hasChildren: boolean;\n\n /** emitted when date changes, returns selected date */\n @Event()\n dateSelect: EventEmitter;\n\n private emitDateSelect(date): void {\n this.dateSelect.emit(date);\n }\n\n @Listen(\"keydown\", {target: \"body\", capture: true})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Escape\") {\n this.picker?.close();\n }\n\n if (ev.key === \"Enter\" || ev.key === \" \") {\n !this.hasChildren && this.picker?.open();\n\n const isCrossIconEntered = document.activeElement.classList.contains(\"reset-icon\");\n\n if (isCrossIconEntered) {\n this.inputError = false;\n this.picker?.setDate([]);\n this.dateSelect.emit(null);\n }\n\n const flatpickrDayPressed = document.activeElement.classList.contains(\"flatpickr-day\");\n if (flatpickrDayPressed) {\n //Sistemare il toggle\n }\n const isPrevArrowEntered = document.activeElement.classList.contains(\"flatpickr-prev-month\");\n const isNextArrowEntered = document.activeElement.classList.contains(\"flatpickr-next-month\");\n const arrowPressed = isPrevArrowEntered || isNextArrowEntered;\n\n arrowPressed && ev.key === \" \" && ev.preventDefault();\n\n if (this.mode === ZDatePickerMode.MONTHS) {\n isPrevArrowEntered && this.picker?.changeYear(this.picker.currentYear - 1);\n\n isNextArrowEntered && this.picker?.changeYear(this.picker.currentYear + 1);\n\n if (arrowPressed) {\n const calendar = this.element.getElementsByClassName(\"flatpickr-calendar\")[0];\n const months = calendar?.querySelectorAll(\".flatpickr-monthSelect-month\");\n months?.forEach((element) => {\n element.setAttribute(\"aria-label\", `${element.innerHTML} ${this.picker?.currentYear}`);\n });\n\n //Force check of the current day\n months &&\n Array.from(months).forEach((element, index) => {\n const curMonth = new Date().getMonth();\n const curYear = new Date().getFullYear();\n\n if (index === curMonth) {\n if (this.picker?.currentYear === curYear) {\n element.setAttribute(\"class\", \"flatpickr-monthSelect-month today\");\n } else {\n element.setAttribute(\"class\", \"flatpickr-monthSelect-month\");\n }\n }\n });\n }\n } else {\n isPrevArrowEntered && this.picker?.changeMonth(-1);\n isNextArrowEntered && this.picker?.changeMonth(1);\n }\n }\n }\n\n componentWillLoad(): void {\n const customToggle = this.element.querySelector(\"[slot=toggle]\");\n this.hasChildren = !!customToggle;\n this.hasChildren && customToggle.setAttribute(\"data-toggle\", \"data-toggle\");\n }\n\n componentDidLoad(): void {\n this.setupPickers();\n }\n\n @Watch(\"mode\")\n setupPickers(): void {\n const classToAppend = this.hasChildren ? `${this.datePickerId}-hidden` : `${this.datePickerId}-container`;\n\n this.picker = flatpickr(`.${classToAppend}`, {\n appendTo: this.element.children[0] as HTMLElement,\n enableTime: this.mode === ZDatePickerMode.DATE_TIME,\n locale: Italian,\n allowInput: true,\n dateFormat: this.mode === ZDatePickerMode.DATE_TIME ? \"d-m-Y - H:i\" : \"d-m-Y\",\n ariaDateFormat: this.mode === ZDatePickerMode.MONTHS ? \"F Y\" : \"d F Y\",\n minuteIncrement: 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n time_24hr: true,\n onChange: (_selectedDates, dateStr) => {\n this.emitDateSelect(dateStr);\n },\n onOpen: () => {\n setAriaOptions(this.element as HTMLElement, this.mode);\n this.flatpickrPosition = setFlatpickrPosition(this.element as HTMLElement, this.mode);\n },\n onKeyDown: () => {\n setAriaOptions(this.element as HTMLElement, this.mode);\n },\n wrap: true,\n plugins: this.mode === ZDatePickerMode.MONTHS && [\n monthSelectPlugin({\n dateFormat: \"m-Y\",\n altFormat: \"m-Y\",\n }),\n ],\n });\n\n this.element.querySelectorAll(\".flatpickr-weekday\").forEach((element) => {\n element.innerHTML = element.innerHTML.trim().charAt(0);\n });\n }\n\n private formatDate(date): string {\n if (this.mode === ZDatePickerMode.DATE) {\n return `${flatpickr.formatDate(date, \"d-m-Y\")}`;\n } else if (this.mode === ZDatePickerMode.MONTHS) {\n return `${flatpickr.formatDate(date, \"m-Y\")}`;\n }\n\n return `${flatpickr.formatDate(date, \"d-m-Y - H:i\")}`;\n }\n\n private onStopTyping(value): void {\n let text = value.detail.value;\n\n if (this.mode === ZDatePickerMode.MONTHS) {\n text = \"01-\".concat(value.detail.value);\n }\n\n const englishData = text.split(\"-\");\n const time = this.mode === ZDatePickerMode.DATE_TIME ? `T${englishData[3]}:00` : \"\";\n const englishParsedData = `${englishData[2]}-${englishData[1]}-${englishData[0]}${time}`.split(\" \").join(\"\");\n\n const isValidDate = validateDate(englishParsedData, this.mode === ZDatePickerMode.DATE_TIME);\n\n if (text === \"\") {\n this.inputError = false;\n this.picker.setDate([]);\n this.dateSelect.emit(null);\n } else if (!isValidDate) {\n this.inputError = true;\n this.dateSelect.emit(null);\n } else if (isValidDate) {\n this.inputError = false;\n this.picker.setDate([value.detail.value]);\n this.dateSelect.emit(this.formatDate(new Date(englishParsedData)));\n }\n }\n\n private renderSlottedContent(): HTMLDivElement {\n return (\n <div class={`${this.datePickerId}-hidden`}>\n <input\n class=\"hidden-input\"\n data-input\n ></input>\n <slot name=\"toggle\"></slot>\n </div>\n );\n }\n\n private renderZInput(): HTMLDivElement {\n return (\n <div class={`${this.datePickerId}-container`}>\n <z-input\n data-input=\"data-input\"\n ariaLabel={this.ariaLabel}\n label={this.label}\n class={this.datePickerId}\n type={InputType.TEXT}\n icon=\"event\"\n message={false}\n tabindex=\"0\"\n value=\"\"\n onStopTyping={(value) => {\n this.onStopTyping(value);\n }}\n onStartTyping={() => {\n this.inputError = false;\n }}\n ></z-input>\n </div>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n class={{\n \"flatpickr-toggle-container\": true,\n [this.flatpickrPosition]: true,\n [this.mode]: true,\n }}\n >\n {this.hasChildren ? this.renderSlottedContent() : this.renderZInput()}\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/z-date-picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, Event, EventEmitter, Listen, Prop, State, Watch, h} from \"@stencil/core\";\n\nimport flatpickr from \"flatpickr\";\nimport {Italian} from \"flatpickr/dist/l10n/it.js\";\nimport monthSelectPlugin from \"flatpickr/dist/plugins/monthSelect\";\nimport {InputType, ZDatePickerMode, ZDatePickerPosition} from \"../../../beans\";\nimport {setAriaOptions, setFlatpickrPosition, validateDate} from \"../utils\";\n\n@Component({\n tag: \"z-date-picker\",\n styleUrl: \"../styles.css\",\n shadow: false,\n})\nexport class ZDatePicker {\n @Element() element: HTMLZDatePickerElement;\n\n /** unique id */\n @Prop()\n datePickerId: string;\n\n /** z-input aria label */\n @Prop()\n ariaLabel = \"\";\n\n /** z-input label */\n @Prop()\n label?: string;\n\n /** [Optional] datepicker mode: date, datetime, only months */\n @Prop()\n mode: ZDatePickerMode = ZDatePickerMode.DATE;\n\n /** [Optional] the datepicker input name */\n @Prop()\n name?: string = undefined;\n\n /** [Optional] the datepicker input value */\n @Prop()\n value?: string = undefined;\n\n @State()\n flatpickrPosition: ZDatePickerPosition = ZDatePickerPosition.BOTTOM;\n\n @State()\n inputError = false;\n\n private picker;\n\n private hasChildren: boolean;\n\n /** emitted when date changes, returns selected date */\n @Event()\n dateSelect: EventEmitter;\n\n private emitDateSelect(date): void {\n this.dateSelect.emit(date);\n }\n\n @Listen(\"keydown\", {target: \"body\", capture: true})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Escape\") {\n this.picker?.close();\n }\n\n if (ev.key === \"Enter\" || ev.key === \" \") {\n !this.hasChildren && this.picker?.open();\n\n const isCrossIconEntered = document.activeElement.classList.contains(\"reset-icon\");\n\n if (isCrossIconEntered) {\n this.inputError = false;\n this.picker?.setDate([]);\n this.dateSelect.emit(null);\n }\n\n const flatpickrDayPressed = document.activeElement.classList.contains(\"flatpickr-day\");\n if (flatpickrDayPressed) {\n //Sistemare il toggle\n }\n const isPrevArrowEntered = document.activeElement.classList.contains(\"flatpickr-prev-month\");\n const isNextArrowEntered = document.activeElement.classList.contains(\"flatpickr-next-month\");\n const arrowPressed = isPrevArrowEntered || isNextArrowEntered;\n\n arrowPressed && ev.key === \" \" && ev.preventDefault();\n\n if (this.mode === ZDatePickerMode.MONTHS) {\n isPrevArrowEntered && this.picker?.changeYear(this.picker.currentYear - 1);\n\n isNextArrowEntered && this.picker?.changeYear(this.picker.currentYear + 1);\n\n if (arrowPressed) {\n const calendar = this.element.getElementsByClassName(\"flatpickr-calendar\")[0];\n const months = calendar?.querySelectorAll(\".flatpickr-monthSelect-month\");\n months?.forEach((element) => {\n element.setAttribute(\"aria-label\", `${element.innerHTML} ${this.picker?.currentYear}`);\n });\n\n //Force check of the current day\n months &&\n Array.from(months).forEach((element, index) => {\n const curMonth = new Date().getMonth();\n const curYear = new Date().getFullYear();\n\n if (index === curMonth) {\n if (this.picker?.currentYear === curYear) {\n element.setAttribute(\"class\", \"flatpickr-monthSelect-month today\");\n } else {\n element.setAttribute(\"class\", \"flatpickr-monthSelect-month\");\n }\n }\n });\n }\n } else {\n isPrevArrowEntered && this.picker?.changeMonth(-1);\n isNextArrowEntered && this.picker?.changeMonth(1);\n }\n }\n }\n\n componentWillLoad(): void {\n const customToggle = this.element.querySelector(\"[slot=toggle]\");\n this.hasChildren = !!customToggle;\n this.hasChildren && customToggle.setAttribute(\"data-toggle\", \"data-toggle\");\n }\n\n componentDidLoad(): void {\n this.setupPickers();\n }\n\n @Watch(\"mode\")\n setupPickers(): void {\n const classToAppend = this.hasChildren ? `${this.datePickerId}-hidden` : `${this.datePickerId}-container`;\n\n this.picker = flatpickr(`.${classToAppend}`, {\n appendTo: this.element.children[0] as HTMLElement,\n enableTime: this.mode === ZDatePickerMode.DATE_TIME,\n locale: Italian,\n allowInput: true,\n dateFormat: this.mode === ZDatePickerMode.DATE_TIME ? \"d-m-Y - H:i\" : \"d-m-Y\",\n ariaDateFormat: this.mode === ZDatePickerMode.MONTHS ? \"F Y\" : \"d F Y\",\n minuteIncrement: 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n time_24hr: true,\n onChange: (_selectedDates, dateStr) => {\n this.emitDateSelect(dateStr);\n },\n onOpen: () => {\n setAriaOptions(this.element as HTMLElement, this.mode);\n this.flatpickrPosition = setFlatpickrPosition(this.element as HTMLElement, this.mode);\n },\n onKeyDown: () => {\n setAriaOptions(this.element as HTMLElement, this.mode);\n },\n wrap: true,\n plugins: this.mode === ZDatePickerMode.MONTHS && [\n monthSelectPlugin({\n dateFormat: \"m-Y\",\n altFormat: \"m-Y\",\n }),\n ],\n });\n\n this.element.querySelectorAll(\".flatpickr-weekday\").forEach((element) => {\n element.innerHTML = element.innerHTML.trim().charAt(0);\n });\n }\n\n private formatDate(date): string {\n if (this.mode === ZDatePickerMode.DATE) {\n return `${flatpickr.formatDate(date, \"d-m-Y\")}`;\n } else if (this.mode === ZDatePickerMode.MONTHS) {\n return `${flatpickr.formatDate(date, \"m-Y\")}`;\n }\n\n return `${flatpickr.formatDate(date, \"d-m-Y - H:i\")}`;\n }\n\n private onStopTyping(value): void {\n let text = value.detail.value;\n\n if (this.mode === ZDatePickerMode.MONTHS) {\n text = \"01-\".concat(value.detail.value);\n }\n\n const englishData = text.split(\"-\");\n const time = this.mode === ZDatePickerMode.DATE_TIME ? `T${englishData[3]}:00` : \"\";\n const englishParsedData = `${englishData[2]}-${englishData[1]}-${englishData[0]}${time}`.split(\" \").join(\"\");\n\n const isValidDate = validateDate(englishParsedData, this.mode === ZDatePickerMode.DATE_TIME);\n\n if (text === \"\") {\n this.inputError = false;\n this.picker.setDate([]);\n this.dateSelect.emit(null);\n } else if (!isValidDate) {\n this.inputError = true;\n this.dateSelect.emit(null);\n } else if (isValidDate) {\n this.inputError = false;\n this.picker.setDate([value.detail.value]);\n this.dateSelect.emit(this.formatDate(new Date(englishParsedData)));\n }\n }\n\n private renderSlottedContent(): HTMLDivElement {\n return (\n <div class={`${this.datePickerId}-hidden`}>\n <input\n class=\"hidden-input\"\n data-input\n name={this.name}\n value={this.value}\n ></input>\n <slot name=\"toggle\"></slot>\n </div>\n );\n }\n\n private renderZInput(): HTMLDivElement {\n return (\n <div class={`${this.datePickerId}-container`}>\n <z-input\n data-input=\"data-input\"\n ariaLabel={this.ariaLabel}\n label={this.label}\n class={this.datePickerId}\n type={InputType.TEXT}\n icon=\"event\"\n message={false}\n name={this.name}\n tabindex=\"0\"\n value={this.value}\n onStopTyping={(value) => {\n this.onStopTyping(value);\n }}\n onStartTyping={() => {\n this.inputError = false;\n }}\n ></z-input>\n </div>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n class={{\n \"flatpickr-toggle-container\": true,\n [this.flatpickrPosition]: true,\n [this.mode]: true,\n }}\n >\n {this.hasChildren ? this.renderSlottedContent() : this.renderZInput()}\n </div>\n );\n }\n}\n"]}
|
|
@@ -25,7 +25,7 @@ const StoryMeta = {
|
|
|
25
25
|
render: (args) => html `
|
|
26
26
|
<script>
|
|
27
27
|
document.getElementById("${args.datePickerId}").addEventListener("dateSelect", (e) => {
|
|
28
|
-
const input = document.getElementById("output");
|
|
28
|
+
const input = document.getElementById("output-${args.datePickerId}");
|
|
29
29
|
input.innerHTML = "[" + e.detail + "]";
|
|
30
30
|
});
|
|
31
31
|
</script>
|
|
@@ -37,12 +37,13 @@ const StoryMeta = {
|
|
|
37
37
|
id=${args.datePickerId}
|
|
38
38
|
ariaLabel=${args.ariaLabel}
|
|
39
39
|
label=${args.label}
|
|
40
|
+
value=${args.value}
|
|
40
41
|
></z-date-picker>
|
|
41
42
|
</div>
|
|
42
43
|
<div class="story-output-container">
|
|
43
44
|
<span>OUTPUT:</span>
|
|
44
45
|
<br />
|
|
45
|
-
<span id="output" />
|
|
46
|
+
<span id="output-${args.datePickerId}" />
|
|
46
47
|
</div>
|
|
47
48
|
</div>
|
|
48
49
|
`,
|
|
@@ -52,29 +53,38 @@ export const Date = {
|
|
|
52
53
|
args: {
|
|
53
54
|
datePickerId: "picker-01",
|
|
54
55
|
label: "ZDatePicker with date",
|
|
56
|
+
value: "25-12-2024",
|
|
55
57
|
},
|
|
56
58
|
};
|
|
57
59
|
export const DateAndTime = {
|
|
58
60
|
args: {
|
|
59
61
|
datePickerId: "picker-02",
|
|
60
62
|
label: "ZDatePicker with date and time",
|
|
63
|
+
mode: ZDatePickerMode.DATE_TIME,
|
|
64
|
+
value: "05-12-2024 - 12:01",
|
|
65
|
+
name: "date-time-picker",
|
|
61
66
|
},
|
|
62
67
|
};
|
|
63
68
|
export const MonthsOnly = {
|
|
64
69
|
args: {
|
|
65
70
|
datePickerId: "picker-03",
|
|
66
71
|
label: "ZDatePicker with only months",
|
|
72
|
+
mode: ZDatePickerMode.MONTHS,
|
|
73
|
+
value: "12-2024",
|
|
74
|
+
name: "month-picker",
|
|
67
75
|
},
|
|
68
76
|
};
|
|
69
77
|
export const CustomToggle = {
|
|
70
78
|
args: {
|
|
71
79
|
datePickerId: "picker-04",
|
|
72
80
|
label: "date picker",
|
|
81
|
+
value: "25-01-2024",
|
|
82
|
+
name: "date-toogle-picker",
|
|
73
83
|
},
|
|
74
84
|
render: (args) => html `
|
|
75
85
|
<script>
|
|
76
86
|
document.getElementById("${args.datePickerId}").addEventListener("dateSelect", (e) => {
|
|
77
|
-
const input = document.getElementById("output");
|
|
87
|
+
const input = document.getElementById("output-${args.datePickerId}");
|
|
78
88
|
input.innerHTML = "[" + e.detail + "]";
|
|
79
89
|
});
|
|
80
90
|
</script>
|
|
@@ -86,13 +96,15 @@ export const CustomToggle = {
|
|
|
86
96
|
id=${args.datePickerId}
|
|
87
97
|
ariaLabel=${args.ariaLabel}
|
|
88
98
|
label=${args.label}
|
|
89
|
-
|
|
99
|
+
value=${args.value}
|
|
90
100
|
>
|
|
101
|
+
<z-button slot="toggle">Open ZDatePicker</z-button>
|
|
102
|
+
</z-date-picker>
|
|
91
103
|
</div>
|
|
92
104
|
<div class="story-output-container">
|
|
93
105
|
<span>OUTPUT:</span>
|
|
94
106
|
<br />
|
|
95
|
-
<span id="output" />
|
|
107
|
+
<span id="output-${args.datePickerId}" />
|
|
96
108
|
</div>
|
|
97
109
|
</div>
|
|
98
110
|
`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.stories.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/z-date-picker/index.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE;gBACP,IAAI,EAAE,cAAc;aACrB;SACF;KACF;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI,EAAE,eAAe,CAAC,IAAI;KAC3B;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;iCAES,IAAI,CAAC,YAAY
|
|
1
|
+
{"version":3,"file":"index.stories.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/z-date-picker/index.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE;gBACP,IAAI,EAAE,cAAc;aACrB;SACF;KACF;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI,EAAE,eAAe,CAAC,IAAI;KAC3B;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;iCAES,IAAI,CAAC,YAAY;wDACM,IAAI,CAAC,YAAY;;;;;;;iBAOxD,IAAI,CAAC,IAAI;0BACA,IAAI,CAAC,YAAY;eAC5B,IAAI,CAAC,YAAY;sBACV,IAAI,CAAC,SAAS;kBAClB,IAAI,CAAC,KAAK;kBACV,IAAI,CAAC,KAAK;;;;;;2BAMD,IAAI,CAAC,YAAY;;;GAGzC;CAC0B,CAAC;AAE9B,eAAe,SAAS,CAAC;AAIzB,MAAM,CAAC,MAAM,IAAI,GAAU;IACzB,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,YAAY;KACpB;CACc,CAAC;AAElB,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,gCAAgC;QACvC,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,kBAAkB;KACzB;CACc,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,8BAA8B;QACrC,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,cAAc;KACrB;CACc,CAAC;AAElB,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,oBAAoB;KAC3B;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;iCAES,IAAI,CAAC,YAAY;wDACM,IAAI,CAAC,YAAY;;;;;;;iBAOxD,IAAI,CAAC,IAAI;0BACA,IAAI,CAAC,YAAY;eAC5B,IAAI,CAAC,YAAY;sBACV,IAAI,CAAC,SAAS;kBAClB,IAAI,CAAC,KAAK;kBACV,IAAI,CAAC,KAAK;;;;;;;;2BAQD,IAAI,CAAC,YAAY;;;GAGzC;CACc,CAAC","sourcesContent":["import {Meta, StoryObj} from \"@storybook/web-components\";\nimport {html} from \"lit\";\nimport {type ZDatePicker} from \".\";\nimport {ZDatePickerMode} from \"../../../beans\";\nimport \"../../z-button/index\";\nimport \"../index.stories.css\";\nimport \"./index\";\n\n/**\n * In order to avoid conflits between datepickers, pass a unique id as `datePickerId` prop.\n * This component emits an event called `dateSelect` with the value of the selected date.\n */\nconst StoryMeta = {\n title: \"ZDatePicker\",\n component: \"z-date-picker\",\n argTypes: {\n mode: {\n options: Object.values(ZDatePickerMode),\n control: {\n type: \"inline-radio\",\n },\n },\n },\n args: {\n ariaLabel: \"date-picker\",\n mode: ZDatePickerMode.DATE,\n },\n render: (args) => html`\n <script>\n document.getElementById(\"${args.datePickerId}\").addEventListener(\"dateSelect\", (e) => {\n const input = document.getElementById(\"output-${args.datePickerId}\");\n input.innerHTML = \"[\" + e.detail + \"]\";\n });\n </script>\n <div class=\"story-container\">\n <div class=\"story-picker-container\">\n <z-date-picker\n mode=${args.mode}\n .datePickerId=${args.datePickerId}\n id=${args.datePickerId}\n ariaLabel=${args.ariaLabel}\n label=${args.label}\n value=${args.value}\n ></z-date-picker>\n </div>\n <div class=\"story-output-container\">\n <span>OUTPUT:</span>\n <br />\n <span id=\"output-${args.datePickerId}\" />\n </div>\n </div>\n `,\n} satisfies Meta<ZDatePicker>;\n\nexport default StoryMeta;\n\ntype Story = StoryObj<ZDatePicker>;\n\nexport const Date: Story = {\n args: {\n datePickerId: \"picker-01\",\n label: \"ZDatePicker with date\",\n value: \"25-12-2024\",\n },\n} satisfies Story;\n\nexport const DateAndTime: Story = {\n args: {\n datePickerId: \"picker-02\",\n label: \"ZDatePicker with date and time\",\n mode: ZDatePickerMode.DATE_TIME,\n value: \"05-12-2024 - 12:01\",\n name: \"date-time-picker\",\n },\n} satisfies Story;\n\nexport const MonthsOnly: Story = {\n args: {\n datePickerId: \"picker-03\",\n label: \"ZDatePicker with only months\",\n mode: ZDatePickerMode.MONTHS,\n value: \"12-2024\",\n name: \"month-picker\",\n },\n} satisfies Story;\n\nexport const CustomToggle: Story = {\n args: {\n datePickerId: \"picker-04\",\n label: \"date picker\",\n value: \"25-01-2024\",\n name: \"date-toogle-picker\",\n },\n render: (args) => html`\n <script>\n document.getElementById(\"${args.datePickerId}\").addEventListener(\"dateSelect\", (e) => {\n const input = document.getElementById(\"output-${args.datePickerId}\");\n input.innerHTML = \"[\" + e.detail + \"]\";\n });\n </script>\n <div class=\"story-container\">\n <div class=\"story-picker-container\">\n <z-date-picker\n mode=${args.mode}\n .datePickerId=${args.datePickerId}\n id=${args.datePickerId}\n ariaLabel=${args.ariaLabel}\n label=${args.label}\n value=${args.value}\n >\n <z-button slot=\"toggle\">Open ZDatePicker</z-button>\n </z-date-picker>\n </div>\n <div class=\"story-output-container\">\n <span>OUTPUT:</span>\n <br />\n <span id=\"output-${args.datePickerId}\" />\n </div>\n </div>\n `,\n} satisfies Story;\n"]}
|