@prolibu-suite/cobalt-core 0.9.5 → 0.10.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/custom-elements.json +750 -80
- package/dist/cjs/co-accordion.cjs.entry.js +1 -1
- package/dist/cjs/co-action-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
- package/dist/cjs/co-audio-player.cjs.entry.js +1 -1
- package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
- package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
- package/dist/cjs/co-avatar_2.cjs.entry.js +49 -17
- package/dist/cjs/co-badge.cjs.entry.js +11 -3
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/co-button-group.cjs.entry.js +1 -1
- package/dist/cjs/co-button.cjs.entry.js +2 -2
- package/dist/cjs/co-calendar-month_2.cjs.entry.js +55 -20
- package/dist/cjs/co-calendar_3.cjs.entry.js +27 -15
- package/dist/cjs/co-card.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel-item.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/co-chip_2.cjs.entry.js +8 -5
- package/dist/cjs/co-color-picker.cjs.entry.js +1048 -27
- package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-combobox.cjs.entry.js +2 -2
- package/dist/cjs/co-command-search.cjs.entry.js +1 -1
- package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
- package/dist/cjs/co-data-table.cjs.entry.js +1 -1
- package/dist/cjs/co-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-date-range.cjs.entry.js +2 -2
- package/dist/cjs/co-date-time-picker.cjs.entry.js +101 -130
- package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
- package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
- package/dist/cjs/co-emoji-picker.cjs.entry.js +4 -4
- package/dist/cjs/co-empty-state.cjs.entry.js +4 -4
- package/dist/cjs/co-event-calendar.cjs.entry.js +4 -4
- package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
- package/dist/cjs/co-fab.cjs.entry.js +3 -3
- package/dist/cjs/co-file-field.cjs.entry.js +102 -106
- package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
- package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
- package/dist/cjs/co-icon-button.cjs.entry.js +6 -6
- package/dist/cjs/co-icon.cjs.entry.js +3 -3
- package/dist/cjs/co-input.cjs.entry.js +26 -4
- package/dist/cjs/co-json-field.cjs.entry.js +5 -5
- package/dist/cjs/co-lightbox.cjs.entry.js +204 -21
- package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
- package/dist/cjs/co-list-item.cjs.entry.js +5 -5
- package/dist/cjs/co-loader.cjs.entry.js +1 -1
- package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
- package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
- package/dist/cjs/co-menu-item.cjs.entry.js +84 -3
- package/dist/cjs/co-menu.cjs.entry.js +2 -2
- package/dist/cjs/co-modal.cjs.entry.js +6 -4
- package/dist/cjs/co-navbar.cjs.entry.js +4 -4
- package/dist/cjs/co-number-field.cjs.entry.js +272 -9
- package/dist/cjs/co-overlay.cjs.entry.js +6 -4
- package/dist/cjs/co-page-header.cjs.entry.js +2 -2
- package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
- package/dist/cjs/co-popover.cjs.entry.js +58 -21
- package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
- package/dist/cjs/co-provider-logo_2.cjs.entry.js +47 -3
- package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/co-radio.cjs.entry.js +4 -4
- package/dist/cjs/co-rating.cjs.entry.js +4 -4
- package/dist/cjs/co-ref-field.cjs.entry.js +4 -4
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +11 -8
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +7 -3
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +4 -3
- package/dist/cjs/co-row.cjs.entry.js +3 -3
- package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-select.cjs.entry.js +2 -2
- package/dist/cjs/co-separator.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/co-slider.cjs.entry.js +3 -3
- package/dist/cjs/co-switch.cjs.entry.js +6 -6
- package/dist/cjs/co-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/co-tab.cjs.entry.js +3 -3
- package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
- package/dist/cjs/co-textarea.cjs.entry.js +6 -6
- package/dist/cjs/co-time-field.cjs.entry.js +325 -0
- package/dist/cjs/co-toast.cjs.entry.js +2 -2
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +4 -4
- package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
- package/dist/cjs/co-transfer-list.cjs.entry.js +1 -1
- package/dist/cjs/co-video.cjs.entry.js +32 -7
- package/dist/cjs/cobalt.cjs.js +2 -2
- package/dist/cjs/color-CML2Cfdh.js +142 -0
- package/dist/cjs/{dateI18n-wblvKRq_.js → dateI18n-BK2qHqoC.js} +36 -0
- package/dist/cjs/{fieldChip-BLzo9MEV.js → fieldChip-B6YIGU1V.js} +1 -1
- package/dist/cjs/fileI18n-6sdbKvo6.js +88 -0
- package/dist/cjs/{index-DFZ5YhIT.js → index-BYwrR87Z.js} +28 -10
- package/dist/cjs/{index-DK-2Lzmf.js → index-MDAnKsze.js} +25 -21
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{positioning-DCj_AJ2T.js → positioning-CyatXeT_.js} +32 -13
- package/dist/cjs/{requiredMark-C1xcrzSZ.js → requiredMark-D-t-IPN0.js} +1 -1
- package/dist/cjs/{toolbar-config-BQfWTW6P.js → toolbar-config-BSGas-Wl.js} +10 -0
- package/dist/cobalt/cobalt.css +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/{p-f83b48fd.entry.js → p-011dc80b.entry.js} +1 -1
- package/dist/cobalt/{p-316c62c0.entry.js → p-0678c797.entry.js} +1 -1
- package/dist/cobalt/{p-43bd298d.entry.js → p-08e42e00.entry.js} +1 -1
- package/dist/cobalt/{p-1c68bc41.entry.js → p-10b82207.entry.js} +1 -1
- package/dist/cobalt/{p-a8c64cc3.entry.js → p-15d59169.entry.js} +1 -1
- package/dist/cobalt/{p-07d570a6.entry.js → p-16954cea.entry.js} +1 -1
- package/dist/cobalt/{p-85a61e28.entry.js → p-17244412.entry.js} +1 -1
- package/dist/cobalt/p-1788aab5.entry.js +1 -0
- package/dist/cobalt/p-1a589c8e.entry.js +1 -0
- package/dist/cobalt/{p-da546d08.entry.js → p-1dc55e43.entry.js} +1 -1
- package/dist/cobalt/p-20a39218.entry.js +1 -0
- package/dist/cobalt/{p-4c7e3984.entry.js → p-23ab0cc5.entry.js} +1 -1
- package/dist/cobalt/{p-fabe5fb2.entry.js → p-2636b7eb.entry.js} +1 -1
- package/dist/cobalt/{p-88a0659f.entry.js → p-27a7e549.entry.js} +1 -1
- package/dist/cobalt/{p-18d34b01.entry.js → p-290066ef.entry.js} +1 -1
- package/dist/cobalt/{p-89e38c5e.entry.js → p-2f9cbbd5.entry.js} +1 -1
- package/dist/cobalt/{p-ef5e1167.entry.js → p-325b91b6.entry.js} +1 -1
- package/dist/cobalt/{p-60cb66f5.entry.js → p-37f5036b.entry.js} +1 -1
- package/dist/cobalt/p-3cc3ff93.entry.js +1 -0
- package/dist/cobalt/p-410bee4d.entry.js +1 -0
- package/dist/cobalt/{p-6795a258.entry.js → p-44c4e4a3.entry.js} +1 -1
- package/dist/cobalt/{p-4b083da4.entry.js → p-44ea675f.entry.js} +1 -1
- package/dist/cobalt/{p-2828ecf6.entry.js → p-4592ca00.entry.js} +1 -1
- package/dist/cobalt/p-4908f33f.entry.js +1 -0
- package/dist/cobalt/{p-342e1da4.entry.js → p-4d65e713.entry.js} +1 -1
- package/dist/cobalt/{p-dca4cd5f.entry.js → p-4d897896.entry.js} +1 -1
- package/dist/cobalt/{p-33ea4a90.entry.js → p-50bcc76f.entry.js} +1 -1
- package/dist/cobalt/{p-ac91259e.entry.js → p-5298c030.entry.js} +1 -1
- package/dist/cobalt/p-54c987d7.entry.js +1 -0
- package/dist/cobalt/p-56551580.entry.js +1 -0
- package/dist/cobalt/p-58137c9e.entry.js +1 -0
- package/dist/cobalt/{p-4f754c9a.entry.js → p-58d9b650.entry.js} +1 -1
- package/dist/cobalt/p-59963937.entry.js +1 -0
- package/dist/cobalt/{p-2d329ac8.entry.js → p-623cc195.entry.js} +1 -1
- package/dist/cobalt/p-63825d7f.entry.js +1 -0
- package/dist/cobalt/{p-8e667eb6.entry.js → p-66b11b38.entry.js} +1 -1
- package/dist/cobalt/{p-fb3a095b.entry.js → p-6bf6bc3e.entry.js} +1 -1
- package/dist/cobalt/p-6f700f0d.entry.js +1 -0
- package/dist/cobalt/p-73c6d735.entry.js +1 -0
- package/dist/cobalt/{p-a6357340.entry.js → p-76249983.entry.js} +1 -1
- package/dist/cobalt/{p-bfc2a849.entry.js → p-82266f11.entry.js} +1 -1
- package/dist/cobalt/{p-a9b29cc2.entry.js → p-826ee074.entry.js} +1 -1
- package/dist/cobalt/{p-23b3ff3f.entry.js → p-83a9a05a.entry.js} +1 -1
- package/dist/cobalt/{p-568cfe8d.entry.js → p-83ea631d.entry.js} +1 -1
- package/dist/cobalt/p-85501c6a.entry.js +1 -0
- package/dist/cobalt/{p-dfd25f1d.entry.js → p-88195a63.entry.js} +1 -1
- package/dist/cobalt/p-8fa5dc4a.entry.js +1 -0
- package/dist/cobalt/{p-c8dba82f.entry.js → p-91e73a92.entry.js} +1 -1
- package/dist/cobalt/{p-ac466658.entry.js → p-92b092db.entry.js} +1 -1
- package/dist/cobalt/{p-36197363.entry.js → p-996f4e38.entry.js} +1 -1
- package/dist/cobalt/p-BRbgGqLw.js +1 -0
- package/dist/cobalt/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
- package/dist/cobalt/p-DFHRS9cJ.js +1 -0
- package/dist/cobalt/{p-CrtiywTB.js → p-DH5lfRNj.js} +1 -1
- package/dist/{components/p-WeuPA9Rw.js → cobalt/p-DOL2zACE.js} +1 -1
- package/dist/cobalt/p-D_zA1Pv4.js +1 -0
- package/dist/cobalt/{p-fef5db54.entry.js → p-a32b20eb.entry.js} +1 -1
- package/dist/cobalt/p-aa9400bf.entry.js +1 -0
- package/dist/cobalt/{p-8eb485c8.entry.js → p-aaca6dab.entry.js} +1 -1
- package/dist/cobalt/{p-e5495539.entry.js → p-aae86f96.entry.js} +1 -1
- package/dist/cobalt/{p-8f38e24d.entry.js → p-ad33c40e.entry.js} +1 -1
- package/dist/cobalt/p-b0c4fc71.entry.js +1 -0
- package/dist/cobalt/{p-da18b5f4.entry.js → p-b1e8d69e.entry.js} +1 -1
- package/dist/cobalt/p-b48917c9.entry.js +1 -0
- package/dist/cobalt/{p-7e53e9c8.entry.js → p-b565104d.entry.js} +1 -1
- package/dist/cobalt/{p-b0319a2d.entry.js → p-b90d41e4.entry.js} +1 -1
- package/dist/cobalt/{p-c5684c79.entry.js → p-bd683db3.entry.js} +1 -1
- package/dist/cobalt/{p-1ddbc48b.entry.js → p-c124e82b.entry.js} +1 -1
- package/dist/cobalt/{p-95efe661.entry.js → p-c2ebf0ec.entry.js} +1 -1
- package/dist/cobalt/{p-76420ac1.entry.js → p-c32c176a.entry.js} +1 -1
- package/dist/cobalt/{p-54ae807d.entry.js → p-c465d619.entry.js} +1 -1
- package/dist/cobalt/{p-ab45d9bd.entry.js → p-c91d4fc6.entry.js} +1 -1
- package/dist/cobalt/{p-ce35c898.entry.js → p-d29bb0fa.entry.js} +1 -1
- package/dist/cobalt/{p-7c5e846a.entry.js → p-db805569.entry.js} +1 -1
- package/dist/cobalt/p-e01f9b9a.entry.js +1 -0
- package/dist/cobalt/p-e3aae282.entry.js +1 -0
- package/dist/cobalt/{p-d15d3a97.entry.js → p-e4264532.entry.js} +1 -1
- package/dist/cobalt/{p-93c68029.entry.js → p-e48f4e45.entry.js} +1 -1
- package/dist/cobalt/{p-3f0eed59.entry.js → p-e49a564c.entry.js} +1 -1
- package/dist/cobalt/p-e8a2f993.entry.js +1 -0
- package/dist/cobalt/p-e8a4e6b0.entry.js +1 -0
- package/dist/cobalt/p-ea20f048.entry.js +1 -0
- package/dist/cobalt/{p-c1e7fb32.entry.js → p-eb063cc0.entry.js} +1 -1
- package/dist/cobalt/p-eb82358d.entry.js +1 -0
- package/dist/cobalt/{p-2114c036.entry.js → p-eb8691f2.entry.js} +1 -1
- package/dist/cobalt/{p-e8878cf9.entry.js → p-ee2023da.entry.js} +1 -1
- package/dist/cobalt/p-ee9a623d.entry.js +1 -0
- package/dist/cobalt/p-ef5ca521.entry.js +1 -0
- package/dist/cobalt/p-f4e1c3c3.entry.js +1 -0
- package/dist/cobalt/{p-e364b8a5.entry.js → p-f57dffca.entry.js} +1 -1
- package/dist/cobalt/p-f6691108.entry.js +1 -0
- package/dist/cobalt/p-f68dd124.entry.js +1 -0
- package/dist/cobalt/p-fMqVDypp.js +1 -0
- package/dist/cobalt/{p-0c463d9a.entry.js → p-fd150cc6.entry.js} +1 -1
- package/dist/cobalt/{p-0e91e5c4.entry.js → p-fe7e8813.entry.js} +1 -1
- package/dist/cobalt/p-gKnOhsd2.js +1 -0
- package/dist/cobalt/p-jYd9gu_c.js +1 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/co-app-shell/co-app-shell.css +107 -41
- package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-badge/co-badge.css +18 -0
- package/dist/collection/components/co-badge/co-badge.js +29 -1
- package/dist/collection/components/co-button/co-button.css +4 -4
- package/dist/collection/components/co-checkbox/co-checkbox.css +12 -3
- package/dist/collection/components/co-checkbox/co-checkbox.js +6 -6
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +1 -3
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-color-picker/co-color-picker.css +252 -5
- package/dist/collection/components/co-color-picker/co-color-picker.js +932 -15
- package/dist/collection/components/co-color-picker/presets.js +113 -15
- package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
- package/dist/collection/components/co-combobox/co-combobox.js +1 -1
- package/dist/collection/components/co-command-search/co-command-search.js +1 -1
- package/dist/collection/components/co-data-table/co-data-table.js +1 -1
- package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
- package/dist/collection/components/co-date-field/co-date-field.js +4 -4
- package/dist/collection/components/co-date-range/co-date-range.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-date-time-picker/co-date-time-picker.css +128 -32
- package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +142 -138
- package/dist/collection/components/co-drawer/co-drawer.css +99 -36
- package/dist/collection/components/co-drawer/co-drawer.js +19 -7
- package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
- package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
- package/dist/collection/components/co-empty-state/co-empty-state.css +28 -0
- package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
- package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
- package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
- package/dist/collection/components/co-fab/co-fab.js +2 -2
- package/dist/collection/components/co-file-field/co-file-field.css +55 -2
- package/dist/collection/components/co-file-field/co-file-field.js +41 -13
- package/dist/collection/components/co-file-field/co-file-field.utils.js +51 -4
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
- package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
- package/dist/collection/components/co-icon/co-icon.js +2 -2
- package/dist/collection/components/co-icon-button/co-icon-button.css +40 -2
- package/dist/collection/components/co-icon-button/co-icon-button.js +43 -4
- package/dist/collection/components/co-input/co-input.css +33 -0
- package/dist/collection/components/co-input/co-input.js +25 -2
- package/dist/collection/components/co-json-field/co-json-field.js +3 -3
- package/dist/collection/components/co-lightbox/co-lightbox.css +23 -0
- package/dist/collection/components/co-lightbox/co-lightbox.js +209 -20
- package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
- package/dist/collection/components/co-list-item/co-list-item.js +4 -4
- package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
- package/dist/collection/components/co-menu/co-menu.js +1 -1
- package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
- package/dist/collection/components/co-menu-item/co-menu-item.js +67 -3
- package/dist/collection/components/co-modal/co-modal.css +106 -37
- package/dist/collection/components/co-modal/co-modal.js +4 -2
- package/dist/collection/components/co-navbar/co-navbar.css +4 -2
- package/dist/collection/components/co-navbar/co-navbar.js +2 -2
- package/dist/collection/components/co-number-field/co-number-field.css +22 -0
- package/dist/collection/components/co-number-field/co-number-field.js +216 -9
- package/dist/collection/components/co-option-list/co-option-list.css +25 -4
- package/dist/collection/components/co-option-list/co-option-list.js +26 -3
- package/dist/collection/components/co-overlay/co-overlay.js +5 -3
- package/dist/collection/components/co-page-header/co-page-header.js +1 -1
- package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
- package/dist/collection/components/co-popover/co-popover.css +18 -3
- package/dist/collection/components/co-popover/co-popover.js +83 -20
- package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
- package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
- package/dist/collection/components/co-radio/co-radio.js +3 -3
- package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
- package/dist/collection/components/co-rating/co-rating.js +3 -3
- package/dist/collection/components/co-ref-field/co-ref-field.js +3 -3
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +14 -1
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +9 -6
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +7 -3
- package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +3 -2
- package/dist/collection/components/co-row/co-row.js +2 -2
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
- package/dist/collection/components/co-select/co-select.js +1 -1
- package/dist/collection/components/co-separator/co-separator.js +1 -1
- package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +2 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
- package/dist/collection/components/co-skeleton/co-skeleton.css +18 -0
- package/dist/collection/components/co-skeleton/co-skeleton.js +83 -1
- package/dist/collection/components/co-slider/co-slider.js +2 -2
- package/dist/collection/components/co-switch/co-switch.css +3 -3
- package/dist/collection/components/co-switch/co-switch.js +3 -3
- package/dist/collection/components/co-tab/co-tab.js +2 -2
- package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
- package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
- package/dist/collection/components/co-textarea/co-textarea.js +4 -4
- package/dist/collection/components/co-time-field/co-time-field.css +111 -0
- package/dist/collection/components/co-time-field/co-time-field.js +536 -0
- package/dist/collection/components/co-toast/co-toast.css +13 -7
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +16 -11
- package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +7 -1
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
- package/dist/collection/components/co-tooltip/co-tooltip.css +18 -1
- package/dist/collection/components/co-tooltip/co-tooltip.js +49 -16
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-video/co-video.js +34 -9
- package/dist/collection/utils/amountText.js +95 -0
- package/dist/collection/utils/color.js +109 -3
- package/dist/collection/utils/colorPickerI18n.js +55 -0
- package/dist/collection/utils/dateI18n.js +36 -0
- package/dist/collection/utils/fileI18n.js +3 -0
- package/dist/collection/utils/positioning.js +37 -4
- package/dist/collection/utils/submenu.js +35 -0
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-action-bar.js +1 -1
- package/dist/components/co-app-shell.js +1 -1
- package/dist/components/co-audio-player.js +1 -1
- package/dist/components/co-autocomplete.js +1 -1
- package/dist/components/co-avatar-group.js +1 -1
- package/dist/components/co-avatar.js +1 -1
- package/dist/components/co-badge.js +1 -1
- package/dist/components/co-breadcrumb-item.js +1 -1
- package/dist/components/co-breadcrumb.js +1 -1
- package/dist/components/co-button.js +1 -1
- package/dist/components/co-calendar-month.js +1 -1
- package/dist/components/co-calendar-timegrid.js +1 -1
- package/dist/components/co-calendar.js +1 -1
- package/dist/components/co-carousel.js +1 -1
- package/dist/components/co-checkbox-group.js +1 -1
- package/dist/components/co-checkbox.js +1 -1
- package/dist/components/co-chip.js +1 -1
- package/dist/components/co-color-picker.js +1 -1
- package/dist/components/co-column-picker.js +1 -1
- package/dist/components/co-combobox.js +1 -1
- package/dist/components/co-command-search.js +1 -1
- package/dist/components/co-data-table-pagination.js +1 -1
- package/dist/components/co-data-table.js +1 -1
- package/dist/components/co-date-field.js +1 -1
- package/dist/components/co-date-picker.js +1 -1
- package/dist/components/co-date-range-picker.js +1 -1
- package/dist/components/co-date-range.js +1 -1
- package/dist/components/co-date-time-picker.js +1 -1
- package/dist/components/co-drawer.js +1 -1
- package/dist/components/co-drive-card.js +1 -1
- package/dist/components/co-drop-zone.js +1 -1
- package/dist/components/co-emoji-picker.js +1 -1
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-event-popover.js +1 -1
- package/dist/components/co-fab.js +1 -1
- package/dist/components/co-file-field.js +1 -1
- package/dist/components/co-file-type-tile.js +1 -1
- package/dist/components/co-helper-text.js +1 -1
- package/dist/components/co-icon-button.js +1 -1
- package/dist/components/co-icon.js +1 -1
- package/dist/components/co-input.js +1 -1
- package/dist/components/co-json-field.js +1 -1
- package/dist/components/co-lightbox.js +1 -1
- package/dist/components/co-list-footer.js +1 -1
- package/dist/components/co-list-item.js +1 -1
- package/dist/components/co-media-thumb.js +1 -1
- package/dist/components/co-menu-divider.js +1 -1
- package/dist/components/co-menu-item.js +1 -1
- package/dist/components/co-menu.js +1 -1
- package/dist/components/co-modal.js +1 -1
- package/dist/components/co-navbar.js +1 -1
- package/dist/components/co-number-field.js +1 -1
- package/dist/components/co-option-list.js +1 -1
- package/dist/components/co-overlay.js +1 -1
- package/dist/components/co-page-header.js +1 -1
- package/dist/components/co-phone-field.js +1 -1
- package/dist/components/co-popover.js +1 -1
- package/dist/components/co-progress-bar.js +1 -1
- package/dist/components/co-progress-circle.js +1 -1
- package/dist/components/co-radio-group.js +1 -1
- package/dist/components/co-radio.js +1 -1
- package/dist/components/co-rating.js +1 -1
- package/dist/components/co-ref-field.js +1 -1
- package/dist/components/co-rich-text-editor.js +1 -1
- package/dist/components/co-rich-text-toolbar.js +1 -1
- package/dist/components/co-rich-text-viewer.js +1 -1
- package/dist/components/co-row.js +1 -1
- package/dist/components/co-select.js +1 -1
- package/dist/components/co-separator.js +1 -1
- package/dist/components/co-sidebar-nav.js +1 -1
- package/dist/components/co-sidebar.js +1 -1
- package/dist/components/co-skeleton.js +1 -1
- package/dist/components/co-slider.js +1 -1
- package/dist/components/co-switch.js +1 -1
- package/dist/components/co-tab-group.js +1 -1
- package/dist/components/co-tab.js +1 -1
- package/dist/components/co-tags-field.js +1 -1
- package/dist/components/co-textarea.js +1 -1
- package/dist/components/co-time-field.d.ts +11 -0
- package/dist/components/co-time-field.js +1 -0
- package/dist/components/co-toast.js +1 -1
- package/dist/components/co-toggle-button-group.js +1 -1
- package/dist/components/co-toggle-button.js +1 -1
- package/dist/components/co-tooltip.js +1 -1
- package/dist/components/co-transfer-list.js +1 -1
- package/dist/components/co-video.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-9ceBPSd1.js +1 -0
- package/dist/components/p-B1QFLcY9.js +1 -0
- package/dist/components/p-B2IsXte7.js +1 -0
- package/dist/components/p-B4NCaKrR.js +1 -0
- package/dist/components/p-BBP5__CY.js +1 -0
- package/dist/components/{p-Dabi98BI.js → p-BGDqldEg.js} +1 -1
- package/dist/components/p-BRbgGqLw.js +1 -0
- package/dist/components/p-Be_kyNRE.js +1 -0
- package/dist/components/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
- package/dist/components/p-BsTO1uUA.js +1 -0
- package/dist/components/{p-CuZXTvDM.js → p-Bv6U5y3d.js} +1 -1
- package/dist/components/p-BxP8OBw6.js +1 -0
- package/dist/components/{p-P8wvwhM2.js → p-CFFDmGPS.js} +1 -1
- package/dist/components/{p-CA_JAK9s.js → p-CT2enQ6h.js} +1 -1
- package/dist/components/p-CXPRaTuo.js +1 -0
- package/dist/components/{p-D5EdMieb.js → p-Cl3AdEQJ.js} +1 -1
- package/dist/components/p-CnX3L8aF.js +1 -0
- package/dist/components/p-DFHRS9cJ.js +1 -0
- package/dist/components/p-DIo66nBr.js +1 -0
- package/dist/components/{p-Dj1EZ5qD.js → p-DNJAIVfI.js} +1 -1
- package/dist/{cobalt/p-WeuPA9Rw.js → components/p-DOL2zACE.js} +1 -1
- package/dist/components/p-DRP8D9ro.js +1 -0
- package/dist/components/p-DkDTmHCg.js +1 -0
- package/dist/components/{p-Bxk96Zgc.js → p-Du_CgT5E.js} +1 -1
- package/dist/components/{p-BHYtxTzM.js → p-HxVRXXXC.js} +1 -1
- package/dist/components/{p-B0Dc-I_C.js → p-NNxjElcX.js} +1 -1
- package/dist/components/p-gKnOhsd2.js +1 -0
- package/dist/components/p-jYd9gu_c.js +1 -0
- package/dist/components/{p-D4qzGifz.js → p-vby0ITbe.js} +1 -1
- package/dist/components/{p-D6OUW6oW.js → p-x4grh-eZ.js} +1 -1
- package/dist/esm/co-accordion.entry.js +1 -1
- package/dist/esm/co-action-bar.entry.js +1 -1
- package/dist/esm/co-app-shell.entry.js +4 -4
- package/dist/esm/co-audio-player.entry.js +1 -1
- package/dist/esm/co-autocomplete.entry.js +2 -2
- package/dist/esm/co-avatar-group.entry.js +1 -1
- package/dist/esm/co-avatar_2.entry.js +49 -17
- package/dist/esm/co-badge.entry.js +11 -3
- package/dist/esm/co-bottom-sheet.entry.js +1 -1
- package/dist/esm/co-breadcrumb-item.entry.js +1 -1
- package/dist/esm/co-breadcrumb.entry.js +1 -1
- package/dist/esm/co-button-group.entry.js +1 -1
- package/dist/esm/co-button.entry.js +2 -2
- package/dist/esm/co-calendar-month_2.entry.js +37 -2
- package/dist/esm/co-calendar_3.entry.js +27 -15
- package/dist/esm/co-card.entry.js +1 -1
- package/dist/esm/co-carousel-item.entry.js +1 -1
- package/dist/esm/co-carousel.entry.js +2 -2
- package/dist/esm/co-checkbox-group.entry.js +2 -2
- package/dist/esm/co-checkbox.entry.js +6 -6
- package/dist/esm/co-chip_2.entry.js +8 -5
- package/dist/esm/co-color-picker.entry.js +1048 -27
- package/dist/esm/co-column-picker.entry.js +3 -3
- package/dist/esm/co-combobox.entry.js +2 -2
- package/dist/esm/co-command-search.entry.js +1 -1
- package/dist/esm/co-data-table-pagination.entry.js +5 -5
- package/dist/esm/co-data-table.entry.js +1 -1
- package/dist/esm/co-date-picker.entry.js +3 -3
- package/dist/esm/co-date-range-picker.entry.js +3 -3
- package/dist/esm/co-date-range.entry.js +2 -2
- package/dist/esm/co-date-time-picker.entry.js +101 -130
- package/dist/esm/co-drive-card.entry.js +2 -2
- package/dist/esm/co-drop-zone.entry.js +2 -2
- package/dist/esm/co-emoji-picker.entry.js +4 -4
- package/dist/esm/co-empty-state.entry.js +4 -4
- package/dist/esm/co-event-calendar.entry.js +4 -4
- package/dist/esm/co-event-popover.entry.js +3 -3
- package/dist/esm/co-fab.entry.js +3 -3
- package/dist/esm/co-file-field.entry.js +95 -99
- package/dist/esm/co-file-type-tile.entry.js +3 -3
- package/dist/esm/co-helper-text.entry.js +3 -3
- package/dist/esm/co-icon-button.entry.js +6 -6
- package/dist/esm/co-icon.entry.js +3 -3
- package/dist/esm/co-input.entry.js +26 -4
- package/dist/esm/co-json-field.entry.js +5 -5
- package/dist/esm/co-lightbox.entry.js +204 -21
- package/dist/esm/co-list-footer.entry.js +2 -2
- package/dist/esm/co-list-item.entry.js +5 -5
- package/dist/esm/co-loader.entry.js +1 -1
- package/dist/esm/co-media-thumb.entry.js +3 -3
- package/dist/esm/co-menu-divider.entry.js +2 -2
- package/dist/esm/co-menu-item.entry.js +84 -3
- package/dist/esm/co-menu.entry.js +2 -2
- package/dist/esm/co-modal.entry.js +6 -4
- package/dist/esm/co-navbar.entry.js +4 -4
- package/dist/esm/co-number-field.entry.js +272 -9
- package/dist/esm/co-overlay.entry.js +6 -4
- package/dist/esm/co-page-header.entry.js +2 -2
- package/dist/esm/co-phone-field.entry.js +3 -3
- package/dist/esm/co-popover.entry.js +58 -21
- package/dist/esm/co-progress-bar.entry.js +3 -3
- package/dist/esm/co-progress-circle.entry.js +3 -3
- package/dist/esm/co-provider-logo_2.entry.js +47 -3
- package/dist/esm/co-radio-group.entry.js +1 -1
- package/dist/esm/co-radio.entry.js +4 -4
- package/dist/esm/co-rating.entry.js +4 -4
- package/dist/esm/co-ref-field.entry.js +4 -4
- package/dist/esm/co-rich-text-editor.entry.js +11 -8
- package/dist/esm/co-rich-text-toolbar.entry.js +7 -3
- package/dist/esm/co-rich-text-viewer.entry.js +4 -3
- package/dist/esm/co-row.entry.js +3 -3
- package/dist/esm/co-segmented-bar.entry.js +1 -1
- package/dist/esm/co-select.entry.js +2 -2
- package/dist/esm/co-separator.entry.js +2 -2
- package/dist/esm/co-sidebar-nav.entry.js +2 -2
- package/dist/esm/co-sidebar.entry.js +3 -3
- package/dist/esm/co-slider.entry.js +3 -3
- package/dist/esm/co-switch.entry.js +6 -6
- package/dist/esm/co-tab-group.entry.js +3 -3
- package/dist/esm/co-tab.entry.js +3 -3
- package/dist/esm/co-tags-field.entry.js +8 -8
- package/dist/esm/co-textarea.entry.js +6 -6
- package/dist/esm/co-time-field.entry.js +323 -0
- package/dist/esm/co-toast.entry.js +2 -2
- package/dist/esm/co-toggle-button-group.entry.js +4 -4
- package/dist/esm/co-toggle-button.entry.js +4 -4
- package/dist/esm/co-transfer-list.entry.js +1 -1
- package/dist/esm/co-video.entry.js +32 -7
- package/dist/esm/cobalt.js +3 -3
- package/dist/esm/color-BRbgGqLw.js +136 -0
- package/dist/esm/{dateI18n-CnNpoKwg.js → dateI18n-jYd9gu_c.js} +36 -0
- package/dist/esm/{fieldChip-DsAfq1e0.js → fieldChip-uyggU8VV.js} +1 -1
- package/dist/esm/fileI18n-gKnOhsd2.js +84 -0
- package/dist/esm/{index-RuXxdKzC.js → index-68iUQp5j.js} +28 -10
- package/dist/esm/{index-CrtiywTB.js → index-DH5lfRNj.js} +25 -21
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{positioning-BMdapAL8.js → positioning-DFHRS9cJ.js} +32 -13
- package/dist/esm/{requiredMark-DCD-ZA51.js → requiredMark-BCJUuZvC.js} +1 -1
- package/dist/esm/{toolbar-config-WeuPA9Rw.js → toolbar-config-DOL2zACE.js} +10 -0
- package/dist/types/components/co-badge/co-badge.d.ts +7 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +1 -1
- package/dist/types/components/co-color-picker/co-color-picker.d.ts +358 -4
- package/dist/types/components/co-color-picker/presets.d.ts +107 -4
- package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +43 -21
- package/dist/types/components/co-drawer/co-drawer.d.ts +4 -3
- package/dist/types/components/co-file-field/co-file-field.d.ts +14 -0
- package/dist/types/components/co-file-field/co-file-field.utils.d.ts +18 -1
- package/dist/types/components/co-icon-button/co-icon-button.d.ts +9 -0
- package/dist/types/components/co-input/co-input.d.ts +4 -0
- package/dist/types/components/co-lightbox/co-lightbox.d.ts +60 -4
- package/dist/types/components/co-menu-item/co-menu-item.d.ts +16 -0
- package/dist/types/components/co-number-field/co-number-field.d.ts +42 -1
- package/dist/types/components/co-option-list/co-option-list.d.ts +3 -0
- package/dist/types/components/co-overlay/co-overlay.d.ts +4 -2
- package/dist/types/components/co-popover/co-popover.d.ts +16 -0
- package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +1 -1
- package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
- package/dist/types/components/co-time-field/co-time-field.d.ts +60 -0
- package/dist/types/components/co-tooltip/co-tooltip.d.ts +5 -0
- package/dist/types/components/co-video/co-video.d.ts +4 -0
- package/dist/types/components.d.ts +451 -87
- package/dist/types/utils/amountText.d.ts +34 -0
- package/dist/types/utils/color.d.ts +44 -1
- package/dist/types/utils/colorPickerI18n.d.ts +26 -0
- package/dist/types/utils/dateI18n.d.ts +12 -0
- package/dist/types/utils/fileI18n.d.ts +1 -0
- package/dist/types/utils/positioning.d.ts +10 -0
- package/dist/types/utils/submenu.d.ts +44 -0
- package/package.json +3 -3
- package/dist/cjs/color-YhUkm10t.js +0 -32
- package/dist/cjs/time-LBHtzLHe.js +0 -42
- package/dist/cobalt/p-07904986.entry.js +0 -1
- package/dist/cobalt/p-09799193.entry.js +0 -1
- package/dist/cobalt/p-17ae943c.entry.js +0 -1
- package/dist/cobalt/p-23a103a0.entry.js +0 -1
- package/dist/cobalt/p-2f88d151.entry.js +0 -1
- package/dist/cobalt/p-3495fda1.entry.js +0 -1
- package/dist/cobalt/p-409f28bb.entry.js +0 -1
- package/dist/cobalt/p-682b3313.entry.js +0 -1
- package/dist/cobalt/p-6bf814f9.entry.js +0 -1
- package/dist/cobalt/p-7c88163e.entry.js +0 -1
- package/dist/cobalt/p-7cf4b4ae.entry.js +0 -1
- package/dist/cobalt/p-7ea87b75.entry.js +0 -1
- package/dist/cobalt/p-8183f56f.entry.js +0 -1
- package/dist/cobalt/p-8345b25f.entry.js +0 -1
- package/dist/cobalt/p-8b4b3589.entry.js +0 -1
- package/dist/cobalt/p-983af614.entry.js +0 -1
- package/dist/cobalt/p-BG4WRR22.js +0 -1
- package/dist/cobalt/p-BMdapAL8.js +0 -1
- package/dist/cobalt/p-CF8OB_TM.js +0 -1
- package/dist/cobalt/p-CnNpoKwg.js +0 -1
- package/dist/cobalt/p-T4la7ly_.js +0 -1
- package/dist/cobalt/p-a2d31248.entry.js +0 -1
- package/dist/cobalt/p-a6b5cadd.entry.js +0 -1
- package/dist/cobalt/p-b8581787.entry.js +0 -1
- package/dist/cobalt/p-bcedbd73.entry.js +0 -1
- package/dist/cobalt/p-d40a465f.entry.js +0 -1
- package/dist/cobalt/p-dea43204.entry.js +0 -1
- package/dist/cobalt/p-dfcf667d.entry.js +0 -1
- package/dist/cobalt/p-e6882ddd.entry.js +0 -1
- package/dist/cobalt/p-e84eda2e.entry.js +0 -1
- package/dist/cobalt/p-f25967fb.entry.js +0 -1
- package/dist/cobalt/p-f5f1b463.entry.js +0 -1
- package/dist/cobalt/p-fd39f410.entry.js +0 -1
- package/dist/cobalt/p-mAGnZXRn.js +0 -1
- package/dist/components/p-BMdapAL8.js +0 -1
- package/dist/components/p-BTQEg3UO.js +0 -1
- package/dist/components/p-BZIB4JDs.js +0 -1
- package/dist/components/p-Bbny3WUc.js +0 -1
- package/dist/components/p-C1Kv3zYZ.js +0 -1
- package/dist/components/p-CF8OB_TM.js +0 -1
- package/dist/components/p-CR0izsJC.js +0 -1
- package/dist/components/p-CnNpoKwg.js +0 -1
- package/dist/components/p-DP0bbhfN.js +0 -1
- package/dist/components/p-DbipMAyT.js +0 -1
- package/dist/components/p-DgUBcJIS.js +0 -1
- package/dist/components/p-DolCkNsL.js +0 -1
- package/dist/components/p-gI62K3Be.js +0 -1
- package/dist/components/p-hfGFsvaD.js +0 -1
- package/dist/esm/color-BG4WRR22.js +0 -30
- package/dist/esm/time-CF8OB_TM.js +0 -37
|
@@ -1,8 +1,136 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-
|
|
2
|
-
import { R as RequiredMark } from './requiredMark-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DH5lfRNj.js';
|
|
2
|
+
import { R as RequiredMark } from './requiredMark-BCJUuZvC.js';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Texto de montos para co-number-field `format="amount"`.
|
|
6
|
+
*
|
|
7
|
+
* El campo pinta coma = miles y punto = decimal (formato de la app). El texto
|
|
8
|
+
* PEGADO, en cambio, viene con el formato de DONDE se copió: es-CO usa el punto
|
|
9
|
+
* para miles (`121.123,20`), en-US al revés (`121,123.20`). Los dos separadores
|
|
10
|
+
* intercambian rol según el locale, así que no alcanza con borrar lo que no sea
|
|
11
|
+
* dígito: hay que decidir CUÁL es el decimal antes de descartar el otro.
|
|
12
|
+
* Puerto del util probado de V1 (shared-components `utils/numericInput.js`).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Topes de longitud: pegar una COLUMNA entera de Excel concatena todos los
|
|
16
|
+
* dígitos en un solo número — sin tope, cada tecla siguiente re-formatea un
|
|
17
|
+
* string gigante (y la agrupación de miles se vuelve costosa) y parseFloat
|
|
18
|
+
* termina en Infinity. 15 enteros = rango seguro de Number; 8 decimales =
|
|
19
|
+
* paridad con el numeral de V1 (`$ 0,0.[00000000]`).
|
|
20
|
+
*/
|
|
21
|
+
const MAX_INTEGER_DIGITS = 15;
|
|
22
|
+
const MAX_DECIMAL_DIGITS = 8;
|
|
23
|
+
const capDigits = (integer, decimals) => ({
|
|
24
|
+
integer: integer.slice(0, MAX_INTEGER_DIGITS),
|
|
25
|
+
decimals: decimals.slice(0, MAX_DECIMAL_DIGITS),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Interpreta un número pegado sin saber de qué locale viene.
|
|
29
|
+
*
|
|
30
|
+
* Reglas, en orden:
|
|
31
|
+
* 1. Con AMBOS separadores, el ÚLTIMO es el decimal (`121.123,20` → `121123.20`).
|
|
32
|
+
* 2. Separador repetido = miles (`123.123.123` → `123123123`).
|
|
33
|
+
* 3. Uno solo: grupo de exactamente 3 dígitos detrás = miles (`34,640` → `34640`,
|
|
34
|
+
* como formatea la propia app); cualquier otra cantidad = decimal (`121,20`).
|
|
35
|
+
*
|
|
36
|
+
* Devuelve el número crudo listo para `parseFloat` ('' si no hay dígitos).
|
|
37
|
+
*/
|
|
38
|
+
function parseNumericText(text) {
|
|
39
|
+
const cleaned = String(text !== null && text !== void 0 ? text : '').replace(/[^\d.,]/g, '');
|
|
40
|
+
if (!cleaned)
|
|
41
|
+
return '';
|
|
42
|
+
const lastDot = cleaned.lastIndexOf('.');
|
|
43
|
+
const lastComma = cleaned.lastIndexOf(',');
|
|
44
|
+
let decimalIndex = -1;
|
|
45
|
+
if (lastDot >= 0 && lastComma >= 0) {
|
|
46
|
+
decimalIndex = Math.max(lastDot, lastComma);
|
|
47
|
+
}
|
|
48
|
+
else if (lastDot >= 0 || lastComma >= 0) {
|
|
49
|
+
const separator = lastDot >= 0 ? '.' : ',';
|
|
50
|
+
const groups = cleaned.split(separator);
|
|
51
|
+
if (groups.length === 2 && groups[1].length !== 3)
|
|
52
|
+
decimalIndex = cleaned.lastIndexOf(separator);
|
|
53
|
+
}
|
|
54
|
+
const { integer, decimals } = capDigits((decimalIndex >= 0 ? cleaned.slice(0, decimalIndex) : cleaned).replace(/[.,]/g, ''), decimalIndex >= 0 ? cleaned.slice(decimalIndex + 1).replace(/[.,]/g, '') : '');
|
|
55
|
+
if (!integer && !decimals)
|
|
56
|
+
return '';
|
|
57
|
+
return decimals ? `${integer || '0'}.${decimals}` : integer;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Deja texto que YA está en el formato del campo (coma = miles, punto = decimal)
|
|
61
|
+
* como número crudo: dígitos y un único punto, con signo sólo si se permite.
|
|
62
|
+
* Un "-" solo se conserva como estado transitorio de tipeo (parseFloat da NaN
|
|
63
|
+
* y el caller no emite).
|
|
64
|
+
*/
|
|
65
|
+
function stripAmountText(text, allowNegative = false) {
|
|
66
|
+
const source = String(text !== null && text !== void 0 ? text : '');
|
|
67
|
+
const negative = allowNegative && /^\s*-/.test(source);
|
|
68
|
+
const cleaned = source.replace(/[^\d.]/g, '');
|
|
69
|
+
const [rawInteger, ...rawDecimals] = cleaned.split('.');
|
|
70
|
+
const { integer, decimals } = capDigits(rawInteger, rawDecimals.join(''));
|
|
71
|
+
const raw = rawDecimals.length ? `${integer}.${decimals}` : integer;
|
|
72
|
+
if (!raw)
|
|
73
|
+
return negative ? '-' : '';
|
|
74
|
+
return negative ? `-${raw}` : raw;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Agrupa la parte ENTERA de un número crudo con comas de miles, sin tocar los
|
|
78
|
+
* decimales ni un punto colgante a medio tipear (`1234.` → `1,234.`).
|
|
79
|
+
*/
|
|
80
|
+
function formatAmountText(raw) {
|
|
81
|
+
if (!raw)
|
|
82
|
+
return '';
|
|
83
|
+
const negative = raw.startsWith('-');
|
|
84
|
+
const body = negative ? raw.slice(1) : raw;
|
|
85
|
+
const dotIndex = body.indexOf('.');
|
|
86
|
+
const integer = dotIndex >= 0 ? body.slice(0, dotIndex) : body;
|
|
87
|
+
const rest = dotIndex >= 0 ? body.slice(dotIndex) : '';
|
|
88
|
+
// Recorrido O(n): el idiom con lookahead (`/\B(?=(\d{3})+(?!\d))/g`) es
|
|
89
|
+
// CUADRÁTICO en la cantidad de dígitos — inofensivo para un número, letal
|
|
90
|
+
// dentro de un handler de input (medido: 12k dígitos ≈ 81ms por tecla en M4).
|
|
91
|
+
let grouped = '';
|
|
92
|
+
for (let i = 0; i < integer.length; i++) {
|
|
93
|
+
if (i > 0 && (integer.length - i) % 3 === 0)
|
|
94
|
+
grouped += ',';
|
|
95
|
+
grouped += integer[i];
|
|
96
|
+
}
|
|
97
|
+
return `${negative ? '-' : ''}${grouped}${rest}`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const coNumberFieldCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}`;
|
|
5
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Todo lo que NO puede formar parte de un número escrito a mano. El input es
|
|
104
|
+
* `type="text"` a propósito (hace falta para pintar el valor formateado y el
|
|
105
|
+
* sufijo), y eso lo deja aceptar letras: sin este filtro, tipear "asd10" deja
|
|
106
|
+
* "asd10" A LA VISTA hasta que el blur repinta el valor canónico.
|
|
107
|
+
* No valida el número final —de eso se encargan `clamp()` y el repintado del
|
|
108
|
+
* blur—, solo impide que el campo muestre algo que no es un número.
|
|
109
|
+
*/
|
|
110
|
+
const NON_NUMERIC = /[^0-9.,-]/g;
|
|
111
|
+
/** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
|
|
112
|
+
const SIGNIFICANT = /[0-9.-]/;
|
|
113
|
+
const countSignificant = (text) => {
|
|
114
|
+
let count = 0;
|
|
115
|
+
for (const char of text)
|
|
116
|
+
if (SIGNIFICANT.test(char))
|
|
117
|
+
count++;
|
|
118
|
+
return count;
|
|
119
|
+
};
|
|
120
|
+
/** Posición del caret justo después de `count` caracteres significativos. */
|
|
121
|
+
const caretAfterSignificant = (text, count) => {
|
|
122
|
+
if (count <= 0)
|
|
123
|
+
return 0;
|
|
124
|
+
let seen = 0;
|
|
125
|
+
for (let i = 0; i < text.length; i++) {
|
|
126
|
+
if (SIGNIFICANT.test(text[i])) {
|
|
127
|
+
seen++;
|
|
128
|
+
if (seen === count)
|
|
129
|
+
return i + 1;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return text.length;
|
|
133
|
+
};
|
|
6
134
|
const CoNumberField = class {
|
|
7
135
|
constructor(hostRef) {
|
|
8
136
|
registerInstance(this, hostRef);
|
|
@@ -20,19 +148,46 @@ const CoNumberField = class {
|
|
|
20
148
|
this.size = 'md';
|
|
21
149
|
/** Show clear button when the field has a value */
|
|
22
150
|
this.clearable = false;
|
|
151
|
+
/**
|
|
152
|
+
* Oculta los botones ± (campo numérico "plano": precio, tasa). Las flechas
|
|
153
|
+
* ↑↓ siguen escalonando. Reflejado para que el CSS del host lo lea.
|
|
154
|
+
*/
|
|
155
|
+
this.hideControls = false;
|
|
23
156
|
this.focused = false;
|
|
157
|
+
// Stepping/clear son mutaciones PROGRAMÁTICAS: con el campo enfocado ni el
|
|
158
|
+
// @Watch (guard `focused`) ni el vdom (que copia el texto vivo) repintan, así
|
|
159
|
+
// que cada path escribe el input él mismo — si no, ArrowUp emite y persiste
|
|
160
|
+
// valores que el usuario no ve hasta el blur.
|
|
24
161
|
this.handleDecrement = () => {
|
|
25
162
|
if (!this.canDecrement)
|
|
26
163
|
return;
|
|
27
164
|
this.emitValue(this.current - this.step);
|
|
165
|
+
this.syncInputText();
|
|
28
166
|
};
|
|
29
167
|
this.handleIncrement = () => {
|
|
30
168
|
if (!this.canIncrement)
|
|
31
169
|
return;
|
|
32
170
|
this.emitValue(this.current + this.step);
|
|
171
|
+
this.syncInputText();
|
|
33
172
|
};
|
|
34
173
|
this.handleInput = (e) => {
|
|
35
|
-
|
|
174
|
+
var _a;
|
|
175
|
+
const input = e.target;
|
|
176
|
+
if (this.isAmount) {
|
|
177
|
+
this.handleAmountInput(input);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
let raw = input.value;
|
|
181
|
+
// Descarta los caracteres imposibles al tipearlos y al pegar, conservando
|
|
182
|
+
// la posición del cursor (reescribir `value` la mandaría al final).
|
|
183
|
+
const cleaned = raw.replace(NON_NUMERIC, '');
|
|
184
|
+
if (cleaned !== raw) {
|
|
185
|
+
const caret = ((_a = input.selectionStart) !== null && _a !== void 0 ? _a : raw.length) - (raw.length - cleaned.length);
|
|
186
|
+
input.value = cleaned;
|
|
187
|
+
const next = caret < 0 ? 0 : caret;
|
|
188
|
+
input.setSelectionRange(next, next);
|
|
189
|
+
raw = cleaned;
|
|
190
|
+
}
|
|
36
191
|
if (raw === '') {
|
|
37
192
|
// Deleting all content clears the field (parity with the clear button),
|
|
38
193
|
// but only when clearing is enabled — otherwise keep prior behavior.
|
|
@@ -49,9 +204,50 @@ const CoNumberField = class {
|
|
|
49
204
|
this.emitValue(this.fromDisplay(num));
|
|
50
205
|
}
|
|
51
206
|
};
|
|
207
|
+
/**
|
|
208
|
+
* Pegar en modo amount: el texto llega con el formato de DONDE se copió
|
|
209
|
+
* (es-CO `1.234,56`, en-US `1,234.56`, la app `$ 34,640.00`), así que se
|
|
210
|
+
* interpreta con la heurística de separadores ANTES de empalmarlo con lo que
|
|
211
|
+
* ya había en el campo. Sin el preventDefault, el navegador escribiría el
|
|
212
|
+
* texto crudo y `parseFloat` cortaría en la primera coma (commit silencioso
|
|
213
|
+
* de 1 al pegar "1,234.56").
|
|
214
|
+
*/
|
|
215
|
+
this.handlePaste = (e) => {
|
|
216
|
+
var _a, _b, _c, _d;
|
|
217
|
+
if (!this.isAmount)
|
|
218
|
+
return;
|
|
219
|
+
e.preventDefault();
|
|
220
|
+
const input = e.target;
|
|
221
|
+
const text = (_b = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '';
|
|
222
|
+
let parsed = parseNumericText(text);
|
|
223
|
+
if (parsed && this.allowNegative && /^\s*-/.test(text))
|
|
224
|
+
parsed = `-${parsed}`;
|
|
225
|
+
const start = (_c = input.selectionStart) !== null && _c !== void 0 ? _c : input.value.length;
|
|
226
|
+
const end = (_d = input.selectionEnd) !== null && _d !== void 0 ? _d : start;
|
|
227
|
+
const before = stripAmountText(input.value.slice(0, start), this.allowNegative);
|
|
228
|
+
const after = stripAmountText(input.value.slice(end));
|
|
229
|
+
const spliced = stripAmountText(before + parsed + after, this.allowNegative);
|
|
230
|
+
const formatted = formatAmountText(spliced);
|
|
231
|
+
input.value = formatted;
|
|
232
|
+
const caret = caretAfterSignificant(formatted, countSignificant(before + parsed));
|
|
233
|
+
input.setSelectionRange(caret, caret);
|
|
234
|
+
if (spliced === '' || spliced === '-') {
|
|
235
|
+
if (spliced === '' && this.clearable) {
|
|
236
|
+
this.value = null;
|
|
237
|
+
this.coChange.emit(null);
|
|
238
|
+
}
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const num = parseFloat(spliced);
|
|
242
|
+
if (!isNaN(num))
|
|
243
|
+
this.emitValue(num);
|
|
244
|
+
};
|
|
52
245
|
this.handleClear = () => {
|
|
53
246
|
var _a;
|
|
54
247
|
this.value = null;
|
|
248
|
+
// En Safari el click NO roba el foco al botón → `focused` sigue true y sin
|
|
249
|
+
// esto el texto viejo quedaba pintado con el valor ya emitido en null.
|
|
250
|
+
this.syncInputText();
|
|
55
251
|
this.coClear.emit();
|
|
56
252
|
this.coChange.emit(null);
|
|
57
253
|
(_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
@@ -61,6 +257,10 @@ const CoNumberField = class {
|
|
|
61
257
|
// Re-clamp on blur, but keep an empty field empty.
|
|
62
258
|
if (!this.isEmpty)
|
|
63
259
|
this.emitValue(this.value);
|
|
260
|
+
// Repinta el texto canónico: si el clamp devolvió el MISMO valor que ya
|
|
261
|
+
// tenía el prop (tipear "-20" sobre 0 con min 0), el @Watch no dispara y el
|
|
262
|
+
// input se quedaba con lo tipeado.
|
|
263
|
+
this.syncInputText();
|
|
64
264
|
};
|
|
65
265
|
this.handleFocus = () => {
|
|
66
266
|
this.focused = true;
|
|
@@ -87,9 +287,8 @@ const CoNumberField = class {
|
|
|
87
287
|
onValueChange() {
|
|
88
288
|
if (!this.inputEl || this.focused)
|
|
89
289
|
return;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.inputEl.value = next;
|
|
290
|
+
if (this.inputEl.value !== this.displayValue)
|
|
291
|
+
this.inputEl.value = this.displayValue;
|
|
93
292
|
}
|
|
94
293
|
/** True when there is no numeric value (cleared / empty). */
|
|
95
294
|
get isEmpty() {
|
|
@@ -131,6 +330,21 @@ const CoNumberField = class {
|
|
|
131
330
|
get scaled() {
|
|
132
331
|
return this.format === 'rate' || this.format === 'percent';
|
|
133
332
|
}
|
|
333
|
+
/** Whether the live money mask (thousands separators, paste parsing) is on. */
|
|
334
|
+
get isAmount() {
|
|
335
|
+
return this.format === 'amount';
|
|
336
|
+
}
|
|
337
|
+
/** El signo entra sólo cuando el rango lo admite (sin `min`, o `min` < 0). */
|
|
338
|
+
get allowNegative() {
|
|
339
|
+
return this.min === undefined || this.min < 0;
|
|
340
|
+
}
|
|
341
|
+
/** Texto canónico del input para el valor actual (formateado en amount). */
|
|
342
|
+
get displayValue() {
|
|
343
|
+
if (this.isEmpty)
|
|
344
|
+
return '';
|
|
345
|
+
const plain = String(this.toDisplay(this.value));
|
|
346
|
+
return this.isAmount ? formatAmountText(plain) : plain;
|
|
347
|
+
}
|
|
134
348
|
/** Stored decimal → shown number (0.15 → 15). toFixed avoids FP artifacts. */
|
|
135
349
|
toDisplay(v) {
|
|
136
350
|
return this.scaled ? Number((v * 100).toFixed(6)) : v;
|
|
@@ -144,14 +358,63 @@ const CoNumberField = class {
|
|
|
144
358
|
this.value = clamped;
|
|
145
359
|
this.coChange.emit(clamped);
|
|
146
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* Modo amount: en cada input se rearma el display desde los dígitos (miles
|
|
363
|
+
* con coma, coma tipeada descartada, sólo un punto) y el caret se restituye
|
|
364
|
+
* contando caracteres significativos — reescribir `value` lo mandaría al
|
|
365
|
+
* final. El punto colgante ("1,234.") sobrevive porque se reformatea el
|
|
366
|
+
* TEXTO, no el número parseado.
|
|
367
|
+
*/
|
|
368
|
+
handleAmountInput(input) {
|
|
369
|
+
var _a;
|
|
370
|
+
const raw = input.value;
|
|
371
|
+
const caret = (_a = input.selectionStart) !== null && _a !== void 0 ? _a : raw.length;
|
|
372
|
+
const significantBefore = countSignificant(raw.slice(0, caret));
|
|
373
|
+
const cleaned = stripAmountText(raw, this.allowNegative);
|
|
374
|
+
const formatted = formatAmountText(cleaned);
|
|
375
|
+
if (input.value !== formatted) {
|
|
376
|
+
input.value = formatted;
|
|
377
|
+
const next = caretAfterSignificant(formatted, significantBefore);
|
|
378
|
+
input.setSelectionRange(next, next);
|
|
379
|
+
}
|
|
380
|
+
if (cleaned === '') {
|
|
381
|
+
if (this.clearable) {
|
|
382
|
+
this.value = null;
|
|
383
|
+
this.coChange.emit(null);
|
|
384
|
+
}
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (cleaned === '-')
|
|
388
|
+
return;
|
|
389
|
+
const num = parseFloat(cleaned);
|
|
390
|
+
if (!isNaN(num))
|
|
391
|
+
this.emitValue(num);
|
|
392
|
+
}
|
|
393
|
+
syncInputText() {
|
|
394
|
+
if (!this.inputEl)
|
|
395
|
+
return;
|
|
396
|
+
if (this.inputEl.value !== this.displayValue)
|
|
397
|
+
this.inputEl.value = this.displayValue;
|
|
398
|
+
}
|
|
399
|
+
/** Texto del afijo: `suffix` explícito manda; si no, el "%" de los formatos escalados. */
|
|
400
|
+
get affixText() {
|
|
401
|
+
if (this.suffix !== undefined)
|
|
402
|
+
return this.suffix || null;
|
|
403
|
+
return this.scaled && !this.isEmpty ? '%' : null;
|
|
404
|
+
}
|
|
147
405
|
render() {
|
|
148
|
-
return (h("div", { key: '
|
|
406
|
+
return (h("div", { key: 'd1b4cf4bbb6f9a01db718079c1e4686653d6cb69', class: {
|
|
149
407
|
'co-number-field': true,
|
|
150
408
|
'co-number-field--disabled': this.disabled,
|
|
151
409
|
'co-number-field--focused': this.focused,
|
|
152
410
|
[`co-number-field--${this.size}`]: true,
|
|
153
411
|
[`co-number-field--${this.status}`]: this.status !== 'default',
|
|
154
|
-
} }, (this.label || this.secondaryLabel) && (h("div", { key: '
|
|
412
|
+
} }, (this.label || this.secondaryLabel) && (h("div", { key: '972f6a811230bc8e919bb13d82b00b697ef849d3', class: "co-number-field__labels" }, this.label && h("label", { key: 'cca4de1e86a0066464b6dc71289ee174cc29e229', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: '80a8266109c1cede57e32c706fb4c0e47eb33249', required: this.required })), this.secondaryLabel && h("span", { key: '082db322206fedfbcd2f9a6c0fd4c439a0a96fd6', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: '88fba5f119dab3a4feb2ad2380cd5023d760e7e9', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: '28a2033ed8997597615edf6c6b591d4da205c888', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '4a562d696da337feeb4bb60b018b4a23024163ad', name: "minus", size: 16 }))), h("input", { key: 'f05ebf923249188da23edb73e6688ccd8ecf8233', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
|
|
413
|
+
// Mismo guard `focused` que el @Watch: mientras el usuario edita, su
|
|
414
|
+
// texto manda. Sin esto, el re-render que dispara emitValue repinta
|
|
415
|
+
// el input desde el NÚMERO y se come el texto en construcción
|
|
416
|
+
// ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
|
|
417
|
+
value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: 'b10fe23b0e16df1a9abc121923175aef3568d987', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: 'c963c856ea592a259e506ce9cc37948b105e28d3', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'd88127405a552237b103f794f449be98840254d5', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: '0809f93bae05abd88549ffc707d3c4e9126f6d96', name: "suffix" }), !this.hideControls && (h("button", { key: 'd10d3900942acb5016448a8b509173a15ca86d43', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: 'f346237b4df54f3182b1702b953a17e07cb0a1ca', name: "plus", size: 16 })))), this.helperText && (h("div", { key: 'b9771e896812e73ba940d49419ec2eee3ba28ba3', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '08fa68bb3f9ad4efab6722d59c5df480a0454f02', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: 'f8dd3318d47684c9c5ff0d761155174fa14d98aa', class: "co-number-field__helper-text" }, this.helperText)))));
|
|
155
418
|
}
|
|
156
419
|
get el() { return getElement(this); }
|
|
157
420
|
static get watchers() { return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DH5lfRNj.js';
|
|
2
2
|
import { a as afterEventFor } from './overlayAfterClose-Ch1jfwZ2.js';
|
|
3
3
|
|
|
4
4
|
// focusTrap.ts
|
|
@@ -166,8 +166,10 @@ const CoOverlay = class {
|
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
168
|
* Promote the scrim to the browser top layer so it covers the whole viewport
|
|
169
|
-
* regardless of ancestor `
|
|
170
|
-
*
|
|
169
|
+
* regardless of ancestor containing blocks — `contain: layout` on the
|
|
170
|
+
* app-shell `.main` / `.co-drawer` / `.co-modal__frame` (which replaced the
|
|
171
|
+
* old ancestor `filter`/`mask`), or any `transform` — that would otherwise
|
|
172
|
+
* make `position: fixed` resolve against that ancestor, confining the scrim.
|
|
171
173
|
* The Popover API promotes WITHOUT moving the DOM node, so slots and Stencil
|
|
172
174
|
* reconciliation are untouched. No-ops gracefully where unsupported.
|
|
173
175
|
*/
|
|
@@ -247,7 +249,7 @@ const CoOverlay = class {
|
|
|
247
249
|
focusables[nextIndex].focus();
|
|
248
250
|
}
|
|
249
251
|
render() {
|
|
250
|
-
return (h("div", { key: '
|
|
252
|
+
return (h("div", { key: '1664f81264046991c4d66285489001c4783138ec', class: { 'co-overlay': true, 'co-overlay--open': this.open }, part: "overlay", popover: "manual", tabindex: this.trapFocus ? -1 : undefined, ref: (el) => (this.overlayEl = el), onClick: this.handleClick, onTransitionEnd: this.handleTransitionEnd }, h("slot", { key: 'fc220441149e20eb8b2ca1dcb7131d77e25dcdb3' })));
|
|
251
253
|
}
|
|
252
254
|
get el() { return getElement(this); }
|
|
253
255
|
static get watchers() { return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-DH5lfRNj.js';
|
|
2
2
|
|
|
3
3
|
const coPageHeaderCss = () => `:host{display:block}.co-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--co-spacing-lg) var(--co-spacing-xl);font-family:var(--co-font-family-primary);border-bottom:1px solid var(--co-semantic-border-subtle);background:var(--co-semantic-surface-page);min-height:72px;box-sizing:border-box}.co-page-header__left{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__icon{display:flex;color:var(--co-semantic-text-muted)}.co-page-header__title{font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default)}.co-page-header__actions{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__actions:empty{display:none}`;
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@ const CoPageHeader = class {
|
|
|
7
7
|
registerInstance(this, hostRef);
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
|
-
return (h("div", { key: '
|
|
10
|
+
return (h("div", { key: '305f42c88d10f238351f362b72283abe82eaeb20', class: "co-page-header", part: "page-header" }, h("div", { key: '10185fe127049bfece585c59f92824888113861e', class: "co-page-header__left" }, this.icon && (h("span", { key: '017bc4f2aed8d05999c581ce0d7a4797aa84eff6', class: "co-page-header__icon" }, h("co-icon", { key: '7d5863437875aa09ad3bbe9e12c0b5d5c9f5c0c7', name: this.icon, size: 24 }))), h("span", { key: 'e62ead8cb061045d8995689dce3009e9843e3997', class: "co-page-header__title" }, h("slot", { key: '9e1d01a94942daeeb1c56f1d0f05534b45125422' }, this.heading))), h("div", { key: '5a2dd08e5b11ab33e64ddb581196d8535deb0925', class: "co-page-header__actions" }, h("slot", { key: '7fd3a5ea06593c9208a59ba2812bb827f1d39815', name: "actions" }))));
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
CoPageHeader.style = coPageHeaderCss();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-
|
|
2
|
-
import { R as RequiredMark } from './requiredMark-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DH5lfRNj.js';
|
|
2
|
+
import { R as RequiredMark } from './requiredMark-BCJUuZvC.js';
|
|
3
3
|
import { r as rankByMatch, h as highlightMatch } from './normalizeText-CQY6Ul7q.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -359,7 +359,7 @@ const CoPhoneField = class {
|
|
|
359
359
|
render() {
|
|
360
360
|
const entry = this.selectedEntry;
|
|
361
361
|
const statusClass = this.status !== 'default' ? `co-phone-field--${this.status}` : '';
|
|
362
|
-
return (h("div", { key: '
|
|
362
|
+
return (h("div", { key: '44113c6d2a4845b96b185bc1a291335ad099491b', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (h("label", { key: 'aee2eced519f996ebf8941210e5151ebe32429d3', class: "co-phone-field__label" }, this.label, h(RequiredMark, { key: '85b8d50b8062d0041b0f416beb7a140d29d06b1f', required: this.required }))), h("div", { key: '381313d069536477ded093cd236ff740dc534ae4', class: "co-phone-field__container" }, h("button", { key: '4aa81cd26e4824c45b9fd0530a4ff1016acbc877', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox" }, entry ? (h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: entry.iso2 })) : (h("co-icon", { name: "phone", size: 16 })), h("span", { key: 'd8ba9bbaae902853d97c37892ea2094a3a05c2ed', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), h("span", { key: '065c2daf2b277fd870204c989b3eb359aa68dec4', class: "co-phone-field__chevron" }, h("co-icon", { key: '53761d275d9f98010c197e7d8b8f5b20abf753fd', name: "caret-down", size: 14 }))), h("input", { key: '8340a483e8deaf24fd7b03d2239195064d392eb4', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (h("div", { key: '6e736fb24707feb8faf373a403b192670698a043', class: "co-phone-field__dropdown", role: "listbox" }, h("div", { key: 'f0750d83d3da8cebc3c1b39d21a35b31bc17bd4a', class: "co-phone-field__search" }, h("input", { key: '546c432e6e11010e2d685780e2f5eddfbf3ad73d', class: "co-phone-field__search-input", type: "text", placeholder: "Search country...", value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), h("div", { key: '5960b2979fbedf66ea197ff7f37093b6240242bc', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: d.iso2 }), h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (h("div", { key: 'fa9e15ba4f08abf2caff8b1b196ce25ce2e89bb9', class: "co-phone-field__helper" }, this.statusIcon && (h("co-icon", { key: '122a32febae2d6f86e32d8b3d1f2ec2df9e573c7', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), h("span", { key: '6117ecd58a0c2ddefca94237f7c5d815fd5c3c79', class: "co-phone-field__helper-text" }, this.helperText)))));
|
|
363
363
|
}
|
|
364
364
|
get host() { return getElement(this); }
|
|
365
365
|
static get watchers() { return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-
|
|
2
|
-
import { c as computePosition, g as getOffsetAncestor, f as
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DH5lfRNj.js';
|
|
2
|
+
import { c as computePosition, g as getOffsetAncestor, f as findScrollParents } from './positioning-DFHRS9cJ.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Pila global de popovers abiertos (orden de apertura). Permite que el
|
|
@@ -26,7 +26,7 @@ function isTopLayer(el) {
|
|
|
26
26
|
return stack.length > 0 && stack[stack.length - 1] === el;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const coPopoverCss = () => `:host{display:inline-block;position:relative}:host([match-width]){display:block;width:100%}.co-popover{display:block;width:100%}.co-popover__trigger{display:block;width:100%;cursor:pointer}.co-popover__panel{position:fixed;inset:auto;top:0;left:0;margin:0;padding:0;width:auto;height:auto;max-width:none;max-height:none;z-index:10000;visibility:hidden;opacity:0;transform:scale(0.
|
|
29
|
+
const coPopoverCss = () => `:host{display:inline-block;position:relative}:host([match-width]){display:block;width:100%}.co-popover{display:block;width:100%}.co-popover__trigger{display:block;width:100%;cursor:pointer}.co-popover__panel{position:fixed;inset:auto;top:0;left:0;margin:0;padding:0;width:auto;height:auto;max-width:none;max-height:none;z-index:10000;visibility:hidden;opacity:0;transform:scale(0.97);background:var(--co-semantic-surface-page, #fff);border:1px solid var(--co-semantic-border-subtle);border-radius:var(--co-border-radius-sm, 12px);box-shadow:0 4px 16px rgba(31, 28, 27, 0.08);overflow:visible}.co-popover__panel--positioned{visibility:visible;opacity:1;transform:scale(1);transition:opacity var(--co-motion-duration-base) var(--co-motion-ease-out), transform var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-popover__panel--closing{visibility:visible;opacity:0;transform:scale(0.99);pointer-events:none;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-in), transform var(--co-motion-duration-fast) var(--co-motion-ease-in)}.co-popover__panel--bottom{transform-origin:top center}.co-popover__panel--top{transform-origin:bottom center}.co-popover__panel--right{transform-origin:center left}.co-popover__panel--left{transform-origin:center right}`;
|
|
30
30
|
|
|
31
31
|
/** Side classes driving the entrance `transform-origin` (see co-popover.css). */
|
|
32
32
|
const SIDE_CLASSES = ['top', 'bottom', 'left', 'right'].map((s) => `co-popover__panel--${s}`);
|
|
@@ -35,6 +35,7 @@ const CoPopover = class {
|
|
|
35
35
|
registerInstance(this, hostRef);
|
|
36
36
|
this.coOpen = createEvent(this, "coOpen", 3);
|
|
37
37
|
this.coClose = createEvent(this, "coClose", 3);
|
|
38
|
+
this.coPlacement = createEvent(this, "coPlacement", 3);
|
|
38
39
|
// ── Props ──────────────────────────────────────────────────
|
|
39
40
|
/** Whether the popover panel is visible. */
|
|
40
41
|
this.open = false;
|
|
@@ -57,6 +58,8 @@ const CoPopover = class {
|
|
|
57
58
|
this.closeOnEscape = true;
|
|
58
59
|
/** Flip placement when the panel would overflow the viewport. */
|
|
59
60
|
this.flip = true;
|
|
61
|
+
/** Fase de salida: mantiene el panel montado mientras corre la transición de cierre. */
|
|
62
|
+
this.closing = false;
|
|
60
63
|
this.scrollParents = [];
|
|
61
64
|
// Cached offset ancestor + a flag to distinguish "not computed yet" from
|
|
62
65
|
// "computed and there is none". Avoids re-walking the DOM + calling
|
|
@@ -68,6 +71,20 @@ const CoPopover = class {
|
|
|
68
71
|
// had every popover instance (open or not) running capture-phase document
|
|
69
72
|
// click handlers, growing O(N) with popover count in the page.
|
|
70
73
|
this.docListenersBound = false;
|
|
74
|
+
this.finishClose = () => {
|
|
75
|
+
clearTimeout(this.closeFallbackTimer);
|
|
76
|
+
if (this.open)
|
|
77
|
+
return; // reabierto durante el cierre
|
|
78
|
+
this.closing = false;
|
|
79
|
+
this.panelEl = undefined;
|
|
80
|
+
};
|
|
81
|
+
this.handlePanelTransitionEnd = (e) => {
|
|
82
|
+
if (this.open || !this.closing)
|
|
83
|
+
return;
|
|
84
|
+
if (e.target !== this.panelEl || e.propertyName !== 'transform')
|
|
85
|
+
return;
|
|
86
|
+
this.finishClose();
|
|
87
|
+
};
|
|
71
88
|
// ── Click outside (manual, capture phase) ──────────────────
|
|
72
89
|
// Attached/detached in connectedCallback/disconnectedCallback. Using capture
|
|
73
90
|
// phase so we run before any inner-element listeners that might stop
|
|
@@ -107,8 +124,8 @@ const CoPopover = class {
|
|
|
107
124
|
return;
|
|
108
125
|
const triggerRect = this.triggerEl.getBoundingClientRect();
|
|
109
126
|
// ⚠️ El panel arrastra el `transform: scale()` de la entrada, y
|
|
110
|
-
// getBoundingClientRect() devuelve la caja TRANSFORMADA: 0.
|
|
111
|
-
// ~0.
|
|
127
|
+
// getBoundingClientRect() devuelve la caja TRANSFORMADA: 0.97× al montar y
|
|
128
|
+
// ~0.972× en la segunda pasada del watcher (~16ms de los `base` 250ms). Medir con
|
|
112
129
|
// ella metía el factor de escala DENTRO de la matemática de posicionamiento,
|
|
113
130
|
// y ~2% del error quedaba en la posición de reposo: las alineaciones que
|
|
114
131
|
// restan el tamaño del panel (`bottom-end` — el default de co-menu —, `top*`,
|
|
@@ -163,6 +180,7 @@ const CoPopover = class {
|
|
|
163
180
|
if (!this.panelEl.classList.contains(sideClass)) {
|
|
164
181
|
this.panelEl.classList.remove(...SIDE_CLASSES);
|
|
165
182
|
this.panelEl.classList.add(sideClass);
|
|
183
|
+
this.coPlacement.emit({ placement: actualPlacement });
|
|
166
184
|
}
|
|
167
185
|
this.panelEl.classList.add('co-popover__panel--positioned');
|
|
168
186
|
}
|
|
@@ -196,10 +214,18 @@ const CoPopover = class {
|
|
|
196
214
|
removeLayer(this.el);
|
|
197
215
|
this.unbindDocListeners();
|
|
198
216
|
this.cleanupListeners();
|
|
217
|
+
clearTimeout(this.closeFallbackTimer);
|
|
218
|
+
// Desconectado a mitad del exit (p.ej. host removido por un v-if del
|
|
219
|
+
// padre mientras corre la transición de cierre): si se reconecta luego
|
|
220
|
+
// (:key remount, teleport) sin pasar por finishClose, `closing` quedaría
|
|
221
|
+
// stale en true y el panel nacería en fase de salida.
|
|
222
|
+
this.closing = false;
|
|
199
223
|
}
|
|
200
224
|
// ── Watchers ───────────────────────────────────────────────
|
|
201
225
|
onOpenChange(isOpen) {
|
|
202
226
|
if (isOpen) {
|
|
227
|
+
this.closing = false;
|
|
228
|
+
clearTimeout(this.closeFallbackTimer);
|
|
203
229
|
pushLayer(this.el);
|
|
204
230
|
this.coOpen.emit();
|
|
205
231
|
this.bindDocListeners();
|
|
@@ -220,10 +246,16 @@ const CoPopover = class {
|
|
|
220
246
|
this.unbindDocListeners();
|
|
221
247
|
this.cachedOffsetAncestor = null;
|
|
222
248
|
this.offsetAncestorComputed = false;
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
|
|
249
|
+
// Panel keeps its ref/position frozen through the exit animation — the
|
|
250
|
+
// ref is dropped only when `finishClose` actually unmounts the node
|
|
251
|
+
// (transitionend, or the fallback timer). `panelEl` is intentionally
|
|
252
|
+
// NOT cleared here.
|
|
253
|
+
this.closing = true;
|
|
254
|
+
// Fallback por si transitionend no dispara (tab oculta, display:none ancestro).
|
|
255
|
+
// ⚠️ Atado al token: debe superar --co-motion-duration-fast (150ms) con margen —
|
|
256
|
+
// si el retune sube `fast` por encima de ~350ms, revisar esta constante.
|
|
257
|
+
clearTimeout(this.closeFallbackTimer);
|
|
258
|
+
this.closeFallbackTimer = setTimeout(() => this.finishClose(), 400);
|
|
227
259
|
}
|
|
228
260
|
}
|
|
229
261
|
bindDocListeners() {
|
|
@@ -272,19 +304,24 @@ const CoPopover = class {
|
|
|
272
304
|
}
|
|
273
305
|
}
|
|
274
306
|
// ── Scroll/resize listeners ────────────────────────────────
|
|
275
|
-
// Listen to window resize/scroll
|
|
276
|
-
//
|
|
277
|
-
//
|
|
278
|
-
//
|
|
279
|
-
//
|
|
307
|
+
// Listen to window resize/scroll and to every ancestor that ACTUALLY scrolls
|
|
308
|
+
// (co-drawer/co-modal body, datatable body…).
|
|
309
|
+
//
|
|
310
|
+
// El listener de window NO alcanza por sí solo: los eventos `scroll` no son
|
|
311
|
+
// `composed`, así que el de un scroller que vive dentro de un shadow root
|
|
312
|
+
// —el caso de `.co-drawer__body`— nunca cruza el límite y el capture de
|
|
313
|
+
// window no lo ve. Por eso hay que engancharse al scroller mismo.
|
|
314
|
+
//
|
|
315
|
+
// Se recorre la cadena entera y no solo el ancestro más cercano porque los
|
|
316
|
+
// scrollers se anidan; `findScrollParents` ya filtra por `overflow` real, así
|
|
317
|
+
// que la lista queda en 1-2 elementos y no en los 5-10 que motivaron acotar
|
|
318
|
+
// esto a uno solo en su momento.
|
|
280
319
|
addScrollListeners() {
|
|
281
320
|
window.addEventListener('resize', this.scheduleUpdate, { passive: true });
|
|
282
321
|
window.addEventListener('scroll', this.scheduleUpdate, { passive: true, capture: true });
|
|
283
|
-
this.scrollParents =
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
scrollAncestor.addEventListener('scroll', this.scheduleUpdate, { passive: true });
|
|
287
|
-
this.scrollParents.push(scrollAncestor);
|
|
322
|
+
this.scrollParents = findScrollParents(this.el);
|
|
323
|
+
for (const parent of this.scrollParents) {
|
|
324
|
+
parent.addEventListener('scroll', this.scheduleUpdate, { passive: true });
|
|
288
325
|
}
|
|
289
326
|
}
|
|
290
327
|
cleanupListeners() {
|
|
@@ -301,13 +338,13 @@ const CoPopover = class {
|
|
|
301
338
|
}
|
|
302
339
|
// ── Render ─────────────────────────────────────────────────
|
|
303
340
|
render() {
|
|
304
|
-
return (h("div", { key: '
|
|
341
|
+
return (h("div", { key: 'f8460e212fabe8828f1e33f08304d7e680a7cab0', class: "co-popover" }, h("div", { key: 'c9caad8ae7f16c82173e4b30ad5cc053dc73b6da', class: "co-popover__trigger", ref: (el) => (this.triggerEl = el), onClick: this.handleTriggerClick }, h("slot", { key: 'afa0443ba85607cf24f517e8c7fe0cee689df024', name: "trigger" })), (this.open || this.closing) && (h("div", { key: 'd2a081f8923f53ac456edd6e5eb7422dc5ab7daa', class: { 'co-popover__panel': true, 'co-popover__panel--closing': this.closing }, popover: "manual", onTransitionEnd: this.handlePanelTransitionEnd, ref: (el) => {
|
|
305
342
|
if (el && el !== this.panelEl) {
|
|
306
343
|
this.panelEl = el;
|
|
307
344
|
this.promotePanel();
|
|
308
345
|
this.scheduleUpdate();
|
|
309
346
|
}
|
|
310
|
-
} }, h("slot", { key: '
|
|
347
|
+
} }, h("slot", { key: '8466f617bd6b8a497e2040d3275b384156de126c' })))));
|
|
311
348
|
}
|
|
312
349
|
get el() { return getElement(this); }
|
|
313
350
|
static get watchers() { return {
|