@dropi/ui 0.1.50 → 0.1.52
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/dropi-date-picker-range.cjs.entry.js +210 -31
- package/dist/cjs/dropi-date-picker.cjs.entry.js +140 -55
- package/dist/cjs/dropi-drawer.cjs.entry.js +2 -2
- package/dist/cjs/dropi-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/dropi-favorite-button.cjs.entry.js +1 -1
- package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dropi-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/dropi-image-miniature.cjs.entry.js +1 -1
- package/dist/cjs/dropi-input_3.cjs.entry.js +2 -2
- package/dist/cjs/dropi-logo.cjs.entry.js +1 -1
- package/dist/cjs/dropi-navbar.cjs.entry.js +2 -2
- package/dist/cjs/dropi-otp-send-code.cjs.entry.js +2 -2
- package/dist/cjs/dropi-phone-input.cjs.entry.js +2 -2
- package/dist/cjs/dropi-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dropi-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/dropi-read-more.cjs.entry.js +1 -1
- package/dist/cjs/dropi-select.cjs.entry.js +1 -1
- package/dist/cjs/dropi-switch.cjs.entry.js +1 -1
- package/dist/cjs/dropi-tag-type-product.cjs.entry.js +1 -1
- package/dist/cjs/dropi-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/dropi-ui.cjs.js +1 -1
- package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/dropi-date-picker/dropi-date-picker.css +119 -72
- package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +169 -62
- package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.css +223 -81
- package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.js +251 -37
- package/dist/collection/components/dropi-drawer/dropi-drawer.js +2 -2
- package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +1 -1
- package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +1 -1
- package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +1 -1
- package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +1 -1
- package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
- package/dist/collection/components/dropi-logo/dropi-logo.js +1 -1
- package/dist/collection/components/dropi-navbar/dropi-navbar.js +2 -2
- package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +2 -2
- package/dist/collection/components/dropi-paginator/dropi-paginator.js +2 -2
- package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +2 -2
- package/dist/collection/components/dropi-progress-bar/dropi-progress-bar.js +1 -1
- package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +1 -1
- package/dist/collection/components/dropi-read-more/dropi-read-more.js +1 -1
- package/dist/collection/components/dropi-select/dropi-select.js +1 -1
- package/dist/collection/components/dropi-switch/dropi-switch.js +1 -1
- package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.js +1 -1
- package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +1 -1
- package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +1 -1
- package/dist/components/dropi-card-section.js +1 -1
- package/dist/components/dropi-date-picker-range.js +1 -1
- package/dist/components/dropi-date-picker.js +1 -1
- package/dist/components/dropi-drawer.js +1 -1
- package/dist/components/dropi-empty-state.js +1 -1
- package/dist/components/dropi-favorite-button.js +1 -1
- package/dist/components/dropi-file-upload-progress-bar.js +1 -1
- package/dist/components/dropi-file-upload.js +1 -1
- package/dist/components/dropi-image-miniature.js +1 -1
- package/dist/components/dropi-logo.js +1 -1
- package/dist/components/dropi-navbar.js +1 -1
- package/dist/components/dropi-otp-send-code.js +1 -1
- package/dist/components/dropi-paginator.js +1 -1
- package/dist/components/dropi-phone-input.js +1 -1
- package/dist/components/dropi-progress-bar.js +1 -1
- package/dist/components/dropi-radio-button.js +1 -1
- package/dist/components/dropi-read-more.js +1 -1
- package/dist/components/dropi-select.js +1 -1
- package/dist/components/dropi-switch.js +1 -1
- package/dist/components/dropi-table.js +1 -1
- package/dist/components/dropi-tag-type-product.js +1 -1
- package/dist/components/dropi-tooltip.js +1 -1
- package/dist/components/dropi-youtube-lazy-video.js +1 -1
- package/dist/components/p-34gP610W.js +1 -0
- package/dist/components/p-BfQEGsBq.js +1 -0
- package/dist/components/p-BieZ2Zwa.js +1 -0
- package/dist/components/p-Ckpdx21D.js +1 -0
- package/dist/components/p-CqTImUhL.js +1 -0
- package/dist/components/p-D76mTEoh.js +1 -0
- package/dist/components/p-DdM0zO53.js +1 -0
- package/dist/components/p-eusoHxve.js +1 -0
- package/dist/docs.json +93 -18
- package/dist/dropi-ui/dropi-accordion-item.entry.js +1 -1
- package/dist/dropi-ui/dropi-accordion.entry.js +1 -1
- package/dist/dropi-ui/dropi-alert-legacy.entry.js +1 -1
- package/dist/dropi-ui/dropi-alert-modal.entry.js +15 -9
- package/dist/dropi-ui/dropi-alert-modal.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-alert.entry.js +1 -1
- package/dist/dropi-ui/dropi-avatars.entry.js +1 -1
- package/dist/dropi-ui/dropi-badge-legacy.entry.js +1 -1
- package/dist/dropi-ui/dropi-badge.entry.js +1 -1
- package/dist/dropi-ui/dropi-banner-external.entry.js +1 -1
- package/dist/dropi-ui/dropi-breadcrumb.entry.js +1 -1
- package/dist/dropi-ui/dropi-button.entry.js +1 -1
- package/dist/dropi-ui/dropi-card-checkbox.entry.js +2 -2
- package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-card-product.entry.js +1 -1
- package/dist/dropi-ui/dropi-card-section.entry.js +2 -2
- package/dist/dropi-ui/dropi-card-section.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-carousel.entry.js +1 -1
- package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js +2 -2
- package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-checkbox.entry.js +4 -4
- package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-chips.entry.js +1 -1
- package/dist/dropi-ui/dropi-city-selector.entry.js +1 -1
- package/dist/dropi-ui/dropi-color-picker.entry.js +1 -1
- package/dist/dropi-ui/dropi-country-flags.entry.js +1 -1
- package/dist/dropi-ui/dropi-country-selector.entry.js +4 -4
- package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-date-picker-range.entry.js +211 -32
- package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-date-picker.entry.js +104 -57
- package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-drawer.entry.js +3 -3
- package/dist/dropi-ui/dropi-dropdown.entry.js +2 -2
- package/dist/dropi-ui/dropi-dropdown.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-empty-state.entry.js +88 -11
- package/dist/dropi-ui/dropi-empty-state.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-favorite-button.entry.js +2 -2
- package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js +2 -2
- package/dist/dropi-ui/dropi-file-upload.entry.js +2 -2
- package/dist/dropi-ui/dropi-icon.entry.js +295 -24
- package/dist/dropi-ui/dropi-icon.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-ilustration-icon.entry.js +11 -7
- package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-image-miniature.entry.js +2 -2
- package/dist/dropi-ui/dropi-image-overlay.entry.js +1 -1
- package/dist/dropi-ui/dropi-input.entry.js +8 -6
- package/dist/dropi-ui/dropi-input.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-languages-selector.entry.js +1 -1
- package/dist/dropi-ui/dropi-logo.entry.js +2 -2
- package/dist/dropi-ui/dropi-lottie-loader.entry.js +2 -2
- package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-media-player.entry.js +1 -1
- package/dist/dropi-ui/dropi-modal.entry.js +1 -1
- package/dist/dropi-ui/dropi-navbar.entry.js +3 -3
- package/dist/dropi-ui/dropi-otp-send-code.entry.js +4 -4
- package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-paginator.entry.js +3 -3
- package/dist/dropi-ui/dropi-phone-input.entry.js +4 -4
- package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-progress-bar.entry.js +2 -2
- package/dist/dropi-ui/dropi-radio-button.entry.js +4 -4
- package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-radio-selection-list.entry.js +1 -1
- package/dist/dropi-ui/dropi-read-more.entry.js +2 -2
- package/dist/dropi-ui/dropi-search.entry.js +2 -2
- package/dist/dropi-ui/dropi-search.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-select.entry.js +3 -3
- package/dist/dropi-ui/dropi-select.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-sidebar.entry.js +1 -1
- package/dist/dropi-ui/dropi-simple-stepper.entry.js +1 -1
- package/dist/dropi-ui/dropi-skeleton.entry.js +1 -1
- package/dist/dropi-ui/dropi-steps.entry.js +1 -1
- package/dist/dropi-ui/dropi-switch.entry.js +3 -3
- package/dist/dropi-ui/dropi-switch.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-table.entry.js +4 -4
- package/dist/dropi-ui/dropi-table.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-tabs.entry.js +1 -1
- package/dist/dropi-ui/dropi-tag-type-product.entry.js +2 -2
- package/dist/dropi-ui/dropi-tag.entry.js +1 -1
- package/dist/dropi-ui/dropi-text-area.entry.js +8 -8
- package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -1
- package/dist/dropi-ui/dropi-time-line.entry.js +1 -1
- package/dist/dropi-ui/dropi-toast.entry.js +1 -1
- package/dist/dropi-ui/dropi-tooltip-v2.entry.js +1 -1
- package/dist/dropi-ui/dropi-tooltip.entry.js +2 -2
- package/dist/dropi-ui/dropi-ui.esm.js +1 -1
- package/dist/dropi-ui/dropi-ui.esm.js.map +1 -1
- package/dist/dropi-ui/dropi-vertical-steps.entry.js +1 -1
- package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js +2 -2
- package/dist/dropi-ui/index-CPacpXAJ.js +4625 -0
- package/dist/dropi-ui/index-CPacpXAJ.js.map +1 -0
- package/dist/dropi-ui/p-0190a96b.entry.js +1 -0
- package/dist/dropi-ui/p-02e0f8cc.entry.js +1 -0
- package/dist/dropi-ui/p-0551c30a.entry.js +1 -0
- package/dist/dropi-ui/p-05541247.entry.js +1 -0
- package/dist/dropi-ui/p-07cc280c.entry.js +1 -0
- package/dist/dropi-ui/p-094ab555.entry.js +1 -0
- package/dist/dropi-ui/p-0d3cabe9.entry.js +1 -0
- package/dist/dropi-ui/p-0d8ff50d.entry.js +1 -0
- package/dist/dropi-ui/p-11833072.entry.js +1 -0
- package/dist/dropi-ui/p-119a353b.entry.js +1 -0
- package/dist/dropi-ui/p-13ae29ad.entry.js +1 -0
- package/dist/dropi-ui/p-149c92ba.entry.js +1 -0
- package/dist/dropi-ui/p-17133bc1.entry.js +1 -0
- package/dist/dropi-ui/p-181b2d76.entry.js +1 -0
- package/dist/dropi-ui/p-1976985d.entry.js +1 -0
- package/dist/dropi-ui/p-1a874d9f.entry.js +1 -0
- package/dist/dropi-ui/p-1cc30188.entry.js +1 -0
- package/dist/dropi-ui/p-267fda26.entry.js +1 -0
- package/dist/dropi-ui/p-26c997a4.entry.js +1 -0
- package/dist/dropi-ui/p-280c5731.entry.js +1 -0
- package/dist/dropi-ui/p-287a3a81.entry.js +1 -0
- package/dist/dropi-ui/p-29e4dacf.entry.js +1 -0
- package/dist/dropi-ui/p-2af47f62.entry.js +1 -0
- package/dist/dropi-ui/p-2d1a6f05.entry.js +1 -0
- package/dist/dropi-ui/p-2f6b96de.entry.js +1 -0
- package/dist/dropi-ui/p-32512758.entry.js +1 -0
- package/dist/dropi-ui/p-32c71a16.entry.js +1 -0
- package/dist/dropi-ui/p-34f2e28d.entry.js +1 -0
- package/dist/dropi-ui/p-3769ad78.entry.js +1 -0
- package/dist/dropi-ui/p-3a9cd930.entry.js +1 -0
- package/dist/dropi-ui/p-3b1bb32e.entry.js +1 -0
- package/dist/dropi-ui/p-4390c849.entry.js +1 -0
- package/dist/dropi-ui/p-492f9d36.entry.js +1 -0
- package/dist/dropi-ui/p-4f498d26.entry.js +1 -0
- package/dist/dropi-ui/p-4f4b4a39.entry.js +1 -0
- package/dist/dropi-ui/p-51a44cdc.entry.js +1 -0
- package/dist/dropi-ui/p-59caf3ac.entry.js +1 -0
- package/dist/dropi-ui/p-5e0b54e3.entry.js +1 -0
- package/dist/dropi-ui/p-63356807.entry.js +1 -0
- package/dist/dropi-ui/p-64dd3db0.entry.js +1 -0
- package/dist/dropi-ui/p-65e31926.entry.js +1 -0
- package/dist/dropi-ui/p-66cf3dbe.entry.js +1 -0
- package/dist/dropi-ui/p-6a6171ba.entry.js +1 -0
- package/dist/dropi-ui/p-6aaf5a93.entry.js +1 -0
- package/dist/dropi-ui/p-6d9b61a9.entry.js +1 -0
- package/dist/dropi-ui/p-71ad00c8.entry.js +1 -0
- package/dist/dropi-ui/p-788b7388.entry.js +1 -0
- package/dist/dropi-ui/p-7a78e38d.entry.js +1 -0
- package/dist/dropi-ui/p-7a9628df.entry.js +1 -0
- package/dist/dropi-ui/p-7be214a0.entry.js +1 -0
- package/dist/dropi-ui/p-7ce74f7f.entry.js +1 -0
- package/dist/dropi-ui/p-7e0783d3.entry.js +1 -0
- package/dist/dropi-ui/p-7f6f757b.entry.js +1 -0
- package/dist/dropi-ui/p-7f85578a.entry.js +1 -0
- package/dist/dropi-ui/p-81e8b29e.entry.js +1 -0
- package/dist/dropi-ui/p-83fa5e18.entry.js +1 -0
- package/dist/dropi-ui/p-870846af.entry.js +1 -0
- package/dist/dropi-ui/p-87167578.entry.js +1 -0
- package/dist/dropi-ui/p-8adb80a4.entry.js +1 -0
- package/dist/dropi-ui/p-92879d0d.entry.js +1 -0
- package/dist/dropi-ui/p-964ba5de.entry.js +1 -0
- package/dist/dropi-ui/p-97de6718.entry.js +1 -0
- package/dist/dropi-ui/p-9b7810f9.entry.js +1 -0
- package/dist/dropi-ui/p-9bfd53be.entry.js +1 -0
- package/dist/dropi-ui/p-9c9c6274.entry.js +1 -0
- package/dist/dropi-ui/p-a0a87272.entry.js +1 -0
- package/dist/dropi-ui/p-a1471797.entry.js +1 -0
- package/dist/dropi-ui/p-a469a6d4.entry.js +1 -0
- package/dist/dropi-ui/p-ad7ea336.entry.js +1 -0
- package/dist/dropi-ui/p-b063716d.entry.js +1 -0
- package/dist/dropi-ui/p-b4e9dba6.entry.js +1 -0
- package/dist/dropi-ui/p-b66d88bf.entry.js +1 -0
- package/dist/dropi-ui/p-b801e55f.entry.js +1 -0
- package/dist/dropi-ui/p-bb6b09b7.entry.js +1 -0
- package/dist/dropi-ui/p-c6c40748.entry.js +1 -0
- package/dist/dropi-ui/p-c72650a6.entry.js +1 -0
- package/dist/dropi-ui/p-d104c97d.entry.js +1 -0
- package/dist/dropi-ui/p-d6ab011e.entry.js +1 -0
- package/dist/dropi-ui/p-d7d7b98b.entry.js +1 -0
- package/dist/dropi-ui/p-d9f7e521.entry.js +1 -0
- package/dist/dropi-ui/p-e0641dc8.entry.js +1 -0
- package/dist/dropi-ui/p-e0d43ef4.entry.js +1 -0
- package/dist/dropi-ui/p-e2413d09.entry.js +1 -0
- package/dist/dropi-ui/p-e3339048.entry.js +1 -0
- package/dist/dropi-ui/p-eac3194d.entry.js +1 -0
- package/dist/dropi-ui/p-eed4f130.entry.js +1 -0
- package/dist/dropi-ui/p-f03f0bf3.entry.js +1 -0
- package/dist/dropi-ui/p-f1457004.entry.js +1 -0
- package/dist/dropi-ui/p-f50b982c.entry.js +1 -0
- package/dist/dropi-ui/p-f87589c0.entry.js +1 -0
- package/dist/dropi-ui/p-fce82770.entry.js +1 -0
- package/dist/esm/dropi-date-picker-range.entry.js +211 -32
- package/dist/esm/dropi-date-picker.entry.js +140 -55
- package/dist/esm/dropi-drawer.entry.js +2 -2
- package/dist/esm/dropi-empty-state.entry.js +1 -1
- package/dist/esm/dropi-favorite-button.entry.js +1 -1
- package/dist/esm/dropi-file-upload-progress-bar.entry.js +1 -1
- package/dist/esm/dropi-file-upload.entry.js +1 -1
- package/dist/esm/dropi-image-miniature.entry.js +1 -1
- package/dist/esm/dropi-input_3.entry.js +2 -2
- package/dist/esm/dropi-logo.entry.js +1 -1
- package/dist/esm/dropi-navbar.entry.js +2 -2
- package/dist/esm/dropi-otp-send-code.entry.js +2 -2
- package/dist/esm/dropi-phone-input.entry.js +2 -2
- package/dist/esm/dropi-progress-bar.entry.js +1 -1
- package/dist/esm/dropi-radio-button.entry.js +1 -1
- package/dist/esm/dropi-read-more.entry.js +1 -1
- package/dist/esm/dropi-select.entry.js +1 -1
- package/dist/esm/dropi-switch.entry.js +1 -1
- package/dist/esm/dropi-tag-type-product.entry.js +1 -1
- package/dist/esm/dropi-tooltip.entry.js +1 -1
- package/dist/esm/dropi-ui.js +1 -1
- package/dist/esm/dropi-youtube-lazy-video.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dropi-date-picker/dropi-date-picker.d.ts +22 -9
- package/dist/types/components/dropi-date-picker-range/dropi-date-picker-range.d.ts +27 -8
- package/dist/types/components.d.ts +40 -36
- package/hydrate/index.js +390 -117
- package/hydrate/index.mjs +390 -117
- package/package.json +1 -1
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-DKMSaf7l.js');
|
|
4
4
|
|
|
5
|
-
const dropiDatePickerRangeCss = () => `:host{display:block;width:100%;
|
|
5
|
+
const dropiDatePickerRangeCss = () => `:host{display:block;width:100%;position:relative}*,*::before,*::after{box-sizing:border-box}.dpr-label{display:block;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066);margin-bottom:8px}.dpr-trigger{width:100%;height:40px;display:flex;align-items:center;gap:var(--Size-2, 8px);padding:0 var(--Size-3, 12px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);cursor:pointer;font-family:inherit;transition:border-color 0.2s}.dpr-trigger:hover:not(:disabled){border-color:var(--Info-Info-500, #50a5f1)}.dpr-trigger--disabled{background:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed;opacity:0.6}.dpr-trigger__value{flex:1;text-align:left;font-size:var(--font-size-xs, 12px);color:var(--Gray-Gray-700, #32394d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dpr-trigger__placeholder{color:var(--Gray-Gray-400, #858ea6)}.dpr-popup{position:absolute;top:calc(100% + 8px);left:0;display:flex;flex-direction:row;background:var(--Neutral-White, #ffffff);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-3, 12px);box-shadow:0 4px 16px rgba(0,0,0,0.08);z-index:300;overflow:hidden}.dpr-calendar{padding:var(--Size-4, 16px);width:300px;flex-shrink:0}.dpr-divider{width:1px;background:var(--Gray-Gray-100, #e6eaf2);flex-shrink:0}.dpr-shortcuts{padding:var(--Size-4, 16px) var(--Size-3, 12px);display:flex;flex-direction:column;gap:2px;min-width:140px}.shortcut-btn{background:transparent;border:1px solid transparent;padding:6px 10px;font-size:13px;font-family:inherit;color:var(--Gray-Gray-700, #32394d);cursor:pointer;text-align:left;border-radius:6px;transition:background 0.1s ease;font-weight:var(--font-weight-regular);white-space:nowrap}.shortcut-btn:hover{background:var(--Gray-Gray-50, #f5f6f8)}.shortcut-btn--active{border-color:var(--Gray-Gray-200, #c3c9d9);font-weight:var(--font-weight-semibold);background:var(--Gray-Gray-50, #f5f6f8)}.warning-box{margin-top:8px;padding:4px 8px;border:1px solid var(--Warning-Warning-400);border-radius:4px;background:var(--Warning-Warning-50)}.warning-message{color:#495057;font-size:var(--font-size-xxs);line-height:16px}.dp-month-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px}.dp-month-cell{padding:10px 4px;font-size:var(--font-size-s, 14px);font-family:inherit;font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-700, #32394d);background:transparent;border:1px solid transparent;border-radius:var(--Border-2, 8px);cursor:pointer;text-align:center;transition:background 0.15s, border-color 0.15s}.dp-month-cell:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-month-cell--selected{border-color:var(--Info-Info-500, #50a5f1);font-weight:var(--font-weight-semibold, 600)}.dp-month-cell--current{background:var(--Gray-Gray-100, #e6eaf2)}.dp-year-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:8px}.dp-year-cell{padding:10px 4px;font-size:var(--font-size-s, 14px);font-family:inherit;font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-700, #32394d);background:transparent;border:1px solid transparent;border-radius:var(--Border-2, 8px);cursor:pointer;text-align:center;transition:background 0.15s, border-color 0.15s}.dp-year-cell:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-year-cell--selected{border-color:var(--Info-Info-500, #50a5f1);font-weight:var(--font-weight-semibold, 600)}.dp-year-cell--current{background:var(--Gray-Gray-100, #e6eaf2)}.dp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--Size-4, 16px);padding-bottom:var(--Size-3, 12px);border-bottom:1px solid var(--Gray-Gray-100, #e6eaf2)}.dp-nav__btn{background:none;border:none;padding:0;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:background 0.15s}.dp-nav__btn:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-nav__title{background:none;border:none;font-size:var(--font-size-s, 14px);font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-700, #32394d);display:flex;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--Border-1, 4px);font-family:inherit;transition:background 0.15s}.dp-nav__title:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-grid{display:grid;grid-template-columns:repeat(7, 1fr);row-gap:6px;column-gap:2px}.dp-day-header{font-size:var(--font-size-s, 14px);color:var(--Gray-Gray-700, #32394d);text-align:center;padding:6px 0;font-weight:var(--font-weight-bold, 700)}.dp-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs, 12px);font-family:inherit;border:none;cursor:pointer;background:transparent;color:var(--Gray-Gray-600, #475066);width:100%;position:relative;z-index:1;padding:0}.dp-cell::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;transition:background 0.15s;z-index:-1;background:transparent}.dp-cell::before{content:"";position:absolute;top:0;bottom:0;z-index:-2;background:transparent}.dp-cell:hover:not(:disabled)::after{background:var(--Gray-Gray-100, #e6eaf2)}.dp-cell--other-month{color:var(--Gray-Gray-300, #a0a9c0)}.dp-cell--today{font-weight:var(--font-weight-bold, 700)}.dp-cell--today::after{background:var(--Gray-Gray-100, #e6eaf2)}.dp-cell--selected{color:var(--Neutral-White, #ffffff);font-weight:var(--font-weight-bold, 700)}.dp-cell--selected::after{background:var(--Orange-orange-500, #f49a3d) !important}.dp-cell--range-start,.dp-cell--range-end{color:var(--Neutral-White, #ffffff);font-weight:var(--font-weight-bold, 700)}.dp-cell--range-start::after,.dp-cell--range-end::after{background:var(--Orange-orange-500, #f49a3d) !important}.dp-cell--in-range{color:var(--Orange-orange-500, #f49a3d);font-weight:var(--font-weight-bold, 700)}.dp-cell--in-range::before{left:-1px;right:-1px;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-start::before{left:50%;right:-1px;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-end::before{left:-1px;right:50%;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-start.dp-cell--range-end::before{background:transparent}.dp-cell--disabled{opacity:0.35;cursor:not-allowed}@keyframes shimmer{0%{background-position:-468px 0}100%{background-position:468px 0}}.skeleton{height:40px;width:100%;border-radius:8px;animation:shimmer 1s linear infinite;background:linear-gradient(to right, #f5f6f8 8%, #e3e7ef 28%, #f5f6f8 77%);background-size:800px 104px}`;
|
|
6
6
|
|
|
7
|
+
const MONTHS_ES = [
|
|
8
|
+
'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
|
|
9
|
+
'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre',
|
|
10
|
+
];
|
|
11
|
+
const MONTHS_SHORT = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];
|
|
12
|
+
const DAYS_ES = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'];
|
|
7
13
|
const DropiDatePickerRange = class {
|
|
8
14
|
constructor(hostRef) {
|
|
9
15
|
index.registerInstance(this, hostRef);
|
|
@@ -18,25 +24,35 @@ const DropiDatePickerRange = class {
|
|
|
18
24
|
/** Show "Rango de fechas" label */
|
|
19
25
|
showLabel = true;
|
|
20
26
|
/** Input placeholder */
|
|
21
|
-
placeholder = '';
|
|
27
|
+
placeholder = 'DD/MM/YYYY – DD/MM/YYYY';
|
|
22
28
|
/** Show loading skeleton */
|
|
23
29
|
loading = false;
|
|
24
30
|
/** Max allowed range in days (0 = unlimited) */
|
|
25
31
|
maxDaysRange = 0;
|
|
26
32
|
/** Hide "Hoy" shortcut */
|
|
27
33
|
hideTodayRangeShortcut = false;
|
|
28
|
-
/**
|
|
34
|
+
/** Disabled state */
|
|
35
|
+
disabled = false;
|
|
29
36
|
startDateChange;
|
|
30
|
-
/** Emitted when end date changes */
|
|
31
37
|
endDateChange;
|
|
32
|
-
/** Emitted with full range when both dates are set */
|
|
33
38
|
dropiRangeChange;
|
|
34
39
|
start = '';
|
|
35
40
|
end = '';
|
|
36
41
|
activeRange = -1;
|
|
37
42
|
showWarning = false;
|
|
43
|
+
open = false;
|
|
44
|
+
viewYear = new Date().getFullYear();
|
|
45
|
+
viewMonth = new Date().getMonth();
|
|
46
|
+
hoverDate = '';
|
|
47
|
+
viewMode = 'day';
|
|
48
|
+
get el() { return index.getElement(this); }
|
|
38
49
|
onStartPropChange(val) { this.start = val; }
|
|
39
50
|
onEndPropChange(val) { this.end = val; }
|
|
51
|
+
handleDocClick(e) {
|
|
52
|
+
if (this.open && !e.composedPath().includes(this.el)) {
|
|
53
|
+
this.open = false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
40
56
|
componentWillLoad() {
|
|
41
57
|
this.start = this.startDate;
|
|
42
58
|
this.end = this.endDate;
|
|
@@ -59,47 +75,210 @@ const DropiDatePickerRange = class {
|
|
|
59
75
|
];
|
|
60
76
|
return this.hideTodayRangeShortcut ? all.slice(1) : all;
|
|
61
77
|
}
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
this.start = s.start;
|
|
65
|
-
this.end = s.end;
|
|
66
|
-
this.activeRange = idx;
|
|
67
|
-
this.showWarning = false;
|
|
68
|
-
this.emit();
|
|
69
|
-
}
|
|
70
|
-
onStartChange(e) {
|
|
71
|
-
this.start = e.target.value;
|
|
72
|
-
this.activeRange = -1;
|
|
73
|
-
this.checkRange();
|
|
78
|
+
get displayValue() {
|
|
79
|
+
const fmt = (s) => s.split('-').reverse().join('/');
|
|
74
80
|
if (this.start && this.end)
|
|
75
|
-
this.
|
|
81
|
+
return `${fmt(this.start)} – ${fmt(this.end)}`;
|
|
82
|
+
if (this.start)
|
|
83
|
+
return fmt(this.start);
|
|
84
|
+
return '';
|
|
76
85
|
}
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
this.
|
|
86
|
+
toggleOpen() {
|
|
87
|
+
if (this.disabled)
|
|
88
|
+
return;
|
|
89
|
+
if (!this.open && this.start) {
|
|
90
|
+
const d = new Date(this.start);
|
|
91
|
+
this.viewYear = d.getFullYear();
|
|
92
|
+
this.viewMonth = d.getMonth();
|
|
93
|
+
}
|
|
94
|
+
this.viewMode = 'day';
|
|
95
|
+
this.open = !this.open;
|
|
96
|
+
}
|
|
97
|
+
get decadeStart() {
|
|
98
|
+
return Math.floor(this.viewYear / 10) * 10;
|
|
99
|
+
}
|
|
100
|
+
get navTitle() {
|
|
101
|
+
if (this.viewMode === 'day')
|
|
102
|
+
return `${MONTHS_ES[this.viewMonth]} ${this.viewYear}`;
|
|
103
|
+
if (this.viewMode === 'month')
|
|
104
|
+
return `${this.viewYear}`;
|
|
105
|
+
return `${this.decadeStart}-${this.decadeStart + 9}`;
|
|
106
|
+
}
|
|
107
|
+
cycleView() {
|
|
108
|
+
if (this.viewMode === 'day')
|
|
109
|
+
this.viewMode = 'month';
|
|
110
|
+
else if (this.viewMode === 'month')
|
|
111
|
+
this.viewMode = 'year';
|
|
112
|
+
}
|
|
113
|
+
prevNav() {
|
|
114
|
+
if (this.viewMode === 'day') {
|
|
115
|
+
if (this.viewMonth === 0) {
|
|
116
|
+
this.viewMonth = 11;
|
|
117
|
+
this.viewYear--;
|
|
118
|
+
}
|
|
119
|
+
else
|
|
120
|
+
this.viewMonth--;
|
|
121
|
+
}
|
|
122
|
+
else if (this.viewMode === 'month') {
|
|
123
|
+
this.viewYear--;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.viewYear = this.decadeStart - 10;
|
|
127
|
+
}
|
|
83
128
|
}
|
|
84
|
-
|
|
85
|
-
if (this.
|
|
86
|
-
|
|
87
|
-
|
|
129
|
+
nextNav() {
|
|
130
|
+
if (this.viewMode === 'day') {
|
|
131
|
+
if (this.viewMonth === 11) {
|
|
132
|
+
this.viewMonth = 0;
|
|
133
|
+
this.viewYear++;
|
|
134
|
+
}
|
|
135
|
+
else
|
|
136
|
+
this.viewMonth++;
|
|
137
|
+
}
|
|
138
|
+
else if (this.viewMode === 'month') {
|
|
139
|
+
this.viewYear++;
|
|
88
140
|
}
|
|
89
141
|
else {
|
|
142
|
+
this.viewYear = this.decadeStart + 10;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
selectMonth(month) {
|
|
146
|
+
this.viewMonth = month;
|
|
147
|
+
this.viewMode = 'day';
|
|
148
|
+
}
|
|
149
|
+
selectYear(year) {
|
|
150
|
+
this.viewYear = year;
|
|
151
|
+
this.viewMode = 'month';
|
|
152
|
+
}
|
|
153
|
+
toISO(year, month, day) {
|
|
154
|
+
return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
|
|
155
|
+
}
|
|
156
|
+
isInRange(iso) {
|
|
157
|
+
const end = this.end || this.hoverDate;
|
|
158
|
+
if (!this.start || !end)
|
|
159
|
+
return false;
|
|
160
|
+
const [s, e] = this.start <= end ? [this.start, end] : [end, this.start];
|
|
161
|
+
return iso > s && iso < e;
|
|
162
|
+
}
|
|
163
|
+
selectDate(iso) {
|
|
164
|
+
if (!this.start || (this.start && this.end)) {
|
|
165
|
+
this.start = iso;
|
|
166
|
+
this.end = '';
|
|
167
|
+
this.activeRange = -1;
|
|
90
168
|
this.showWarning = false;
|
|
91
169
|
}
|
|
170
|
+
else {
|
|
171
|
+
if (iso < this.start) {
|
|
172
|
+
this.end = this.start;
|
|
173
|
+
this.start = iso;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
this.end = iso;
|
|
177
|
+
}
|
|
178
|
+
this.activeRange = -1;
|
|
179
|
+
if (this.maxDaysRange > 0) {
|
|
180
|
+
const diff = (new Date(this.end).getTime() - new Date(this.start).getTime()) / 86400000;
|
|
181
|
+
this.showWarning = diff > this.maxDaysRange;
|
|
182
|
+
if (this.showWarning)
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
this.open = false;
|
|
186
|
+
this.emit();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
selectShortcut(idx) {
|
|
190
|
+
const s = this.shortcuts[idx];
|
|
191
|
+
this.start = s.start;
|
|
192
|
+
this.end = s.end;
|
|
193
|
+
this.activeRange = idx;
|
|
194
|
+
this.showWarning = false;
|
|
195
|
+
this.open = false;
|
|
196
|
+
this.emit();
|
|
92
197
|
}
|
|
93
198
|
emit() {
|
|
94
199
|
this.startDateChange.emit(this.start);
|
|
95
200
|
this.endDateChange.emit(this.end);
|
|
96
201
|
this.dropiRangeChange.emit({ start: this.start, end: this.end });
|
|
97
202
|
}
|
|
203
|
+
buildDays() {
|
|
204
|
+
const year = this.viewYear;
|
|
205
|
+
const month = this.viewMonth;
|
|
206
|
+
const firstDay = new Date(year, month, 1).getDay();
|
|
207
|
+
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
208
|
+
const daysInPrevMonth = new Date(year, month, 0).getDate();
|
|
209
|
+
const cells = [];
|
|
210
|
+
for (let i = firstDay - 1; i >= 0; i--) {
|
|
211
|
+
const d = daysInPrevMonth - i;
|
|
212
|
+
const m = month === 0 ? 11 : month - 1;
|
|
213
|
+
const y = month === 0 ? year - 1 : year;
|
|
214
|
+
cells.push({ iso: this.toISO(y, m, d), day: d, currentMonth: false });
|
|
215
|
+
}
|
|
216
|
+
for (let d = 1; d <= daysInMonth; d++) {
|
|
217
|
+
cells.push({ iso: this.toISO(year, month, d), day: d, currentMonth: true });
|
|
218
|
+
}
|
|
219
|
+
const remaining = 42 - cells.length;
|
|
220
|
+
for (let d = 1; d <= remaining; d++) {
|
|
221
|
+
const m = month === 11 ? 0 : month + 1;
|
|
222
|
+
const y = month === 11 ? year + 1 : year;
|
|
223
|
+
cells.push({ iso: this.toISO(y, m, d), day: d, currentMonth: false });
|
|
224
|
+
}
|
|
225
|
+
return cells;
|
|
226
|
+
}
|
|
227
|
+
renderDayView(today) {
|
|
228
|
+
const days = this.buildDays();
|
|
229
|
+
return (index.h("div", { class: "dp-grid" }, DAYS_ES.map(d => index.h("div", { class: "dp-day-header" }, d)), days.map(({ iso, day, currentMonth }) => {
|
|
230
|
+
const isStart = iso === this.start;
|
|
231
|
+
const isEnd = iso === this.end;
|
|
232
|
+
const inRange = this.isInRange(iso);
|
|
233
|
+
const isToday = iso === today;
|
|
234
|
+
return (index.h("button", { class: {
|
|
235
|
+
'dp-cell': true,
|
|
236
|
+
'dp-cell--other-month': !currentMonth,
|
|
237
|
+
'dp-cell--today': isToday && !isStart && !isEnd,
|
|
238
|
+
'dp-cell--selected': isStart || isEnd,
|
|
239
|
+
'dp-cell--range-start': isStart,
|
|
240
|
+
'dp-cell--range-end': isEnd,
|
|
241
|
+
'dp-cell--in-range': inRange,
|
|
242
|
+
}, type: "button", onClick: () => this.selectDate(iso), onMouseEnter: () => {
|
|
243
|
+
if (this.start && !this.end)
|
|
244
|
+
this.hoverDate = iso;
|
|
245
|
+
}, onMouseLeave: () => this.hoverDate = '' }, day));
|
|
246
|
+
})));
|
|
247
|
+
}
|
|
248
|
+
renderMonthView() {
|
|
249
|
+
const todayMonth = new Date().getMonth();
|
|
250
|
+
const todayYear = new Date().getFullYear();
|
|
251
|
+
return (index.h("div", { class: "dp-month-grid" }, MONTHS_SHORT.map((name, idx) => {
|
|
252
|
+
const isSelected = idx === this.viewMonth;
|
|
253
|
+
const isCurrent = idx === todayMonth && this.viewYear === todayYear;
|
|
254
|
+
return (index.h("button", { class: {
|
|
255
|
+
'dp-month-cell': true,
|
|
256
|
+
'dp-month-cell--selected': isSelected,
|
|
257
|
+
'dp-month-cell--current': isCurrent && !isSelected,
|
|
258
|
+
}, type: "button", onClick: () => this.selectMonth(idx) }, name));
|
|
259
|
+
})));
|
|
260
|
+
}
|
|
261
|
+
renderYearView() {
|
|
262
|
+
const currentYear = new Date().getFullYear();
|
|
263
|
+
const start = this.decadeStart;
|
|
264
|
+
const years = Array.from({ length: 10 }, (_, i) => start + i);
|
|
265
|
+
return (index.h("div", { class: "dp-year-grid" }, years.map(year => {
|
|
266
|
+
const isSelected = year === this.viewYear;
|
|
267
|
+
const isCurrent = year === currentYear;
|
|
268
|
+
return (index.h("button", { class: {
|
|
269
|
+
'dp-year-cell': true,
|
|
270
|
+
'dp-year-cell--selected': isSelected,
|
|
271
|
+
'dp-year-cell--current': isCurrent && !isSelected,
|
|
272
|
+
}, type: "button", onClick: () => this.selectYear(year) }, year));
|
|
273
|
+
})));
|
|
274
|
+
}
|
|
98
275
|
render() {
|
|
99
|
-
if (this.loading)
|
|
276
|
+
if (this.loading)
|
|
100
277
|
return index.h("div", { class: "skeleton" });
|
|
101
|
-
|
|
102
|
-
return (index.h("div", { class: "
|
|
278
|
+
const today = this.today;
|
|
279
|
+
return (index.h("div", { class: "dpr-wrap" }, this.showLabel && index.h("label", { class: "dpr-label" }, "Rango de fechas"), index.h("button", { class: { 'dpr-trigger': true, 'dpr-trigger--disabled': this.disabled }, onClick: () => this.toggleOpen(), disabled: this.disabled, type: "button" }, index.h("dropi-icon", { name: "Calendar", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-400" }), index.h("span", { class: { 'dpr-trigger__value': true, 'dpr-trigger__placeholder': !this.displayValue } }, this.displayValue || this.placeholder)), this.open && (index.h("div", { class: "dpr-popup" }, index.h("div", { class: "dpr-calendar" }, index.h("div", { class: "dp-nav" }, index.h("button", { class: "dp-nav__btn", onClick: () => this.prevNav(), type: "button" }, index.h("dropi-icon", { name: "dropdown-left", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" })), index.h("button", { class: "dp-nav__title", onClick: () => this.cycleView(), type: "button" }, this.viewMode === 'day'
|
|
280
|
+
? [index.h("span", null, MONTHS_ES[this.viewMonth]), index.h("span", null, this.viewYear)]
|
|
281
|
+
: index.h("span", null, this.navTitle)), index.h("button", { class: "dp-nav__btn", onClick: () => this.nextNav(), type: "button" }, index.h("dropi-icon", { name: "dropdown-right", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" }))), this.viewMode === 'day' && this.renderDayView(today), this.viewMode === 'month' && this.renderMonthView(), this.viewMode === 'year' && this.renderYearView(), this.showWarning && (index.h("div", { class: "warning-box" }, index.h("span", { class: "warning-message" }, "Solo puedes filtrar en un rango m\u00E1ximo de ", this.maxDaysRange, " d\u00EDas.")))), index.h("div", { class: "dpr-divider" }), index.h("div", { class: "dpr-shortcuts" }, this.shortcuts.map((s, i) => (index.h("button", { key: i, class: { 'shortcut-btn': true, 'shortcut-btn--active': this.activeRange === i }, onClick: () => this.selectShortcut(i), type: "button" }, s.label))))))));
|
|
103
282
|
}
|
|
104
283
|
static get watchers() { return {
|
|
105
284
|
"startDate": [{
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-DKMSaf7l.js');
|
|
4
4
|
|
|
5
|
-
const dropiDatePickerCss = () => `:host{display:block;width:100%;position:relative}*,*::before,*::after{box-sizing:border-box}.dp-label{display:block;font-size:var(--font-size-
|
|
5
|
+
const dropiDatePickerCss = () => `:host{display:block;width:100%;position:relative}*,*::before,*::after{box-sizing:border-box}.dp-label{display:block;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066);margin-bottom:8px}.dp-trigger{width:100%;height:40px;display:flex;align-items:center;gap:var(--Size-2, 8px);padding:0 var(--Size-3, 12px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);cursor:pointer;font-family:inherit;transition:border-color 0.2s}.dp-trigger:hover:not(:disabled){border-color:var(--Info-Info-500, #50a5f1)}.dp-trigger--disabled{background:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed;opacity:0.6}.dp-trigger__value{flex:1;text-align:left;font-size:var(--font-size-xs, 12px);color:var(--Gray-Gray-700, #32394d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-trigger__placeholder{color:var(--Gray-Gray-400, #858ea6)}.dp-popup{position:absolute;top:calc(100% + 8px);left:0;display:flex;flex-direction:row;background:var(--Neutral-White, #ffffff);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-3, 12px);box-shadow:0 4px 16px rgba(0,0,0,0.08);z-index:300;overflow:hidden}.dp-calendar{padding:var(--Size-4, 16px);width:300px;flex-shrink:0}.dp-divider{width:1px;background:var(--Gray-Gray-100, #e6eaf2);flex-shrink:0}.dp-shortcuts{padding:var(--Size-4, 16px) var(--Size-3, 12px);display:flex;flex-direction:column;gap:2px;min-width:140px}.shortcut-btn{background:transparent;border:1px solid transparent;padding:6px 10px;font-size:13px;font-family:inherit;color:var(--Gray-Gray-700, #32394d);cursor:pointer;text-align:left;border-radius:6px;transition:background 0.1s ease;font-weight:var(--font-weight-regular);white-space:nowrap}.shortcut-btn:hover{background:var(--Gray-Gray-50, #f5f6f8)}.shortcut-btn--active{border-color:var(--Gray-Gray-200, #c3c9d9);font-weight:var(--font-weight-semibold);background:var(--Gray-Gray-50, #f5f6f8)}.dp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--Size-4, 16px);padding-bottom:var(--Size-3, 12px);border-bottom:1px solid var(--Gray-Gray-100, #e6eaf2)}.dp-nav__btn{background:none;border:none;padding:0;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:background 0.15s}.dp-nav__btn:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-nav__title{background:none;border:none;font-size:var(--font-size-s, 14px);font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-700, #32394d);display:flex;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--Border-1, 4px);transition:background 0.15s;font-family:inherit}.dp-nav__title:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-grid{display:grid;grid-template-columns:repeat(7, 1fr);row-gap:8px;column-gap:4px}.dp-day-header{font-size:var(--font-size-s, 14px);color:var(--Gray-Gray-700, #32394d);text-align:center;padding:8px 0;font-weight:var(--font-weight-bold, 700)}.dp-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs, 12px);font-family:inherit;border:none;cursor:pointer;background:transparent;color:var(--Gray-Gray-600, #475066);width:100%;position:relative;z-index:1;padding:0}.dp-cell::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;transition:all 0.2s;z-index:-1;background:transparent}.dp-cell::before{content:"";position:absolute;top:0;bottom:0;z-index:-2;border-radius:0;background:transparent}.dp-cell:hover:not(:disabled)::after{background:var(--Gray-Gray-100, #e6eaf2)}.dp-cell--other-month{color:var(--Gray-Gray-300, #a0a9c0)}.dp-cell--today{font-weight:var(--font-weight-bold, 700)}.dp-cell--today::after{background:var(--Gray-Gray-100, #e6eaf2)}.dp-cell--selected{color:var(--Neutral-White, #ffffff);font-weight:var(--font-weight-bold, 700)}.dp-cell--selected::after{background:var(--Orange-orange-500, #f49a3d) !important}.dp-cell--range-start,.dp-cell--range-end{color:var(--Neutral-White, #ffffff);font-weight:var(--font-weight-bold, 700)}.dp-cell--range-start::after,.dp-cell--range-end::after{background:var(--Orange-orange-500, #f49a3d) !important}.dp-cell--in-range{color:var(--Orange-orange-500, #f49a3d);font-weight:var(--font-weight-bold, 700)}.dp-cell--in-range::before{left:-2px;right:-2px;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-start::before{left:50%;right:-2px;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-end::before{left:-2px;right:50%;background:var(--Orange-orange-50, #fef5ec)}.dp-cell--range-start.dp-cell--range-end::before{background:transparent}.dp-cell--disabled{opacity:0.35;cursor:not-allowed}.dp-month-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px}.dp-month-cell{padding:10px 4px;font-size:var(--font-size-s, 14px);font-family:inherit;font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-700, #32394d);background:transparent;border:1px solid transparent;border-radius:var(--Border-2, 8px);cursor:pointer;text-align:center;transition:background 0.15s, border-color 0.15s}.dp-month-cell:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-month-cell--selected{border-color:var(--Info-Info-500, #50a5f1);font-weight:var(--font-weight-semibold, 600)}.dp-month-cell--current{background:var(--Gray-Gray-100, #e6eaf2)}.dp-year-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:8px}.dp-year-cell{padding:10px 4px;font-size:var(--font-size-s, 14px);font-family:inherit;font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-700, #32394d);background:transparent;border:1px solid transparent;border-radius:var(--Border-2, 8px);cursor:pointer;text-align:center;transition:background 0.15s, border-color 0.15s}.dp-year-cell:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dp-year-cell--selected{border-color:var(--Info-Info-500, #50a5f1);font-weight:var(--font-weight-semibold, 600)}.dp-year-cell--current{background:var(--Gray-Gray-100, #e6eaf2)}`;
|
|
6
6
|
|
|
7
7
|
const MONTHS_ES = [
|
|
8
8
|
'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
|
|
9
9
|
'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'
|
|
10
10
|
];
|
|
11
|
+
const MONTHS_SHORT = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];
|
|
11
12
|
const DAYS_ES = ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'];
|
|
12
13
|
const DropiDatePicker = class {
|
|
13
14
|
constructor(hostRef) {
|
|
@@ -26,16 +27,14 @@ const DropiDatePicker = class {
|
|
|
26
27
|
internals;
|
|
27
28
|
/** Name for native form submission */
|
|
28
29
|
name;
|
|
29
|
-
/** Selected date (ISO string, single mode)
|
|
30
|
+
/** Selected date (ISO string, single mode) */
|
|
30
31
|
selectedDate = '';
|
|
31
32
|
/** Range start date (ISO string, range mode) */
|
|
32
33
|
startDate = '';
|
|
33
34
|
/** Range end date (ISO string, range mode) */
|
|
34
35
|
endDate = '';
|
|
35
|
-
valueChanged() {
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
/** Enable range selection - matches Angular selectionMode */
|
|
36
|
+
valueChanged() { this.updateFormValue(); }
|
|
37
|
+
/** Enable range selection */
|
|
39
38
|
selectionMode = 'single';
|
|
40
39
|
/** Min selectable date (ISO string) */
|
|
41
40
|
minDate = '';
|
|
@@ -47,29 +46,28 @@ const DropiDatePicker = class {
|
|
|
47
46
|
placeholder = 'DD/MM/YYYY';
|
|
48
47
|
/** Disabled */
|
|
49
48
|
disabled = false;
|
|
50
|
-
/** Is invalid state
|
|
49
|
+
/** Is invalid state */
|
|
51
50
|
isInvalid = false;
|
|
52
|
-
/** Loading state
|
|
51
|
+
/** Loading state */
|
|
53
52
|
loading = false;
|
|
53
|
+
/** Hide "Hoy" shortcut */
|
|
54
|
+
hideTodayShortcut = false;
|
|
54
55
|
open = false;
|
|
55
56
|
viewYear = new Date().getFullYear();
|
|
56
57
|
viewMonth = new Date().getMonth();
|
|
57
58
|
hoverDate = '';
|
|
59
|
+
viewMode = 'day';
|
|
60
|
+
activeShortcut = -1;
|
|
58
61
|
get el() { return index.getElement(this); }
|
|
59
62
|
handleDocClick(e) {
|
|
60
63
|
if (this.open && !e.composedPath().includes(this.el)) {
|
|
61
64
|
this.open = false;
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
|
-
/** Emitted when date selected — matches Angular 'onChangeDate' */
|
|
65
67
|
dropiChangeDate;
|
|
66
|
-
/** Emitted when panel closes — matches Angular 'onClosePanel' */
|
|
67
68
|
dropiClosePanel;
|
|
68
|
-
/** Emitted when range selected */
|
|
69
69
|
dropiRangeChange;
|
|
70
|
-
componentWillLoad() {
|
|
71
|
-
this.updateFormValue();
|
|
72
|
-
}
|
|
70
|
+
componentWillLoad() { this.updateFormValue(); }
|
|
73
71
|
updateFormValue() {
|
|
74
72
|
if (this.selectionMode === 'range') {
|
|
75
73
|
this.internals.setFormValue(this.startDate && this.endDate ? `${this.startDate},${this.endDate}` : '');
|
|
@@ -101,23 +99,96 @@ const DropiDatePicker = class {
|
|
|
101
99
|
this.viewYear = d.getFullYear();
|
|
102
100
|
this.viewMonth = d.getMonth();
|
|
103
101
|
}
|
|
102
|
+
this.viewMode = 'day';
|
|
104
103
|
this.open = true;
|
|
105
104
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
get decadeStart() {
|
|
106
|
+
return Math.floor(this.viewYear / 10) * 10;
|
|
107
|
+
}
|
|
108
|
+
get navTitle() {
|
|
109
|
+
if (this.viewMode === 'day')
|
|
110
|
+
return `${MONTHS_ES[this.viewMonth]} ${this.viewYear}`;
|
|
111
|
+
if (this.viewMode === 'month')
|
|
112
|
+
return `${this.viewYear}`;
|
|
113
|
+
return `${this.decadeStart}-${this.decadeStart + 9}`;
|
|
114
|
+
}
|
|
115
|
+
cycleView() {
|
|
116
|
+
if (this.viewMode === 'day')
|
|
117
|
+
this.viewMode = 'month';
|
|
118
|
+
else if (this.viewMode === 'month')
|
|
119
|
+
this.viewMode = 'year';
|
|
120
|
+
}
|
|
121
|
+
prevNav() {
|
|
122
|
+
if (this.viewMode === 'day') {
|
|
123
|
+
if (this.viewMonth === 0) {
|
|
124
|
+
this.viewMonth = 11;
|
|
125
|
+
this.viewYear--;
|
|
126
|
+
}
|
|
127
|
+
else
|
|
128
|
+
this.viewMonth--;
|
|
129
|
+
}
|
|
130
|
+
else if (this.viewMode === 'month') {
|
|
109
131
|
this.viewYear--;
|
|
110
132
|
}
|
|
111
|
-
else
|
|
112
|
-
this.
|
|
133
|
+
else {
|
|
134
|
+
this.viewYear = this.decadeStart - 10;
|
|
135
|
+
}
|
|
113
136
|
}
|
|
114
|
-
|
|
115
|
-
if (this.
|
|
116
|
-
this.viewMonth
|
|
137
|
+
nextNav() {
|
|
138
|
+
if (this.viewMode === 'day') {
|
|
139
|
+
if (this.viewMonth === 11) {
|
|
140
|
+
this.viewMonth = 0;
|
|
141
|
+
this.viewYear++;
|
|
142
|
+
}
|
|
143
|
+
else
|
|
144
|
+
this.viewMonth++;
|
|
145
|
+
}
|
|
146
|
+
else if (this.viewMode === 'month') {
|
|
117
147
|
this.viewYear++;
|
|
118
148
|
}
|
|
119
|
-
else
|
|
120
|
-
this.
|
|
149
|
+
else {
|
|
150
|
+
this.viewYear = this.decadeStart + 10;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
selectMonth(month) {
|
|
154
|
+
this.viewMonth = month;
|
|
155
|
+
this.viewMode = 'day';
|
|
156
|
+
}
|
|
157
|
+
selectYear(year) {
|
|
158
|
+
this.viewYear = year;
|
|
159
|
+
this.viewMode = 'month';
|
|
160
|
+
}
|
|
161
|
+
get today() {
|
|
162
|
+
return new Date().toISOString().slice(0, 10);
|
|
163
|
+
}
|
|
164
|
+
daysAgo(n) {
|
|
165
|
+
const d = new Date();
|
|
166
|
+
d.setDate(d.getDate() - n);
|
|
167
|
+
return d.toISOString().slice(0, 10);
|
|
168
|
+
}
|
|
169
|
+
get shortcuts() {
|
|
170
|
+
const all = [
|
|
171
|
+
{ label: 'Hoy', start: this.today, end: this.today },
|
|
172
|
+
{ label: 'Últimos 7 días', start: this.daysAgo(6), end: this.today },
|
|
173
|
+
{ label: 'Últimos 15 días', start: this.daysAgo(14), end: this.today },
|
|
174
|
+
{ label: 'Últimos 30 días', start: this.daysAgo(29), end: this.today },
|
|
175
|
+
{ label: 'Últimos 90 días', start: this.daysAgo(89), end: this.today },
|
|
176
|
+
];
|
|
177
|
+
return this.hideTodayShortcut ? all.slice(1) : all;
|
|
178
|
+
}
|
|
179
|
+
selectShortcut(idx) {
|
|
180
|
+
const s = this.shortcuts[idx];
|
|
181
|
+
this.activeShortcut = idx;
|
|
182
|
+
if (this.selectionMode === 'range') {
|
|
183
|
+
this.startDate = s.start;
|
|
184
|
+
this.endDate = s.end;
|
|
185
|
+
this.dropiRangeChange.emit({ start: s.start, end: s.end });
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this.selectedDate = s.end;
|
|
189
|
+
this.dropiChangeDate.emit(s.end);
|
|
190
|
+
}
|
|
191
|
+
this.open = false;
|
|
121
192
|
}
|
|
122
193
|
toISO(year, month, day) {
|
|
123
194
|
return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
|
|
@@ -148,7 +219,6 @@ const DropiDatePicker = class {
|
|
|
148
219
|
this.dropiChangeDate.emit(iso);
|
|
149
220
|
return;
|
|
150
221
|
}
|
|
151
|
-
// Range mode
|
|
152
222
|
if (!this.startDate || (this.startDate && this.endDate)) {
|
|
153
223
|
this.startDate = iso;
|
|
154
224
|
this.endDate = '';
|
|
@@ -169,23 +239,18 @@ const DropiDatePicker = class {
|
|
|
169
239
|
const year = this.viewYear;
|
|
170
240
|
const month = this.viewMonth;
|
|
171
241
|
const firstDay = new Date(year, month, 1).getDay();
|
|
172
|
-
// Adjust to Sunday-first
|
|
173
|
-
const startOffset = firstDay;
|
|
174
242
|
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
175
243
|
const daysInPrevMonth = new Date(year, month, 0).getDate();
|
|
176
244
|
const cells = [];
|
|
177
|
-
|
|
178
|
-
for (let i = startOffset - 1; i >= 0; i--) {
|
|
245
|
+
for (let i = firstDay - 1; i >= 0; i--) {
|
|
179
246
|
const d = daysInPrevMonth - i;
|
|
180
247
|
const m = month === 0 ? 11 : month - 1;
|
|
181
248
|
const y = month === 0 ? year - 1 : year;
|
|
182
249
|
cells.push({ iso: this.toISO(y, m, d), day: d, currentMonth: false });
|
|
183
250
|
}
|
|
184
|
-
// Current month
|
|
185
251
|
for (let d = 1; d <= daysInMonth; d++) {
|
|
186
252
|
cells.push({ iso: this.toISO(year, month, d), day: d, currentMonth: true });
|
|
187
253
|
}
|
|
188
|
-
// Next month filler
|
|
189
254
|
const remaining = 42 - cells.length;
|
|
190
255
|
for (let d = 1; d <= remaining; d++) {
|
|
191
256
|
const m = month === 11 ? 0 : month + 1;
|
|
@@ -194,15 +259,9 @@ const DropiDatePicker = class {
|
|
|
194
259
|
}
|
|
195
260
|
return cells;
|
|
196
261
|
}
|
|
197
|
-
|
|
262
|
+
renderDayView(today) {
|
|
198
263
|
const days = this.buildDays();
|
|
199
|
-
|
|
200
|
-
return (index.h("div", { key: 'd2f6248ff409e53e916e266ab5d23136e9da76d0', class: "dp-wrap" }, this.label && index.h("label", { key: 'ba51f4091f18437e4449c05378def5b099883acd', class: "dp-label" }, this.label), index.h("button", { key: '88eb474ca75c9b62996765bdb4816a8cfc14bb8e', class: {
|
|
201
|
-
'dp-trigger': true,
|
|
202
|
-
'dp-trigger--disabled': this.disabled,
|
|
203
|
-
'dp-trigger--invalid': this.isInvalid,
|
|
204
|
-
'dp-trigger--loading': this.loading
|
|
205
|
-
}, onClick: () => this.open ? this.open = false : this.open_(), disabled: this.disabled || this.loading, type: "button" }, index.h("dropi-icon", { key: '1044cef59317f88cc472d2a466a6937a0c4d58f7', name: "Calendar", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-400" }), index.h("span", { key: '6a7c5687cd06b9b2f42c256bc03ff0f412ca5573', class: { 'dp-trigger__value': true, 'dp-trigger__placeholder': !this.displayValue } }, this.displayValue || this.placeholder), index.h("dropi-icon", { key: '4be1fc67ed6f9ffb5a5d936e3e8d8330bb91fb0b', name: "Arrow-Down-2", iconWidth: "12px", iconHeight: "12px", color: "Gray-Gray-400" })), this.open && (index.h("div", { key: '5ad107e256d62a46b57e4bd1bebead70ecc8e46c', class: "dp-popup" }, index.h("div", { key: 'e3d51afbd24df88867777e43c9bd63dd41c3f542', class: "dp-nav" }, index.h("button", { key: '8819f79389c1d50ec639f719228aab88be4d0335', class: "dp-nav__btn", onClick: () => this.prevMonth(), type: "button" }, index.h("dropi-icon", { key: 'a17004ad24ce40590474d91227a826f46edf50ba', name: "Arrow-Left-2", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" })), index.h("span", { key: 'e91c8a46b963a1e7f0d01c56610c2e4bb6fa3d39', class: "dp-nav__title" }, index.h("span", { key: '214a575cbd83e8c3bafe64ffbd93e914119b09aa' }, MONTHS_ES[this.viewMonth]), index.h("span", { key: '1f71a83e7110bf8a91f7b5e14e0400b09ba28e1a' }, this.viewYear)), index.h("button", { key: '21dbc0fdaabc423bd864bfb33ba314b72ca62d48', class: "dp-nav__btn", onClick: () => this.nextMonth(), type: "button" }, index.h("dropi-icon", { key: 'f248e65855555878afdbda7d1ba9a802d9eae4d5', name: "Arrow-Right-2", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" }))), index.h("div", { key: '4fb29792028bf2132ea78a105c7694cf3806ff05', class: "dp-grid" }, DAYS_ES.map(d => (index.h("div", { class: "dp-day-header" }, d))), days.map(({ iso, day, currentMonth }) => {
|
|
264
|
+
return (index.h("div", { class: "dp-grid" }, DAYS_ES.map(d => index.h("div", { class: "dp-day-header" }, d)), days.map(({ iso, day, currentMonth }) => {
|
|
206
265
|
const isSelected = this.selectionMode !== 'range'
|
|
207
266
|
? iso === this.selectedDate
|
|
208
267
|
: iso === this.startDate || iso === this.endDate;
|
|
@@ -224,22 +283,48 @@ const DropiDatePicker = class {
|
|
|
224
283
|
if (this.selectionMode === 'range' && this.startDate && !this.endDate)
|
|
225
284
|
this.hoverDate = iso;
|
|
226
285
|
}, onMouseLeave: () => this.hoverDate = '' }, day));
|
|
227
|
-
}))
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
286
|
+
})));
|
|
287
|
+
}
|
|
288
|
+
renderMonthView() {
|
|
289
|
+
const todayMonth = new Date().getMonth();
|
|
290
|
+
const todayYear = new Date().getFullYear();
|
|
291
|
+
return (index.h("div", { class: "dp-month-grid" }, MONTHS_SHORT.map((name, idx) => {
|
|
292
|
+
const isSelected = idx === this.viewMonth;
|
|
293
|
+
const isCurrent = idx === todayMonth && this.viewYear === todayYear;
|
|
294
|
+
return (index.h("button", { class: {
|
|
295
|
+
'dp-month-cell': true,
|
|
296
|
+
'dp-month-cell--selected': isSelected,
|
|
297
|
+
'dp-month-cell--current': isCurrent && !isSelected,
|
|
298
|
+
}, type: "button", onClick: () => this.selectMonth(idx) }, name));
|
|
299
|
+
})));
|
|
300
|
+
}
|
|
301
|
+
renderYearView() {
|
|
302
|
+
const currentYear = new Date().getFullYear();
|
|
303
|
+
const start = this.decadeStart;
|
|
304
|
+
const years = Array.from({ length: 10 }, (_, i) => start + i);
|
|
305
|
+
return (index.h("div", { class: "dp-year-grid" }, years.map(year => {
|
|
306
|
+
const isSelected = year === this.viewYear;
|
|
307
|
+
const isCurrent = year === currentYear;
|
|
308
|
+
return (index.h("button", { class: {
|
|
309
|
+
'dp-year-cell': true,
|
|
310
|
+
'dp-year-cell--selected': isSelected,
|
|
311
|
+
'dp-year-cell--current': isCurrent && !isSelected,
|
|
312
|
+
}, type: "button", onClick: () => this.selectYear(year) }, year));
|
|
313
|
+
})));
|
|
314
|
+
}
|
|
315
|
+
render() {
|
|
316
|
+
const today = new Date().toISOString().slice(0, 10);
|
|
317
|
+
return (index.h("div", { key: '6ae00de99b93a13faba81ac027c292b9624d0336', class: "dp-wrap" }, this.label && index.h("label", { key: '9282bb57332ebaef9861702d80759d641ea21757', class: "dp-label" }, this.label), index.h("button", { key: '1fe5d5fcd8ce1c0b151381d9c249c401d322f78a', class: {
|
|
318
|
+
'dp-trigger': true,
|
|
319
|
+
'dp-trigger--disabled': this.disabled,
|
|
320
|
+
'dp-trigger--invalid': this.isInvalid,
|
|
321
|
+
'dp-trigger--loading': this.loading
|
|
322
|
+
}, onClick: () => this.open ? this.open = false : this.open_(), disabled: this.disabled || this.loading, type: "button" }, index.h("dropi-icon", { key: '560cf80eb7652543b9000e375b213a3dba91060b', name: "Calendar", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-400" }), index.h("span", { key: '3bdc45bd4706502af4050475e709c15beebce028', class: { 'dp-trigger__value': true, 'dp-trigger__placeholder': !this.displayValue } }, this.displayValue || this.placeholder)), this.open && (index.h("div", { key: 'e21053dd38d62ab43c01f337fbbeb8b36e70680c', class: "dp-popup" }, index.h("div", { key: 'd6c8fc40ec4bd11bcd5bf3d8b3706c4c62099bbf', class: "dp-calendar" }, index.h("div", { key: 'cf8f21d301592077851a44eb588418302240598f', class: "dp-nav" }, index.h("button", { key: '28702d76d499cec07cd69d7bd23f5eb0369d288f', class: "dp-nav__btn", onClick: () => this.prevNav(), type: "button" }, index.h("dropi-icon", { key: '18b1c6fb2ea5f51b4a4b59592c7d89c5406c6c39', name: "dropdown-left", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" })), index.h("button", { key: '755274772a90deae38d613da369863aefe95e297', class: "dp-nav__title", onClick: () => this.cycleView(), type: "button" }, this.viewMode === 'day'
|
|
323
|
+
? [index.h("span", null, MONTHS_ES[this.viewMonth]), index.h("span", null, this.viewYear)]
|
|
324
|
+
: index.h("span", null, this.navTitle)), index.h("button", { key: '6442690df1e434f9fb0128327f8f07c3cecbed4c', class: "dp-nav__btn", onClick: () => this.nextNav(), type: "button" }, index.h("dropi-icon", { key: '00525ae2cbe5cc8a881d165141de10ce3d72e439', name: "dropdown-right", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-600" }))), this.viewMode === 'day' && this.renderDayView(today), this.viewMode === 'month' && this.renderMonthView(), this.viewMode === 'year' && this.renderYearView()), this.selectionMode === 'range' && [
|
|
325
|
+
index.h("div", { key: '688df97b843c3c3342fc301d6c6c74ec88921d68', class: "dp-divider" }),
|
|
326
|
+
index.h("div", { key: '2c75f7b004812ee1eb18bbc349f03ab55623cd9f', class: "dp-shortcuts" }, this.shortcuts.map((s, i) => (index.h("button", { key: i, class: { 'shortcut-btn': true, 'shortcut-btn--active': this.activeShortcut === i }, onClick: () => this.selectShortcut(i), type: "button" }, s.label))))
|
|
327
|
+
]))));
|
|
243
328
|
}
|
|
244
329
|
static get formAssociated() { return true; }
|
|
245
330
|
static get watchers() { return {
|