@zanichelli/albe-web-components 5.2.0 → 5.4.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/dist/cjs/{index-69339d64.js → index-a8bdcb9c.js} +5 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{utils-bfd07a33.js → utils-21d41d92.js} +17 -2
- package/dist/cjs/{utils-98ed20af.js → utils-eca6932d.js} +1 -1
- package/dist/cjs/web-components-library.cjs.js +1 -1
- package/dist/cjs/z-app-switcher_9.cjs.entry.js +216 -190
- package/dist/cjs/z-aria-alert.cjs.entry.js +1 -1
- package/dist/cjs/z-avatar.cjs.entry.js +1 -1
- package/dist/cjs/z-button-deprecated.cjs.entry.js +1 -1
- package/dist/cjs/z-button.cjs.entry.js +1 -1
- package/dist/cjs/z-card.cjs.entry.js +1 -1
- package/dist/cjs/z-chip.cjs.entry.js +3 -3
- package/dist/cjs/z-combobox.cjs.entry.js +2 -2
- package/dist/cjs/z-contextual-menu.cjs.entry.js +1 -1
- package/dist/cjs/z-cookiebar.cjs.entry.js +1 -1
- package/dist/cjs/z-date-picker.cjs.entry.js +95 -26
- package/dist/cjs/z-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/z-file.cjs.entry.js +1 -1
- package/dist/cjs/z-footer.cjs.entry.js +1 -1
- package/dist/cjs/z-info-reveal.cjs.entry.js +1 -1
- package/dist/cjs/z-input-deprecated.cjs.entry.js +2 -2
- package/dist/cjs/z-input-label_2.cjs.entry.js +2 -2
- package/dist/cjs/z-list-group.cjs.entry.js +1 -1
- package/dist/cjs/z-list_2.cjs.entry.js +1 -1
- package/dist/cjs/z-menu-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/z-messages-pocket.cjs.entry.js +1 -1
- package/dist/cjs/z-modal-login.cjs.entry.js +1 -1
- package/dist/cjs/z-myz-card-alert.cjs.entry.js +1 -1
- package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +1 -1
- package/dist/cjs/z-myz-card-footer.cjs.entry.js +1 -1
- package/dist/cjs/z-myz-card-info.cjs.entry.js +2 -2
- package/dist/cjs/z-myz-card_4.cjs.entry.js +1 -1
- package/dist/cjs/z-myz-list-item.cjs.entry.js +2 -2
- package/dist/cjs/z-myz-topbar.cjs.entry.js +1 -1
- package/dist/cjs/z-navigation-tab-link.cjs.entry.js +1 -1
- package/dist/cjs/z-navigation-tab.cjs.entry.js +1 -1
- package/dist/cjs/z-navigation-tabs.cjs.entry.js +1 -1
- package/dist/cjs/z-offcanvas.cjs.entry.js +1 -1
- package/dist/cjs/z-otp.cjs.entry.js +1 -1
- package/dist/cjs/z-pagination-bar.cjs.entry.js +2 -2
- package/dist/cjs/z-pocket_3.cjs.entry.js +2 -2
- package/dist/cjs/z-popover-deprecated.cjs.entry.js +2 -2
- package/dist/cjs/z-popover.cjs.entry.js +1 -1
- package/dist/cjs/z-section-title.cjs.entry.js +1 -1
- package/dist/cjs/z-skip-to-content.cjs.entry.js +2 -2
- package/dist/cjs/z-slideshow.cjs.entry.js +2 -2
- package/dist/cjs/z-status-tag.cjs.entry.js +1 -1
- package/dist/cjs/z-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/z-table-header.cjs.entry.js +2 -2
- package/dist/cjs/z-table-row.cjs.entry.js +1 -1
- package/dist/cjs/z-table.cjs.entry.js +1 -1
- package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
- package/dist/cjs/z-toast-notification.cjs.entry.js +1 -1
- package/dist/cjs/z-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/z-tooltip-deprecated.cjs.entry.js +1 -1
- package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
- package/dist/collection/beans/index.js +5 -0
- package/dist/collection/components/buttons/z-chip/styles.css +2 -9
- package/dist/collection/components/date-picker/styles.css +32 -26
- package/dist/collection/components/date-picker/utils.js +15 -1
- package/dist/collection/components/date-picker/z-date-picker/index.js +102 -27
- package/dist/collection/components/date-picker/z-range-picker/index.js +230 -207
- package/dist/esm/{index-0944317b.js → index-e5e2b27f.js} +6 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{utils-20383a26.js → utils-34c0d609.js} +17 -3
- package/dist/esm/{utils-0d95f520.js → utils-9fa9c37c.js} +1 -1
- package/dist/esm/web-components-library.js +1 -1
- package/dist/esm/z-app-switcher_9.entry.js +216 -190
- package/dist/esm/z-aria-alert.entry.js +1 -1
- package/dist/esm/z-avatar.entry.js +1 -1
- package/dist/esm/z-button-deprecated.entry.js +1 -1
- package/dist/esm/z-button.entry.js +1 -1
- package/dist/esm/z-card.entry.js +1 -1
- package/dist/esm/z-chip.entry.js +3 -3
- package/dist/esm/z-combobox.entry.js +2 -2
- package/dist/esm/z-contextual-menu.entry.js +1 -1
- package/dist/esm/z-cookiebar.entry.js +1 -1
- package/dist/esm/z-date-picker.entry.js +95 -26
- package/dist/esm/z-file-upload.entry.js +2 -2
- package/dist/esm/z-file.entry.js +1 -1
- package/dist/esm/z-footer.entry.js +1 -1
- package/dist/esm/z-info-reveal.entry.js +1 -1
- package/dist/esm/z-input-deprecated.entry.js +2 -2
- package/dist/esm/z-input-label_2.entry.js +2 -2
- package/dist/esm/z-list-group.entry.js +1 -1
- package/dist/esm/z-list_2.entry.js +1 -1
- package/dist/esm/z-menu-dropdown_2.entry.js +2 -2
- package/dist/esm/z-messages-pocket.entry.js +1 -1
- package/dist/esm/z-modal-login.entry.js +1 -1
- package/dist/esm/z-myz-card-alert.entry.js +1 -1
- package/dist/esm/z-myz-card-dictionary.entry.js +1 -1
- package/dist/esm/z-myz-card-footer.entry.js +1 -1
- package/dist/esm/z-myz-card-info.entry.js +2 -2
- package/dist/esm/z-myz-card_4.entry.js +1 -1
- package/dist/esm/z-myz-list-item.entry.js +2 -2
- package/dist/esm/z-myz-topbar.entry.js +1 -1
- package/dist/esm/z-navigation-tab-link.entry.js +1 -1
- package/dist/esm/z-navigation-tab.entry.js +1 -1
- package/dist/esm/z-navigation-tabs.entry.js +1 -1
- package/dist/esm/z-offcanvas.entry.js +1 -1
- package/dist/esm/z-otp.entry.js +1 -1
- package/dist/esm/z-pagination-bar.entry.js +2 -2
- package/dist/esm/z-pocket_3.entry.js +2 -2
- package/dist/esm/z-popover-deprecated.entry.js +2 -2
- package/dist/esm/z-popover.entry.js +1 -1
- package/dist/esm/z-section-title.entry.js +1 -1
- package/dist/esm/z-skip-to-content.entry.js +2 -2
- package/dist/esm/z-slideshow.entry.js +2 -2
- package/dist/esm/z-status-tag.entry.js +1 -1
- package/dist/esm/z-table-cell.entry.js +1 -1
- package/dist/esm/z-table-header.entry.js +2 -2
- package/dist/esm/z-table-row.entry.js +1 -1
- package/dist/esm/z-table.entry.js +1 -1
- package/dist/esm/z-toast-notification-list.entry.js +1 -1
- package/dist/esm/z-toast-notification.entry.js +1 -1
- package/dist/esm/z-toggle-switch.entry.js +2 -2
- package/dist/esm/z-tooltip-deprecated.entry.js +1 -1
- package/dist/esm/z-tooltip.entry.js +1 -1
- package/dist/types/beans/index.d.ts +4 -0
- package/dist/types/components/date-picker/utils.d.ts +4 -3
- package/dist/types/components/date-picker/z-date-picker/index.d.ts +6 -1
- package/dist/types/components/date-picker/z-range-picker/index.d.ts +16 -15
- package/dist/types/components.d.ts +5 -5
- package/dist/web-components-library/index.esm.js +1 -1
- package/dist/web-components-library/p-0146081c.entry.js +16 -0
- package/{www/build/p-c36ad471.entry.js → dist/web-components-library/p-040ea013.entry.js} +1 -1
- package/dist/web-components-library/{p-bfccbf81.entry.js → p-07ae4f7d.entry.js} +1 -1
- package/dist/web-components-library/p-0c3e7bc3.js +1 -0
- package/dist/web-components-library/{p-ac4f1a90.entry.js → p-1356eb90.entry.js} +1 -1
- package/dist/web-components-library/{p-84d7a0ed.entry.js → p-1c790896.entry.js} +1 -1
- package/dist/web-components-library/{p-ea4a063a.entry.js → p-215adfd1.entry.js} +1 -1
- package/dist/web-components-library/{p-0818a02f.entry.js → p-27666111.entry.js} +1 -1
- package/dist/web-components-library/{p-bfa1813d.entry.js → p-2ed37f62.entry.js} +1 -1
- package/{www/build/p-adb293aa.entry.js → dist/web-components-library/p-35573e0e.entry.js} +1 -1
- package/dist/web-components-library/{p-2275728f.entry.js → p-3700ad63.entry.js} +1 -1
- package/dist/web-components-library/{p-275bebf2.entry.js → p-39dbb042.entry.js} +1 -1
- package/dist/web-components-library/{p-0a7ebd31.entry.js → p-3a991f9c.entry.js} +1 -1
- package/dist/web-components-library/{p-0be8daa3.entry.js → p-3ade68ff.entry.js} +1 -1
- package/dist/web-components-library/{p-f24e569d.entry.js → p-3d748f0d.entry.js} +1 -1
- package/dist/web-components-library/p-47a55354.entry.js +1 -0
- package/dist/web-components-library/{p-ac41dd18.entry.js → p-4965b6db.entry.js} +1 -1
- package/dist/web-components-library/p-4b9b6487.entry.js +1 -0
- package/dist/web-components-library/{p-122f0f28.js → p-5aa819f8.js} +1 -1
- package/dist/web-components-library/p-5e3b8207.entry.js +1 -0
- package/dist/web-components-library/{p-854f5b2e.entry.js → p-766eb9cf.entry.js} +1 -1
- package/{www/build/p-fb7d64f2.js → dist/web-components-library/p-7a5ecafb.js} +1 -1
- package/dist/web-components-library/{p-269a9ec5.entry.js → p-7e691a4e.entry.js} +1 -1
- package/dist/web-components-library/{p-cd6ec70f.entry.js → p-7f48b622.entry.js} +1 -1
- package/dist/web-components-library/{p-6f18a0fc.entry.js → p-80f26a20.entry.js} +1 -1
- package/{www/build/p-3a57ff32.entry.js → dist/web-components-library/p-818c073b.entry.js} +1 -1
- package/dist/web-components-library/{p-cdabcb55.entry.js → p-846f16e8.entry.js} +1 -1
- package/dist/web-components-library/{p-721d1645.entry.js → p-8712d63f.entry.js} +1 -1
- package/{www/build/p-546616a7.entry.js → dist/web-components-library/p-878e62e2.entry.js} +1 -1
- package/dist/web-components-library/{p-6aa8b260.entry.js → p-91cbf793.entry.js} +1 -1
- package/dist/web-components-library/{p-9b873fe5.entry.js → p-9504d075.entry.js} +1 -1
- package/dist/web-components-library/{p-6ff49230.entry.js → p-96bf5b15.entry.js} +1 -1
- package/dist/web-components-library/{p-e150820d.entry.js → p-977c81d3.entry.js} +1 -1
- package/dist/web-components-library/{p-251fce3e.entry.js → p-97d62d2a.entry.js} +1 -1
- package/dist/web-components-library/{p-687ba257.entry.js → p-a73195b6.entry.js} +1 -1
- package/dist/web-components-library/{p-37e06523.entry.js → p-aba00527.entry.js} +1 -1
- package/dist/web-components-library/{p-939662fa.entry.js → p-ac52264c.entry.js} +1 -1
- package/dist/web-components-library/{p-9ac122ea.entry.js → p-afed0692.entry.js} +1 -1
- package/{www/build/p-de2b2858.entry.js → dist/web-components-library/p-b369bf2f.entry.js} +1 -1
- package/dist/web-components-library/{p-db7dbb44.entry.js → p-b621a765.entry.js} +1 -1
- package/dist/web-components-library/{p-8d50bfa9.entry.js → p-b6794d0f.entry.js} +1 -1
- package/dist/web-components-library/{p-095a0982.entry.js → p-ba76f52b.entry.js} +1 -1
- package/dist/web-components-library/{p-919cdfbf.entry.js → p-cb3663e6.entry.js} +1 -1
- package/dist/web-components-library/{p-98350ea9.entry.js → p-cb4a854e.entry.js} +1 -1
- package/dist/web-components-library/{p-b5b5e5e3.entry.js → p-d4c5085b.entry.js} +1 -1
- package/dist/web-components-library/{p-a72503d2.entry.js → p-d5e67db8.entry.js} +1 -1
- package/dist/web-components-library/p-e4a2811a.entry.js +1 -0
- package/{www/build/p-f1eee91e.entry.js → dist/web-components-library/p-e5eb1fa4.entry.js} +1 -1
- package/dist/web-components-library/{p-1fae466d.entry.js → p-e6fb8b76.entry.js} +1 -1
- package/dist/web-components-library/p-e82cee27.entry.js +1 -0
- package/dist/web-components-library/{p-ebcda09e.entry.js → p-eddde828.entry.js} +1 -1
- package/{www/build/p-d3ce433b.entry.js → dist/web-components-library/p-f2962121.entry.js} +1 -1
- package/dist/web-components-library/{p-bdf5ab5b.entry.js → p-f5f15b8e.entry.js} +1 -1
- package/dist/web-components-library/{p-5cbe4445.entry.js → p-faeb0c6e.entry.js} +1 -1
- package/dist/web-components-library/web-components-library.css +1 -1
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/package.json +1 -1
- package/www/build/index.esm.js +1 -1
- package/www/build/p-0146081c.entry.js +16 -0
- package/{dist/web-components-library/p-c36ad471.entry.js → www/build/p-040ea013.entry.js} +1 -1
- package/www/build/{p-bfccbf81.entry.js → p-07ae4f7d.entry.js} +1 -1
- package/www/build/p-0c3e7bc3.js +1 -0
- package/www/build/{p-ac4f1a90.entry.js → p-1356eb90.entry.js} +1 -1
- package/www/build/{p-84d7a0ed.entry.js → p-1c790896.entry.js} +1 -1
- package/www/build/{p-ea4a063a.entry.js → p-215adfd1.entry.js} +1 -1
- package/www/build/{p-0818a02f.entry.js → p-27666111.entry.js} +1 -1
- package/www/build/{p-bfa1813d.entry.js → p-2ed37f62.entry.js} +1 -1
- package/{dist/web-components-library/p-adb293aa.entry.js → www/build/p-35573e0e.entry.js} +1 -1
- package/www/build/{p-2275728f.entry.js → p-3700ad63.entry.js} +1 -1
- package/www/build/{p-275bebf2.entry.js → p-39dbb042.entry.js} +1 -1
- package/www/build/{p-0a7ebd31.entry.js → p-3a991f9c.entry.js} +1 -1
- package/www/build/{p-0be8daa3.entry.js → p-3ade68ff.entry.js} +1 -1
- package/www/build/{p-f24e569d.entry.js → p-3d748f0d.entry.js} +1 -1
- package/www/build/p-47a55354.entry.js +1 -0
- package/www/build/{p-ac41dd18.entry.js → p-4965b6db.entry.js} +1 -1
- package/www/build/p-4b9b6487.entry.js +1 -0
- package/www/build/{p-88b56b6e.css → p-4c9c83c0.css} +1 -1
- package/www/build/{p-122f0f28.js → p-5aa819f8.js} +1 -1
- package/www/build/p-5e3b8207.entry.js +1 -0
- package/www/build/{p-854f5b2e.entry.js → p-766eb9cf.entry.js} +1 -1
- package/{dist/web-components-library/p-fb7d64f2.js → www/build/p-7a5ecafb.js} +1 -1
- package/www/build/{p-269a9ec5.entry.js → p-7e691a4e.entry.js} +1 -1
- package/www/build/{p-cd6ec70f.entry.js → p-7f48b622.entry.js} +1 -1
- package/www/build/{p-6f18a0fc.entry.js → p-80f26a20.entry.js} +1 -1
- package/{dist/web-components-library/p-3a57ff32.entry.js → www/build/p-818c073b.entry.js} +1 -1
- package/www/build/{p-cdabcb55.entry.js → p-846f16e8.entry.js} +1 -1
- package/www/build/{p-721d1645.entry.js → p-8712d63f.entry.js} +1 -1
- package/{dist/web-components-library/p-546616a7.entry.js → www/build/p-878e62e2.entry.js} +1 -1
- package/www/build/p-8b26a19e.js +1 -0
- package/www/build/{p-6aa8b260.entry.js → p-91cbf793.entry.js} +1 -1
- package/www/build/{p-9b873fe5.entry.js → p-9504d075.entry.js} +1 -1
- package/www/build/{p-6ff49230.entry.js → p-96bf5b15.entry.js} +1 -1
- package/www/build/{p-e150820d.entry.js → p-977c81d3.entry.js} +1 -1
- package/www/build/{p-251fce3e.entry.js → p-97d62d2a.entry.js} +1 -1
- package/www/build/{p-687ba257.entry.js → p-a73195b6.entry.js} +1 -1
- package/www/build/{p-37e06523.entry.js → p-aba00527.entry.js} +1 -1
- package/www/build/{p-939662fa.entry.js → p-ac52264c.entry.js} +1 -1
- package/www/build/{p-9ac122ea.entry.js → p-afed0692.entry.js} +1 -1
- package/{dist/web-components-library/p-de2b2858.entry.js → www/build/p-b369bf2f.entry.js} +1 -1
- package/www/build/{p-db7dbb44.entry.js → p-b621a765.entry.js} +1 -1
- package/www/build/{p-8d50bfa9.entry.js → p-b6794d0f.entry.js} +1 -1
- package/www/build/{p-095a0982.entry.js → p-ba76f52b.entry.js} +1 -1
- package/www/build/{p-919cdfbf.entry.js → p-cb3663e6.entry.js} +1 -1
- package/www/build/{p-98350ea9.entry.js → p-cb4a854e.entry.js} +1 -1
- package/www/build/{p-b5b5e5e3.entry.js → p-d4c5085b.entry.js} +1 -1
- package/www/build/{p-a72503d2.entry.js → p-d5e67db8.entry.js} +1 -1
- package/www/build/p-e4a2811a.entry.js +1 -0
- package/{dist/web-components-library/p-f1eee91e.entry.js → www/build/p-e5eb1fa4.entry.js} +1 -1
- package/www/build/{p-1fae466d.entry.js → p-e6fb8b76.entry.js} +1 -1
- package/www/build/p-e82cee27.entry.js +1 -0
- package/www/build/{p-ebcda09e.entry.js → p-eddde828.entry.js} +1 -1
- package/{dist/web-components-library/p-d3ce433b.entry.js → www/build/p-f2962121.entry.js} +1 -1
- package/www/build/{p-bdf5ab5b.entry.js → p-f5f15b8e.entry.js} +1 -1
- package/www/build/{p-5cbe4445.entry.js → p-faeb0c6e.entry.js} +1 -1
- package/www/build/web-components-library.css +1 -1
- package/www/build/web-components-library.esm.js +1 -1
- package/www/index.html +1 -1
- package/CHANGELOG.md +0 -1850
- package/dist/web-components-library/p-717c5e20.entry.js +0 -1
- package/dist/web-components-library/p-9247f214.js +0 -1
- package/dist/web-components-library/p-955942fc.entry.js +0 -16
- package/dist/web-components-library/p-af353020.entry.js +0 -1
- package/dist/web-components-library/p-b40d8313.entry.js +0 -1
- package/dist/web-components-library/p-ce351931.entry.js +0 -1
- package/dist/web-components-library/p-ed40ca4d.entry.js +0 -1
- package/src-react/index.ts +0 -1
- package/www/build/p-717c5e20.entry.js +0 -1
- package/www/build/p-7ed835e0.js +0 -1
- package/www/build/p-9247f214.js +0 -1
- package/www/build/p-955942fc.entry.js +0 -16
- package/www/build/p-af353020.entry.js +0 -1
- package/www/build/p-b40d8313.entry.js +0 -1
- package/www/build/p-ce351931.entry.js +0 -1
- package/www/build/p-ed40ca4d.entry.js +0 -1
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { ZDatePickerMode, ZDatePickerModeValues, ZDatePickerPosition, } from "../../beans";
|
|
2
|
+
export function validateDate(dateStr, hasTime = false) {
|
|
3
|
+
const regex = hasTime
|
|
4
|
+
? /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4} - \d{2}:\d{2}$/
|
|
5
|
+
: /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}$/;
|
|
6
|
+
if (dateStr.match(regex) === null) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
2
11
|
export function setFlatpickrPosition(element, mode) {
|
|
3
12
|
const toggleHeight = element.children[0].clientHeight;
|
|
4
13
|
element.style.setProperty("--z-range-picker--toggle-height", `${toggleHeight}px`);
|
|
@@ -25,6 +34,11 @@ export function setAriaOptions(element, mode) {
|
|
|
25
34
|
let nextMonthArrow = element.getElementsByClassName("flatpickr-next-month")[0];
|
|
26
35
|
let tabindexElements = element.querySelectorAll('[tabindex = "-1"]');
|
|
27
36
|
tabindexElements.forEach((element) => element.setAttribute("tabindex", "0"));
|
|
37
|
+
Array.from(element.getElementsByClassName("flatpickr-day")).forEach((date) => {
|
|
38
|
+
if (date.classList.contains("flatpickr-disabled")) {
|
|
39
|
+
date.setAttribute("tabindex", "-1");
|
|
40
|
+
}
|
|
41
|
+
});
|
|
28
42
|
prevMonthArrow.setAttribute("tabindex", "0");
|
|
29
43
|
nextMonthArrow.setAttribute("tabindex", "0");
|
|
30
44
|
prevMonthArrow.setAttribute("role", "button");
|
|
@@ -39,7 +53,7 @@ export function setAriaOptions(element, mode) {
|
|
|
39
53
|
setDateTimeAriaOptions(element, prevMonthArrow, nextMonthArrow);
|
|
40
54
|
}
|
|
41
55
|
if (mode === ZDatePickerMode.months) {
|
|
42
|
-
setMonthsAriaOptions(
|
|
56
|
+
setMonthsAriaOptions(element, prevMonthArrow, nextMonthArrow);
|
|
43
57
|
}
|
|
44
58
|
});
|
|
45
59
|
}
|
|
@@ -1,54 +1,76 @@
|
|
|
1
|
-
import { Component, Prop, Element, h, Event, Listen, State, } from "@stencil/core";
|
|
1
|
+
import { Component, Prop, Element, h, Event, Listen, State, Watch, } from "@stencil/core";
|
|
2
2
|
import flatpickr from "flatpickr";
|
|
3
3
|
import { Italian } from "flatpickr/dist/l10n/it.js";
|
|
4
4
|
import monthSelectPlugin from "flatpickr/dist/plugins/monthSelect";
|
|
5
5
|
import classNames from "classnames";
|
|
6
|
-
import { ZDatePickerMode, ZDatePickerPosition } from "../../../beans";
|
|
7
|
-
import { setAriaOptions, setFlatpickrPosition } from "../utils";
|
|
6
|
+
import { InputTypeEnum, ZDatePickerMode, ZDatePickerPosition, } from "../../../beans";
|
|
7
|
+
import { setAriaOptions, setFlatpickrPosition, validateDate } from "../utils";
|
|
8
8
|
export class ZDatePicker {
|
|
9
9
|
constructor() {
|
|
10
10
|
/** [Optional] datepicker mode: date, datetime, only months */
|
|
11
11
|
this.mode = ZDatePickerMode.date;
|
|
12
12
|
this.flatpickrPosition = ZDatePickerPosition.bottom;
|
|
13
|
+
this.inputError = false;
|
|
14
|
+
}
|
|
15
|
+
watchMode() {
|
|
16
|
+
this.setupPickers();
|
|
13
17
|
}
|
|
14
18
|
emitDateSelect(date) {
|
|
15
19
|
this.dateSelect.emit(date);
|
|
16
20
|
}
|
|
17
21
|
handleKeyDown(ev) {
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
23
|
+
if (ev.key === "Escape") {
|
|
24
|
+
(_a = this.picker) === null || _a === void 0 ? void 0 : _a.close();
|
|
25
|
+
}
|
|
18
26
|
if (ev.key === "Enter" || ev.key === " ") {
|
|
27
|
+
!this.hasChildren && ((_b = this.picker) === null || _b === void 0 ? void 0 : _b.open());
|
|
28
|
+
let isCrossIconEntered = document.activeElement.classList.contains("resetIcon");
|
|
29
|
+
if (isCrossIconEntered) {
|
|
30
|
+
this.inputError = false;
|
|
31
|
+
(_c = this.picker) === null || _c === void 0 ? void 0 : _c.setDate([]);
|
|
32
|
+
this.dateSelect.emit(null);
|
|
33
|
+
}
|
|
34
|
+
let flatpickrDayPressed = document.activeElement.classList.contains("flatpickr-day");
|
|
35
|
+
if (flatpickrDayPressed) {
|
|
36
|
+
//Sistemare il toggle
|
|
37
|
+
}
|
|
19
38
|
let isPrevArrowEntered = document.activeElement.classList.contains("flatpickr-prev-month");
|
|
20
39
|
let isNextArrowEntered = document.activeElement.classList.contains("flatpickr-next-month");
|
|
21
40
|
let arrowPressed = isPrevArrowEntered || isNextArrowEntered;
|
|
22
41
|
arrowPressed && ev.key === " " && ev.preventDefault();
|
|
23
42
|
if (this.mode === ZDatePickerMode.months) {
|
|
24
43
|
isPrevArrowEntered &&
|
|
25
|
-
this.
|
|
44
|
+
((_d = this.picker) === null || _d === void 0 ? void 0 : _d.changeYear(this.picker.currentYear - 1));
|
|
26
45
|
isNextArrowEntered &&
|
|
27
|
-
this.
|
|
46
|
+
((_e = this.picker) === null || _e === void 0 ? void 0 : _e.changeYear(this.picker.currentYear + 1));
|
|
28
47
|
if (arrowPressed) {
|
|
29
48
|
let calendar = this.element.getElementsByClassName("flatpickr-calendar")[0];
|
|
30
|
-
let months = calendar.querySelectorAll(".flatpickr-monthSelect-month");
|
|
31
|
-
months.forEach((element) => {
|
|
32
|
-
|
|
49
|
+
let months = calendar === null || calendar === void 0 ? void 0 : calendar.querySelectorAll(".flatpickr-monthSelect-month");
|
|
50
|
+
months === null || months === void 0 ? void 0 : months.forEach((element) => {
|
|
51
|
+
var _a;
|
|
52
|
+
element.setAttribute("aria-label", `${element.innerHTML} ${(_a = this.picker) === null || _a === void 0 ? void 0 : _a.currentYear}`);
|
|
33
53
|
});
|
|
34
54
|
//Force check of the current day
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
months &&
|
|
56
|
+
Array.from(months).forEach((element, index) => {
|
|
57
|
+
var _a;
|
|
58
|
+
let curMonth = new Date().getMonth();
|
|
59
|
+
let curYear = new Date().getFullYear();
|
|
60
|
+
if (index === curMonth) {
|
|
61
|
+
if (((_a = this.picker) === null || _a === void 0 ? void 0 : _a.currentYear) === curYear) {
|
|
62
|
+
element.setAttribute("class", "flatpickr-monthSelect-month today");
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
element.setAttribute("class", "flatpickr-monthSelect-month");
|
|
66
|
+
}
|
|
44
67
|
}
|
|
45
|
-
}
|
|
46
|
-
});
|
|
68
|
+
});
|
|
47
69
|
}
|
|
48
70
|
}
|
|
49
71
|
else {
|
|
50
|
-
isPrevArrowEntered && this.
|
|
51
|
-
isNextArrowEntered && this.
|
|
72
|
+
isPrevArrowEntered && ((_f = this.picker) === null || _f === void 0 ? void 0 : _f.changeMonth(-1));
|
|
73
|
+
isNextArrowEntered && ((_g = this.picker) === null || _g === void 0 ? void 0 : _g.changeMonth(1));
|
|
52
74
|
}
|
|
53
75
|
}
|
|
54
76
|
}
|
|
@@ -58,7 +80,13 @@ export class ZDatePicker {
|
|
|
58
80
|
this.hasChildren && customToggle.setAttribute("data-toggle", "data-toggle");
|
|
59
81
|
}
|
|
60
82
|
componentDidLoad() {
|
|
61
|
-
this.
|
|
83
|
+
this.setupPickers();
|
|
84
|
+
}
|
|
85
|
+
setupPickers() {
|
|
86
|
+
const classToAppend = this.hasChildren
|
|
87
|
+
? `${this.datePickerId}-hidden`
|
|
88
|
+
: `${this.datePickerId}-container`;
|
|
89
|
+
this.picker = flatpickr(`.${classToAppend}`, {
|
|
62
90
|
appendTo: this.element.children[0],
|
|
63
91
|
enableTime: this.mode === ZDatePickerMode.dateTime,
|
|
64
92
|
locale: Italian,
|
|
@@ -77,7 +105,7 @@ export class ZDatePicker {
|
|
|
77
105
|
onKeyDown: () => {
|
|
78
106
|
setAriaOptions(this.element, this.mode);
|
|
79
107
|
},
|
|
80
|
-
wrap:
|
|
108
|
+
wrap: true,
|
|
81
109
|
plugins: this.mode === ZDatePickerMode.months && [
|
|
82
110
|
monthSelectPlugin({
|
|
83
111
|
dateFormat: "m-Y",
|
|
@@ -89,16 +117,58 @@ export class ZDatePicker {
|
|
|
89
117
|
element.innerHTML = element.innerHTML.trim().charAt(0);
|
|
90
118
|
});
|
|
91
119
|
}
|
|
120
|
+
formatDate(date) {
|
|
121
|
+
if (this.mode === ZDatePickerMode.date) {
|
|
122
|
+
return `${flatpickr.formatDate(date, "d-m-Y")}`;
|
|
123
|
+
}
|
|
124
|
+
else if (this.mode === ZDatePickerMode.months) {
|
|
125
|
+
return `${flatpickr.formatDate(date, "m-Y")}`;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return `${flatpickr.formatDate(date, "d-m-Y - H:i")}`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
onStopTyping(value) {
|
|
132
|
+
let text = value.detail.value;
|
|
133
|
+
if (this.mode === ZDatePickerMode.months) {
|
|
134
|
+
text = "01-".concat(value.detail.value);
|
|
135
|
+
}
|
|
136
|
+
let englishData = text.split("-");
|
|
137
|
+
let time = this.mode === ZDatePickerMode.dateTime ? `T${englishData[3]}:00` : "";
|
|
138
|
+
let englishParsedData = `${englishData[2]}-${englishData[1]}-${englishData[0]}${time}`
|
|
139
|
+
.split(" ")
|
|
140
|
+
.join("");
|
|
141
|
+
let isValidDate = validateDate(englishParsedData, this.mode === ZDatePickerMode.dateTime);
|
|
142
|
+
if (text === "") {
|
|
143
|
+
this.inputError = false;
|
|
144
|
+
this.picker.setDate([]);
|
|
145
|
+
this.dateSelect.emit(null);
|
|
146
|
+
}
|
|
147
|
+
else if (!isValidDate) {
|
|
148
|
+
this.inputError = true;
|
|
149
|
+
this.dateSelect.emit(null);
|
|
150
|
+
}
|
|
151
|
+
else if (isValidDate) {
|
|
152
|
+
this.inputError = false;
|
|
153
|
+
this.picker.setDate([value.detail.value]);
|
|
154
|
+
this.dateSelect.emit(this.formatDate(new Date(englishParsedData)));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
92
157
|
renderSlottedContent() {
|
|
93
|
-
return (h("div",
|
|
158
|
+
return (h("div", { class: `${this.datePickerId}-hidden` },
|
|
94
159
|
h("input", { class: "hidden-input", "data-input": true }),
|
|
95
160
|
h("slot", { name: "toggle" })));
|
|
96
161
|
}
|
|
97
162
|
renderZInput() {
|
|
98
|
-
return (h("
|
|
163
|
+
return (h("div", { class: `${this.datePickerId}-container` },
|
|
164
|
+
h("z-input", { "data-input": "data-input", ariaLabel: this.ariaLabel, label: this.label, class: classNames(this.datePickerId), type: InputTypeEnum.text, icon: "event", message: false, tabindex: "0", value: "", onStopTyping: (value) => {
|
|
165
|
+
this.onStopTyping(value);
|
|
166
|
+
}, onStartTyping: () => {
|
|
167
|
+
this.inputError = false;
|
|
168
|
+
} })));
|
|
99
169
|
}
|
|
100
170
|
render() {
|
|
101
|
-
return (h("div", { class: classNames("flatpickr-toggle-container", this.
|
|
171
|
+
return (h("div", { class: classNames("flatpickr-toggle-container", this.flatpickrPosition, this.mode) }, this.hasChildren ? this.renderSlottedContent() : this.renderZInput()));
|
|
102
172
|
}
|
|
103
173
|
static get is() { return "z-date-picker"; }
|
|
104
174
|
static get originalStyleUrls() { return {
|
|
@@ -184,7 +254,8 @@ export class ZDatePicker {
|
|
|
184
254
|
}
|
|
185
255
|
}; }
|
|
186
256
|
static get states() { return {
|
|
187
|
-
"flatpickrPosition": {}
|
|
257
|
+
"flatpickrPosition": {},
|
|
258
|
+
"inputError": {}
|
|
188
259
|
}; }
|
|
189
260
|
static get events() { return [{
|
|
190
261
|
"method": "dateSelect",
|
|
@@ -203,6 +274,10 @@ export class ZDatePicker {
|
|
|
203
274
|
}
|
|
204
275
|
}]; }
|
|
205
276
|
static get elementRef() { return "element"; }
|
|
277
|
+
static get watchers() { return [{
|
|
278
|
+
"propName": "mode",
|
|
279
|
+
"methodName": "watchMode"
|
|
280
|
+
}]; }
|
|
206
281
|
static get listeners() { return [{
|
|
207
282
|
"name": "keydown",
|
|
208
283
|
"method": "handleKeyDown",
|