@prolibu-suite/cobalt-core 0.10.0 → 0.10.2
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 +481 -35
- package/dist/cjs/co-accordion.cjs.entry.js +33 -4
- package/dist/cjs/co-action-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-audio-player.cjs.entry.js +82 -12
- package/dist/cjs/co-avatar.cjs.entry.js +72 -0
- package/dist/cjs/co-button.cjs.entry.js +1 -1
- package/dist/cjs/co-calendar_3.cjs.entry.js +7 -3
- package/dist/cjs/co-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/co-chip_2.cjs.entry.js +68 -14
- package/dist/cjs/co-color-picker.cjs.entry.js +40 -10
- package/dist/cjs/co-column-picker.cjs.entry.js +1 -1
- package/dist/cjs/co-combobox.cjs.entry.js +1 -1
- package/dist/cjs/co-command-search.cjs.entry.js +1 -1
- package/dist/cjs/co-data-table.cjs.entry.js +82 -4
- package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -1
- package/dist/cjs/co-emoji-picker.cjs.entry.js +1 -1
- package/dist/cjs/co-file-type-tile.cjs.entry.js +23 -7
- package/dist/cjs/co-input.cjs.entry.js +6 -2
- package/dist/cjs/co-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/co-modal.cjs.entry.js +7 -3
- package/dist/cjs/co-navbar.cjs.entry.js +2 -2
- package/dist/cjs/co-number-field.cjs.entry.js +3 -3
- package/dist/cjs/co-overlay.cjs.entry.js +1 -1
- package/dist/cjs/co-page-header.cjs.entry.js +1 -1
- package/dist/cjs/co-phone-field.cjs.entry.js +5 -5
- package/dist/cjs/co-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/co-progress-circle.cjs.entry.js +2 -2
- package/dist/cjs/co-provider-logo_2.cjs.entry.js +1 -1
- package/dist/cjs/co-radio.cjs.entry.js +3 -3
- package/dist/cjs/co-rating.cjs.entry.js +3 -3
- package/dist/cjs/co-ref-field.cjs.entry.js +100 -9
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +30 -10
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +5 -2
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +19 -3
- package/dist/cjs/co-row.cjs.entry.js +2 -2
- package/dist/cjs/co-select.cjs.entry.js +8 -8
- package/dist/cjs/co-separator.cjs.entry.js +1 -1
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +1 -1
- package/dist/cjs/co-sidebar.cjs.entry.js +2 -2
- package/dist/cjs/co-slider.cjs.entry.js +2 -2
- package/dist/cjs/co-switch.cjs.entry.js +3 -3
- package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/co-tab.cjs.entry.js +2 -2
- package/dist/cjs/co-tags-field.cjs.entry.js +5 -5
- package/dist/cjs/co-textarea.cjs.entry.js +4 -4
- package/dist/cjs/co-time-field.cjs.entry.js +1 -1
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +3 -3
- package/dist/cjs/co-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/{co-avatar_2.cjs.entry.js → co-tooltip.cjs.entry.js} +2 -70
- package/dist/cjs/co-video.cjs.entry.js +2 -2
- package/dist/cjs/cobalt.cjs.js +1 -1
- package/dist/cjs/{index-BYwrR87Z.js → index-2kMmd5-a.js} +6717 -6654
- package/dist/cjs/index-MDAnKsze.js +16 -12
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{normalizeText-B-v-XPKf.js → normalizeText-D9rlJWZa.js} +29 -18
- package/dist/cjs/{toolbar-config-BSGas-Wl.js → toolbar-config-CYACt9hh.js} +13 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/{p-82266f11.entry.js → p-000a15b8.entry.js} +1 -1
- package/dist/cobalt/{p-e01f9b9a.entry.js → p-0c004735.entry.js} +1 -1
- package/dist/cobalt/{p-16954cea.entry.js → p-11c5ce78.entry.js} +1 -1
- package/dist/cobalt/{p-c465d619.entry.js → p-1861fe41.entry.js} +1 -1
- package/dist/cobalt/p-1cc818ca.entry.js +1 -0
- package/dist/cobalt/p-216a63ee.entry.js +1 -0
- package/dist/cobalt/p-24196410.entry.js +1 -0
- package/dist/cobalt/{p-4d897896.entry.js → p-28764b8e.entry.js} +1 -1
- package/dist/cobalt/{p-1a589c8e.entry.js → p-292b0389.entry.js} +1 -1
- package/dist/cobalt/{p-73c6d735.entry.js → p-2a30c143.entry.js} +1 -1
- package/dist/cobalt/{p-e8a4e6b0.entry.js → p-2c9dba2f.entry.js} +1 -1
- package/dist/cobalt/{p-83ea631d.entry.js → p-39a50e7f.entry.js} +1 -1
- package/dist/cobalt/p-39dc4ec8.entry.js +1 -0
- package/dist/cobalt/{p-325b91b6.entry.js → p-3d31c575.entry.js} +1 -1
- package/dist/cobalt/p-416795f5.entry.js +1 -0
- package/dist/cobalt/{p-37f5036b.entry.js → p-49834b8e.entry.js} +1 -1
- package/dist/cobalt/{p-54c987d7.entry.js → p-5a3e4c81.entry.js} +1 -1
- package/dist/cobalt/p-5c756787.entry.js +1 -0
- package/dist/cobalt/{p-27a7e549.entry.js → p-67f3b9d6.entry.js} +1 -1
- package/dist/cobalt/{p-bd683db3.entry.js → p-6a4f3179.entry.js} +1 -1
- package/dist/cobalt/{p-b565104d.entry.js → p-6dd220e0.entry.js} +1 -1
- package/dist/cobalt/{p-eb063cc0.entry.js → p-71cbc53c.entry.js} +1 -1
- package/dist/cobalt/p-72e52af7.entry.js +1 -0
- package/dist/cobalt/{p-50bcc76f.entry.js → p-7b5c555c.entry.js} +1 -1
- package/dist/cobalt/{p-10b82207.entry.js → p-8471abe2.entry.js} +1 -1
- package/dist/cobalt/{p-fe7e8813.entry.js → p-8530ad16.entry.js} +1 -1
- package/dist/cobalt/p-8a74bf7d.entry.js +1 -0
- package/dist/cobalt/{p-ea20f048.entry.js → p-8ebc0c12.entry.js} +1 -1
- package/dist/cobalt/p-8f2199ff.entry.js +1 -0
- package/dist/cobalt/p-9246e09c.entry.js +1 -0
- package/dist/cobalt/p-99a655f6.entry.js +1 -0
- package/dist/cobalt/{p-DOL2zACE.js → p-BAYo-RBt.js} +1 -1
- package/dist/cobalt/p-Ba_v-MzM.js +1 -0
- package/dist/cobalt/{p-Bryf3-Js.js → p-CJW9H3Gi.js} +1 -1
- package/dist/cobalt/p-a1b422ca.entry.js +1 -0
- package/dist/cobalt/p-a2462d7a.entry.js +1 -0
- package/dist/cobalt/p-ade07307.entry.js +1 -0
- package/dist/cobalt/{p-5298c030.entry.js → p-b437eff6.entry.js} +1 -1
- package/dist/cobalt/p-b698188c.entry.js +1 -0
- package/dist/cobalt/{p-6bf6bc3e.entry.js → p-b821d9de.entry.js} +1 -1
- package/dist/cobalt/p-bde32f8b.entry.js +1 -0
- package/dist/cobalt/{p-92b092db.entry.js → p-be34e447.entry.js} +1 -1
- package/dist/cobalt/{p-ad33c40e.entry.js → p-c30b4cb5.entry.js} +1 -1
- package/dist/cobalt/p-c7d7d7f7.entry.js +1 -0
- package/dist/cobalt/{p-aae86f96.entry.js → p-d0b2c418.entry.js} +1 -1
- package/dist/cobalt/p-d375014b.entry.js +1 -0
- package/dist/cobalt/p-eadfd661.entry.js +1 -0
- package/dist/cobalt/p-ee149fd2.entry.js +1 -0
- package/dist/cobalt/p-ef301976.entry.js +1 -0
- package/dist/cobalt/{p-fd150cc6.entry.js → p-f7eb1a40.entry.js} +1 -1
- package/dist/cobalt/p-f9a7b7c6.entry.js +1 -0
- package/dist/cobalt/{p-f68dd124.entry.js → p-fb2d1144.entry.js} +1 -1
- package/dist/collection/components/co-accordion/co-accordion.css +11 -4
- package/dist/collection/components/co-accordion/co-accordion.js +37 -6
- package/dist/collection/components/co-action-bar/co-action-bar.css +9 -2
- package/dist/collection/components/co-audio-player/co-audio-player.js +138 -12
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar/co-avatar.css +22 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-button/co-button.css +15 -3
- package/dist/collection/components/co-calendar/co-calendar.css +10 -4
- package/dist/collection/components/co-calendar/co-calendar.js +6 -2
- package/dist/collection/components/co-checkbox/co-checkbox.js +22 -3
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-color-picker/co-color-picker.js +40 -10
- 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.css +63 -2
- package/dist/collection/components/co-data-table/co-data-table.js +59 -4
- package/dist/collection/components/co-data-table/headerTruncationLogic.js +34 -0
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +13 -0
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +4 -2
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +4 -43
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.utils.js +55 -0
- package/dist/collection/components/co-input/co-input.js +17 -5
- package/dist/collection/components/co-menu-item/co-menu-item.css +9 -0
- package/dist/collection/components/co-modal/co-modal.css +6 -0
- package/dist/collection/components/co-modal/co-modal.js +33 -2
- package/dist/collection/components/co-navbar/co-navbar.js +2 -2
- package/dist/collection/components/co-number-field/co-number-field.js +3 -3
- package/dist/collection/components/co-option-list/co-option-list.js +38 -7
- package/dist/collection/components/co-option-list/optionListLogic.js +31 -8
- package/dist/collection/components/co-overlay/co-overlay.js +1 -1
- package/dist/collection/components/co-page-header/co-page-header.js +1 -1
- package/dist/collection/components/co-phone-field/co-phone-field.js +5 -5
- package/dist/collection/components/co-popover/co-popover.js +1 -1
- 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.css +40 -0
- package/dist/collection/components/co-ref-field/co-ref-field.js +207 -11
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +22 -0
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +48 -8
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +52 -0
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +25 -2
- package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.css +5 -0
- package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +17 -1
- 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 +28 -9
- 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.js +1 -1
- package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
- package/dist/collection/components/co-slider/co-slider.js +2 -2
- 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.js +1 -1
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +6 -5
- 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 +9 -5
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
- package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-video/co-video.js +2 -2
- package/dist/collection/utils/normalizeText.js +43 -0
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-action-bar.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-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-checkbox.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.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-emoji-picker.js +1 -1
- package/dist/components/co-event-calendar.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-input.js +1 -1
- package/dist/components/co-lightbox.js +1 -1
- package/dist/components/co-list-item.js +1 -1
- package/dist/components/co-menu-item.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-progress-bar.js +1 -1
- package/dist/components/co-progress-circle.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.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-video.js +1 -1
- package/dist/components/{p-CXPRaTuo.js → p-2EOI1nrz.js} +1 -1
- package/dist/components/p-7TncUlLN.js +1 -0
- package/dist/components/{p-DOL2zACE.js → p-BAYo-RBt.js} +1 -1
- package/dist/components/p-Ba_v-MzM.js +1 -0
- package/dist/components/p-BhCVadcA.js +1 -0
- package/dist/components/p-BrAFTkAn.js +1 -0
- package/dist/components/{p-DIo66nBr.js → p-Bsh0JMGf.js} +1 -1
- package/dist/components/{p-x4grh-eZ.js → p-CBTGN490.js} +1 -1
- package/dist/components/{p-Bryf3-Js.js → p-CJW9H3Gi.js} +1 -1
- package/dist/components/p-CWCYYQrF.js +1 -0
- package/dist/components/p-D7Lhxz7L.js +1 -0
- package/dist/components/{p-BxP8OBw6.js → p-DFlJMEJ-.js} +1 -1
- package/dist/components/p-DTPYZwaZ.js +1 -0
- package/dist/components/{p-Be_kyNRE.js → p-Dc_Kbari.js} +1 -1
- package/dist/components/{p-B1QFLcY9.js → p-Dcg4krSX.js} +1 -1
- package/dist/components/p-DrTRB8Ev.js +1 -0
- package/dist/components/{p-BBP5__CY.js → p-DvR45CLa.js} +1 -1
- package/dist/components/{p-CnX3L8aF.js → p-DxtNejr2.js} +1 -1
- package/dist/components/{p-DkDTmHCg.js → p-Nt4JJxbL.js} +1 -1
- package/dist/components/{p-Bv6U5y3d.js → p-uxdXViMV.js} +1 -1
- package/dist/esm/co-accordion.entry.js +33 -4
- package/dist/esm/co-action-bar.entry.js +1 -1
- package/dist/esm/co-audio-player.entry.js +82 -12
- package/dist/esm/co-avatar.entry.js +70 -0
- package/dist/esm/co-button.entry.js +1 -1
- package/dist/esm/co-calendar_3.entry.js +7 -3
- package/dist/esm/co-checkbox.entry.js +3 -3
- package/dist/esm/co-chip_2.entry.js +68 -14
- package/dist/esm/co-color-picker.entry.js +40 -10
- package/dist/esm/co-column-picker.entry.js +1 -1
- package/dist/esm/co-combobox.entry.js +1 -1
- package/dist/esm/co-command-search.entry.js +1 -1
- package/dist/esm/co-data-table.entry.js +82 -4
- package/dist/esm/co-date-range-picker.entry.js +3 -1
- package/dist/esm/co-emoji-picker.entry.js +1 -1
- package/dist/esm/co-file-type-tile.entry.js +23 -7
- package/dist/esm/co-input.entry.js +6 -2
- package/dist/esm/co-menu-item.entry.js +1 -1
- package/dist/esm/co-modal.entry.js +7 -3
- package/dist/esm/co-navbar.entry.js +2 -2
- package/dist/esm/co-number-field.entry.js +3 -3
- package/dist/esm/co-overlay.entry.js +1 -1
- package/dist/esm/co-page-header.entry.js +1 -1
- package/dist/esm/co-phone-field.entry.js +5 -5
- package/dist/esm/co-progress-bar.entry.js +2 -2
- package/dist/esm/co-progress-circle.entry.js +2 -2
- package/dist/esm/co-provider-logo_2.entry.js +1 -1
- package/dist/esm/co-radio.entry.js +3 -3
- package/dist/esm/co-rating.entry.js +3 -3
- package/dist/esm/co-ref-field.entry.js +100 -9
- package/dist/esm/co-rich-text-editor.entry.js +30 -10
- package/dist/esm/co-rich-text-toolbar.entry.js +5 -2
- package/dist/esm/co-rich-text-viewer.entry.js +19 -3
- package/dist/esm/co-row.entry.js +2 -2
- package/dist/esm/co-select.entry.js +8 -8
- package/dist/esm/co-separator.entry.js +1 -1
- package/dist/esm/co-sidebar-nav.entry.js +1 -1
- package/dist/esm/co-sidebar.entry.js +2 -2
- package/dist/esm/co-slider.entry.js +2 -2
- package/dist/esm/co-switch.entry.js +3 -3
- package/dist/esm/co-tab-group.entry.js +2 -2
- package/dist/esm/co-tab.entry.js +2 -2
- package/dist/esm/co-tags-field.entry.js +5 -5
- package/dist/esm/co-textarea.entry.js +4 -4
- package/dist/esm/co-time-field.entry.js +1 -1
- package/dist/esm/co-toggle-button-group.entry.js +3 -3
- package/dist/esm/co-toggle-button.entry.js +3 -3
- package/dist/esm/{co-avatar_2.entry.js → co-tooltip.entry.js} +3 -70
- package/dist/esm/co-video.entry.js +2 -2
- package/dist/esm/cobalt.js +1 -1
- package/dist/esm/{index-68iUQp5j.js → index-BBIYyvq-.js} +6717 -6654
- package/dist/esm/index-DH5lfRNj.js +16 -12
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{normalizeText-CQY6Ul7q.js → normalizeText-Ba_v-MzM.js} +29 -18
- package/dist/esm/{toolbar-config-DOL2zACE.js → toolbar-config-BAYo-RBt.js} +13 -1
- package/dist/types/components/co-accordion/co-accordion.d.ts +17 -2
- package/dist/types/components/co-audio-player/co-audio-player.d.ts +25 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +4 -0
- package/dist/types/components/co-color-picker/co-color-picker.d.ts +4 -2
- package/dist/types/components/co-data-table/co-data-table.d.ts +15 -0
- package/dist/types/components/co-data-table/headerTruncationLogic.d.ts +24 -0
- package/dist/types/components/co-file-type-tile/co-file-type-tile.utils.d.ts +12 -0
- package/dist/types/components/co-input/co-input.d.ts +5 -1
- package/dist/types/components/co-modal/co-modal.d.ts +10 -0
- package/dist/types/components/co-option-list/co-option-list.d.ts +13 -0
- package/dist/types/components/co-option-list/optionListLogic.d.ts +23 -6
- package/dist/types/components/co-ref-field/co-ref-field.d.ts +38 -0
- package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +7 -0
- package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +4 -1
- package/dist/types/components/co-select/co-select.d.ts +6 -0
- package/dist/types/components.d.ts +120 -14
- package/dist/types/utils/normalizeText.d.ts +13 -0
- package/package.json +2 -2
- package/dist/cobalt/p-15d59169.entry.js +0 -1
- package/dist/cobalt/p-1788aab5.entry.js +0 -1
- package/dist/cobalt/p-20a39218.entry.js +0 -1
- package/dist/cobalt/p-3cc3ff93.entry.js +0 -1
- package/dist/cobalt/p-4908f33f.entry.js +0 -1
- package/dist/cobalt/p-63825d7f.entry.js +0 -1
- package/dist/cobalt/p-66b11b38.entry.js +0 -1
- package/dist/cobalt/p-6f700f0d.entry.js +0 -1
- package/dist/cobalt/p-83a9a05a.entry.js +0 -1
- package/dist/cobalt/p-85501c6a.entry.js +0 -1
- package/dist/cobalt/p-88195a63.entry.js +0 -1
- package/dist/cobalt/p-8fa5dc4a.entry.js +0 -1
- package/dist/cobalt/p-CQY6Ul7q.js +0 -1
- package/dist/cobalt/p-b0c4fc71.entry.js +0 -1
- package/dist/cobalt/p-b1e8d69e.entry.js +0 -1
- package/dist/cobalt/p-b48917c9.entry.js +0 -1
- package/dist/cobalt/p-c124e82b.entry.js +0 -1
- package/dist/cobalt/p-c32c176a.entry.js +0 -1
- package/dist/cobalt/p-e48f4e45.entry.js +0 -1
- package/dist/cobalt/p-e8a2f993.entry.js +0 -1
- package/dist/cobalt/p-eb8691f2.entry.js +0 -1
- package/dist/cobalt/p-ef5ca521.entry.js +0 -1
- package/dist/components/p-9ceBPSd1.js +0 -1
- package/dist/components/p-B2IsXte7.js +0 -1
- package/dist/components/p-BsTO1uUA.js +0 -1
- package/dist/components/p-CFFDmGPS.js +0 -1
- package/dist/components/p-CQY6Ul7q.js +0 -1
- package/dist/components/p-Cl3AdEQJ.js +0 -1
- package/dist/components/p-HxVRXXXC.js +0 -1
- package/dist/components/p-vby0ITbe.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-MDAnKsze.js');
|
|
4
|
-
var normalizeText = require('./normalizeText-
|
|
4
|
+
var normalizeText = require('./normalizeText-D9rlJWZa.js');
|
|
5
5
|
var overlayScroll = require('./overlayScroll-ifzDNeyb.js');
|
|
6
6
|
require('./overlayscrollbars-BlBHo2Xx.js');
|
|
7
7
|
|
|
@@ -121,12 +121,13 @@ function parseValue(raw) {
|
|
|
121
121
|
* snapshotDisplay los que la página actual no contiene) + resto en orden de
|
|
122
122
|
* server; buscando → solo resultados reales, seleccionados primero.
|
|
123
123
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
124
|
+
* El bloque idle se recorre por `snapshotIds` (Set ordenado por selección, igual
|
|
125
|
+
* que `snapshotDisplay`) resolviendo cada id contra la página primero y contra el
|
|
126
|
+
* display después. Así un seleccionado AUSENTE de `snapshotDisplay` pero presente
|
|
127
|
+
* en `items` sigue en la lista: `rest` filtra todo id del snapshot, así que sin
|
|
128
|
+
* esa resolución desaparecía de la lista entera, no sólo del bloque de arriba.
|
|
129
|
+
* Un id que no está en ninguna de las dos fuentes no tiene nada que pintar y se
|
|
130
|
+
* ignora (no hay label que mostrar).
|
|
130
131
|
*/
|
|
131
132
|
function orderItems(items, snapshotIds, snapshotDisplay, searching) {
|
|
132
133
|
var _a;
|
|
@@ -135,8 +136,12 @@ function orderItems(items, snapshotIds, snapshotDisplay, searching) {
|
|
|
135
136
|
const byId = new Map(items.map((i) => [i._id, i]));
|
|
136
137
|
const selectedBlock = [];
|
|
137
138
|
if (!searching) {
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
const displayById = new Map(snapshotDisplay.map((d) => [d._id, d]));
|
|
140
|
+
for (const id of snapshotIds) {
|
|
141
|
+
const resolved = (_a = byId.get(id)) !== null && _a !== void 0 ? _a : displayById.get(id);
|
|
142
|
+
if (resolved)
|
|
143
|
+
selectedBlock.push(resolved);
|
|
144
|
+
}
|
|
140
145
|
}
|
|
141
146
|
else {
|
|
142
147
|
for (const i of items)
|
|
@@ -146,6 +151,24 @@ function orderItems(items, snapshotIds, snapshotDisplay, searching) {
|
|
|
146
151
|
const rest = items.filter((i) => !snapshotIds.has(i._id));
|
|
147
152
|
return [...selectedBlock, ...rest];
|
|
148
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* ¿Hay que re-tomar el snapshot selected-first por el cambio del término?
|
|
156
|
+
*
|
|
157
|
+
* Sólo en el flanco "había búsqueda → ya no": volver a la lista completa es un
|
|
158
|
+
* contexto de listado nuevo, y ahí el bloque de arriba tiene que incluir lo que
|
|
159
|
+
* se seleccionó DURANTE la sesión del panel. Sin esto, un panel abierto sin nada
|
|
160
|
+
* seleccionado se quedaba con el snapshot VACÍO para siempre (`orderItems`
|
|
161
|
+
* cortocircuita en `size === 0`): lo elegido mientras se buscaba desaparecía de
|
|
162
|
+
* la lista al limpiar el término, porque el servidor devuelve la página 1 y esos
|
|
163
|
+
* registros casi nunca están ahí. Se leía como "se deselecciona solo".
|
|
164
|
+
*
|
|
165
|
+
* El re-snapshot por SELECCIÓN no pasa por acá: vive en el componente
|
|
166
|
+
* (`@Watch('value')`, selected-first vivo desde 2026-09-14 — marcar sube la fila
|
|
167
|
+
* al instante). Esta función solo decide el flanco del TÉRMINO.
|
|
168
|
+
*/
|
|
169
|
+
function shouldResnapshotOnTerm(prevTerm, nextTerm) {
|
|
170
|
+
return !!prevTerm && !nextTerm;
|
|
171
|
+
}
|
|
149
172
|
/** Aplana a filas de render insertando un header cuando `group` cambia
|
|
150
173
|
* (groupItems de co-command-search). `index` cuenta solo items. */
|
|
151
174
|
function buildRows(items) {
|
|
@@ -335,10 +358,15 @@ const CoOptionList = class {
|
|
|
335
358
|
};
|
|
336
359
|
this.onSearchInput = (e) => {
|
|
337
360
|
const v = e.target.value;
|
|
361
|
+
// Al volver a la lista completa el bloque selected-first se rearma con lo que
|
|
362
|
+
// se seleccionó durante la sesión del panel (ver shouldResnapshotOnTerm).
|
|
363
|
+
const resnapshot = shouldResnapshotOnTerm(this.term, v);
|
|
338
364
|
this.term = v;
|
|
339
365
|
this.activeIndex = -1;
|
|
340
366
|
// Resultset nuevo: re-habilita fillViewport aunque venga del mismo largo.
|
|
341
367
|
this.lastFillLen = -1;
|
|
368
|
+
if (resnapshot)
|
|
369
|
+
this.takeSnapshot();
|
|
342
370
|
if (this.debounceTimer)
|
|
343
371
|
clearTimeout(this.debounceTimer);
|
|
344
372
|
this.debounceTimer = setTimeout(() => this.coSearch.emit(v), this.searchDebounce);
|
|
@@ -509,6 +537,27 @@ const CoOptionList = class {
|
|
|
509
537
|
this.scrollTop = maxScrollTop;
|
|
510
538
|
}
|
|
511
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* Selected-first VIVO (decisión de producto 2026-09-14, campo Colaboradores):
|
|
542
|
+
* la partición sigue a `value` — marcar un ítem lo sube al bloque de
|
|
543
|
+
* seleccionados al instante y desmarcarlo lo devuelve a su lugar del orden del
|
|
544
|
+
* server. Reemplaza el snapshot congelado al abrir (evitaba saltos, pero se
|
|
545
|
+
* leía como "no pasó nada" al elegir). El reacomodo se anima con el mismo FLIP
|
|
546
|
+
* del reorder: tops capturados ANTES de re-particionar, runFlip corre en
|
|
547
|
+
* componentDidRender. El highlight de teclado se queda sobre el MISMO ítem
|
|
548
|
+
* (Enter sobre una fila la mueve; el índice viejo apuntaría a otra fila).
|
|
549
|
+
* Tras un drop del reorder el host manda el value en el orden del preview:
|
|
550
|
+
* mismo orden → deltas 0 → no-op visual.
|
|
551
|
+
*/
|
|
552
|
+
onValueChange() {
|
|
553
|
+
var _a;
|
|
554
|
+
if (!this.selectedFirst)
|
|
555
|
+
return;
|
|
556
|
+
const activeId = this.activeIndex >= 0 ? (_a = this.orderedItems[this.activeIndex]) === null || _a === void 0 ? void 0 : _a._id : undefined;
|
|
557
|
+
this.pendingFlip = { tops: this.captureRowTops(), movedId: '', spring: false };
|
|
558
|
+
this.takeSnapshot();
|
|
559
|
+
this.activeIndex = activeId ? this.orderedItems.findIndex((i) => i._id === activeId) : -1;
|
|
560
|
+
}
|
|
512
561
|
// ── Métodos públicos ───────────────────────────────────────
|
|
513
562
|
/** Re-toma el snapshot selected-first. El host la llama al abrir su panel. */
|
|
514
563
|
async snapshotOrder() {
|
|
@@ -897,10 +946,12 @@ const CoOptionList = class {
|
|
|
897
946
|
}
|
|
898
947
|
renderLabelText(label) {
|
|
899
948
|
const term = this.effectiveHighlightTerm;
|
|
900
|
-
|
|
901
|
-
|
|
949
|
+
// TODAS las ocurrencias (substring-anywhere): "PR" en "Producto (U.D) - PR Completa"
|
|
950
|
+
// marca el "Pr" de Producto Y el "PR" — antes solo la primera.
|
|
951
|
+
const segs = term ? normalizeText.highlightSegments(label, term) : null;
|
|
952
|
+
if (!segs)
|
|
902
953
|
return label;
|
|
903
|
-
return
|
|
954
|
+
return segs.map((s) => (s.match ? index.h("span", { class: "co-option-list__match" }, s.text) : s.text));
|
|
904
955
|
}
|
|
905
956
|
/** Pill junto al label. Con `tooltip` va envuelto en un `co-tooltip` — el
|
|
906
957
|
* label del badge se abrevia (3 letras en el de workspace) y sin el texto
|
|
@@ -940,16 +991,19 @@ const CoOptionList = class {
|
|
|
940
991
|
const selectedIds = this.selectedIds;
|
|
941
992
|
const { hasMore, remaining } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
|
|
942
993
|
const showClear = !!this.clearOptionLabel && selectedIds.length > 0;
|
|
943
|
-
return (index.h("div", { key: '
|
|
994
|
+
return (index.h("div", { key: '30f39e9cfe2472f1083768b6e974aa48672e63d0', class: "co-option-list", onKeyDown: this.onRootKeyDown }, this.searchable && (index.h("div", { key: 'f1c125c141ca8ceebae5c1ed0c786919c31805b3', class: "co-option-list__search", part: "search" }, index.h("co-icon", { key: 'd56810ca205984e7b2c56546930ce25ca70fda68', name: "magnifying-glass", size: 16 }), index.h("input", { key: 'a85b35debe7b14c604a3262c7c04ee3b9ca41a6a', class: "co-option-list__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.term, onInput: this.onSearchInput, ref: (el) => (this.searchInputEl = el), role: "combobox", "aria-expanded": "true", "aria-autocomplete": "list" }))), index.h("div", { key: 'ea5eecc218a228e07dd05d8f963518b4a8e0039f', class: "co-option-list__options", part: "options", role: "listbox", "aria-multiselectable": this.multiple ? 'true' : 'false', ref: (el) => (this.optionsEl = el), onScroll: this.onNativeScroll }, index.h("div", { key: 'b27071cb3d629022fa6e926050fdc17b2051ef98', class: "co-option-list__inner" }, showClear && (index.h("button", { key: '443791f8ee2d1f05a16c4002573264acf0a8de1b', class: "co-option-list__clear-row", type: "button", onClick: () => this.coClearSelection.emit() }, index.h("co-icon", { key: 'ebe7e65669ff9eb76922ef76e21b9209658a444f', name: "x-circle", size: 14 }), index.h("span", { key: '82d2bcceb41ec5370e60ea9e25af91a2cbf11e70' }, this.clearOptionLabel))), this.loading && items.length === 0 && (index.h("div", { key: '9f60fedc78ee66d198623a5e3ac9b0f1569ddef4', class: "co-option-list__loading" }, index.h("co-loader", { key: 'ab7b1947e03af880cc608bef8639d7dc882a53b7', size: "sm" }))), !this.loading && items.length === 0 && (index.h("div", { key: '6b0870e6c5b2c25e2854431a28a2d6b56253ecf2', class: "co-option-list__empty" }, index.h("co-icon", { key: '302d71e23e0d56104dfd04948201630ddbb4b078', name: "magnifying-glass", size: 20 }), index.h("span", { key: 'fc580f9a50974ab22a7b648dbbe4ca17340094d8' }, this.emptyMessage))), items.length > 0 && this.virtual
|
|
944
995
|
? this.renderVirtual(items, selectedIds)
|
|
945
996
|
: buildRows(items).map((row) => row.kind === 'header'
|
|
946
997
|
? index.h("div", { class: "co-option-list__group", role: "presentation" }, row.label)
|
|
947
|
-
: this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (index.h("div", { key: '
|
|
998
|
+
: this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (index.h("div", { key: '606a674960e4d16198ef36de4686de91ad742dde', class: "co-option-list__loading-more" }, index.h("co-loader", { key: '933613b7b606399cd9eea3f877a4b2c77f269785', size: "sm" }))), !this.loading && hasMore && remaining > 0 && (index.h("div", { key: '6a6220513b6db222b57155c54afa805519e4b1b8', class: "co-option-list__more" }, remaining, " more results")))), index.h("slot", { key: '4d952742c39335d9f19c2e45f58ae6be3306857d', name: "footer" })));
|
|
948
999
|
}
|
|
949
1000
|
get el() { return index.getElement(this); }
|
|
950
1001
|
static get watchers() { return {
|
|
951
1002
|
"items": [{
|
|
952
1003
|
"onItemsChange": 0
|
|
1004
|
+
}],
|
|
1005
|
+
"value": [{
|
|
1006
|
+
"onValueChange": 0
|
|
953
1007
|
}]
|
|
954
1008
|
}; }
|
|
955
1009
|
};
|
|
@@ -467,6 +467,12 @@ const CoColorPicker = class {
|
|
|
467
467
|
};
|
|
468
468
|
this.handleGridKeyDown = (e) => {
|
|
469
469
|
var _a;
|
|
470
|
+
// La grilla es el único control del panel que es un `<div>`: no hereda
|
|
471
|
+
// `disabled` del DOM como el range o el input, así que el guard tiene que
|
|
472
|
+
// ser explícito. Sin él, deshabilitar con el panel abierto dejaba la
|
|
473
|
+
// navegación por flechas viva y Enter commiteando sobre un campo apagado.
|
|
474
|
+
if (this.disabled)
|
|
475
|
+
return;
|
|
470
476
|
// `presetGroups` re-parsea el JSON de `presets` y remapea en CADA lectura, y
|
|
471
477
|
// todos los consumidores reales pasan presets custom por prop: se resuelve
|
|
472
478
|
// UNA vez por tecla y se pasa por parámetro, no dos veces por getter.
|
|
@@ -692,8 +698,10 @@ const CoColorPicker = class {
|
|
|
692
698
|
* que `this.hsv` llega `undefined` al primer render y el destructuring de
|
|
693
699
|
* `renderArea` tira). Los otros @State del componente lo toleraban porque
|
|
694
700
|
* `undefined` es falsy justo donde se usan.
|
|
695
|
-
* Sin hex válido el estado arranca en
|
|
696
|
-
*
|
|
701
|
+
* Sin hex válido el estado arranca en `EMPTY_HSV` —rojo puro, el vértice
|
|
702
|
+
* VIVO—, no en negro: ver su docstring, que explica por qué el vértice negro
|
|
703
|
+
* dejaría dos de los tres controles sin poder producir color. Es un seed de
|
|
704
|
+
* display; `value` sigue vacío y el trigger sigue mostrando el placeholder.
|
|
697
705
|
*/
|
|
698
706
|
componentWillLoad() {
|
|
699
707
|
const parsed = color.hexToHsv(this.value || '');
|
|
@@ -855,6 +863,11 @@ const CoColorPicker = class {
|
|
|
855
863
|
}
|
|
856
864
|
}
|
|
857
865
|
handleSwatchClick(hex) {
|
|
866
|
+
// Mismo guard que el resto de los controles del panel: el host puede
|
|
867
|
+
// deshabilitar el campo CON EL PANEL ABIERTO, y un swatch deshabilitado no
|
|
868
|
+
// commitea. El `pointer-events:none` del CSS tapa el mouse, no el teclado.
|
|
869
|
+
if (this.disabled)
|
|
870
|
+
return;
|
|
858
871
|
// Elegir un preset es un commit como cualquier otro: la asignación y el
|
|
859
872
|
// emit viven en `commit`, no duplicados acá (si no, el swatch dejaría el
|
|
860
873
|
// HSV del color anterior y el área abriría en el color equivocado).
|
|
@@ -960,7 +973,16 @@ const CoColorPicker = class {
|
|
|
960
973
|
index.h("div", { class: "co-color-picker__grid-group", key: g.from, role: g.label ? 'group' : 'presentation', "aria-label": g.label }, g.items.map((preset, j) => {
|
|
961
974
|
const i = g.from + j;
|
|
962
975
|
const selected = preset.value.toUpperCase() === (this.value || '').toUpperCase();
|
|
963
|
-
return (index.h("div", { key: preset.value, role: "option", "aria-selected": selected ? 'true' : 'false', "aria-label": preset.name,
|
|
976
|
+
return (index.h("div", { key: preset.value, role: "option", "aria-selected": selected ? 'true' : 'false', "aria-label": preset.name,
|
|
977
|
+
// El `aria-label` cubre al lector de pantalla; al usuario con
|
|
978
|
+
// mouse no le dice nada. Sin el `title`, la paleta por default
|
|
979
|
+
// deja dos grises contiguos ("Humo" y "Hueso") indistinguibles
|
|
980
|
+
// salvo por el pixel de color. El tooltip nativo es la
|
|
981
|
+
// convención de este design system para celdas de grilla
|
|
982
|
+
// —co-emoji-picker:419 hace exactamente esto, y el propio
|
|
983
|
+
// panel ya lo usa en gotero y copiar—; la regla que lo prohíbe
|
|
984
|
+
// es de suite-v2, no de cobalt core.
|
|
985
|
+
title: preset.name, tabIndex: i === this.focusedIndex ? 0 : -1, class: {
|
|
964
986
|
'co-color-picker__grid-item': true,
|
|
965
987
|
'co-color-picker__grid-item--selected': selected,
|
|
966
988
|
// Un swatch claro se pierde contra el panel: se decide por
|
|
@@ -1083,12 +1105,20 @@ const CoColorPicker = class {
|
|
|
1083
1105
|
this.hsv = EMPTY_HSV;
|
|
1084
1106
|
if ((this.value || '').toUpperCase() === (target || '').toUpperCase())
|
|
1085
1107
|
return;
|
|
1086
|
-
// SIN sellar:
|
|
1087
|
-
//
|
|
1108
|
+
// SIN sellar a mano: el @Watch re-deriva el HSV —que es lo que hace volver
|
|
1109
|
+
// el área al color commiteado en vez de quedarse en el abandonado— y sella
|
|
1110
|
+
// `emitted` él mismo, ANTES del guard de parseo, así que también cubre el
|
|
1111
|
+
// caso en que `target` no es un hex (nunca se commiteó nada y el campo
|
|
1112
|
+
// vuelve a vacío).
|
|
1113
|
+
//
|
|
1114
|
+
// Acá vivía un `this.emitted = target` con un comentario que describía el
|
|
1115
|
+
// orden VIEJO de `syncFromValue` (sellado gateado por el parseo). Desde que
|
|
1116
|
+
// el sellado subió, la línea era muerta por dos vías: o el @Watch ya la
|
|
1117
|
+
// dejó idéntica, o entró por su guard de eco —que compara contra `emitted`—
|
|
1118
|
+
// y entonces `emitted` ya era `target` salvo por mayúsculas, que es el único
|
|
1119
|
+
// lector que tiene. Medido: una sonda en esa línea sobre la suite entera la
|
|
1120
|
+
// alcanza cuatro veces y las cuatro con `emitted === target` estricto.
|
|
1088
1121
|
this.value = target;
|
|
1089
|
-
// El @Watch no sella cuando `target` no es un hex (nunca se commiteó nada y
|
|
1090
|
-
// el campo vuelve a vacío), así que se sella acá.
|
|
1091
|
-
this.emitted = target;
|
|
1092
1122
|
// El preview se anunció por `coInput`; retirarlo también. Un host que
|
|
1093
1123
|
// previsualiza en vivo se quedaría si no con el color que nadie eligió.
|
|
1094
1124
|
this.coInput.emit(target);
|
|
@@ -1126,12 +1156,12 @@ const CoColorPicker = class {
|
|
|
1126
1156
|
render() {
|
|
1127
1157
|
const hasValue = !!this.value;
|
|
1128
1158
|
const statusClass = this.status !== 'default' ? `co-color-picker--${this.status}` : '';
|
|
1129
|
-
return (index.h("div", { key: '
|
|
1159
|
+
return (index.h("div", { key: '5e4239ff9ef0dc3f15004898d2d891f8d231e95d', class: `co-color-picker co-color-picker--${this.size} ${statusClass} ${this.isOpen ? 'co-color-picker--open' : ''} ${this.disabled ? 'co-color-picker--disabled' : ''}` }, this.label && (index.h("label", { key: '003a893c3c840cd03d87c4291795499ac80b8b73', class: "co-color-picker__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '4c14eaf668b0677b91b23a00f001ffaa4c21f5c5', required: this.required }))), index.h("co-popover", { key: 'f4a489f77c2d629ea1d9b69786cfad0f95d5422b', open: this.isOpen, placement: "bottom-start",
|
|
1130
1160
|
// Sin `matchWidth`: el panel tiene ancho INTRÍNSECO (grilla de 8
|
|
1131
1161
|
// swatches fijos de 32px). Copiar el ancho del trigger achica los
|
|
1132
1162
|
// tracks bajo 32px con un campo angosto (media columna de un modal) y
|
|
1133
1163
|
// los swatches desbordan el card — guard: panel-width.spec.
|
|
1134
|
-
offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, index.h("div", { key: '
|
|
1164
|
+
offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, index.h("div", { key: '229e0095d6b6a723e77cf0d001d780cf51116851', slot: "trigger", class: "co-color-picker__trigger", role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "dialog", "aria-controls": this.isOpen ? CoColorPicker.PANEL_ID : undefined, "aria-label": this.label || undefined, "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: this.disabled ? -1 : 0, ref: (el) => (this.triggerEl = el), onKeyDown: this.handleTriggerKeyDown }, index.h("span", { key: '9267f104b7f0542653038ef381fb81a7f7f0188e', class: "co-color-picker__swatch", style: { background: hasValue ? this.value : 'transparent' } }), index.h("span", { key: '64efb900a60576022b3f487db56380973d2934c9', class: `co-color-picker__value ${!hasValue ? 'co-color-picker__value--empty' : ''}` }, hasValue ? this.value : this.placeholder)), this.isOpen && (index.h("div", { key: '22abcb6c79531f41a6655fc48320e4c108a33049', class: "co-color-picker__panel", id: CoColorPicker.PANEL_ID, role: "dialog", "aria-label": this.label || this.placeholder }, this.renderArea(), this.renderHue(), this.renderSwatches(), this.renderHexRow()))), this.helperText && (index.h("div", { key: '901b7094f7da8c09ea25cad568eda8d5fcaf2d6e', class: "co-color-picker__helper" }, this.statusIcon && (index.h("co-icon", { key: 'fb341f791466f133f6a6c4bd04a8dd71c519c7c0', name: this.statusIcon, size: 14, weight: "fill", class: "co-color-picker__helper-icon" })), index.h("span", { key: '0ecfc7d46a07c741d42b59660979559fb78117df', class: "co-color-picker__helper-text" }, this.helperText)))));
|
|
1135
1165
|
}
|
|
1136
1166
|
get el() { return index.getElement(this); }
|
|
1137
1167
|
static get watchers() { return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-MDAnKsze.js');
|
|
4
|
-
var normalizeText = require('./normalizeText-
|
|
4
|
+
var normalizeText = require('./normalizeText-D9rlJWZa.js');
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Pure tree-building, filtering, and string utilities for co-column-picker.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-MDAnKsze.js');
|
|
4
4
|
var requiredMark = require('./requiredMark-D-t-IPN0.js');
|
|
5
|
-
var normalizeText = require('./normalizeText-
|
|
5
|
+
var normalizeText = require('./normalizeText-D9rlJWZa.js');
|
|
6
6
|
|
|
7
7
|
const coComboboxCss = () => `: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;position:relative}.co-combobox{display:flex;flex-direction:column;gap:var(--co-spacing-sm2);position:relative}.co-combobox__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-combobox__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;cursor:default}.co-combobox__secondary-label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;text-align:right}.co-combobox__trigger{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;box-sizing:border-box;cursor:pointer;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);overflow:hidden}.co-combobox--s .co-combobox__trigger{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm);font-size:var(--co-font-size-12)}.co-combobox--sm .co-combobox__trigger{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);font-size:var(--co-font-size-14)}.co-combobox--lg .co-combobox__trigger{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg);font-size:var(--co-font-size-16)}.co-combobox--open .co-combobox__trigger{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-combobox__trigger:focus-visible{outline:none;border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-combobox--disabled .co-combobox__trigger{background:var(--co-semantic-surface-disabled);border-color:transparent;cursor:not-allowed}.co-combobox__icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-combobox--disabled .co-combobox__icon{color:var(--co-semantic-text-disabled)}.co-combobox__input-wrapper{flex:1;display:flex;align-items:center;flex-wrap:nowrap;gap:4px;min-width:0;min-height:22px;padding:0;overflow:hidden}.co-combobox__input-wrapper co-chip{--co-chip-max-width:120px;--co-chip-bg:var(--co-semantic-surface-muted);--co-chip-color:var(--co-semantic-text-default);--co-chip-border:1px solid var(--co-semantic-border-subtle);flex-shrink:0}.co-combobox__overflow-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-status-info, #2d6cc5);color:var(--co-color-base-blanco, #fff);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-10);font-weight:600;line-height:1;white-space:nowrap}.co-combobox__text{color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;letter-spacing:inherit;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-combobox__text--placeholder{color:var(--co-semantic-text-muted)}.co-combobox--disabled .co-combobox__text{color:var(--co-semantic-text-disabled)}.co-combobox__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-combobox__clear:hover{color:var(--co-semantic-text-default)}.co-combobox__caret{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-combobox--disabled .co-combobox__caret{color:var(--co-semantic-text-disabled)}.co-combobox__dropdown{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-combobox__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-combobox__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-combobox__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-combobox__helper--error .co-combobox__helper-icon,.co-combobox__helper--error .co-combobox__helper-text{color:var(--co-semantic-status-error)}.co-combobox__helper--success .co-combobox__helper-icon,.co-combobox__helper--success .co-combobox__helper-text{color:var(--co-semantic-status-success)}.co-combobox__helper--warning .co-combobox__helper-icon,.co-combobox__helper--warning .co-combobox__helper-text{color:var(--co-color-status-review)}.co-combobox__helper--info .co-combobox__helper-icon,.co-combobox__helper--info .co-combobox__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-combobox{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-combobox__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-combobox__label{white-space:normal}:host([layout='horizontal']) .co-combobox>:not(.co-combobox__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)')}`;
|
|
8
8
|
|
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-MDAnKsze.js');
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Lógica pura del tooltip de header truncado (sin DOM real: testeable en vitest).
|
|
7
|
+
* Misma regla que co-list-item y `useEllipsisTooltip` de suite-v2: +1px de
|
|
8
|
+
* tolerancia porque el navegador redondea a enteros y 1px de más NO es corte.
|
|
9
|
+
*/
|
|
10
|
+
function isEllipsisTruncated(node) {
|
|
11
|
+
return !!node && node.scrollWidth > node.clientWidth + 1;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Mide TODOS los labels registrados (field → nodo) en una pasada y devuelve el
|
|
15
|
+
* próximo mapa; la MISMA referencia si ningún field cambió. Un field que ya no
|
|
16
|
+
* está registrado (columna quitada) desaparece del mapa.
|
|
17
|
+
*/
|
|
18
|
+
function measureTruncatedHeaders(prev, labels) {
|
|
19
|
+
let changed = Object.keys(prev).some((field) => !labels.has(field));
|
|
20
|
+
const next = {};
|
|
21
|
+
labels.forEach((node, field) => {
|
|
22
|
+
const truncated = isEllipsisTruncated(node);
|
|
23
|
+
next[field] = truncated;
|
|
24
|
+
if (!!prev[field] !== truncated)
|
|
25
|
+
changed = true;
|
|
26
|
+
});
|
|
27
|
+
return changed ? next : prev;
|
|
28
|
+
}
|
|
29
|
+
|
|
5
30
|
/**
|
|
6
31
|
* Pure math for co-data-table's column-resize drag.
|
|
7
32
|
*
|
|
@@ -40,7 +65,7 @@ function resizeWidth({ startWidth, minWidth, pointerDelta, autoScrollExtra }) {
|
|
|
40
65
|
return Math.max(minWidth, startWidth + pointerDelta + autoScrollExtra);
|
|
41
66
|
}
|
|
42
67
|
|
|
43
|
-
const coDataTableCss = () => `co-data-table{display:block;flex:1;min-height:0;overflow:hidden;contain:layout}.co-data-table{position:relative;font-family:var(--co-font-family-primary);background:var(--co-color-base-blanco);display:flex;flex-direction:column;height:100%}.co-data-table--resizing{cursor:col-resize;user-select:none}.co-data-table__scroll{flex:1;overflow-x:auto;overflow-y:auto;min-height:0}.co-data-table__table{min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.co-data-table__head{position:sticky;top:0;z-index:2}.co-data-table__header-row{height:40px}.co-data-table__th{position:relative;height:40px;padding:0 var(--co-spacing-md);background:var(--co-color-base-blanco);border-bottom:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);border-right:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);text-align:left;vertical-align:middle;font-size:var(--co-font-size-14);font-weight:500;color:var(--co-semantic-text-default);letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;overflow:hidden;box-sizing:border-box}.co-data-table__th:last-child{border-right:none}.co-data-table__th--sortable{cursor:pointer}.co-data-table__th--sortable:hover{background-image:linear-gradient(var(--co-semantic-surface-hover), var(--co-semantic-surface-hover))}.co-data-table__th-content{display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-sm)}.co-data-table__pin-icon{display:flex;align-items:center;flex-shrink:0;color:var(--co-color-gray-300);cursor:pointer;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__pin-icon--active{opacity:1;color:var(--co-semantic-text-default)}.co-data-table__th:hover .co-data-table__pin-icon{opacity:1}.co-data-table__pin-icon:hover{color:var(--co-semantic-text-default)}.co-data-table__filter-icon{display:flex;align-items:center;flex-shrink:0;color:var(--co-color-gray-300);cursor:pointer;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__th:hover .co-data-table__filter-icon{opacity:1}.co-data-table__filter-icon:hover{color:var(--co-semantic-text-default)}.co-data-table__filter-icon--active{opacity:1;color:var(--co-color-primary-azul)}.co-data-table__filter-icon--indirect{opacity:0.45;color:var(--co-semantic-text-muted)}.co-data-table__th-
|
|
68
|
+
const coDataTableCss = () => `co-data-table{display:block;flex:1;min-height:0;overflow:hidden;contain:layout}.co-data-table{position:relative;font-family:var(--co-font-family-primary);background:var(--co-color-base-blanco);display:flex;flex-direction:column;height:100%}.co-data-table--resizing{cursor:col-resize;user-select:none}.co-data-table__scroll{flex:1;overflow-x:auto;overflow-y:auto;min-height:0}.co-data-table__table{min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.co-data-table__head{position:sticky;top:0;z-index:2}.co-data-table__header-row{height:40px}.co-data-table__th{position:relative;height:40px;padding:0 var(--co-spacing-md);background:var(--co-color-base-blanco);border-bottom:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);border-right:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);text-align:left;vertical-align:middle;font-size:var(--co-font-size-14);font-weight:500;color:var(--co-semantic-text-default);letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;overflow:hidden;box-sizing:border-box}.co-data-table__th:last-child{border-right:none}.co-data-table__th--sortable{cursor:pointer}.co-data-table__th--sortable:hover{background-image:linear-gradient(var(--co-semantic-surface-hover), var(--co-semantic-surface-hover))}.co-data-table__th-content{display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-sm)}.co-data-table__pin-icon{display:flex;align-items:center;flex-shrink:0;color:var(--co-color-gray-300);cursor:pointer;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__pin-icon--active{opacity:1;color:var(--co-semantic-text-default)}.co-data-table__th:hover .co-data-table__pin-icon{opacity:1}.co-data-table__pin-icon:hover{color:var(--co-semantic-text-default)}.co-data-table__filter-icon{display:flex;align-items:center;flex-shrink:0;color:var(--co-color-gray-300);cursor:pointer;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__th:hover .co-data-table__filter-icon{opacity:1}.co-data-table__filter-icon:hover{color:var(--co-semantic-text-default)}.co-data-table__filter-icon--active{opacity:1;color:var(--co-color-primary-azul)}.co-data-table__filter-icon--indirect{opacity:0.45;color:var(--co-semantic-text-muted)}.co-data-table__th-tip{flex:1;min-width:0}.co-data-table__th-label{display:block;overflow:hidden;text-overflow:ellipsis}.co-data-table__sort-icon{display:flex;align-items:center;flex-shrink:0;color:var(--co-color-gray-400);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__sort-icon--active{color:var(--co-semantic-text-default)}.co-data-table__sort-button{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-sm);background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}.co-data-table__sort-button:focus-visible{outline:2px solid var(--co-semantic-border-focus, var(--co-color-primary-azul));outline-offset:-2px;border-radius:var(--co-border-radius-xxs)}.co-data-table__th--checkbox,.co-data-table__td--checkbox{width:48px;min-width:48px;max-width:48px;padding:0 var(--co-spacing-md);text-align:center;line-height:0;}.co-data-table__th.co-data-table__th--checkbox,.co-data-table__td.co-data-table__td--checkbox{border-right:none}.co-data-table__th--sticky,.co-data-table__td--sticky{position:sticky;z-index:1;background:var(--co-color-base-blanco)}.co-data-table__th--sticky{z-index:3}.co-data-table__th.co-data-table__th--sticky,.co-data-table__td.co-data-table__td--sticky{overflow:visible}.co-data-table__td--sticky::after,.co-data-table__th--sticky::after{content:'';position:absolute;top:0;right:-4px;bottom:0;width:4px;pointer-events:none;opacity:0;background:linear-gradient(to right, var(--co-color-opacity-negro-8), transparent);transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__td--sticky::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-color:var(--co-semantic-surface-hover);opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out), background-color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-data-table__row:hover .co-data-table__td--sticky::before{opacity:1}.co-data-table__row--selected .co-data-table__td--sticky::before{opacity:1;background-color:var(--co-color-opacity-negro-4)}.co-data-table__row--selected:hover .co-data-table__td--sticky::before{background-color:var(--co-color-opacity-negro-8)}.co-data-table__resize-handle{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:1}.co-data-table__resize-handle:hover{background:var(--co-color-primary-azul);opacity:0.3}.co-data-table__resize-handle--active{background:var(--co-color-primary-azul);opacity:0.3}.co-data-table__row{height:48px;transition:background-color var(--co-motion-duration-fast) var(--co-motion-ease-out);content-visibility:auto;contain-intrinsic-size:auto 48px}.co-data-table__row:hover{background:var(--co-semantic-surface-hover)}.co-data-table__row--selected{background:var(--co-color-opacity-negro-4)}.co-data-table__row--selected:hover{background:var(--co-color-opacity-negro-8)}.co-data-table__td{height:48px;padding:0 var(--co-spacing-md);background:transparent;border-bottom:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);border-right:1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);vertical-align:middle;font-size:var(--co-font-size-12);font-weight:var(--co-font-weight-medium);color:var(--co-semantic-text-default);letter-spacing:var(--co-font-letter-spacing-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.co-data-table__td:last-child{border-right:none}.co-data-table__th--align-center,.co-data-table__td--align-center{text-align:center}.co-data-table__th--align-right,.co-data-table__td--align-right{text-align:right}.co-data-table__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.co-data-table--empty .co-data-table__scroll{flex:0 0 auto;overflow:hidden}.co-data-table__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1;min-height:280px;padding:var(--co-spacing-3xl) var(--co-spacing-lg);gap:var(--co-spacing-lg) }.co-data-table__empty-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-surface-muted);color:var(--co-semantic-text-secondary);margin-bottom:var(--co-spacing-sm)}.co-data-table__empty-title{font-size:var(--co-font-size-24);font-weight:var(--co-font-weight-medium, 500);line-height:1.25;color:var(--co-semantic-text-default);letter-spacing:-0.03em}.co-data-table__empty-message{font-size:var(--co-font-size-14);font-weight:400;color:var(--co-semantic-text-secondary);margin:0;max-width:538px ;line-height:1.25}.co-data-table__empty-action{margin-top:var(--co-spacing-md);display:inline-flex}.co-data-table__empty-action:empty{display:none}.co-data-table__skeleton{height:14px;border-radius:var(--co-border-radius-xxs);background:linear-gradient( 90deg, var(--co-semantic-surface-secondary) 0%, var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.04)) 50%, var(--co-semantic-surface-secondary) 100% );background-size:200% 100%;animation:co-dt-shimmer 1.2s ease-in-out infinite;width:70%}.co-data-table__skeleton--checkbox{width:16px;height:16px;margin:0 auto}@keyframes co-dt-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.co-data-table__skeleton{animation:none}}.co-data-table__row--skeleton{pointer-events:none;content-visibility:visible}.co-data-table__row--flash-create{animation:co-dt-flash-create 1s ease-out}.co-data-table__row--flash-update{animation:co-dt-flash-update 1s ease-out}.co-data-table__row--flash-delete{animation:co-dt-flash-delete 0.5s ease-out forwards}@keyframes co-dt-flash-create{0%{background-color:rgba(2, 162, 112, 0.15)}100%{background-color:transparent}}@keyframes co-dt-flash-update{0%{background-color:rgba(37, 99, 235, 0.15)}100%{background-color:transparent}}@keyframes co-dt-flash-delete{0%{opacity:1;background-color:rgba(170, 46, 27, 0.1)}100%{opacity:0;height:0;padding:0;overflow:hidden}}`;
|
|
44
69
|
|
|
45
70
|
const CoDataTable = class {
|
|
46
71
|
constructor(hostRef) {
|
|
@@ -99,6 +124,9 @@ const CoDataTable = class {
|
|
|
99
124
|
this.parsedFilteredFields = [];
|
|
100
125
|
this.parsedIndirectFields = [];
|
|
101
126
|
this.columnWidths = new Map();
|
|
127
|
+
/** Columnas cambiadas → re-medir tras el render (un cambio de texto con el
|
|
128
|
+
* mismo ancho no dispara el ResizeObserver). */
|
|
129
|
+
this.headerMeasurePending = false;
|
|
102
130
|
this.resizingColumn = null;
|
|
103
131
|
this.resizeStartX = 0;
|
|
104
132
|
this.resizeStartWidth = 0;
|
|
@@ -120,6 +148,7 @@ const CoDataTable = class {
|
|
|
120
148
|
}
|
|
121
149
|
/* ─── WATCHERS ──────────────────────────────────────────── */
|
|
122
150
|
parseColumns() {
|
|
151
|
+
this.headerMeasurePending = true;
|
|
123
152
|
try {
|
|
124
153
|
const cols = typeof this.columns === 'string' ? JSON.parse(this.columns) : this.columns;
|
|
125
154
|
this.parsedColumns = cols;
|
|
@@ -168,13 +197,39 @@ const CoDataTable = class {
|
|
|
168
197
|
}
|
|
169
198
|
}
|
|
170
199
|
componentWillLoad() {
|
|
200
|
+
// Recursos por instancia acá y no en inicializadores de campo: la instancia
|
|
201
|
+
// envuelta de @stencil/vitest los omite (ver nota en co-data-table.spec.tsx).
|
|
202
|
+
this.headerLabelEls = new Map();
|
|
203
|
+
this.truncatedHeaders = {};
|
|
171
204
|
this.parseColumns();
|
|
172
205
|
this.parseRows();
|
|
173
206
|
this.parseSelectedKeys();
|
|
174
207
|
this.parseFilteredFields();
|
|
175
208
|
this.parseIndirectFields();
|
|
176
209
|
}
|
|
210
|
+
componentDidLoad() {
|
|
211
|
+
// Tooltip del header SOLO cuando el label trunca (patrón co-list-item). El
|
|
212
|
+
// estado tiene que estar correcto ANTES del hover: Stencil re-renderiza en
|
|
213
|
+
// rAF, así que una medida en el pointerenter del <th> llega después de que
|
|
214
|
+
// co-tooltip leyó `disabled` al agendar su show (verificado headless
|
|
215
|
+
// 2026-09-07). Un ResizeObserver re-mide cuando el label cambia de ancho
|
|
216
|
+
// (resize de columna, panel que se muestra, viewport) — y en la carga.
|
|
217
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
218
|
+
this.headerResizeObserver = new ResizeObserver(() => this.measureHeaderTruncation());
|
|
219
|
+
this.headerLabelEls.forEach((el) => this.headerResizeObserver.observe(el));
|
|
220
|
+
}
|
|
221
|
+
this.measureHeaderTruncation();
|
|
222
|
+
}
|
|
223
|
+
disconnectedCallback() {
|
|
224
|
+
var _a;
|
|
225
|
+
(_a = this.headerResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
226
|
+
this.headerResizeObserver = undefined;
|
|
227
|
+
}
|
|
177
228
|
componentDidRender() {
|
|
229
|
+
if (this.headerMeasurePending) {
|
|
230
|
+
this.headerMeasurePending = false;
|
|
231
|
+
this.measureHeaderTruncation();
|
|
232
|
+
}
|
|
178
233
|
// Auto-scroll parity: the resize tick grew the column (async @State render)
|
|
179
234
|
// and owes the container the same px of scroll. Here the DOM already has
|
|
180
235
|
// the new table width, so the advance can't clamp — width and scroll land
|
|
@@ -326,6 +381,29 @@ const CoDataTable = class {
|
|
|
326
381
|
handleRowDblClick(row, index) {
|
|
327
382
|
this.coRowDblClick.emit({ row, index });
|
|
328
383
|
}
|
|
384
|
+
/** Escritura guardada: misma referencia = sin re-render de la tabla. */
|
|
385
|
+
measureHeaderTruncation() {
|
|
386
|
+
const next = measureTruncatedHeaders(this.truncatedHeaders, this.headerLabelEls);
|
|
387
|
+
if (next !== this.truncatedHeaders)
|
|
388
|
+
this.truncatedHeaders = next;
|
|
389
|
+
}
|
|
390
|
+
/** ref del label: registra/observa al montar, limpia al desmontar (ref null). */
|
|
391
|
+
registerHeaderLabel(field, el) {
|
|
392
|
+
var _a, _b, _c;
|
|
393
|
+
const prev = this.headerLabelEls.get(field);
|
|
394
|
+
if (el) {
|
|
395
|
+
if (prev === el)
|
|
396
|
+
return;
|
|
397
|
+
if (prev)
|
|
398
|
+
(_a = this.headerResizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(prev);
|
|
399
|
+
this.headerLabelEls.set(field, el);
|
|
400
|
+
(_b = this.headerResizeObserver) === null || _b === void 0 ? void 0 : _b.observe(el);
|
|
401
|
+
}
|
|
402
|
+
else if (prev) {
|
|
403
|
+
(_c = this.headerResizeObserver) === null || _c === void 0 ? void 0 : _c.unobserve(prev);
|
|
404
|
+
this.headerLabelEls.delete(field);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
329
407
|
handleColumnPin(field, e) {
|
|
330
408
|
e.stopPropagation();
|
|
331
409
|
this.coColumnPin.emit({ field });
|
|
@@ -435,7 +513,7 @@ const CoDataTable = class {
|
|
|
435
513
|
: undefined }, index.h("span", { class: "co-data-table__th-content" }, index.h("span", { class: {
|
|
436
514
|
'co-data-table__pin-icon': true,
|
|
437
515
|
'co-data-table__pin-icon--active': !!col.sticky,
|
|
438
|
-
}, title: col.sticky ? 'Unpin column' : 'Pin column', onClick: (e) => this.handleColumnPin(col.field, e) }, index.h("co-icon", { name: "push-pin", size: 14, weight: col.sticky ? 'fill' : 'regular' })), col.sortable ? (index.h("button", { type: "button", class: "co-data-table__sort-button", "aria-label": `Sort by ${col.label}`, onClick: () => this.handleSort(col.field) }, index.h("span", { class: "co-data-table__th-label" }, col.label), this.renderSortIcon(col))) : (index.h("span", { class: "co-data-table__th-label" }, col.label)), col.filterable && (index.h("span", { class: {
|
|
516
|
+
}, title: col.sticky ? 'Unpin column' : 'Pin column', onClick: (e) => this.handleColumnPin(col.field, e) }, index.h("co-icon", { name: "push-pin", size: 14, weight: col.sticky ? 'fill' : 'regular' })), col.sortable ? (index.h("button", { type: "button", class: "co-data-table__sort-button", "aria-label": `Sort by ${col.label}`, onClick: () => this.handleSort(col.field) }, index.h("co-tooltip", { block: true, class: "co-data-table__th-tip", content: col.label, placement: "top", disabled: !this.truncatedHeaders[col.field] }, index.h("span", { class: "co-data-table__th-label", ref: (el) => this.registerHeaderLabel(col.field, el) }, col.label)), this.renderSortIcon(col))) : (index.h("co-tooltip", { block: true, class: "co-data-table__th-tip", content: col.label, placement: "top", disabled: !this.truncatedHeaders[col.field] }, index.h("span", { class: "co-data-table__th-label", ref: (el) => this.registerHeaderLabel(col.field, el) }, col.label))), col.filterable && (index.h("span", { class: {
|
|
439
517
|
'co-data-table__filter-icon': true,
|
|
440
518
|
'co-data-table__filter-icon--active': this.parsedFilteredFields.includes(col.field),
|
|
441
519
|
'co-data-table__filter-icon--indirect': !this.parsedFilteredFields.includes(col.field) && this.parsedIndirectFields.includes(col.field),
|
|
@@ -470,12 +548,12 @@ const CoDataTable = class {
|
|
|
470
548
|
: index.h("slot", { name: "empty-action" }))));
|
|
471
549
|
}
|
|
472
550
|
render() {
|
|
473
|
-
return (index.h("div", { key: '
|
|
551
|
+
return (index.h("div", { key: '6f71533676a2c66ae46b1ee9940b405744cef174', class: {
|
|
474
552
|
'co-data-table': true,
|
|
475
553
|
'co-data-table--resizing': this.resizingColumn !== null,
|
|
476
554
|
'co-data-table--loading': this.loading,
|
|
477
555
|
'co-data-table--empty': !this.loading && this.parsedRows.length === 0,
|
|
478
|
-
} }, index.h("div", { key: '
|
|
556
|
+
} }, index.h("div", { key: '8176dca34858e32ba2ce008ac44cf444ea952f08', class: "co-data-table__scroll" }, index.h("table", { key: 'f285815728244a7161d91dbed6ca87b158db4de6', class: "co-data-table__table", style: { width: `${this.getTableWidth()}px`, minWidth: '100%' } }, this.renderColgroup(), this.renderHeader(), index.h("slot", { key: '97f4ed9020a7bdb8b262313a10451e9aff754a8e' }), this.loading ? this.renderSkeletonBody() : null)), this.renderEmpty()));
|
|
479
557
|
}
|
|
480
558
|
get el() { return index.getElement(this); }
|
|
481
559
|
static get watchers() { return {
|
|
@@ -5,7 +5,7 @@ var requiredMark = require('./requiredMark-D-t-IPN0.js');
|
|
|
5
5
|
var dateI18n = require('./dateI18n-BK2qHqoC.js');
|
|
6
6
|
var dates = require('./dates-TQLHlFd2.js');
|
|
7
7
|
|
|
8
|
-
const coDateRangePickerCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14)}.co-date-range-picker{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-range-picker__label{font-size:var(--co-font-size-14);font-weight:400;color:var(--co-semantic-text-secondary);line-height:1;padding:0 var(--co-spacing-xs)}.co-date-range-picker co-popover{display:block;width:100%}.co-date-range-picker--s .co-date-range-picker__trigger{min-height:28px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--sm .co-date-range-picker__trigger{min-height:32px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--lg .co-date-range-picker__trigger{min-height:48px;padding:0 var(--co-spacing-lg)}.co-date-range-picker__trigger{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);width:100%;min-height:40px;padding:0 var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);cursor:pointer;color:var(--co-semantic-text-default);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-date-range-picker__trigger--flat{background:transparent;border-color:transparent}.co-date-range-picker__trigger--open{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-range-picker__trigger--disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker--invalid .co-date-range-picker__trigger{border-color:var(--co-semantic-status-error)}.co-date-range-picker__icon,.co-date-range-picker__caret{color:var(--co-semantic-text-muted);flex-shrink:0}.co-date-range-picker__trigger-text{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-date-range-picker__trigger-text--placeholder{color:var(--co-semantic-text-muted)}.co-date-range-picker__clear{background:none;border:0;padding:0;cursor:pointer;color:var(--co-semantic-text-muted);display:inline-flex;align-items:center;flex-shrink:0}.co-date-range-picker__clear:hover{color:var(--co-semantic-text-default)}.co-date-range-picker__panel{display:flex;flex-direction:column;gap:var(--co-spacing-md);padding:var(--co-spacing-md);min-width:280px}.co-date-range-picker__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--co-spacing-sm)}.co-date-range-picker__body{display:flex;gap:var(--co-spacing-md);align-items:flex-start}.co-date-range-picker__body--touch{flex-direction:column;align-items:stretch}.co-date-range-picker__body--touch .co-date-range-picker__presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-right:0;padding-right:0;border-bottom:1px solid var(--co-semantic-border-subtle);padding-bottom:var(--co-spacing-sm)}.co-date-range-picker__body--touch co-calendar{align-self:center}.co-date-range-picker__presets{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);min-width:120px;border-right:1px solid var(--co-semantic-border-subtle);padding-right:var(--co-spacing-md)}.co-date-range-picker__preset{text-align:left;background:none;border:0;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__preset:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-sm);padding-top:var(--co-spacing-sm);border-top:1px solid var(--co-semantic-border-subtle)}.co-date-range-picker__btn{padding:var(--co-spacing-xs) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;font-weight:500;cursor:pointer;border:0}.co-date-range-picker__btn--ghost{background:transparent;color:var(--co-semantic-text-default)}.co-date-range-picker__btn--ghost:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__btn--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary)}.co-date-range-picker__btn--primary:hover:not(:disabled){opacity:0.88}.co-date-range-picker__btn--primary:disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker__helper{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);font-size:var(--co-font-size-14);color:var(--co-semantic-text-muted);padding:0 var(--co-spacing-xs)}.co-date-range-picker__helper--error{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-range-picker{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-date-range-picker__label{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-range-picker__label{white-space:normal}:host([layout='horizontal']) .co-date-range-picker>:not(.co-date-range-picker__label){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)')}`;
|
|
8
|
+
const coDateRangePickerCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14)}.co-date-range-picker{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-range-picker__label{font-size:var(--co-font-size-14);font-weight:400;color:var(--co-semantic-text-secondary);line-height:1;padding:0 var(--co-spacing-xs)}.co-date-range-picker co-popover{display:block;width:100%}.co-date-range-picker--s .co-date-range-picker__trigger{min-height:28px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--sm .co-date-range-picker__trigger{min-height:32px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--lg .co-date-range-picker__trigger{min-height:48px;padding:0 var(--co-spacing-lg)}.co-date-range-picker__trigger{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);width:100%;min-height:40px;padding:0 var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);cursor:pointer;color:var(--co-semantic-text-default);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-date-range-picker__trigger--flat{background:transparent;border-color:transparent}.co-date-range-picker__trigger--open{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-range-picker__trigger--disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker--invalid .co-date-range-picker__trigger{border-color:var(--co-semantic-status-error)}.co-date-range-picker__icon,.co-date-range-picker__caret{color:var(--co-semantic-text-muted);flex-shrink:0}.co-date-range-picker__trigger-text{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-date-range-picker__trigger-text--placeholder{color:var(--co-semantic-text-muted)}.co-date-range-picker__clear{background:none;border:0;padding:0;cursor:pointer;color:var(--co-semantic-text-muted);display:inline-flex;align-items:center;flex-shrink:0}.co-date-range-picker__clear:hover{color:var(--co-semantic-text-default)}.co-date-range-picker__panel{display:flex;flex-direction:column;gap:var(--co-spacing-md);padding:var(--co-spacing-md);min-width:280px}.co-date-range-picker__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--co-spacing-sm)}.co-date-range-picker__body{display:flex;gap:var(--co-spacing-md);align-items:flex-start}.co-date-range-picker__body:not(.co-date-range-picker__body--touch) co-calendar{flex:1;min-width:0;--co-calendar-width:100%;--co-calendar-col:minmax(var(--co-calendar-day-size), 1fr);--co-calendar-day-width:100%}.co-date-range-picker__body--touch{flex-direction:column;align-items:stretch}.co-date-range-picker__body--touch .co-date-range-picker__presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-right:0;padding-right:0;border-bottom:1px solid var(--co-semantic-border-subtle);padding-bottom:var(--co-spacing-sm)}.co-date-range-picker__body--touch co-calendar{align-self:center}.co-date-range-picker__presets{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);min-width:120px;border-right:1px solid var(--co-semantic-border-subtle);padding-right:var(--co-spacing-md)}.co-date-range-picker__preset{text-align:left;background:none;border:0;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__preset:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-sm);padding-top:var(--co-spacing-sm);border-top:1px solid var(--co-semantic-border-subtle)}.co-date-range-picker__btn{padding:var(--co-spacing-xs) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;font-weight:500;cursor:pointer;border:0}.co-date-range-picker__btn--ghost{background:transparent;color:var(--co-semantic-text-default)}.co-date-range-picker__btn--ghost:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__btn--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary)}.co-date-range-picker__btn--primary:hover:not(:disabled){opacity:0.88}.co-date-range-picker__btn--primary:disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker__helper{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);font-size:var(--co-font-size-14);color:var(--co-semantic-text-muted);padding:0 var(--co-spacing-xs)}.co-date-range-picker__helper--error{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-range-picker{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-date-range-picker__label{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-range-picker__label{white-space:normal}:host([layout='horizontal']) .co-date-range-picker>:not(.co-date-range-picker__label){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)')}`;
|
|
9
9
|
|
|
10
10
|
const CoDateRangePicker = class {
|
|
11
11
|
constructor(hostRef) {
|
|
@@ -276,6 +276,8 @@ const CoDateRangePicker = class {
|
|
|
276
276
|
return `${f} → ${to}`;
|
|
277
277
|
if (f)
|
|
278
278
|
return `${f} → …`;
|
|
279
|
+
if (to)
|
|
280
|
+
return `… → ${to}`; // solo fin (p. ej. un ticket con vencimiento y sin inicio): no ocultar el dato
|
|
279
281
|
return this.placeholder || t.setDate; // `||`: empty string → localized default
|
|
280
282
|
}
|
|
281
283
|
presetItems(t) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-MDAnKsze.js');
|
|
4
4
|
var dateI18n = require('./dateI18n-BK2qHqoC.js');
|
|
5
|
-
var normalizeText = require('./normalizeText-
|
|
5
|
+
var normalizeText = require('./normalizeText-D9rlJWZa.js');
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Built-in UI string dictionary for co-emoji-picker (chrome + aria labels +
|