@actabldesign/bellhop-core 0.0.3
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/README.md +116 -0
- package/bellhop-core/bellhop-core.css +7 -0
- package/bellhop-core/bellhop-core.esm.js +2 -0
- package/bellhop-core/bellhop-core.esm.js.map +1 -0
- package/bellhop-core/bh-accordion-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-accordion.entry.esm.js.map +1 -0
- package/bellhop-core/bh-appbar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-autocomplete-menu.bh-tag.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar-add.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar-stacked.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-badge-dot.bh-breadcrumbs.entry.esm.js.map +1 -0
- package/bellhop-core/bh-badge.entry.esm.js.map +1 -0
- package/bellhop-core/bh-bar-chart.entry.esm.js.map +1 -0
- package/bellhop-core/bh-button-icon.entry.esm.js.map +1 -0
- package/bellhop-core/bh-button.bh-loader-spinner.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card-footer.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card-header.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card.entry.esm.js.map +1 -0
- package/bellhop-core/bh-chart-tooltip.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox-group-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox-group.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox.entry.esm.js.map +1 -0
- package/bellhop-core/bh-container-footer.entry.esm.js.map +1 -0
- package/bellhop-core/bh-container.entry.esm.js.map +1 -0
- package/bellhop-core/bh-data-grid.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-picker-content.bh-picker-menu.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-picker.bh-empty-state.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-range-picker-content.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-range-picker.entry.esm.js.map +1 -0
- package/bellhop-core/bh-dropdown-menu.entry.esm.js.map +1 -0
- package/bellhop-core/bh-dropdown.bh-logo-box.bh-nav-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-featured-icon.entry.esm.js.map +1 -0
- package/bellhop-core/bh-illustrations.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-autocomplete.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-number.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-password.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-text.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-verification.entry.esm.js.map +1 -0
- package/bellhop-core/bh-label.bh-tooltip.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal-actions.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal-header.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal.entry.esm.js.map +1 -0
- package/bellhop-core/bh-month-picker-content.entry.esm.js.map +1 -0
- package/bellhop-core/bh-month-picker.entry.esm.js.map +1 -0
- package/bellhop-core/bh-notification.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation-child.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation.entry.esm.js.map +1 -0
- package/bellhop-core/bh-pie-chart.entry.esm.js.map +1 -0
- package/bellhop-core/bh-popover.entry.esm.js.map +1 -0
- package/bellhop-core/bh-product-switcher.entry.esm.js.map +1 -0
- package/bellhop-core/bh-property-switcher.entry.esm.js.map +1 -0
- package/bellhop-core/bh-radio-button.entry.esm.js.map +1 -0
- package/bellhop-core/bh-sidebar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-skeleton-loader.entry.esm.js.map +1 -0
- package/bellhop-core/bh-tab-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-tabs.entry.esm.js.map +1 -0
- package/bellhop-core/bh-textarea.entry.esm.js.map +1 -0
- package/bellhop-core/bh-toggle.entry.esm.js.map +1 -0
- package/bellhop-core/bh-trend-chart.entry.esm.js.map +1 -0
- package/bellhop-core/index.esm.js +2 -0
- package/bellhop-core/index.esm.js.map +1 -0
- package/bellhop-core/loader.esm.js.map +1 -0
- package/bellhop-core/p-051a25aa.entry.js +2 -0
- package/bellhop-core/p-051a25aa.entry.js.map +1 -0
- package/bellhop-core/p-0579ce8d.entry.js +2 -0
- package/bellhop-core/p-0579ce8d.entry.js.map +1 -0
- package/bellhop-core/p-05c13d72.entry.js +2 -0
- package/bellhop-core/p-05c13d72.entry.js.map +1 -0
- package/bellhop-core/p-0e013732.entry.js +2 -0
- package/bellhop-core/p-0e013732.entry.js.map +1 -0
- package/bellhop-core/p-1960c2d0.entry.js +2 -0
- package/bellhop-core/p-1960c2d0.entry.js.map +1 -0
- package/bellhop-core/p-2735c901.entry.js +2 -0
- package/bellhop-core/p-2735c901.entry.js.map +1 -0
- package/bellhop-core/p-2c80bc07.entry.js +2 -0
- package/bellhop-core/p-2c80bc07.entry.js.map +1 -0
- package/bellhop-core/p-2cc0c4cf.entry.js +2 -0
- package/bellhop-core/p-2cc0c4cf.entry.js.map +1 -0
- package/bellhop-core/p-3038cc1a.entry.js +2 -0
- package/bellhop-core/p-3038cc1a.entry.js.map +1 -0
- package/bellhop-core/p-324cad08.entry.js +2 -0
- package/bellhop-core/p-324cad08.entry.js.map +1 -0
- package/bellhop-core/p-3bf098fd.entry.js +2 -0
- package/bellhop-core/p-3bf098fd.entry.js.map +1 -0
- package/bellhop-core/p-3c739eea.entry.js +2 -0
- package/bellhop-core/p-3c739eea.entry.js.map +1 -0
- package/bellhop-core/p-4c71a0b6.entry.js +2 -0
- package/bellhop-core/p-4c71a0b6.entry.js.map +1 -0
- package/bellhop-core/p-5a220f12.entry.js +2 -0
- package/bellhop-core/p-5a220f12.entry.js.map +1 -0
- package/bellhop-core/p-5d844699.entry.js +2 -0
- package/bellhop-core/p-5d844699.entry.js.map +1 -0
- package/bellhop-core/p-5e8d2fc0.entry.js +2 -0
- package/bellhop-core/p-5e8d2fc0.entry.js.map +1 -0
- package/bellhop-core/p-71391701.entry.js +2 -0
- package/bellhop-core/p-71391701.entry.js.map +1 -0
- package/bellhop-core/p-7e67af77.entry.js +2 -0
- package/bellhop-core/p-7e67af77.entry.js.map +1 -0
- package/bellhop-core/p-7e908d03.entry.js +2 -0
- package/bellhop-core/p-7e908d03.entry.js.map +1 -0
- package/bellhop-core/p-8053e945.entry.js +2 -0
- package/bellhop-core/p-8053e945.entry.js.map +1 -0
- package/bellhop-core/p-852564d6.entry.js +2 -0
- package/bellhop-core/p-852564d6.entry.js.map +1 -0
- package/bellhop-core/p-86bbff38.entry.js +2 -0
- package/bellhop-core/p-86bbff38.entry.js.map +1 -0
- package/bellhop-core/p-87d1ed92.entry.js +2 -0
- package/bellhop-core/p-87d1ed92.entry.js.map +1 -0
- package/bellhop-core/p-94156013.entry.js +2 -0
- package/bellhop-core/p-94156013.entry.js.map +1 -0
- package/bellhop-core/p-954b9c38.entry.js +2 -0
- package/bellhop-core/p-954b9c38.entry.js.map +1 -0
- package/bellhop-core/p-9693180e.entry.js +2 -0
- package/bellhop-core/p-9693180e.entry.js.map +1 -0
- package/bellhop-core/p-98a336f7.entry.js +2 -0
- package/bellhop-core/p-98a336f7.entry.js.map +1 -0
- package/bellhop-core/p-98cc729f.entry.js +2 -0
- package/bellhop-core/p-98cc729f.entry.js.map +1 -0
- package/bellhop-core/p-9e7e64dc.entry.js +2 -0
- package/bellhop-core/p-9e7e64dc.entry.js.map +1 -0
- package/bellhop-core/p-9fe1fd2e.entry.js +2 -0
- package/bellhop-core/p-9fe1fd2e.entry.js.map +1 -0
- package/bellhop-core/p-CPgx0iFq.js +2 -0
- package/bellhop-core/p-CPgx0iFq.js.map +1 -0
- package/bellhop-core/p-DANVSPII.js +2 -0
- package/bellhop-core/p-DANVSPII.js.map +1 -0
- package/bellhop-core/p-DKeuA-TM.js +2 -0
- package/bellhop-core/p-DKeuA-TM.js.map +1 -0
- package/bellhop-core/p-DtVghh5W.js +3 -0
- package/bellhop-core/p-DtVghh5W.js.map +1 -0
- package/bellhop-core/p-a901ae33.entry.js +2 -0
- package/bellhop-core/p-a901ae33.entry.js.map +1 -0
- package/bellhop-core/p-abd6ade0.entry.js +2 -0
- package/bellhop-core/p-abd6ade0.entry.js.map +1 -0
- package/bellhop-core/p-abf68de4.entry.js +2 -0
- package/bellhop-core/p-abf68de4.entry.js.map +1 -0
- package/bellhop-core/p-ad15a4b9.entry.js +2 -0
- package/bellhop-core/p-ad15a4b9.entry.js.map +1 -0
- package/bellhop-core/p-b1affa8d.entry.js +2 -0
- package/bellhop-core/p-b1affa8d.entry.js.map +1 -0
- package/bellhop-core/p-b4104ae5.entry.js +2 -0
- package/bellhop-core/p-b4104ae5.entry.js.map +1 -0
- package/bellhop-core/p-c194883a.entry.js +2 -0
- package/bellhop-core/p-c194883a.entry.js.map +1 -0
- package/bellhop-core/p-c48ca590.entry.js +2 -0
- package/bellhop-core/p-c48ca590.entry.js.map +1 -0
- package/bellhop-core/p-c82e73aa.entry.js +2 -0
- package/bellhop-core/p-c82e73aa.entry.js.map +1 -0
- package/bellhop-core/p-d14192df.entry.js +2 -0
- package/bellhop-core/p-d14192df.entry.js.map +1 -0
- package/bellhop-core/p-d5fb8d0f.entry.js +2 -0
- package/bellhop-core/p-d5fb8d0f.entry.js.map +1 -0
- package/bellhop-core/p-d9106838.entry.js +2 -0
- package/bellhop-core/p-d9106838.entry.js.map +1 -0
- package/bellhop-core/p-d941cdba.entry.js +2 -0
- package/bellhop-core/p-d941cdba.entry.js.map +1 -0
- package/bellhop-core/p-d94b296e.entry.js +2 -0
- package/bellhop-core/p-d94b296e.entry.js.map +1 -0
- package/bellhop-core/p-df2728a1.entry.js +2 -0
- package/bellhop-core/p-df2728a1.entry.js.map +1 -0
- package/bellhop-core/p-df45027c.entry.js +2 -0
- package/bellhop-core/p-df45027c.entry.js.map +1 -0
- package/bellhop-core/p-dfe0574c.entry.js +2 -0
- package/bellhop-core/p-dfe0574c.entry.js.map +1 -0
- package/bellhop-core/p-e3c5d1e3.entry.js +2 -0
- package/bellhop-core/p-e3c5d1e3.entry.js.map +1 -0
- package/bellhop-core/p-e3d79592.entry.js +2 -0
- package/bellhop-core/p-e3d79592.entry.js.map +1 -0
- package/bellhop-core/p-e44539e9.entry.js +2 -0
- package/bellhop-core/p-e44539e9.entry.js.map +1 -0
- package/bellhop-core/p-e5b9a3de.entry.js +2 -0
- package/bellhop-core/p-e5b9a3de.entry.js.map +1 -0
- package/bellhop-core/p-e8e0739d.entry.js +2 -0
- package/bellhop-core/p-e8e0739d.entry.js.map +1 -0
- package/bellhop-core/p-ebb2492c.entry.js +2 -0
- package/bellhop-core/p-ebb2492c.entry.js.map +1 -0
- package/bellhop-core/p-ec894e11.entry.js +2 -0
- package/bellhop-core/p-ec894e11.entry.js.map +1 -0
- package/bellhop-core/p-f0cfc744.entry.js +2 -0
- package/bellhop-core/p-f0cfc744.entry.js.map +1 -0
- package/bellhop-core/p-f261bdae.entry.js +2 -0
- package/bellhop-core/p-f261bdae.entry.js.map +1 -0
- package/bellhop-core/p-f4c4c70d.entry.js +2 -0
- package/bellhop-core/p-f4c4c70d.entry.js.map +1 -0
- package/cjs/bellhop-core.cjs.js +25 -0
- package/cjs/bellhop-core.cjs.js.map +1 -0
- package/cjs/bh-accordion-item.cjs.entry.js +82 -0
- package/cjs/bh-accordion-item.entry.cjs.js.map +1 -0
- package/cjs/bh-accordion.cjs.entry.js +119 -0
- package/cjs/bh-accordion.entry.cjs.js.map +1 -0
- package/cjs/bh-appbar.cjs.entry.js +83 -0
- package/cjs/bh-appbar.entry.cjs.js.map +1 -0
- package/cjs/bh-autocomplete-menu.bh-tag.entry.cjs.js.map +1 -0
- package/cjs/bh-autocomplete-menu_2.cjs.entry.js +177 -0
- package/cjs/bh-avatar-add.cjs.entry.js +75 -0
- package/cjs/bh-avatar-add.entry.cjs.js.map +1 -0
- package/cjs/bh-avatar-stacked.cjs.entry.js +94 -0
- package/cjs/bh-avatar-stacked.entry.cjs.js.map +1 -0
- package/cjs/bh-avatar.cjs.entry.js +93 -0
- package/cjs/bh-avatar.entry.cjs.js.map +1 -0
- package/cjs/bh-badge-dot.bh-breadcrumbs.entry.cjs.js.map +1 -0
- package/cjs/bh-badge-dot_2.cjs.entry.js +134 -0
- package/cjs/bh-badge.cjs.entry.js +71 -0
- package/cjs/bh-badge.entry.cjs.js.map +1 -0
- package/cjs/bh-bar-chart.cjs.entry.js +164 -0
- package/cjs/bh-bar-chart.entry.cjs.js.map +1 -0
- package/cjs/bh-button-BKVcf-nK.js +117 -0
- package/cjs/bh-button-BKVcf-nK.js.map +1 -0
- package/cjs/bh-button-icon.cjs.entry.js +74 -0
- package/cjs/bh-button-icon.entry.cjs.js.map +1 -0
- package/cjs/bh-button.bh-loader-spinner.entry.cjs.js.map +1 -0
- package/cjs/bh-button_2.cjs.entry.js +47 -0
- package/cjs/bh-card-footer.cjs.entry.js +30 -0
- package/cjs/bh-card-footer.entry.cjs.js.map +1 -0
- package/cjs/bh-card-header.cjs.entry.js +74 -0
- package/cjs/bh-card-header.entry.cjs.js.map +1 -0
- package/cjs/bh-card.cjs.entry.js +48 -0
- package/cjs/bh-card.entry.cjs.js.map +1 -0
- package/cjs/bh-chart-tooltip.cjs.entry.js +57 -0
- package/cjs/bh-chart-tooltip.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox-group-item.cjs.entry.js +142 -0
- package/cjs/bh-checkbox-group-item.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox-group.cjs.entry.js +100 -0
- package/cjs/bh-checkbox-group.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox.cjs.entry.js +144 -0
- package/cjs/bh-checkbox.entry.cjs.js.map +1 -0
- package/cjs/bh-container-footer.cjs.entry.js +38 -0
- package/cjs/bh-container-footer.entry.cjs.js.map +1 -0
- package/cjs/bh-container.cjs.entry.js +26 -0
- package/cjs/bh-container.entry.cjs.js.map +1 -0
- package/cjs/bh-data-grid.cjs.entry.js +812 -0
- package/cjs/bh-data-grid.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker-content.bh-picker-menu.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker-content_2.cjs.entry.js +525 -0
- package/cjs/bh-date-picker.bh-empty-state.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker_2.cjs.entry.js +252 -0
- package/cjs/bh-date-range-picker-content.cjs.entry.js +151 -0
- package/cjs/bh-date-range-picker-content.entry.cjs.js.map +1 -0
- package/cjs/bh-date-range-picker.cjs.entry.js +167 -0
- package/cjs/bh-date-range-picker.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown-menu.cjs.entry.js +114 -0
- package/cjs/bh-dropdown-menu.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown.bh-logo-box.bh-nav-item.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown_3.cjs.entry.js +307 -0
- package/cjs/bh-featured-icon.cjs.entry.js +41 -0
- package/cjs/bh-featured-icon.entry.cjs.js.map +1 -0
- package/cjs/bh-illustrations.cjs.entry.js +65 -0
- package/cjs/bh-illustrations.entry.cjs.js.map +1 -0
- package/cjs/bh-input-autocomplete.cjs.entry.js +342 -0
- package/cjs/bh-input-autocomplete.entry.cjs.js.map +1 -0
- package/cjs/bh-input-number.cjs.entry.js +307 -0
- package/cjs/bh-input-number.entry.cjs.js.map +1 -0
- package/cjs/bh-input-password.cjs.entry.js +182 -0
- package/cjs/bh-input-password.entry.cjs.js.map +1 -0
- package/cjs/bh-input-text.cjs.entry.js +192 -0
- package/cjs/bh-input-text.entry.cjs.js.map +1 -0
- package/cjs/bh-input-verification.cjs.entry.js +203 -0
- package/cjs/bh-input-verification.entry.cjs.js.map +1 -0
- package/cjs/bh-label-DBqucnaO.js +110 -0
- package/cjs/bh-label-DBqucnaO.js.map +1 -0
- package/cjs/bh-label.bh-tooltip.entry.cjs.js.map +1 -0
- package/cjs/bh-label_2.cjs.entry.js +48 -0
- package/cjs/bh-modal-actions.cjs.entry.js +66 -0
- package/cjs/bh-modal-actions.entry.cjs.js.map +1 -0
- package/cjs/bh-modal-header.cjs.entry.js +76 -0
- package/cjs/bh-modal-header.entry.cjs.js.map +1 -0
- package/cjs/bh-modal.cjs.entry.js +56 -0
- package/cjs/bh-modal.entry.cjs.js.map +1 -0
- package/cjs/bh-month-picker-content.cjs.entry.js +189 -0
- package/cjs/bh-month-picker-content.entry.cjs.js.map +1 -0
- package/cjs/bh-month-picker.cjs.entry.js +152 -0
- package/cjs/bh-month-picker.entry.cjs.js.map +1 -0
- package/cjs/bh-notification.cjs.entry.js +128 -0
- package/cjs/bh-notification.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-child.cjs.entry.js +48 -0
- package/cjs/bh-page-navigation-child.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +146 -0
- package/cjs/bh-page-navigation.cjs.entry.js +72 -0
- package/cjs/bh-page-navigation.entry.cjs.js.map +1 -0
- package/cjs/bh-pie-chart.cjs.entry.js +157 -0
- package/cjs/bh-pie-chart.entry.cjs.js.map +1 -0
- package/cjs/bh-popover.cjs.entry.js +100 -0
- package/cjs/bh-popover.entry.cjs.js.map +1 -0
- package/cjs/bh-product-switcher.cjs.entry.js +102 -0
- package/cjs/bh-product-switcher.entry.cjs.js.map +1 -0
- package/cjs/bh-property-switcher.cjs.entry.js +231 -0
- package/cjs/bh-property-switcher.entry.cjs.js.map +1 -0
- package/cjs/bh-radio-button.cjs.entry.js +124 -0
- package/cjs/bh-radio-button.entry.cjs.js.map +1 -0
- package/cjs/bh-sidebar.cjs.entry.js +110 -0
- package/cjs/bh-sidebar.entry.cjs.js.map +1 -0
- package/cjs/bh-skeleton-loader.cjs.entry.js +34 -0
- package/cjs/bh-skeleton-loader.entry.cjs.js.map +1 -0
- package/cjs/bh-tab-item.cjs.entry.js +54 -0
- package/cjs/bh-tab-item.entry.cjs.js.map +1 -0
- package/cjs/bh-tabs.cjs.entry.js +52 -0
- package/cjs/bh-tabs.entry.cjs.js.map +1 -0
- package/cjs/bh-textarea.cjs.entry.js +161 -0
- package/cjs/bh-textarea.entry.cjs.js.map +1 -0
- package/cjs/bh-toggle.cjs.entry.js +141 -0
- package/cjs/bh-toggle.entry.cjs.js.map +1 -0
- package/cjs/bh-trend-chart.cjs.entry.js +121 -0
- package/cjs/bh-trend-chart.entry.cjs.js.map +1 -0
- package/cjs/form-9mbajZ3y.js +64 -0
- package/cjs/form-9mbajZ3y.js.map +1 -0
- package/cjs/index-tZqSQc8E.js +1951 -0
- package/cjs/index-tZqSQc8E.js.map +1 -0
- package/cjs/index.cjs.js +32 -0
- package/cjs/index.cjs.js.map +1 -0
- package/cjs/loader.cjs.js +13 -0
- package/cjs/loader.cjs.js.map +1 -0
- package/collection/collection-manifest.json +77 -0
- package/collection/components/bh-accordion/bh-accordion.css +30 -0
- package/collection/components/bh-accordion/bh-accordion.js +227 -0
- package/collection/components/bh-accordion/bh-accordion.js.map +1 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.css +119 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.js +207 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.js.map +1 -0
- package/collection/components/bh-appbar/bh-appbar.css +80 -0
- package/collection/components/bh-appbar/bh-appbar.js +270 -0
- package/collection/components/bh-appbar/bh-appbar.js.map +1 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.css +142 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js +301 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js.map +1 -0
- package/collection/components/bh-avatar/bh-avatar.css +257 -0
- package/collection/components/bh-avatar/bh-avatar.js +266 -0
- package/collection/components/bh-avatar/bh-avatar.js.map +1 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.css +145 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.js +194 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.js.map +1 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.css +29 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.js +211 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.js.map +1 -0
- package/collection/components/bh-badge/bh-badge.css +348 -0
- package/collection/components/bh-badge/bh-badge.js +250 -0
- package/collection/components/bh-badge/bh-badge.js.map +1 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.css +77 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.js +113 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.js.map +1 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.css +363 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.js +316 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.js.map +1 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.css +158 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.js +231 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.js.map +1 -0
- package/collection/components/bh-button/bh-button.css +467 -0
- package/collection/components/bh-button/bh-button.js +350 -0
- package/collection/components/bh-button/bh-button.js.map +1 -0
- package/collection/components/bh-button-icon/bh-button-icon.css +187 -0
- package/collection/components/bh-button-icon/bh-button-icon.js +259 -0
- package/collection/components/bh-button-icon/bh-button-icon.js.map +1 -0
- package/collection/components/bh-card/bh-card.css +57 -0
- package/collection/components/bh-card/bh-card.js +139 -0
- package/collection/components/bh-card/bh-card.js.map +1 -0
- package/collection/components/bh-card-footer/bh-card-footer.css +54 -0
- package/collection/components/bh-card-footer/bh-card-footer.js +81 -0
- package/collection/components/bh-card-footer/bh-card-footer.js.map +1 -0
- package/collection/components/bh-card-header/bh-card-header.css +68 -0
- package/collection/components/bh-card-header/bh-card-header.js +348 -0
- package/collection/components/bh-card-header/bh-card-header.js.map +1 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.css +301 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.js +226 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.js.map +1 -0
- package/collection/components/bh-checkbox/bh-checkbox.css +179 -0
- package/collection/components/bh-checkbox/bh-checkbox.js +378 -0
- package/collection/components/bh-checkbox/bh-checkbox.js.map +1 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.css +10 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.js +218 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.js.map +1 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.css +118 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js +402 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js.map +1 -0
- package/collection/components/bh-container/bh-container.css +21 -0
- package/collection/components/bh-container/bh-container.js +51 -0
- package/collection/components/bh-container/bh-container.js.map +1 -0
- package/collection/components/bh-container-footer/bh-container-footer.css +22 -0
- package/collection/components/bh-container-footer/bh-container-footer.js +106 -0
- package/collection/components/bh-container-footer/bh-container-footer.js.map +1 -0
- package/collection/components/bh-data-grid/bh-data-grid.css +602 -0
- package/collection/components/bh-data-grid/bh-data-grid.js +1488 -0
- package/collection/components/bh-data-grid/bh-data-grid.js.map +1 -0
- package/collection/components/bh-date-picker/bh-date-picker.css +251 -0
- package/collection/components/bh-date-picker/bh-date-picker.js +485 -0
- package/collection/components/bh-date-picker/bh-date-picker.js.map +1 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.css +541 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.js +711 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.js.map +1 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.css +247 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.js +528 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.js.map +1 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.css +275 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js +338 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js.map +1 -0
- package/collection/components/bh-dropdown/bh-dropdown.css +64 -0
- package/collection/components/bh-dropdown/bh-dropdown.js +512 -0
- package/collection/components/bh-dropdown/bh-dropdown.js.map +1 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.css +227 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.js +262 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.js.map +1 -0
- package/collection/components/bh-empty-state/bh-empty-state.css +89 -0
- package/collection/components/bh-empty-state/bh-empty-state.js +306 -0
- package/collection/components/bh-empty-state/bh-empty-state.js.map +1 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.css +198 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.js +144 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.js.map +1 -0
- package/collection/components/bh-illustrations/bh-illustrations.css +328 -0
- package/collection/components/bh-illustrations/bh-illustrations.js +174 -0
- package/collection/components/bh-illustrations/bh-illustrations.js.map +1 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.css +301 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.js +872 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.js.map +1 -0
- package/collection/components/bh-input-number/bh-input-number.css +192 -0
- package/collection/components/bh-input-number/bh-input-number.js +818 -0
- package/collection/components/bh-input-number/bh-input-number.js.map +1 -0
- package/collection/components/bh-input-password/bh-input-password.css +164 -0
- package/collection/components/bh-input-password/bh-input-password.js +581 -0
- package/collection/components/bh-input-password/bh-input-password.js.map +1 -0
- package/collection/components/bh-input-text/bh-input-text.css +153 -0
- package/collection/components/bh-input-text/bh-input-text.js +696 -0
- package/collection/components/bh-input-text/bh-input-text.js.map +1 -0
- package/collection/components/bh-input-verification/bh-input-verification.css +125 -0
- package/collection/components/bh-input-verification/bh-input-verification.js +523 -0
- package/collection/components/bh-input-verification/bh-input-verification.js.map +1 -0
- package/collection/components/bh-label/bh-label.css +143 -0
- package/collection/components/bh-label/bh-label.js +302 -0
- package/collection/components/bh-label/bh-label.js.map +1 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.css +153 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.js +182 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.js.map +1 -0
- package/collection/components/bh-logo-box/bh-logo-box.css +85 -0
- package/collection/components/bh-logo-box/bh-logo-box.js +184 -0
- package/collection/components/bh-logo-box/bh-logo-box.js.map +1 -0
- package/collection/components/bh-modal/bh-modal.css +87 -0
- package/collection/components/bh-modal/bh-modal.js +144 -0
- package/collection/components/bh-modal/bh-modal.js.map +1 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.css +124 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.js +208 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.js.map +1 -0
- package/collection/components/bh-modal-header/bh-modal-header.css +106 -0
- package/collection/components/bh-modal-header/bh-modal-header.js +275 -0
- package/collection/components/bh-modal-header/bh-modal-header.js.map +1 -0
- package/collection/components/bh-month-picker/bh-month-picker.css +251 -0
- package/collection/components/bh-month-picker/bh-month-picker.js +444 -0
- package/collection/components/bh-month-picker/bh-month-picker.js.map +1 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.css +406 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.js +437 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.js.map +1 -0
- package/collection/components/bh-notification/bh-notification.css +117 -0
- package/collection/components/bh-notification/bh-notification.js +324 -0
- package/collection/components/bh-notification/bh-notification.js.map +1 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.css +253 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.js +146 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.js.map +1 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.css +281 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.js +148 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.js.map +1 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.css +372 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js +268 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js.map +1 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.css +294 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js +126 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js.map +1 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.css +284 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.js +470 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.js.map +1 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.css +292 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.js +280 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.js.map +1 -0
- package/collection/components/bh-popover/bh-popover.css +310 -0
- package/collection/components/bh-popover/bh-popover.js +326 -0
- package/collection/components/bh-popover/bh-popover.js.map +1 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.css +128 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.js +226 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.js.map +1 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.css +346 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.js +360 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.js.map +1 -0
- package/collection/components/bh-radio-button/bh-radio-button.css +159 -0
- package/collection/components/bh-radio-button/bh-radio-button.js +292 -0
- package/collection/components/bh-radio-button/bh-radio-button.js.map +1 -0
- package/collection/components/bh-sidebar/bh-nav-item.css +114 -0
- package/collection/components/bh-sidebar/bh-nav-item.js +157 -0
- package/collection/components/bh-sidebar/bh-nav-item.js.map +1 -0
- package/collection/components/bh-sidebar/bh-sidebar.css +178 -0
- package/collection/components/bh-sidebar/bh-sidebar.js +344 -0
- package/collection/components/bh-sidebar/bh-sidebar.js.map +1 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.css +50 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.js +99 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.js.map +1 -0
- package/collection/components/bh-tab-item/bh-tab-item.css +132 -0
- package/collection/components/bh-tab-item/bh-tab-item.js +158 -0
- package/collection/components/bh-tab-item/bh-tab-item.js.map +1 -0
- package/collection/components/bh-tabs/bh-tabs.css +71 -0
- package/collection/components/bh-tabs/bh-tabs.js +178 -0
- package/collection/components/bh-tabs/bh-tabs.js.map +1 -0
- package/collection/components/bh-tag/bh-tag.css +180 -0
- package/collection/components/bh-tag/bh-tag.js +238 -0
- package/collection/components/bh-tag/bh-tag.js.map +1 -0
- package/collection/components/bh-textarea/bh-textarea.css +115 -0
- package/collection/components/bh-textarea/bh-textarea.js +569 -0
- package/collection/components/bh-textarea/bh-textarea.js.map +1 -0
- package/collection/components/bh-toggle/bh-toggle.css +290 -0
- package/collection/components/bh-toggle/bh-toggle.js +369 -0
- package/collection/components/bh-toggle/bh-toggle.js.map +1 -0
- package/collection/components/bh-tooltip/bh-tooltip.css +88 -0
- package/collection/components/bh-tooltip/bh-tooltip.js +162 -0
- package/collection/components/bh-tooltip/bh-tooltip.js.map +1 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.css +299 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.js +256 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.js.map +1 -0
- package/collection/index.js +22 -0
- package/collection/index.js.map +1 -0
- package/collection/utils/form.js +68 -0
- package/collection/utils/form.js.map +1 -0
- package/components/bh-accordion-item.d.ts +11 -0
- package/components/bh-accordion-item.js +111 -0
- package/components/bh-accordion-item.js.map +1 -0
- package/components/bh-accordion.d.ts +11 -0
- package/components/bh-accordion.js +147 -0
- package/components/bh-accordion.js.map +1 -0
- package/components/bh-appbar.d.ts +11 -0
- package/components/bh-appbar.js +128 -0
- package/components/bh-appbar.js.map +1 -0
- package/components/bh-autocomplete-menu.d.ts +11 -0
- package/components/bh-autocomplete-menu.js +9 -0
- package/components/bh-autocomplete-menu.js.map +1 -0
- package/components/bh-avatar-add.d.ts +11 -0
- package/components/bh-avatar-add.js +9 -0
- package/components/bh-avatar-add.js.map +1 -0
- package/components/bh-avatar-stacked.d.ts +11 -0
- package/components/bh-avatar-stacked.js +141 -0
- package/components/bh-avatar-stacked.js.map +1 -0
- package/components/bh-avatar.d.ts +11 -0
- package/components/bh-avatar.js +9 -0
- package/components/bh-avatar.js.map +1 -0
- package/components/bh-badge-dot.d.ts +11 -0
- package/components/bh-badge-dot.js +9 -0
- package/components/bh-badge-dot.js.map +1 -0
- package/components/bh-badge.d.ts +11 -0
- package/components/bh-badge.js +9 -0
- package/components/bh-badge.js.map +1 -0
- package/components/bh-bar-chart.d.ts +11 -0
- package/components/bh-bar-chart.js +205 -0
- package/components/bh-bar-chart.js.map +1 -0
- package/components/bh-breadcrumbs.d.ts +11 -0
- package/components/bh-breadcrumbs.js +9 -0
- package/components/bh-breadcrumbs.js.map +1 -0
- package/components/bh-button-icon.d.ts +11 -0
- package/components/bh-button-icon.js +9 -0
- package/components/bh-button-icon.js.map +1 -0
- package/components/bh-button.d.ts +11 -0
- package/components/bh-button.js +9 -0
- package/components/bh-button.js.map +1 -0
- package/components/bh-card-footer.d.ts +11 -0
- package/components/bh-card-footer.js +9 -0
- package/components/bh-card-footer.js.map +1 -0
- package/components/bh-card-header.d.ts +11 -0
- package/components/bh-card-header.js +9 -0
- package/components/bh-card-header.js.map +1 -0
- package/components/bh-card.d.ts +11 -0
- package/components/bh-card.js +9 -0
- package/components/bh-card.js.map +1 -0
- package/components/bh-chart-tooltip.d.ts +11 -0
- package/components/bh-chart-tooltip.js +9 -0
- package/components/bh-chart-tooltip.js.map +1 -0
- package/components/bh-checkbox-group-item.d.ts +11 -0
- package/components/bh-checkbox-group-item.js +9 -0
- package/components/bh-checkbox-group-item.js.map +1 -0
- package/components/bh-checkbox-group.d.ts +11 -0
- package/components/bh-checkbox-group.js +9 -0
- package/components/bh-checkbox-group.js.map +1 -0
- package/components/bh-checkbox.d.ts +11 -0
- package/components/bh-checkbox.js +9 -0
- package/components/bh-checkbox.js.map +1 -0
- package/components/bh-container-footer.d.ts +11 -0
- package/components/bh-container-footer.js +74 -0
- package/components/bh-container-footer.js.map +1 -0
- package/components/bh-container.d.ts +11 -0
- package/components/bh-container.js +49 -0
- package/components/bh-container.js.map +1 -0
- package/components/bh-data-grid.d.ts +11 -0
- package/components/bh-data-grid.js +9 -0
- package/components/bh-data-grid.js.map +1 -0
- package/components/bh-date-picker-content.d.ts +11 -0
- package/components/bh-date-picker-content.js +9 -0
- package/components/bh-date-picker-content.js.map +1 -0
- package/components/bh-date-picker.d.ts +11 -0
- package/components/bh-date-picker.js +9 -0
- package/components/bh-date-picker.js.map +1 -0
- package/components/bh-date-range-picker-content.d.ts +11 -0
- package/components/bh-date-range-picker-content.js +9 -0
- package/components/bh-date-range-picker-content.js.map +1 -0
- package/components/bh-date-range-picker.d.ts +11 -0
- package/components/bh-date-range-picker.js +269 -0
- package/components/bh-date-range-picker.js.map +1 -0
- package/components/bh-dropdown-menu.d.ts +11 -0
- package/components/bh-dropdown-menu.js +9 -0
- package/components/bh-dropdown-menu.js.map +1 -0
- package/components/bh-dropdown.d.ts +11 -0
- package/components/bh-dropdown.js +9 -0
- package/components/bh-dropdown.js.map +1 -0
- package/components/bh-empty-state.d.ts +11 -0
- package/components/bh-empty-state.js +9 -0
- package/components/bh-empty-state.js.map +1 -0
- package/components/bh-featured-icon.d.ts +11 -0
- package/components/bh-featured-icon.js +9 -0
- package/components/bh-featured-icon.js.map +1 -0
- package/components/bh-illustrations.d.ts +11 -0
- package/components/bh-illustrations.js +92 -0
- package/components/bh-illustrations.js.map +1 -0
- package/components/bh-input-autocomplete.d.ts +11 -0
- package/components/bh-input-autocomplete.js +433 -0
- package/components/bh-input-autocomplete.js.map +1 -0
- package/components/bh-input-number.d.ts +11 -0
- package/components/bh-input-number.js +370 -0
- package/components/bh-input-number.js.map +1 -0
- package/components/bh-input-password.d.ts +11 -0
- package/components/bh-input-password.js +229 -0
- package/components/bh-input-password.js.map +1 -0
- package/components/bh-input-text.d.ts +11 -0
- package/components/bh-input-text.js +9 -0
- package/components/bh-input-text.js.map +1 -0
- package/components/bh-input-verification.d.ts +11 -0
- package/components/bh-input-verification.js +255 -0
- package/components/bh-input-verification.js.map +1 -0
- package/components/bh-label.d.ts +11 -0
- package/components/bh-label.js +9 -0
- package/components/bh-label.js.map +1 -0
- package/components/bh-loader-spinner.d.ts +11 -0
- package/components/bh-loader-spinner.js +9 -0
- package/components/bh-loader-spinner.js.map +1 -0
- package/components/bh-logo-box.d.ts +11 -0
- package/components/bh-logo-box.js +9 -0
- package/components/bh-logo-box.js.map +1 -0
- package/components/bh-modal-actions.d.ts +11 -0
- package/components/bh-modal-actions.js +105 -0
- package/components/bh-modal-actions.js.map +1 -0
- package/components/bh-modal-header.d.ts +11 -0
- package/components/bh-modal-header.js +119 -0
- package/components/bh-modal-header.js.map +1 -0
- package/components/bh-modal.d.ts +11 -0
- package/components/bh-modal.js +9 -0
- package/components/bh-modal.js.map +1 -0
- package/components/bh-month-picker-content.d.ts +11 -0
- package/components/bh-month-picker-content.js +9 -0
- package/components/bh-month-picker-content.js.map +1 -0
- package/components/bh-month-picker.d.ts +11 -0
- package/components/bh-month-picker.js +233 -0
- package/components/bh-month-picker.js.map +1 -0
- package/components/bh-nav-item.d.ts +11 -0
- package/components/bh-nav-item.js +9 -0
- package/components/bh-nav-item.js.map +1 -0
- package/components/bh-notification.d.ts +11 -0
- package/components/bh-notification.js +175 -0
- package/components/bh-notification.js.map +1 -0
- package/components/bh-page-navigation-child.d.ts +11 -0
- package/components/bh-page-navigation-child.js +9 -0
- package/components/bh-page-navigation-child.js.map +1 -0
- package/components/bh-page-navigation-multi-level.d.ts +11 -0
- package/components/bh-page-navigation-multi-level.js +9 -0
- package/components/bh-page-navigation-multi-level.js.map +1 -0
- package/components/bh-page-navigation-single-level.d.ts +11 -0
- package/components/bh-page-navigation-single-level.js +9 -0
- package/components/bh-page-navigation-single-level.js.map +1 -0
- package/components/bh-page-navigation.d.ts +11 -0
- package/components/bh-page-navigation.js +129 -0
- package/components/bh-page-navigation.js.map +1 -0
- package/components/bh-picker-menu.d.ts +11 -0
- package/components/bh-picker-menu.js +9 -0
- package/components/bh-picker-menu.js.map +1 -0
- package/components/bh-pie-chart.d.ts +11 -0
- package/components/bh-pie-chart.js +194 -0
- package/components/bh-pie-chart.js.map +1 -0
- package/components/bh-popover.d.ts +11 -0
- package/components/bh-popover.js +131 -0
- package/components/bh-popover.js.map +1 -0
- package/components/bh-product-switcher.d.ts +11 -0
- package/components/bh-product-switcher.js +9 -0
- package/components/bh-product-switcher.js.map +1 -0
- package/components/bh-property-switcher.d.ts +11 -0
- package/components/bh-property-switcher.js +261 -0
- package/components/bh-property-switcher.js.map +1 -0
- package/components/bh-radio-button.d.ts +11 -0
- package/components/bh-radio-button.js +9 -0
- package/components/bh-radio-button.js.map +1 -0
- package/components/bh-sidebar.d.ts +11 -0
- package/components/bh-sidebar.js +195 -0
- package/components/bh-sidebar.js.map +1 -0
- package/components/bh-skeleton-loader.d.ts +11 -0
- package/components/bh-skeleton-loader.js +59 -0
- package/components/bh-skeleton-loader.js.map +1 -0
- package/components/bh-tab-item.d.ts +11 -0
- package/components/bh-tab-item.js +80 -0
- package/components/bh-tab-item.js.map +1 -0
- package/components/bh-tabs.d.ts +11 -0
- package/components/bh-tabs.js +78 -0
- package/components/bh-tabs.js.map +1 -0
- package/components/bh-tag.d.ts +11 -0
- package/components/bh-tag.js +9 -0
- package/components/bh-tag.js.map +1 -0
- package/components/bh-textarea.d.ts +11 -0
- package/components/bh-textarea.js +207 -0
- package/components/bh-textarea.js.map +1 -0
- package/components/bh-toggle.d.ts +11 -0
- package/components/bh-toggle.js +9 -0
- package/components/bh-toggle.js.map +1 -0
- package/components/bh-tooltip.d.ts +11 -0
- package/components/bh-tooltip.js +9 -0
- package/components/bh-tooltip.js.map +1 -0
- package/components/bh-trend-chart.d.ts +11 -0
- package/components/bh-trend-chart.js +149 -0
- package/components/bh-trend-chart.js.map +1 -0
- package/components/index.d.ts +33 -0
- package/components/index.js +16 -0
- package/components/index.js.map +1 -0
- package/components/p-2KjdCYlS.js +59 -0
- package/components/p-2KjdCYlS.js.map +1 -0
- package/components/p-54wXxbeh.js +213 -0
- package/components/p-54wXxbeh.js.map +1 -0
- package/components/p-9a7sQzad.js +1463 -0
- package/components/p-9a7sQzad.js.map +1 -0
- package/components/p-B3doeS-4.js +158 -0
- package/components/p-B3doeS-4.js.map +1 -0
- package/components/p-B4TBDBoW.js +71 -0
- package/components/p-B4TBDBoW.js.map +1 -0
- package/components/p-BBenNW93.js +184 -0
- package/components/p-BBenNW93.js.map +1 -0
- package/components/p-BLRNfy0t.js +84 -0
- package/components/p-BLRNfy0t.js.map +1 -0
- package/components/p-BYhYSIIs.js +941 -0
- package/components/p-BYhYSIIs.js.map +1 -0
- package/components/p-Bbo_Dwmk.js +70 -0
- package/components/p-Bbo_Dwmk.js.map +1 -0
- package/components/p-BdcGkck5.js +72 -0
- package/components/p-BdcGkck5.js.map +1 -0
- package/components/p-Bk8GbEQp.js +132 -0
- package/components/p-Bk8GbEQp.js.map +1 -0
- package/components/p-CDPKBnfQ.js +92 -0
- package/components/p-CDPKBnfQ.js.map +1 -0
- package/components/p-CDgBIIbC.js +224 -0
- package/components/p-CDgBIIbC.js.map +1 -0
- package/components/p-CErNA5c8.js +204 -0
- package/components/p-CErNA5c8.js.map +1 -0
- package/components/p-CQBqn1IO.js +67 -0
- package/components/p-CQBqn1IO.js.map +1 -0
- package/components/p-CTjPiCcp.js +51 -0
- package/components/p-CTjPiCcp.js.map +1 -0
- package/components/p-CciWcvHP.js +123 -0
- package/components/p-CciWcvHP.js.map +1 -0
- package/components/p-CiQqgc-m.js +434 -0
- package/components/p-CiQqgc-m.js.map +1 -0
- package/components/p-CsRNKalM.js +166 -0
- package/components/p-CsRNKalM.js.map +1 -0
- package/components/p-CuVsQ9St.js +123 -0
- package/components/p-CuVsQ9St.js.map +1 -0
- package/components/p-D3OkBDd3.js +100 -0
- package/components/p-D3OkBDd3.js.map +1 -0
- package/components/p-D6cM-mvE.js +64 -0
- package/components/p-D6cM-mvE.js.map +1 -0
- package/components/p-D6kh9oF2.js +70 -0
- package/components/p-D6kh9oF2.js.map +1 -0
- package/components/p-DHSWIF-h.js +214 -0
- package/components/p-DHSWIF-h.js.map +1 -0
- package/components/p-DNhCX5eS.js +153 -0
- package/components/p-DNhCX5eS.js.map +1 -0
- package/components/p-DRGkYX1u.js +78 -0
- package/components/p-DRGkYX1u.js.map +1 -0
- package/components/p-DRJW4zBc.js +58 -0
- package/components/p-DRJW4zBc.js.map +1 -0
- package/components/p-DTgHvmlL.js +149 -0
- package/components/p-DTgHvmlL.js.map +1 -0
- package/components/p-DVhHZCku.js +220 -0
- package/components/p-DVhHZCku.js.map +1 -0
- package/components/p-DWpdUpK5.js +264 -0
- package/components/p-DWpdUpK5.js.map +1 -0
- package/components/p-D_DKZMpk.js +78 -0
- package/components/p-D_DKZMpk.js.map +1 -0
- package/components/p-Dbl0HXBJ.js +241 -0
- package/components/p-Dbl0HXBJ.js.map +1 -0
- package/components/p-DecYIvq4.js +124 -0
- package/components/p-DecYIvq4.js.map +1 -0
- package/components/p-DfXkVfrE.js +129 -0
- package/components/p-DfXkVfrE.js.map +1 -0
- package/components/p-HEcFS8Jc.js +125 -0
- package/components/p-HEcFS8Jc.js.map +1 -0
- package/components/p-MIbEYjCv.js +142 -0
- package/components/p-MIbEYjCv.js.map +1 -0
- package/components/p-NXL0pYS_.js +97 -0
- package/components/p-NXL0pYS_.js.map +1 -0
- package/components/p-X9MH3dtg.js +154 -0
- package/components/p-X9MH3dtg.js.map +1 -0
- package/components/p-YJm8-pxX.js +118 -0
- package/components/p-YJm8-pxX.js.map +1 -0
- package/components/p-ghuDbZwh.js +148 -0
- package/components/p-ghuDbZwh.js.map +1 -0
- package/components/p-p8W0xKpn.js +106 -0
- package/components/p-p8W0xKpn.js.map +1 -0
- package/esm/bellhop-core.js +21 -0
- package/esm/bellhop-core.js.map +1 -0
- package/esm/bh-accordion-item.entry.js +80 -0
- package/esm/bh-accordion-item.entry.js.map +1 -0
- package/esm/bh-accordion.entry.js +117 -0
- package/esm/bh-accordion.entry.js.map +1 -0
- package/esm/bh-appbar.entry.js +81 -0
- package/esm/bh-appbar.entry.js.map +1 -0
- package/esm/bh-autocomplete-menu.bh-tag.entry.js.map +1 -0
- package/esm/bh-autocomplete-menu_2.entry.js +174 -0
- package/esm/bh-avatar-add.entry.js +73 -0
- package/esm/bh-avatar-add.entry.js.map +1 -0
- package/esm/bh-avatar-stacked.entry.js +92 -0
- package/esm/bh-avatar-stacked.entry.js.map +1 -0
- package/esm/bh-avatar.entry.js +91 -0
- package/esm/bh-avatar.entry.js.map +1 -0
- package/esm/bh-badge-dot.bh-breadcrumbs.entry.js.map +1 -0
- package/esm/bh-badge-dot_2.entry.js +131 -0
- package/esm/bh-badge.entry.js +69 -0
- package/esm/bh-badge.entry.js.map +1 -0
- package/esm/bh-bar-chart.entry.js +162 -0
- package/esm/bh-bar-chart.entry.js.map +1 -0
- package/esm/bh-button-CBZGiLVh.js +115 -0
- package/esm/bh-button-CBZGiLVh.js.map +1 -0
- package/esm/bh-button-icon.entry.js +72 -0
- package/esm/bh-button-icon.entry.js.map +1 -0
- package/esm/bh-button.bh-loader-spinner.entry.js.map +1 -0
- package/esm/bh-button_2.entry.js +44 -0
- package/esm/bh-card-footer.entry.js +28 -0
- package/esm/bh-card-footer.entry.js.map +1 -0
- package/esm/bh-card-header.entry.js +72 -0
- package/esm/bh-card-header.entry.js.map +1 -0
- package/esm/bh-card.entry.js +46 -0
- package/esm/bh-card.entry.js.map +1 -0
- package/esm/bh-chart-tooltip.entry.js +55 -0
- package/esm/bh-chart-tooltip.entry.js.map +1 -0
- package/esm/bh-checkbox-group-item.entry.js +140 -0
- package/esm/bh-checkbox-group-item.entry.js.map +1 -0
- package/esm/bh-checkbox-group.entry.js +98 -0
- package/esm/bh-checkbox-group.entry.js.map +1 -0
- package/esm/bh-checkbox.entry.js +142 -0
- package/esm/bh-checkbox.entry.js.map +1 -0
- package/esm/bh-container-footer.entry.js +36 -0
- package/esm/bh-container-footer.entry.js.map +1 -0
- package/esm/bh-container.entry.js +24 -0
- package/esm/bh-container.entry.js.map +1 -0
- package/esm/bh-data-grid.entry.js +810 -0
- package/esm/bh-data-grid.entry.js.map +1 -0
- package/esm/bh-date-picker-content.bh-picker-menu.entry.js.map +1 -0
- package/esm/bh-date-picker-content_2.entry.js +522 -0
- package/esm/bh-date-picker.bh-empty-state.entry.js.map +1 -0
- package/esm/bh-date-picker_2.entry.js +249 -0
- package/esm/bh-date-range-picker-content.entry.js +149 -0
- package/esm/bh-date-range-picker-content.entry.js.map +1 -0
- package/esm/bh-date-range-picker.entry.js +165 -0
- package/esm/bh-date-range-picker.entry.js.map +1 -0
- package/esm/bh-dropdown-menu.entry.js +112 -0
- package/esm/bh-dropdown-menu.entry.js.map +1 -0
- package/esm/bh-dropdown.bh-logo-box.bh-nav-item.entry.js.map +1 -0
- package/esm/bh-dropdown_3.entry.js +303 -0
- package/esm/bh-featured-icon.entry.js +39 -0
- package/esm/bh-featured-icon.entry.js.map +1 -0
- package/esm/bh-illustrations.entry.js +63 -0
- package/esm/bh-illustrations.entry.js.map +1 -0
- package/esm/bh-input-autocomplete.entry.js +340 -0
- package/esm/bh-input-autocomplete.entry.js.map +1 -0
- package/esm/bh-input-number.entry.js +305 -0
- package/esm/bh-input-number.entry.js.map +1 -0
- package/esm/bh-input-password.entry.js +180 -0
- package/esm/bh-input-password.entry.js.map +1 -0
- package/esm/bh-input-text.entry.js +190 -0
- package/esm/bh-input-text.entry.js.map +1 -0
- package/esm/bh-input-verification.entry.js +201 -0
- package/esm/bh-input-verification.entry.js.map +1 -0
- package/esm/bh-label-DqsVrCg_.js +108 -0
- package/esm/bh-label-DqsVrCg_.js.map +1 -0
- package/esm/bh-label.bh-tooltip.entry.js.map +1 -0
- package/esm/bh-label_2.entry.js +45 -0
- package/esm/bh-modal-actions.entry.js +64 -0
- package/esm/bh-modal-actions.entry.js.map +1 -0
- package/esm/bh-modal-header.entry.js +74 -0
- package/esm/bh-modal-header.entry.js.map +1 -0
- package/esm/bh-modal.entry.js +54 -0
- package/esm/bh-modal.entry.js.map +1 -0
- package/esm/bh-month-picker-content.entry.js +187 -0
- package/esm/bh-month-picker-content.entry.js.map +1 -0
- package/esm/bh-month-picker.entry.js +150 -0
- package/esm/bh-month-picker.entry.js.map +1 -0
- package/esm/bh-notification.entry.js +126 -0
- package/esm/bh-notification.entry.js.map +1 -0
- package/esm/bh-page-navigation-child.entry.js +46 -0
- package/esm/bh-page-navigation-child.entry.js.map +1 -0
- package/esm/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.js.map +1 -0
- package/esm/bh-page-navigation-multi-level_2.entry.js +143 -0
- package/esm/bh-page-navigation.entry.js +70 -0
- package/esm/bh-page-navigation.entry.js.map +1 -0
- package/esm/bh-pie-chart.entry.js +155 -0
- package/esm/bh-pie-chart.entry.js.map +1 -0
- package/esm/bh-popover.entry.js +98 -0
- package/esm/bh-popover.entry.js.map +1 -0
- package/esm/bh-product-switcher.entry.js +100 -0
- package/esm/bh-product-switcher.entry.js.map +1 -0
- package/esm/bh-property-switcher.entry.js +229 -0
- package/esm/bh-property-switcher.entry.js.map +1 -0
- package/esm/bh-radio-button.entry.js +122 -0
- package/esm/bh-radio-button.entry.js.map +1 -0
- package/esm/bh-sidebar.entry.js +108 -0
- package/esm/bh-sidebar.entry.js.map +1 -0
- package/esm/bh-skeleton-loader.entry.js +32 -0
- package/esm/bh-skeleton-loader.entry.js.map +1 -0
- package/esm/bh-tab-item.entry.js +52 -0
- package/esm/bh-tab-item.entry.js.map +1 -0
- package/esm/bh-tabs.entry.js +50 -0
- package/esm/bh-tabs.entry.js.map +1 -0
- package/esm/bh-textarea.entry.js +159 -0
- package/esm/bh-textarea.entry.js.map +1 -0
- package/esm/bh-toggle.entry.js +139 -0
- package/esm/bh-toggle.entry.js.map +1 -0
- package/esm/bh-trend-chart.entry.js +119 -0
- package/esm/bh-trend-chart.entry.js.map +1 -0
- package/esm/form-CPgx0iFq.js +59 -0
- package/esm/form-CPgx0iFq.js.map +1 -0
- package/esm/index-DtVghh5W.js +1922 -0
- package/esm/index-DtVghh5W.js.map +1 -0
- package/esm/index.js +15 -0
- package/esm/index.js.map +1 -0
- package/esm/loader.js +11 -0
- package/esm/loader.js.map +1 -0
- package/index.cjs.js +1 -0
- package/index.js +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +32 -0
- package/types/components/bh-accordion/bh-accordion.d.ts +42 -0
- package/types/components/bh-accordion-item/bh-accordion-item.d.ts +41 -0
- package/types/components/bh-appbar/bh-appbar.d.ts +54 -0
- package/types/components/bh-autocomplete-menu/bh-autocomplete-menu.d.ts +54 -0
- package/types/components/bh-avatar/bh-avatar.d.ts +43 -0
- package/types/components/bh-avatar-add/bh-avatar-add.d.ts +35 -0
- package/types/components/bh-avatar-stacked/bh-avatar-stacked.d.ts +42 -0
- package/types/components/bh-badge/bh-badge.d.ts +40 -0
- package/types/components/bh-badge-dot/bh-badge-dot.d.ts +17 -0
- package/types/components/bh-bar-chart/bh-bar-chart.d.ts +50 -0
- package/types/components/bh-breadcrumbs/bh-breadcrumbs.d.ts +40 -0
- package/types/components/bh-button/bh-button.d.ts +57 -0
- package/types/components/bh-button-icon/bh-button-icon.d.ts +44 -0
- package/types/components/bh-card/bh-card.d.ts +23 -0
- package/types/components/bh-card-footer/bh-card-footer.d.ts +12 -0
- package/types/components/bh-card-header/bh-card-header.d.ts +59 -0
- package/types/components/bh-chart-tooltip/bh-chart-tooltip.d.ts +40 -0
- package/types/components/bh-checkbox/bh-checkbox.d.ts +45 -0
- package/types/components/bh-checkbox-group/bh-checkbox-group.d.ts +34 -0
- package/types/components/bh-checkbox-group-item/bh-checkbox-group-item.d.ts +67 -0
- package/types/components/bh-container/bh-container.d.ts +7 -0
- package/types/components/bh-container-footer/bh-container-footer.d.ts +18 -0
- package/types/components/bh-data-grid/bh-data-grid.d.ts +235 -0
- package/types/components/bh-date-picker/bh-date-picker.d.ts +78 -0
- package/types/components/bh-date-picker-content/bh-date-picker-content.d.ts +112 -0
- package/types/components/bh-date-range-picker/bh-date-range-picker.d.ts +85 -0
- package/types/components/bh-date-range-picker-content/bh-date-range-picker-content.d.ts +55 -0
- package/types/components/bh-dropdown/bh-dropdown.d.ts +78 -0
- package/types/components/bh-dropdown-menu/bh-dropdown-menu.d.ts +51 -0
- package/types/components/bh-empty-state/bh-empty-state.d.ts +52 -0
- package/types/components/bh-featured-icon/bh-featured-icon.d.ts +22 -0
- package/types/components/bh-illustrations/bh-illustrations.d.ts +25 -0
- package/types/components/bh-input-autocomplete/bh-input-autocomplete.d.ts +130 -0
- package/types/components/bh-input-number/bh-input-number.d.ts +137 -0
- package/types/components/bh-input-password/bh-input-password.d.ts +111 -0
- package/types/components/bh-input-text/bh-input-text.d.ts +126 -0
- package/types/components/bh-input-verification/bh-input-verification.d.ts +79 -0
- package/types/components/bh-label/bh-label.d.ts +54 -0
- package/types/components/bh-loader-spinner/bh-loader-spinner.d.ts +19 -0
- package/types/components/bh-logo-box/bh-logo-box.d.ts +28 -0
- package/types/components/bh-modal/bh-modal.d.ts +23 -0
- package/types/components/bh-modal-actions/bh-modal-actions.d.ts +38 -0
- package/types/components/bh-modal-header/bh-modal-header.d.ts +45 -0
- package/types/components/bh-month-picker/bh-month-picker.d.ts +73 -0
- package/types/components/bh-month-picker-content/bh-month-picker-content.d.ts +77 -0
- package/types/components/bh-notification/bh-notification.d.ts +51 -0
- package/types/components/bh-page-navigation/bh-page-navigation.d.ts +45 -0
- package/types/components/bh-page-navigation-child/bh-page-navigation-child.d.ts +26 -0
- package/types/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.d.ts +60 -0
- package/types/components/bh-page-navigation-single-level/bh-page-navigation-single-level.d.ts +22 -0
- package/types/components/bh-picker-menu/bh-picker-menu.d.ts +76 -0
- package/types/components/bh-pie-chart/bh-pie-chart.d.ts +50 -0
- package/types/components/bh-popover/bh-popover.d.ts +60 -0
- package/types/components/bh-product-switcher/bh-product-switcher.d.ts +40 -0
- package/types/components/bh-property-switcher/bh-property-switcher.d.ts +63 -0
- package/types/components/bh-radio-button/bh-radio-button.d.ts +56 -0
- package/types/components/bh-sidebar/bh-nav-item.d.ts +26 -0
- package/types/components/bh-sidebar/bh-sidebar.d.ts +70 -0
- package/types/components/bh-skeleton-loader/bh-skeleton-loader.d.ts +15 -0
- package/types/components/bh-tab-item/bh-tab-item.d.ts +29 -0
- package/types/components/bh-tabs/bh-tabs.d.ts +30 -0
- package/types/components/bh-tag/bh-tag.d.ts +25 -0
- package/types/components/bh-textarea/bh-textarea.d.ts +101 -0
- package/types/components/bh-toggle/bh-toggle.d.ts +66 -0
- package/types/components/bh-tooltip/bh-tooltip.d.ts +25 -0
- package/types/components/bh-trend-chart/bh-trend-chart.d.ts +34 -0
- package/types/components.d.ts +7199 -0
- package/types/index.d.ts +12 -0
- package/types/stencil-public-runtime.d.ts +1756 -0
- package/types/utils/form.d.ts +39 -0
|
@@ -0,0 +1,812 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-tZqSQc8E.js');
|
|
4
|
+
|
|
5
|
+
const bhDataGridCss = ":host{display:block;width:100%}.data-grid{position:relative;width:100%;font-family:var(--font-inter, 'Inter', sans-serif);background-color:var(--color-white);overflow:auto}.data-grid-table{display:flex;flex-direction:column;min-width:100%}.data-grid-header-row{display:flex;flex-direction:row;align-items:center;height:32px;background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);position:sticky;top:0;z-index:2}.data-grid-header-cell{display:flex;align-items:center;gap:var(--spacing-xs, 4px);padding:0 var(--spacing-sm, 8px);height:100%;font-size:var(--text-xs-size, 12px);font-weight:var(--weight-semibold, 600);line-height:var(--text-xs-line, 18px);color:var(--color-neutral-600);user-select:none;flex:1;min-width:0}.data-grid-header-cell-sortable{cursor:pointer;transition:background-color 0.15s ease}.data-grid-header-cell-sortable:hover{background-color:var(--color-neutral-100)}.data-grid-header-cell-sorted{color:var(--color-neutral-700)}.data-grid-header-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-grid-sort-icon{font-size:12px;color:var(--color-neutral-400);flex-shrink:0;font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 20}.data-grid-header-cell-sorted .data-grid-sort-icon{color:var(--color-neutral-600)}.data-grid-filter-row{display:flex;flex-direction:row;align-items:center;height:36px;background-color:var(--color-white);border-bottom:1px solid var(--color-neutral-200);position:sticky;top:32px;z-index:1}.data-grid-filter-cell{display:flex;align-items:center;justify-content:center;padding:0 var(--spacing-sm, 8px);height:100%;flex:1;min-width:0}.data-grid-filter-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.data-grid-filter-icon{font-size:18px;color:var(--color-neutral-400);cursor:pointer;transition:color 0.15s ease;font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20}.data-grid-filter-icon:hover{color:var(--color-neutral-600)}.data-grid-filter-active .data-grid-filter-icon{color:var(--color-brand-500)}.data-grid-filter-popover{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);z-index:100;background-color:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-lg, 0 4px 16px rgba(0, 0, 0, 0.12));padding:var(--spacing-sm, 8px);min-width:180px}.data-grid-filter-popover-input{width:100%;height:32px;padding:0 var(--spacing-sm, 8px);font-size:var(--text-sm-size, 14px);font-family:var(--font-inter, 'Inter', sans-serif);color:var(--color-neutral-900);background-color:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-sm, 6px);outline:none;transition:border-color 0.15s ease, box-shadow 0.15s ease}.data-grid-filter-popover-input::placeholder{color:var(--color-neutral-400)}.data-grid-filter-popover-input:focus{border-color:var(--color-brand-500);box-shadow:0 0 0 3px var(--color-brand-100)}.data-grid-filter-icon-wrapper bh-date-picker{--bh-button-padding:0}.data-grid-filter-icon-wrapper bh-date-picker::part(trigger){padding:0}.data-grid-body{display:flex;flex-direction:column}.data-grid-row{display:flex;flex-direction:row;align-items:center;height:40px;border-bottom:1px solid var(--color-neutral-100);background-color:var(--color-white);transition:background-color 0.1s ease}.data-grid-bordered .data-grid-row{border-bottom-color:var(--color-neutral-200)}.data-grid-row-hover,.data-grid-row:hover{background-color:var(--color-neutral-25)}.data-grid-row-selected{background-color:var(--color-brand-50)}.data-grid-row-selected:hover{background-color:var(--color-brand-100)}.data-grid-row-striped{background-color:var(--color-neutral-25)}.data-grid-row-striped:hover{background-color:var(--color-neutral-50)}.data-grid-compact .data-grid-row{height:32px}.data-grid-compact .data-grid-header-row{height:28px}.data-grid-cell{display:flex;align-items:center;padding:0 var(--spacing-sm, 8px);height:100%;font-size:var(--text-sm-size, 14px);font-weight:var(--weight-regular, 400);line-height:var(--text-sm-line, 20px);color:var(--color-neutral-900);flex:1;min-width:0;overflow:hidden}.data-grid-cell>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-grid-cell-align-left{justify-content:flex-start;text-align:left}.data-grid-cell-align-center{justify-content:center;text-align:center}.data-grid-cell-align-right{justify-content:flex-end;text-align:right}.data-grid-cell-type-number{font-variant-numeric:tabular-nums}.data-grid-cell-type-date{font-variant-numeric:tabular-nums}.data-grid-cell-checkbox{flex:0 0 40px;width:40px;min-width:40px;max-width:40px;justify-content:center}.data-grid-empty-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-3xl, 48px) var(--spacing-xl, 24px);background-color:var(--color-white)}.data-grid-loading{position:relative;pointer-events:none}.data-grid-loading .data-grid-body{opacity:0.5}.data-grid-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:rgba(255, 255, 255, 0.7);z-index:10}.data-grid-group-section{display:contents}.data-grid-group-row{display:flex;flex-direction:row;align-items:center;height:36px;padding:0 var(--spacing-sm, 8px);background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);font-size:var(--text-sm-size, 14px);font-weight:var(--weight-medium, 500);color:var(--color-neutral-700);cursor:pointer;user-select:none}.data-grid-group-row:hover{background-color:var(--color-neutral-100)}.data-grid-group-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:var(--spacing-sm, 8px);color:var(--color-neutral-500)}.data-grid-group-toggle .material-symbols-outlined{font-size:18px;transition:transform 0.2s ease}.data-grid-group-row-expanded .data-grid-group-toggle .material-symbols-outlined{transform:rotate(90deg)}.data-grid-group-label{flex:1}.data-grid-group-column-name{color:var(--color-neutral-500)}.data-grid-group-value{color:var(--color-neutral-900);font-weight:var(--weight-semibold, 600)}.data-grid-group-count{color:var(--color-neutral-500);margin-left:var(--spacing-sm, 8px);font-weight:var(--weight-regular, 400);font-size:var(--text-xs-size, 12px)}.data-grid-row-grouped{background-color:var(--color-white)}.data-grid-row-indent{flex-shrink:0}.data-grid::-webkit-scrollbar{width:8px;height:8px}.data-grid::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:4px}.data-grid::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:4px}.data-grid::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.data-grid-row-editing{background-color:var(--color-brand-25, #fefcff);box-shadow:inset 0 0 0 1px var(--color-brand-200)}.data-grid-row-editing:hover{background-color:var(--color-brand-25, #fefcff)}.data-grid-cell-editable{cursor:text}.data-grid-cell-editable:hover{background-color:var(--color-neutral-50)}.data-grid-cell-editing{padding:0 var(--spacing-xs, 4px)}.data-grid-edit-input{width:100%;height:calc(100% - 4px);padding:0 var(--spacing-xs, 4px);font-size:var(--text-sm-size, 14px);font-family:var(--font-inter, 'Inter', sans-serif);color:var(--color-neutral-900);background-color:var(--color-white);border:1px solid var(--color-brand-500);border-radius:var(--radius-sm, 4px);outline:none;box-shadow:0 0 0 2px var(--color-brand-100)}.data-grid-edit-input:focus{border-color:var(--color-brand-600);box-shadow:0 0 0 3px var(--color-brand-100)}.data-grid-edit-input::placeholder{color:var(--color-neutral-400)}.data-grid-edit-input[type='number']::-webkit-outer-spin-button,.data-grid-edit-input[type='number']::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.data-grid-edit-input[type='number']{-moz-appearance:textfield}.data-grid-cell-actions{flex:0 0 auto;width:auto;min-width:40px;padding:0 var(--spacing-xs, 4px);justify-content:flex-end;gap:var(--spacing-xs, 4px)}.data-grid-edit-actions{display:flex;align-items:center;gap:var(--spacing-xs, 4px)}.data-grid-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-sm, 4px);background-color:transparent;color:var(--color-neutral-500);cursor:pointer;transition:all 0.15s ease}.data-grid-action-btn:hover{background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.data-grid-action-btn .material-symbols-outlined{font-size:18px;font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 20}.data-grid-action-edit:hover{background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.data-grid-action-save{color:var(--color-success-600)}.data-grid-action-save:hover{background-color:var(--color-success-50);color:var(--color-success-700)}.data-grid-action-cancel{color:var(--color-error-600)}.data-grid-action-cancel:hover{background-color:var(--color-error-50);color:var(--color-error-700)}.data-grid-header-cell-actions{flex:0 0 auto;width:auto;min-width:40px;padding:0 var(--spacing-xs, 4px)}@media (max-width: 768px){.data-grid-header-cell,.data-grid-cell{padding:0 var(--spacing-xs, 4px)}.data-grid-filter-input{height:24px;font-size:11px}.data-grid-action-btn{width:24px;height:24px}.data-grid-action-btn .material-symbols-outlined{font-size:16px}}";
|
|
6
|
+
|
|
7
|
+
const BhDataGrid = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bhSelectionChange = index.createEvent(this, "bhSelectionChange");
|
|
11
|
+
this.bhSortChange = index.createEvent(this, "bhSortChange");
|
|
12
|
+
this.bhFilterChange = index.createEvent(this, "bhFilterChange");
|
|
13
|
+
this.bhRowClick = index.createEvent(this, "bhRowClick");
|
|
14
|
+
this.bhCellClick = index.createEvent(this, "bhCellClick");
|
|
15
|
+
this.bhGroupToggle = index.createEvent(this, "bhGroupToggle");
|
|
16
|
+
this.bhEditStart = index.createEvent(this, "bhEditStart");
|
|
17
|
+
this.bhEditCancel = index.createEvent(this, "bhEditCancel");
|
|
18
|
+
this.bhEditSave = index.createEvent(this, "bhEditSave");
|
|
19
|
+
this.bhCellChange = index.createEvent(this, "bhCellChange");
|
|
20
|
+
}
|
|
21
|
+
get el() { return index.getElement(this); }
|
|
22
|
+
// -------------------------------------------------------------------------
|
|
23
|
+
// Props - Data
|
|
24
|
+
// -------------------------------------------------------------------------
|
|
25
|
+
/** Array of data objects to display */
|
|
26
|
+
data = [];
|
|
27
|
+
/** Column definitions */
|
|
28
|
+
columns = [];
|
|
29
|
+
/** Unique identifier property for each row (for selection tracking) */
|
|
30
|
+
rowKey = 'id';
|
|
31
|
+
// -------------------------------------------------------------------------
|
|
32
|
+
// Props - Selection
|
|
33
|
+
// -------------------------------------------------------------------------
|
|
34
|
+
/** Enable row selection */
|
|
35
|
+
enableSelection = false;
|
|
36
|
+
/** Selection mode */
|
|
37
|
+
selectionMode = 'multiple';
|
|
38
|
+
/** Currently selected row keys (controlled) */
|
|
39
|
+
selectedKeys = [];
|
|
40
|
+
// -------------------------------------------------------------------------
|
|
41
|
+
// Props - Sorting
|
|
42
|
+
// -------------------------------------------------------------------------
|
|
43
|
+
/** Enable sorting */
|
|
44
|
+
enableSorting = true;
|
|
45
|
+
/** Allow multi-column sorting */
|
|
46
|
+
multiSort = false;
|
|
47
|
+
/** Current sort state (controlled) */
|
|
48
|
+
sortState = [];
|
|
49
|
+
// -------------------------------------------------------------------------
|
|
50
|
+
// Props - Filtering
|
|
51
|
+
// -------------------------------------------------------------------------
|
|
52
|
+
/** Enable filtering */
|
|
53
|
+
enableFiltering = false;
|
|
54
|
+
/** Show filter row below header */
|
|
55
|
+
showFilterRow = false;
|
|
56
|
+
/** Current filter state (controlled) */
|
|
57
|
+
filterState = [];
|
|
58
|
+
// -------------------------------------------------------------------------
|
|
59
|
+
// Props - Grouping
|
|
60
|
+
// -------------------------------------------------------------------------
|
|
61
|
+
/** Enable row grouping */
|
|
62
|
+
enableGrouping = false;
|
|
63
|
+
/** Columns to group by */
|
|
64
|
+
groupBy = [];
|
|
65
|
+
// -------------------------------------------------------------------------
|
|
66
|
+
// Props - Editing
|
|
67
|
+
// -------------------------------------------------------------------------
|
|
68
|
+
/** Enable editing */
|
|
69
|
+
enableEditing = false;
|
|
70
|
+
/** Edit mode: cell (individual cells), row (entire row), popup (modal form) */
|
|
71
|
+
editMode = 'cell';
|
|
72
|
+
/** Whether to show edit/save/cancel buttons in row actions */
|
|
73
|
+
showEditActions = true;
|
|
74
|
+
// -------------------------------------------------------------------------
|
|
75
|
+
// Props - Display
|
|
76
|
+
// -------------------------------------------------------------------------
|
|
77
|
+
/** Show header row */
|
|
78
|
+
showHeader = true;
|
|
79
|
+
/** Show row borders */
|
|
80
|
+
showRowBorders = true;
|
|
81
|
+
/** Striped rows */
|
|
82
|
+
striped = false;
|
|
83
|
+
/** Compact row height */
|
|
84
|
+
compact = false;
|
|
85
|
+
/** Empty state message */
|
|
86
|
+
emptyMessage = 'No data available';
|
|
87
|
+
/** Loading state */
|
|
88
|
+
loading = false;
|
|
89
|
+
// -------------------------------------------------------------------------
|
|
90
|
+
// State
|
|
91
|
+
// -------------------------------------------------------------------------
|
|
92
|
+
internalSelectedKeys = new Set();
|
|
93
|
+
internalSortState = [];
|
|
94
|
+
internalFilterState = [];
|
|
95
|
+
expandedGroups = [];
|
|
96
|
+
hoveredRowIndex = null;
|
|
97
|
+
filterInputValues = {};
|
|
98
|
+
// Editing state
|
|
99
|
+
editingRowKey = null;
|
|
100
|
+
editingColumnId = null;
|
|
101
|
+
editingValues = {};
|
|
102
|
+
showEditPopup = false;
|
|
103
|
+
// Filter popover state
|
|
104
|
+
activeFilterColumn = null;
|
|
105
|
+
// -------------------------------------------------------------------------
|
|
106
|
+
// Events
|
|
107
|
+
// -------------------------------------------------------------------------
|
|
108
|
+
/** Emitted when row selection changes */
|
|
109
|
+
bhSelectionChange;
|
|
110
|
+
/** Emitted when sort state changes */
|
|
111
|
+
bhSortChange;
|
|
112
|
+
/** Emitted when filter state changes */
|
|
113
|
+
bhFilterChange;
|
|
114
|
+
/** Emitted when a row is clicked */
|
|
115
|
+
bhRowClick;
|
|
116
|
+
/** Emitted when a cell is clicked */
|
|
117
|
+
bhCellClick;
|
|
118
|
+
/** Emitted when group expand/collapse changes */
|
|
119
|
+
bhGroupToggle;
|
|
120
|
+
/** Emitted when editing starts */
|
|
121
|
+
bhEditStart;
|
|
122
|
+
/** Emitted when editing is cancelled */
|
|
123
|
+
bhEditCancel;
|
|
124
|
+
/** Emitted when changes are saved */
|
|
125
|
+
bhEditSave;
|
|
126
|
+
/** Emitted when a cell value changes during editing (before save) */
|
|
127
|
+
bhCellChange;
|
|
128
|
+
// -------------------------------------------------------------------------
|
|
129
|
+
// Watchers
|
|
130
|
+
// -------------------------------------------------------------------------
|
|
131
|
+
handleSelectedKeysChange(newValue) {
|
|
132
|
+
this.internalSelectedKeys = new Set(newValue);
|
|
133
|
+
}
|
|
134
|
+
handleSortStateChange(newValue) {
|
|
135
|
+
this.internalSortState = [...newValue];
|
|
136
|
+
}
|
|
137
|
+
handleFilterStateChange(newValue) {
|
|
138
|
+
this.internalFilterState = [...newValue];
|
|
139
|
+
}
|
|
140
|
+
// -------------------------------------------------------------------------
|
|
141
|
+
// Lifecycle
|
|
142
|
+
// -------------------------------------------------------------------------
|
|
143
|
+
componentWillLoad() {
|
|
144
|
+
this.internalSelectedKeys = new Set(this.selectedKeys);
|
|
145
|
+
this.internalSortState = [...this.sortState];
|
|
146
|
+
this.internalFilterState = [...this.filterState];
|
|
147
|
+
}
|
|
148
|
+
// -------------------------------------------------------------------------
|
|
149
|
+
// Helpers
|
|
150
|
+
// -------------------------------------------------------------------------
|
|
151
|
+
getRowKey(row, index) {
|
|
152
|
+
if (typeof row === 'object' && row !== null && this.rowKey in row) {
|
|
153
|
+
return row[this.rowKey];
|
|
154
|
+
}
|
|
155
|
+
return index;
|
|
156
|
+
}
|
|
157
|
+
getCellValue(row, accessor) {
|
|
158
|
+
if (typeof row !== 'object' || row === null)
|
|
159
|
+
return undefined;
|
|
160
|
+
// Support dot notation for nested properties
|
|
161
|
+
const keys = accessor.split('.');
|
|
162
|
+
let value = row;
|
|
163
|
+
for (const key of keys) {
|
|
164
|
+
if (typeof value === 'object' && value !== null && key in value) {
|
|
165
|
+
value = value[key];
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return value;
|
|
172
|
+
}
|
|
173
|
+
getVisibleColumns() {
|
|
174
|
+
return this.columns.filter(col => col.visible !== false);
|
|
175
|
+
}
|
|
176
|
+
// -------------------------------------------------------------------------
|
|
177
|
+
// Data Processing
|
|
178
|
+
// -------------------------------------------------------------------------
|
|
179
|
+
getProcessedData() {
|
|
180
|
+
let processedData = [...this.data];
|
|
181
|
+
// Apply filtering
|
|
182
|
+
if (this.enableFiltering && this.internalFilterState.length > 0) {
|
|
183
|
+
processedData = this.applyFilters(processedData);
|
|
184
|
+
}
|
|
185
|
+
// Apply sorting
|
|
186
|
+
if (this.enableSorting && this.internalSortState.length > 0) {
|
|
187
|
+
processedData = this.applySorting(processedData);
|
|
188
|
+
}
|
|
189
|
+
return processedData;
|
|
190
|
+
}
|
|
191
|
+
applyFilters(data) {
|
|
192
|
+
return data.filter(row => {
|
|
193
|
+
return this.internalFilterState.every(filter => {
|
|
194
|
+
const column = this.columns.find(c => c.id === filter.columnId);
|
|
195
|
+
if (!column)
|
|
196
|
+
return true;
|
|
197
|
+
const value = this.getCellValue(row, column.accessor);
|
|
198
|
+
return this.matchesFilter(value, filter, column.type);
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
matchesFilter(value, filter, type) {
|
|
203
|
+
if (filter.operator === 'isEmpty') {
|
|
204
|
+
return value === null || value === undefined || value === '';
|
|
205
|
+
}
|
|
206
|
+
if (filter.operator === 'isNotEmpty') {
|
|
207
|
+
return value !== null && value !== undefined && value !== '';
|
|
208
|
+
}
|
|
209
|
+
const filterValue = filter.value;
|
|
210
|
+
if (type === 'number') {
|
|
211
|
+
const numValue = Number(value);
|
|
212
|
+
const numFilter = Number(filterValue);
|
|
213
|
+
switch (filter.operator) {
|
|
214
|
+
case 'equals': return numValue === numFilter;
|
|
215
|
+
case 'greaterThan': return numValue > numFilter;
|
|
216
|
+
case 'lessThan': return numValue < numFilter;
|
|
217
|
+
case 'greaterThanOrEqual': return numValue >= numFilter;
|
|
218
|
+
case 'lessThanOrEqual': return numValue <= numFilter;
|
|
219
|
+
case 'between': return numValue >= numFilter && numValue <= Number(filter.valueTo);
|
|
220
|
+
default: return true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (type === 'date') {
|
|
224
|
+
const dateValue = new Date(value).getTime();
|
|
225
|
+
const dateFilter = new Date(filterValue).getTime();
|
|
226
|
+
switch (filter.operator) {
|
|
227
|
+
case 'equals': return dateValue === dateFilter;
|
|
228
|
+
case 'greaterThan': return dateValue > dateFilter;
|
|
229
|
+
case 'lessThan': return dateValue < dateFilter;
|
|
230
|
+
case 'between': {
|
|
231
|
+
const dateTo = new Date(filter.valueTo).getTime();
|
|
232
|
+
return dateValue >= dateFilter && dateValue <= dateTo;
|
|
233
|
+
}
|
|
234
|
+
default: return true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Text filtering
|
|
238
|
+
const strValue = String(value ?? '').toLowerCase();
|
|
239
|
+
const strFilter = String(filterValue ?? '').toLowerCase();
|
|
240
|
+
switch (filter.operator) {
|
|
241
|
+
case 'contains': return strValue.includes(strFilter);
|
|
242
|
+
case 'equals': return strValue === strFilter;
|
|
243
|
+
case 'startsWith': return strValue.startsWith(strFilter);
|
|
244
|
+
case 'endsWith': return strValue.endsWith(strFilter);
|
|
245
|
+
default: return true;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
applySorting(data) {
|
|
249
|
+
if (this.internalSortState.length === 0)
|
|
250
|
+
return data;
|
|
251
|
+
return [...data].sort((a, b) => {
|
|
252
|
+
for (const sort of this.internalSortState) {
|
|
253
|
+
const column = this.columns.find(c => c.id === sort.columnId);
|
|
254
|
+
if (!column || !sort.direction)
|
|
255
|
+
continue;
|
|
256
|
+
const aValue = this.getCellValue(a, column.accessor);
|
|
257
|
+
const bValue = this.getCellValue(b, column.accessor);
|
|
258
|
+
let comparison = 0;
|
|
259
|
+
if (column.type === 'number') {
|
|
260
|
+
comparison = (Number(aValue) || 0) - (Number(bValue) || 0);
|
|
261
|
+
}
|
|
262
|
+
else if (column.type === 'date') {
|
|
263
|
+
comparison = new Date(aValue).getTime() - new Date(bValue).getTime();
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
comparison = String(aValue ?? '').localeCompare(String(bValue ?? ''));
|
|
267
|
+
}
|
|
268
|
+
if (comparison !== 0) {
|
|
269
|
+
return sort.direction === 'desc' ? -comparison : comparison;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return 0;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
// -------------------------------------------------------------------------
|
|
276
|
+
// Grouping Logic
|
|
277
|
+
// -------------------------------------------------------------------------
|
|
278
|
+
getGroupedData(data) {
|
|
279
|
+
if (!this.enableGrouping || this.groupBy.length === 0) {
|
|
280
|
+
return [];
|
|
281
|
+
}
|
|
282
|
+
return this.groupByColumn(data, this.groupBy[0], 0);
|
|
283
|
+
}
|
|
284
|
+
groupByColumn(data, columnId, depth) {
|
|
285
|
+
const column = this.columns.find(c => c.id === columnId);
|
|
286
|
+
if (!column)
|
|
287
|
+
return [];
|
|
288
|
+
const groups = new Map();
|
|
289
|
+
for (const row of data) {
|
|
290
|
+
const value = this.getCellValue(row, column.accessor);
|
|
291
|
+
const key = String(value ?? '(Empty)');
|
|
292
|
+
if (!groups.has(key)) {
|
|
293
|
+
groups.set(key, []);
|
|
294
|
+
}
|
|
295
|
+
groups.get(key).push(row);
|
|
296
|
+
}
|
|
297
|
+
const result = [];
|
|
298
|
+
for (const [key, rows] of groups) {
|
|
299
|
+
const groupKey = `${columnId}:${key}`;
|
|
300
|
+
result.push({
|
|
301
|
+
key: groupKey,
|
|
302
|
+
value: key,
|
|
303
|
+
displayValue: key,
|
|
304
|
+
rows,
|
|
305
|
+
depth,
|
|
306
|
+
columnId,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
// Sort groups alphabetically
|
|
310
|
+
result.sort((a, b) => String(a.displayValue).localeCompare(String(b.displayValue)));
|
|
311
|
+
return result;
|
|
312
|
+
}
|
|
313
|
+
handleGroupToggle = (groupKey) => {
|
|
314
|
+
const isCurrentlyExpanded = this.expandedGroups.includes(groupKey);
|
|
315
|
+
if (isCurrentlyExpanded) {
|
|
316
|
+
this.expandedGroups = this.expandedGroups.filter(key => key !== groupKey);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this.expandedGroups = [...this.expandedGroups, groupKey];
|
|
320
|
+
}
|
|
321
|
+
this.bhGroupToggle.emit({ groupKey, expanded: !isCurrentlyExpanded });
|
|
322
|
+
};
|
|
323
|
+
// -------------------------------------------------------------------------
|
|
324
|
+
// Selection Handlers
|
|
325
|
+
// -------------------------------------------------------------------------
|
|
326
|
+
handleSelectAll = () => {
|
|
327
|
+
const processedData = this.getProcessedData();
|
|
328
|
+
const allKeys = processedData.map((row, i) => this.getRowKey(row, i));
|
|
329
|
+
const isAllSelected = allKeys.every(key => this.internalSelectedKeys.has(key));
|
|
330
|
+
if (isAllSelected) {
|
|
331
|
+
this.internalSelectedKeys = new Set();
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
this.internalSelectedKeys = new Set(allKeys);
|
|
335
|
+
}
|
|
336
|
+
this.emitSelectionChange();
|
|
337
|
+
};
|
|
338
|
+
handleRowSelect = (row, rowIndex) => {
|
|
339
|
+
const key = this.getRowKey(row, rowIndex);
|
|
340
|
+
if (this.selectionMode === 'single') {
|
|
341
|
+
if (this.internalSelectedKeys.has(key)) {
|
|
342
|
+
this.internalSelectedKeys = new Set();
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
this.internalSelectedKeys = new Set([key]);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
const newSet = new Set(this.internalSelectedKeys);
|
|
350
|
+
if (newSet.has(key)) {
|
|
351
|
+
newSet.delete(key);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
newSet.add(key);
|
|
355
|
+
}
|
|
356
|
+
this.internalSelectedKeys = newSet;
|
|
357
|
+
}
|
|
358
|
+
this.emitSelectionChange();
|
|
359
|
+
};
|
|
360
|
+
emitSelectionChange() {
|
|
361
|
+
const selectedKeys = Array.from(this.internalSelectedKeys);
|
|
362
|
+
const selectedRows = this.data.filter((row, i) => this.internalSelectedKeys.has(this.getRowKey(row, i)));
|
|
363
|
+
this.selectedKeys = selectedKeys;
|
|
364
|
+
this.bhSelectionChange.emit({ selectedKeys, selectedRows });
|
|
365
|
+
}
|
|
366
|
+
getSelectionState() {
|
|
367
|
+
const processedData = this.getProcessedData();
|
|
368
|
+
const allKeys = processedData.map((row, i) => this.getRowKey(row, i));
|
|
369
|
+
const selectedCount = allKeys.filter(key => this.internalSelectedKeys.has(key)).length;
|
|
370
|
+
return {
|
|
371
|
+
selectedRows: this.internalSelectedKeys,
|
|
372
|
+
isAllSelected: selectedCount === allKeys.length && allKeys.length > 0,
|
|
373
|
+
isIndeterminate: selectedCount > 0 && selectedCount < allKeys.length,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
// -------------------------------------------------------------------------
|
|
377
|
+
// Sort Handlers
|
|
378
|
+
// -------------------------------------------------------------------------
|
|
379
|
+
handleSort = (column) => {
|
|
380
|
+
if (!this.enableSorting || column.sortable === false)
|
|
381
|
+
return;
|
|
382
|
+
const existingSort = this.internalSortState.find(s => s.columnId === column.id);
|
|
383
|
+
let newDirection = 'asc';
|
|
384
|
+
if (existingSort) {
|
|
385
|
+
if (existingSort.direction === 'asc') {
|
|
386
|
+
newDirection = 'desc';
|
|
387
|
+
}
|
|
388
|
+
else if (existingSort.direction === 'desc') {
|
|
389
|
+
newDirection = null;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
let newSortState;
|
|
393
|
+
if (this.multiSort) {
|
|
394
|
+
newSortState = this.internalSortState.filter(s => s.columnId !== column.id);
|
|
395
|
+
if (newDirection) {
|
|
396
|
+
newSortState.push({ columnId: column.id, direction: newDirection });
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
newSortState = newDirection ? [{ columnId: column.id, direction: newDirection }] : [];
|
|
401
|
+
}
|
|
402
|
+
this.internalSortState = newSortState;
|
|
403
|
+
this.sortState = newSortState;
|
|
404
|
+
this.bhSortChange.emit(newSortState);
|
|
405
|
+
};
|
|
406
|
+
getSortDirection(columnId) {
|
|
407
|
+
const sort = this.internalSortState.find(s => s.columnId === columnId);
|
|
408
|
+
return sort?.direction ?? null;
|
|
409
|
+
}
|
|
410
|
+
// -------------------------------------------------------------------------
|
|
411
|
+
// Filter Handlers
|
|
412
|
+
// -------------------------------------------------------------------------
|
|
413
|
+
handleFilterInput = (column, value) => {
|
|
414
|
+
this.filterInputValues = { ...this.filterInputValues, [column.id]: value };
|
|
415
|
+
// Debounced filter application
|
|
416
|
+
const newFilterState = this.internalFilterState.filter(f => f.columnId !== column.id);
|
|
417
|
+
if (value.trim()) {
|
|
418
|
+
newFilterState.push({
|
|
419
|
+
columnId: column.id,
|
|
420
|
+
operator: column.type === 'number' ? 'equals' : column.type === 'date' ? 'equals' : 'contains',
|
|
421
|
+
value: value.trim(),
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
this.internalFilterState = newFilterState;
|
|
425
|
+
this.filterState = newFilterState;
|
|
426
|
+
this.bhFilterChange.emit(newFilterState);
|
|
427
|
+
};
|
|
428
|
+
toggleFilterPopover = (columnId) => {
|
|
429
|
+
if (this.activeFilterColumn === columnId) {
|
|
430
|
+
this.activeFilterColumn = null;
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
this.activeFilterColumn = columnId;
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
// -------------------------------------------------------------------------
|
|
437
|
+
// Row/Cell Handlers
|
|
438
|
+
// -------------------------------------------------------------------------
|
|
439
|
+
handleRowClick = (row, rowIndex) => {
|
|
440
|
+
const rowKey = this.getRowKey(row, rowIndex);
|
|
441
|
+
this.bhRowClick.emit({ row, rowIndex, rowKey });
|
|
442
|
+
};
|
|
443
|
+
handleCellClick = (row, column, rowIndex, columnIndex) => {
|
|
444
|
+
const value = this.getCellValue(row, column.accessor);
|
|
445
|
+
this.bhCellClick.emit({ row, column, value, rowIndex, columnIndex });
|
|
446
|
+
};
|
|
447
|
+
// -------------------------------------------------------------------------
|
|
448
|
+
// Render Methods
|
|
449
|
+
// -------------------------------------------------------------------------
|
|
450
|
+
renderHeader() {
|
|
451
|
+
if (!this.showHeader)
|
|
452
|
+
return null;
|
|
453
|
+
const visibleColumns = this.getVisibleColumns();
|
|
454
|
+
const selectionState = this.getSelectionState();
|
|
455
|
+
return (index.h("div", { class: "data-grid-header-row", role: "row" }, this.enableSelection && (index.h("div", { class: "data-grid-header-cell data-grid-cell-checkbox", role: "columnheader" }, index.h("bh-checkbox", { size: "sm", checked: selectionState.isAllSelected, indeterminate: selectionState.isIndeterminate, onBhChange: () => this.handleSelectAll() }))), visibleColumns.map((column) => this.renderHeaderCell(column))));
|
|
456
|
+
}
|
|
457
|
+
renderHeaderCell(column) {
|
|
458
|
+
const sortDirection = this.getSortDirection(column.id);
|
|
459
|
+
const isSortable = this.enableSorting && column.sortable !== false;
|
|
460
|
+
const cellClasses = {
|
|
461
|
+
'data-grid-header-cell': true,
|
|
462
|
+
'data-grid-header-cell-sortable': isSortable,
|
|
463
|
+
'data-grid-header-cell-sorted': sortDirection !== null,
|
|
464
|
+
[`data-grid-cell-align-${column.align || 'left'}`]: true,
|
|
465
|
+
};
|
|
466
|
+
const cellStyle = column.width
|
|
467
|
+
? { width: typeof column.width === 'number' ? `${column.width}px` : column.width }
|
|
468
|
+
: {};
|
|
469
|
+
return (index.h("div", { class: cellClasses, style: cellStyle, role: "columnheader", "aria-sort": sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none', onClick: () => isSortable && this.handleSort(column) }, index.h("span", { class: "data-grid-header-text" }, column.headerRenderer ? column.headerRenderer(column) : column.header), isSortable && sortDirection && (index.h("span", { class: "data-grid-sort-icon material-symbols-outlined" }, sortDirection === 'asc' ? 'arrow_upward' : 'arrow_downward'))));
|
|
470
|
+
}
|
|
471
|
+
renderFilterRow() {
|
|
472
|
+
if (!this.enableFiltering || !this.showFilterRow)
|
|
473
|
+
return null;
|
|
474
|
+
const visibleColumns = this.getVisibleColumns();
|
|
475
|
+
return (index.h("div", { class: "data-grid-filter-row", role: "row" }, this.enableSelection && (index.h("div", { class: "data-grid-filter-cell data-grid-cell-checkbox", role: "cell" })), visibleColumns.map((column) => this.renderFilterCell(column))));
|
|
476
|
+
}
|
|
477
|
+
renderFilterCell(column) {
|
|
478
|
+
if (column.filterable === false) {
|
|
479
|
+
return index.h("div", { class: "data-grid-filter-cell", role: "cell" });
|
|
480
|
+
}
|
|
481
|
+
const cellStyle = column.width
|
|
482
|
+
? { width: typeof column.width === 'number' ? `${column.width}px` : column.width }
|
|
483
|
+
: {};
|
|
484
|
+
const inputValue = this.filterInputValues[column.id] || '';
|
|
485
|
+
const hasFilter = inputValue.trim() !== '';
|
|
486
|
+
// For date columns, use date picker
|
|
487
|
+
if (column.type === 'date') {
|
|
488
|
+
return (index.h("div", { class: "data-grid-filter-cell", style: cellStyle, role: "cell" }, index.h("div", { class: { 'data-grid-filter-icon-wrapper': true, 'data-grid-filter-active': hasFilter } }, index.h("bh-date-picker", { variant: "dropdown-ghost", placeholder: "", showLabel: false, showFooter: false, onBhChange: (e) => {
|
|
489
|
+
const date = e.detail;
|
|
490
|
+
if (date) {
|
|
491
|
+
const dateStr = `${date.year}-${String(date.month + 1).padStart(2, '0')}-${String(date.day).padStart(2, '0')}`;
|
|
492
|
+
this.handleFilterInput(column, dateStr);
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
this.handleFilterInput(column, '');
|
|
496
|
+
}
|
|
497
|
+
} }))));
|
|
498
|
+
}
|
|
499
|
+
// For text/number columns, use search icon with popover input
|
|
500
|
+
return (index.h("div", { class: "data-grid-filter-cell", style: cellStyle, role: "cell" }, index.h("div", { class: { 'data-grid-filter-icon-wrapper': true, 'data-grid-filter-active': hasFilter } }, index.h("span", { class: "data-grid-filter-icon material-symbols-outlined", onClick: () => this.toggleFilterPopover(column.id) }, "search"), this.activeFilterColumn === column.id && (index.h("div", { class: "data-grid-filter-popover" }, index.h("input", { type: column.type === 'number' ? 'number' : 'text', class: "data-grid-filter-popover-input", placeholder: `Filter ${column.header}...`, value: inputValue, onInput: (e) => this.handleFilterInput(column, e.target.value), onKeyDown: (e) => {
|
|
501
|
+
if (e.key === 'Enter' || e.key === 'Escape') {
|
|
502
|
+
this.activeFilterColumn = null;
|
|
503
|
+
}
|
|
504
|
+
}, ref: (el) => el && requestAnimationFrame(() => el.focus()) }))))));
|
|
505
|
+
}
|
|
506
|
+
renderBody() {
|
|
507
|
+
const processedData = this.getProcessedData();
|
|
508
|
+
const visibleColumns = this.getVisibleColumns();
|
|
509
|
+
if (processedData.length === 0) {
|
|
510
|
+
return this.renderEmptyState();
|
|
511
|
+
}
|
|
512
|
+
// Check if grouping is enabled
|
|
513
|
+
if (this.enableGrouping && this.groupBy.length > 0) {
|
|
514
|
+
const groups = this.getGroupedData(processedData);
|
|
515
|
+
// Use expandedGroups directly in map for proper Stencil reactivity
|
|
516
|
+
const expandedKeys = this.expandedGroups;
|
|
517
|
+
return (index.h("div", { class: "data-grid-body", role: "rowgroup" }, groups.map((group) => {
|
|
518
|
+
const isExpanded = expandedKeys.includes(group.key);
|
|
519
|
+
return this.renderGroupSectionWithState(group, visibleColumns, isExpanded);
|
|
520
|
+
})));
|
|
521
|
+
}
|
|
522
|
+
return (index.h("div", { class: "data-grid-body", role: "rowgroup" }, processedData.map((row, rowIndex) => this.renderRow(row, rowIndex, visibleColumns))));
|
|
523
|
+
}
|
|
524
|
+
renderGroupSectionWithState(group, visibleColumns, isExpanded) {
|
|
525
|
+
const column = this.columns.find(c => c.id === group.columnId);
|
|
526
|
+
const columnHeader = column?.header || group.columnId;
|
|
527
|
+
const sectionClasses = {
|
|
528
|
+
'data-grid-group-section': true,
|
|
529
|
+
'data-grid-group-section-expanded': isExpanded,
|
|
530
|
+
};
|
|
531
|
+
return (index.h("div", { class: sectionClasses, key: group.key }, this.renderGroupRow(group, columnHeader, isExpanded), index.h("div", { class: "data-grid-group-rows", style: { display: isExpanded ? 'contents' : 'none' } }, group.rows.map((row, rowIndex) => {
|
|
532
|
+
const rowKey = this.getRowKey(row, rowIndex);
|
|
533
|
+
return (index.h("div", { key: `${group.key}-row-${rowKey}` }, this.renderRow(row, rowIndex, visibleColumns, group.depth + 1)));
|
|
534
|
+
}))));
|
|
535
|
+
}
|
|
536
|
+
renderGroupRow(group, columnHeader, isExpanded) {
|
|
537
|
+
const groupClasses = {
|
|
538
|
+
'data-grid-group-row': true,
|
|
539
|
+
'data-grid-group-row-expanded': isExpanded,
|
|
540
|
+
};
|
|
541
|
+
const indentStyle = group.depth > 0 ? { paddingLeft: `${(group.depth * 24) + 8}px` } : {};
|
|
542
|
+
return (index.h("div", { class: groupClasses, style: indentStyle, role: "row", "aria-expanded": isExpanded ? 'true' : 'false', onClick: () => this.handleGroupToggle(group.key) }, this.enableSelection && (index.h("div", { class: "data-grid-cell data-grid-cell-checkbox", role: "cell" }, index.h("bh-checkbox", { size: "sm", checked: this.isGroupAllSelected(group), indeterminate: this.isGroupIndeterminate(group), onBhChange: (e) => {
|
|
543
|
+
e.stopPropagation();
|
|
544
|
+
this.handleGroupSelect(group);
|
|
545
|
+
}, onClick: (e) => e.stopPropagation() }))), index.h("div", { class: "data-grid-group-toggle" }, index.h("span", { class: "material-symbols-outlined" }, "chevron_right")), index.h("span", { class: "data-grid-group-label" }, index.h("span", { class: "data-grid-group-column-name" }, columnHeader, ": "), index.h("span", { class: "data-grid-group-value" }, group.displayValue)), index.h("span", { class: "data-grid-group-count" }, "(", group.rows.length, " ", group.rows.length === 1 ? 'item' : 'items', ")")));
|
|
546
|
+
}
|
|
547
|
+
isGroupAllSelected(group) {
|
|
548
|
+
if (group.rows.length === 0)
|
|
549
|
+
return false;
|
|
550
|
+
return group.rows.every((row, i) => this.internalSelectedKeys.has(this.getRowKey(row, i)));
|
|
551
|
+
}
|
|
552
|
+
isGroupIndeterminate(group) {
|
|
553
|
+
const selectedCount = group.rows.filter((row, i) => this.internalSelectedKeys.has(this.getRowKey(row, i))).length;
|
|
554
|
+
return selectedCount > 0 && selectedCount < group.rows.length;
|
|
555
|
+
}
|
|
556
|
+
handleGroupSelect = (group) => {
|
|
557
|
+
const groupKeys = group.rows.map((row, i) => this.getRowKey(row, i));
|
|
558
|
+
const isAllSelected = this.isGroupAllSelected(group);
|
|
559
|
+
const newSet = new Set(this.internalSelectedKeys);
|
|
560
|
+
if (isAllSelected) {
|
|
561
|
+
// Deselect all in group
|
|
562
|
+
for (const key of groupKeys) {
|
|
563
|
+
newSet.delete(key);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
// Select all in group
|
|
568
|
+
for (const key of groupKeys) {
|
|
569
|
+
newSet.add(key);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
this.internalSelectedKeys = newSet;
|
|
573
|
+
this.emitSelectionChange();
|
|
574
|
+
};
|
|
575
|
+
// -------------------------------------------------------------------------
|
|
576
|
+
// Editing Handlers
|
|
577
|
+
// -------------------------------------------------------------------------
|
|
578
|
+
startEditing = (row, rowIndex, columnId) => {
|
|
579
|
+
if (!this.enableEditing)
|
|
580
|
+
return;
|
|
581
|
+
const rowKey = this.getRowKey(row, rowIndex);
|
|
582
|
+
// Initialize editing values from current row
|
|
583
|
+
const initialValues = {};
|
|
584
|
+
for (const col of this.columns) {
|
|
585
|
+
if (col.editable !== false) {
|
|
586
|
+
initialValues[col.id] = this.getCellValue(row, col.accessor);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
this.editingRowKey = rowKey;
|
|
590
|
+
this.editingColumnId = this.editMode === 'cell' ? (columnId || null) : null;
|
|
591
|
+
this.editingValues = initialValues;
|
|
592
|
+
if (this.editMode === 'popup') {
|
|
593
|
+
this.showEditPopup = true;
|
|
594
|
+
}
|
|
595
|
+
this.bhEditStart.emit({ rowKey, row, columnId });
|
|
596
|
+
};
|
|
597
|
+
cancelEditing = () => {
|
|
598
|
+
if (this.editingRowKey === null)
|
|
599
|
+
return;
|
|
600
|
+
const row = this.data.find((r, i) => this.getRowKey(r, i) === this.editingRowKey);
|
|
601
|
+
this.bhEditCancel.emit({ rowKey: this.editingRowKey, row });
|
|
602
|
+
this.editingRowKey = null;
|
|
603
|
+
this.editingColumnId = null;
|
|
604
|
+
this.editingValues = {};
|
|
605
|
+
this.showEditPopup = false;
|
|
606
|
+
};
|
|
607
|
+
saveEditing = () => {
|
|
608
|
+
if (this.editingRowKey === null)
|
|
609
|
+
return;
|
|
610
|
+
const rowIndex = this.data.findIndex((r, i) => this.getRowKey(r, i) === this.editingRowKey);
|
|
611
|
+
if (rowIndex === -1)
|
|
612
|
+
return;
|
|
613
|
+
const originalRow = this.data[rowIndex];
|
|
614
|
+
const changes = {};
|
|
615
|
+
// Determine what changed
|
|
616
|
+
for (const [columnId, newValue] of Object.entries(this.editingValues)) {
|
|
617
|
+
const column = this.columns.find(c => c.id === columnId);
|
|
618
|
+
if (column) {
|
|
619
|
+
const originalValue = this.getCellValue(originalRow, column.accessor);
|
|
620
|
+
if (originalValue !== newValue) {
|
|
621
|
+
changes[columnId] = newValue;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
this.bhEditSave.emit({
|
|
626
|
+
rowKey: this.editingRowKey,
|
|
627
|
+
rowIndex,
|
|
628
|
+
originalRow,
|
|
629
|
+
changes,
|
|
630
|
+
});
|
|
631
|
+
this.editingRowKey = null;
|
|
632
|
+
this.editingColumnId = null;
|
|
633
|
+
this.editingValues = {};
|
|
634
|
+
this.showEditPopup = false;
|
|
635
|
+
};
|
|
636
|
+
handleEditValueChange = (columnId, newValue) => {
|
|
637
|
+
const oldValue = this.editingValues[columnId];
|
|
638
|
+
this.editingValues = {
|
|
639
|
+
...this.editingValues,
|
|
640
|
+
[columnId]: newValue,
|
|
641
|
+
};
|
|
642
|
+
if (this.editingRowKey !== null) {
|
|
643
|
+
this.bhCellChange.emit({
|
|
644
|
+
rowKey: this.editingRowKey,
|
|
645
|
+
columnId,
|
|
646
|
+
oldValue,
|
|
647
|
+
newValue,
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
isEditing(rowKey, columnId) {
|
|
652
|
+
if (this.editingRowKey !== rowKey)
|
|
653
|
+
return false;
|
|
654
|
+
if (this.editMode === 'cell') {
|
|
655
|
+
return columnId ? this.editingColumnId === columnId : false;
|
|
656
|
+
}
|
|
657
|
+
// Row or popup mode - entire row is in edit mode
|
|
658
|
+
return true;
|
|
659
|
+
}
|
|
660
|
+
handleCellDoubleClick = (row, column, rowIndex) => {
|
|
661
|
+
if (!this.enableEditing || column.editable === false)
|
|
662
|
+
return;
|
|
663
|
+
if (this.editMode === 'cell') {
|
|
664
|
+
this.startEditing(row, rowIndex, column.id);
|
|
665
|
+
}
|
|
666
|
+
};
|
|
667
|
+
handleEditKeyDown = (event, column) => {
|
|
668
|
+
if (event.key === 'Enter') {
|
|
669
|
+
event.preventDefault();
|
|
670
|
+
if (this.editMode === 'cell') {
|
|
671
|
+
this.saveEditing();
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
else if (event.key === 'Escape') {
|
|
675
|
+
event.preventDefault();
|
|
676
|
+
this.cancelEditing();
|
|
677
|
+
}
|
|
678
|
+
else if (event.key === 'Tab' && this.editMode === 'cell') {
|
|
679
|
+
// Move to next editable cell
|
|
680
|
+
event.preventDefault();
|
|
681
|
+
this.moveToNextEditableCell(column, event.shiftKey);
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
moveToNextEditableCell = (currentColumn, reverse) => {
|
|
685
|
+
const editableColumns = this.columns.filter(c => c.editable !== false && c.visible !== false);
|
|
686
|
+
const currentIndex = editableColumns.findIndex(c => c.id === currentColumn.id);
|
|
687
|
+
if (currentIndex === -1)
|
|
688
|
+
return;
|
|
689
|
+
const nextIndex = reverse ? currentIndex - 1 : currentIndex + 1;
|
|
690
|
+
if (nextIndex >= 0 && nextIndex < editableColumns.length) {
|
|
691
|
+
// Same row, different column
|
|
692
|
+
this.editingColumnId = editableColumns[nextIndex].id;
|
|
693
|
+
}
|
|
694
|
+
else {
|
|
695
|
+
// Save and potentially move to next/prev row
|
|
696
|
+
this.saveEditing();
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
// -------------------------------------------------------------------------
|
|
700
|
+
// Render Methods
|
|
701
|
+
// -------------------------------------------------------------------------
|
|
702
|
+
renderRow(row, rowIndex, visibleColumns, depth = 0) {
|
|
703
|
+
const rowKey = this.getRowKey(row, rowIndex);
|
|
704
|
+
const isSelected = this.internalSelectedKeys.has(rowKey);
|
|
705
|
+
const isHovered = this.hoveredRowIndex === rowIndex;
|
|
706
|
+
const isRowEditing = this.editingRowKey === rowKey;
|
|
707
|
+
const rowClasses = {
|
|
708
|
+
'data-grid-row': true,
|
|
709
|
+
'data-grid-row-selected': isSelected,
|
|
710
|
+
'data-grid-row-hover': isHovered,
|
|
711
|
+
'data-grid-row-striped': this.striped && rowIndex % 2 === 1,
|
|
712
|
+
'data-grid-row-grouped': depth > 0,
|
|
713
|
+
'data-grid-row-editing': isRowEditing,
|
|
714
|
+
};
|
|
715
|
+
return (index.h("div", { class: rowClasses, role: "row", "aria-selected": isSelected ? 'true' : 'false', onMouseEnter: () => { this.hoveredRowIndex = rowIndex; }, onMouseLeave: () => { this.hoveredRowIndex = null; }, onClick: () => this.handleRowClick(row, rowIndex) }, this.enableSelection && (index.h("div", { class: "data-grid-cell data-grid-cell-checkbox", role: "cell", onClick: (e) => { e.stopPropagation(); } }, index.h("bh-checkbox", { size: "sm", checked: isSelected, onBhChange: () => this.handleRowSelect(row, rowIndex), onClick: (e) => e.stopPropagation() }))), depth > 0 && (index.h("div", { class: "data-grid-row-indent", style: { width: `${depth * 24}px` } })), visibleColumns.map((column, columnIndex) => this.renderCell(row, column, rowIndex, columnIndex)), this.enableEditing && this.showEditActions && this.renderRowActions(row, rowIndex, isRowEditing)));
|
|
716
|
+
}
|
|
717
|
+
renderRowActions(row, rowIndex, isEditing) {
|
|
718
|
+
return (index.h("div", { class: "data-grid-cell data-grid-cell-actions", role: "cell", onClick: (e) => e.stopPropagation() }, isEditing ? (index.h("div", { class: "data-grid-edit-actions" }, index.h("button", { class: "data-grid-action-btn data-grid-action-save", onClick: () => this.saveEditing(), title: "Save" }, index.h("span", { class: "material-symbols-outlined" }, "check")), index.h("button", { class: "data-grid-action-btn data-grid-action-cancel", onClick: () => this.cancelEditing(), title: "Cancel" }, index.h("span", { class: "material-symbols-outlined" }, "close")))) : (index.h("button", { class: "data-grid-action-btn data-grid-action-edit", onClick: () => this.startEditing(row, rowIndex), title: "Edit" }, index.h("span", { class: "material-symbols-outlined" }, "edit")))));
|
|
719
|
+
}
|
|
720
|
+
renderCell(row, column, rowIndex, columnIndex) {
|
|
721
|
+
const rowKey = this.getRowKey(row, rowIndex);
|
|
722
|
+
const value = this.getCellValue(row, column.accessor);
|
|
723
|
+
const isEditingCell = this.isEditing(rowKey, column.id);
|
|
724
|
+
const canEdit = this.enableEditing && column.editable !== false;
|
|
725
|
+
const cellClasses = {
|
|
726
|
+
'data-grid-cell': true,
|
|
727
|
+
[`data-grid-cell-align-${column.align || 'left'}`]: true,
|
|
728
|
+
[`data-grid-cell-type-${column.type || 'text'}`]: true,
|
|
729
|
+
'data-grid-cell-editing': isEditingCell,
|
|
730
|
+
'data-grid-cell-editable': canEdit && !isEditingCell,
|
|
731
|
+
};
|
|
732
|
+
const cellStyle = column.width
|
|
733
|
+
? { width: typeof column.width === 'number' ? `${column.width}px` : column.width }
|
|
734
|
+
: {};
|
|
735
|
+
return (index.h("div", { class: cellClasses, style: cellStyle, role: "cell", onClick: (e) => {
|
|
736
|
+
e.stopPropagation();
|
|
737
|
+
this.handleCellClick(row, column, rowIndex, columnIndex);
|
|
738
|
+
}, onDblClick: (e) => {
|
|
739
|
+
e.stopPropagation();
|
|
740
|
+
this.handleCellDoubleClick(row, column, rowIndex);
|
|
741
|
+
} }, isEditingCell
|
|
742
|
+
? this.renderEditInput(column, value)
|
|
743
|
+
: column.cellRenderer
|
|
744
|
+
? column.cellRenderer(value, row, rowIndex)
|
|
745
|
+
: this.formatCellValue(value, column.type)));
|
|
746
|
+
}
|
|
747
|
+
renderEditInput(column, originalValue) {
|
|
748
|
+
const currentValue = this.editingValues[column.id] ?? originalValue;
|
|
749
|
+
// Custom edit renderer takes precedence
|
|
750
|
+
if (column.editCellRenderer) {
|
|
751
|
+
return column.editCellRenderer(currentValue, {}, // row not needed for most custom renderers
|
|
752
|
+
0, (newValue) => this.handleEditValueChange(column.id, newValue));
|
|
753
|
+
}
|
|
754
|
+
const inputType = column.type === 'number' ? 'number' :
|
|
755
|
+
column.type === 'date' ? 'date' :
|
|
756
|
+
column.type === 'boolean' ? 'checkbox' : 'text';
|
|
757
|
+
if (column.type === 'boolean') {
|
|
758
|
+
return (index.h("bh-checkbox", { size: "sm", checked: Boolean(currentValue), onBhChange: (e) => this.handleEditValueChange(column.id, e.detail.checked) }));
|
|
759
|
+
}
|
|
760
|
+
return (index.h("input", { type: inputType, class: "data-grid-edit-input", value: currentValue != null ? String(currentValue) : '', onInput: (e) => {
|
|
761
|
+
const input = e.target;
|
|
762
|
+
const newValue = column.type === 'number' ? Number(input.value) : input.value;
|
|
763
|
+
this.handleEditValueChange(column.id, newValue);
|
|
764
|
+
}, onKeyDown: (e) => this.handleEditKeyDown(e, column), ref: (el) => {
|
|
765
|
+
if (el) {
|
|
766
|
+
// Auto-focus on the first editable input
|
|
767
|
+
requestAnimationFrame(() => el.focus());
|
|
768
|
+
}
|
|
769
|
+
} }));
|
|
770
|
+
}
|
|
771
|
+
formatCellValue(value, type) {
|
|
772
|
+
if (value === null || value === undefined)
|
|
773
|
+
return '';
|
|
774
|
+
switch (type) {
|
|
775
|
+
case 'date':
|
|
776
|
+
return new Date(value).toLocaleDateString();
|
|
777
|
+
case 'number':
|
|
778
|
+
return typeof value === 'number' ? value.toLocaleString() : String(value);
|
|
779
|
+
case 'boolean':
|
|
780
|
+
return value ? 'Yes' : 'No';
|
|
781
|
+
default:
|
|
782
|
+
return String(value);
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
renderEmptyState() {
|
|
786
|
+
return (index.h("div", { class: "data-grid-empty-state" }, index.h("bh-empty-state", { emptyTitle: "No data", description: this.emptyMessage })));
|
|
787
|
+
}
|
|
788
|
+
renderLoading() {
|
|
789
|
+
return (index.h("div", { class: "data-grid-loading-overlay" }, index.h("bh-loader-spinner", { size: "lg" })));
|
|
790
|
+
}
|
|
791
|
+
// -------------------------------------------------------------------------
|
|
792
|
+
// Main Render
|
|
793
|
+
// -------------------------------------------------------------------------
|
|
794
|
+
render() {
|
|
795
|
+
const gridClasses = {
|
|
796
|
+
'data-grid': true,
|
|
797
|
+
'data-grid-compact': this.compact,
|
|
798
|
+
'data-grid-bordered': this.showRowBorders,
|
|
799
|
+
'data-grid-loading': this.loading,
|
|
800
|
+
};
|
|
801
|
+
return (index.h("div", { key: '84558de55b37276d9a68eaa64072dbf738782c36', class: gridClasses, role: "grid", "aria-busy": this.loading ? 'true' : 'false' }, index.h("div", { key: 'a94fd614b010dec14fb2ecf40c26c7056fd0421c', class: "data-grid-table" }, this.renderHeader(), this.renderFilterRow(), this.renderBody()), this.loading && this.renderLoading()));
|
|
802
|
+
}
|
|
803
|
+
static get watchers() { return {
|
|
804
|
+
"selectedKeys": ["handleSelectedKeysChange"],
|
|
805
|
+
"sortState": ["handleSortStateChange"],
|
|
806
|
+
"filterState": ["handleFilterStateChange"]
|
|
807
|
+
}; }
|
|
808
|
+
};
|
|
809
|
+
BhDataGrid.style = bhDataGridCss;
|
|
810
|
+
|
|
811
|
+
exports.bh_data_grid = BhDataGrid;
|
|
812
|
+
//# sourceMappingURL=bh-data-grid.entry.cjs.js.map
|