impact-nova 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/dist/App.d.ts +2 -0
- package/dist/assets/flatten.worker-C7x-Wj6s.js +1 -0
- package/dist/components/layout/dashboard-layout.d.ts +25 -0
- package/dist/components/ui/accordion-nested-list/accordion-nested-list.d.ts +3 -0
- package/dist/components/ui/accordion-nested-list/accordion-nested-list.js +105 -0
- package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.d.ts +19 -0
- package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.js +41 -0
- package/dist/components/ui/accordion-nested-list/index.d.ts +2 -0
- package/dist/components/ui/accordion-nested-list/index.js +4 -0
- package/dist/components/ui/accordion.d.ts +10 -0
- package/dist/components/ui/accordion.js +52 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.d.ts +30 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.js +27 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.d.ts +44 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.js +22 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.d.ts +29 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.js +36 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.d.ts +37 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.js +50 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.d.ts +33 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.js +73 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.d.ts +21 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.js +91 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.d.ts +45 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.js +64 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.d.ts +9 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.js +85 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.d.ts +31 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.js +61 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.d.ts +10 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.js +5 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/index.d.ts +90 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/index.js +65 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.js +27 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.d.ts +63 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.js +148 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.d.ts +45 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.js +25 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.d.ts +13 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.js +67 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.js +26 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.js +38 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.d.ts +34 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.js +32 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/types.d.ts +129 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/types.js +74 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.d.ts +24 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.js +223 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.d.ts +24 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.js +230 -0
- package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.d.ts +11 -0
- package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.js +113 -0
- package/dist/components/ui/ag-grid-react/headers/components/header-info.d.ts +37 -0
- package/dist/components/ui/ag-grid-react/headers/components/header-info.js +93 -0
- package/dist/components/ui/ag-grid-react/headers/components/info-modal.d.ts +12 -0
- package/dist/components/ui/ag-grid-react/headers/components/info-modal.js +18 -0
- package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.d.ts +16 -0
- package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.js +13 -0
- package/dist/components/ui/ag-grid-react/headers/components/section-renderers.d.ts +32 -0
- package/dist/components/ui/ag-grid-react/headers/components/section-renderers.js +78 -0
- package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.d.ts +34 -0
- package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.js +6 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header-group.d.ts +12 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header-group.js +33 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header.d.ts +4 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header.js +230 -0
- package/dist/components/ui/ag-grid-react/headers/header-search-input.d.ts +29 -0
- package/dist/components/ui/ag-grid-react/headers/header-search-input.js +352 -0
- package/dist/components/ui/ag-grid-react/headers/utils/date-utils.d.ts +46 -0
- package/dist/components/ui/ag-grid-react/headers/utils/date-utils.js +38 -0
- package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.d.ts +117 -0
- package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.js +434 -0
- package/dist/components/ui/ag-grid-react/index.d.ts +5 -0
- package/dist/components/ui/ag-grid-react/index.js +183 -0
- package/dist/components/ui/ag-grid-react/process-backend-columndefs.d.ts +31 -0
- package/dist/components/ui/ag-grid-react/process-backend-columndefs.js +61 -0
- package/dist/components/ui/ag-grid-react/theme.d.ts +2 -0
- package/dist/components/ui/ag-grid-react/theme.js +46 -0
- package/dist/components/ui/ag-grid-react/value-formatters.d.ts +22 -0
- package/dist/components/ui/ag-grid-react/value-formatters.js +95 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert-dialog.js +114 -0
- package/dist/components/ui/alert.d.ts +11 -0
- package/dist/components/ui/alert.js +54 -0
- package/dist/components/ui/avatar.d.ts +14 -0
- package/dist/components/ui/avatar.js +60 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.js +54 -0
- package/dist/components/ui/breadcrumb.d.ts +24 -0
- package/dist/components/ui/breadcrumb.js +150 -0
- package/dist/components/ui/button-group.d.ts +17 -0
- package/dist/components/ui/button-group.js +110 -0
- package/dist/components/ui/button-variants.d.ts +4 -0
- package/dist/components/ui/button-variants.js +31 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.js +27 -0
- package/dist/components/ui/calendar.d.ts +46 -0
- package/dist/components/ui/calendar.js +660 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.js +61 -0
- package/dist/components/ui/chart/chart.d.ts +29 -0
- package/dist/components/ui/chart/chart.js +203 -0
- package/dist/components/ui/chart/chart.utils.d.ts +3 -0
- package/dist/components/ui/chart/chart.utils.js +192 -0
- package/dist/components/ui/chart/index.d.ts +3 -0
- package/dist/components/ui/chart/index.js +12 -0
- package/dist/components/ui/checkbox.d.ts +8 -0
- package/dist/components/ui/checkbox.js +54 -0
- package/dist/components/ui/chips.d.ts +13 -0
- package/dist/components/ui/chips.js +60 -0
- package/dist/components/ui/data-table/data-table-column-list.d.ts +6 -0
- package/dist/components/ui/data-table/data-table-column-list.js +153 -0
- package/dist/components/ui/data-table/data-table-context.d.ts +18 -0
- package/dist/components/ui/data-table/data-table-context.js +11 -0
- package/dist/components/ui/data-table/data-table-format-options.d.ts +1 -0
- package/dist/components/ui/data-table/data-table-format-options.js +74 -0
- package/dist/components/ui/data-table/data-table-sheet.d.ts +20 -0
- package/dist/components/ui/data-table/data-table-sheet.js +81 -0
- package/dist/components/ui/data-table/data-table-view-options.d.ts +8 -0
- package/dist/components/ui/data-table/data-table-view-options.js +75 -0
- package/dist/components/ui/data-table/data-table.d.ts +26 -0
- package/dist/components/ui/data-table/data-table.js +67 -0
- package/dist/components/ui/data-table/index.d.ts +6 -0
- package/dist/components/ui/data-table/index.js +20 -0
- package/dist/components/ui/data-table/stories/fakeServer.d.ts +14 -0
- package/dist/components/ui/data-table/stories/interfaces.d.ts +15 -0
- package/dist/components/ui/date-picker/date-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/date-picker.js +116 -0
- package/dist/components/ui/date-picker/date-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/date-range-picker.js +195 -0
- package/dist/components/ui/date-picker/index.d.ts +18 -0
- package/dist/components/ui/date-picker/index.js +20 -0
- package/dist/components/ui/date-picker/month-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/month-picker.js +117 -0
- package/dist/components/ui/date-picker/month-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/month-range-picker.js +193 -0
- package/dist/components/ui/date-picker/multi-date-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-date-picker.js +94 -0
- package/dist/components/ui/date-picker/multi-month-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-month-picker.js +93 -0
- package/dist/components/ui/date-picker/multi-week-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-week-picker.js +98 -0
- package/dist/components/ui/date-picker/week-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/week-picker.js +135 -0
- package/dist/components/ui/date-picker/week-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/week-range-picker.js +207 -0
- package/dist/components/ui/dialog.d.ts +25 -0
- package/dist/components/ui/dialog.js +116 -0
- package/dist/components/ui/drawer.d.ts +22 -0
- package/dist/components/ui/drawer.js +98 -0
- package/dist/components/ui/dropdown-menu.d.ts +42 -0
- package/dist/components/ui/dropdown-menu.js +193 -0
- package/dist/components/ui/dynamic-layout.d.ts +12 -0
- package/dist/components/ui/dynamic-layout.js +50 -0
- package/dist/components/ui/empty-container.d.ts +8 -0
- package/dist/components/ui/empty-container.js +108 -0
- package/dist/components/ui/file-upload.d.ts +12 -0
- package/dist/components/ui/file-upload.js +241 -0
- package/dist/components/ui/filter-panel/filter-panel.d.ts +7 -0
- package/dist/components/ui/filter-panel/filter-panel.js +101 -0
- package/dist/components/ui/filter-panel/index.d.ts +2 -0
- package/dist/components/ui/filter-panel/index.js +8 -0
- package/dist/components/ui/filter-strip/filter-strip.d.ts +3 -0
- package/dist/components/ui/filter-strip/filter-strip.js +95 -0
- package/dist/components/ui/filter-strip/filter-summary.d.ts +15 -0
- package/dist/components/ui/filter-strip/filter-summary.js +204 -0
- package/dist/components/ui/filter-strip/filter-tag-list.d.ts +9 -0
- package/dist/components/ui/filter-strip/filter-tag-list.js +136 -0
- package/dist/components/ui/filter-strip/index.d.ts +2 -0
- package/dist/components/ui/filter-strip/index.js +4 -0
- package/dist/components/ui/header.d.ts +15 -0
- package/dist/components/ui/header.js +125 -0
- package/dist/components/ui/horizontal-scroller/horizontal-scroller.d.ts +4 -0
- package/dist/components/ui/horizontal-scroller/horizontal-scroller.js +165 -0
- package/dist/components/ui/horizontal-scroller/index.d.ts +2 -0
- package/dist/components/ui/horizontal-scroller/index.js +1 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/hover-card.js +23 -0
- package/dist/components/ui/input.d.ts +17 -0
- package/dist/components/ui/input.js +107 -0
- package/dist/components/ui/label.d.ts +3 -0
- package/dist/components/ui/label.js +18 -0
- package/dist/components/ui/loader.d.ts +11 -0
- package/dist/components/ui/loader.js +72 -0
- package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.d.ts +11 -0
- package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.js +37 -0
- package/dist/components/ui/nested-list/components/NestedListCategoryFilters.d.ts +10 -0
- package/dist/components/ui/nested-list/components/NestedListCategoryFilters.js +33 -0
- package/dist/components/ui/nested-list/components/NestedListContent.d.ts +21 -0
- package/dist/components/ui/nested-list/components/NestedListContent.js +73 -0
- package/dist/components/ui/nested-list/components/NestedListDragOverlay.d.ts +7 -0
- package/dist/components/ui/nested-list/components/NestedListHeader.d.ts +18 -0
- package/dist/components/ui/nested-list/components/NestedListHeader.js +86 -0
- package/dist/components/ui/nested-list/components/SortableItem.d.ts +17 -0
- package/dist/components/ui/nested-list/components/SortableItem.js +139 -0
- package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.d.ts +14 -0
- package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.js +168 -0
- package/dist/components/ui/nested-list/hooks/useNestedListHandlers.d.ts +42 -0
- package/dist/components/ui/nested-list/hooks/useNestedListHandlers.js +185 -0
- package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.d.ts +16 -0
- package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.js +62 -0
- package/dist/components/ui/nested-list/hooks/useNestedListState.d.ts +73 -0
- package/dist/components/ui/nested-list/hooks/useNestedListState.js +165 -0
- package/dist/components/ui/nested-list/index.d.ts +2 -0
- package/dist/components/ui/nested-list/index.js +6 -0
- package/dist/components/ui/nested-list/nested-list.d.ts +3 -0
- package/dist/components/ui/nested-list/nested-list.js +363 -0
- package/dist/components/ui/notification-panel/index.d.ts +3 -0
- package/dist/components/ui/notification-panel/index.js +20 -0
- package/dist/components/ui/notification-panel/notification-item.d.ts +14 -0
- package/dist/components/ui/notification-panel/notification-item.js +86 -0
- package/dist/components/ui/notification-panel/notification-list.d.ts +5 -0
- package/dist/components/ui/notification-panel/notification-list.js +45 -0
- package/dist/components/ui/notification-panel/notification-panel.d.ts +9 -0
- package/dist/components/ui/notification-panel/notification-panel.js +58 -0
- package/dist/components/ui/popover.d.ts +24 -0
- package/dist/components/ui/popover.js +84 -0
- package/dist/components/ui/portal.d.ts +7 -0
- package/dist/components/ui/portal.js +18 -0
- package/dist/components/ui/progress-bar.d.ts +1 -0
- package/dist/components/ui/progress.d.ts +9 -0
- package/dist/components/ui/progress.js +61 -0
- package/dist/components/ui/prompt.d.ts +26 -0
- package/dist/components/ui/prompt.js +141 -0
- package/dist/components/ui/radio-group.d.ts +11 -0
- package/dist/components/ui/radio-group.js +68 -0
- package/dist/components/ui/select/components/LabelWithSequence.d.ts +13 -0
- package/dist/components/ui/select/components/LabelWithSequence.js +18 -0
- package/dist/components/ui/select/components/Submenu.d.ts +15 -0
- package/dist/components/ui/select/components/Submenu.js +85 -0
- package/dist/components/ui/select/hooks/useClickOutside.d.ts +15 -0
- package/dist/components/ui/select/hooks/useClickOutside.js +43 -0
- package/dist/components/ui/select/hooks/useFlattenOptions.d.ts +24 -0
- package/dist/components/ui/select/hooks/useFlattenOptions.js +233 -0
- package/dist/components/ui/select/hooks/useMenuPosition.d.ts +2 -0
- package/dist/components/ui/select/hooks/useMenuPosition.js +89 -0
- package/dist/components/ui/select/hooks/useSelectionModel.d.ts +6 -0
- package/dist/components/ui/select/hooks/useSelectionModel.js +25 -0
- package/dist/components/ui/select/hooks/useVisibleStats.d.ts +16 -0
- package/dist/components/ui/select/hooks/useVisibleStats.js +54 -0
- package/dist/components/ui/select/index.d.ts +3 -0
- package/dist/components/ui/select/index.js +13 -0
- package/dist/components/ui/select/select.d.ts +6 -0
- package/dist/components/ui/select/select.js +814 -0
- package/dist/components/ui/select/utils/select.d.ts +12 -0
- package/dist/components/ui/select/utils/select.js +72 -0
- package/dist/components/ui/select/workers/flatten.worker.d.ts +9 -0
- package/dist/components/ui/select/workers/flatten.worker.js +11 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/separator.js +24 -0
- package/dist/components/ui/sheet.d.ts +30 -0
- package/dist/components/ui/sheet.js +157 -0
- package/dist/components/ui/sidebar.d.ts +98 -0
- package/dist/components/ui/sidebar.js +681 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/skeleton.js +17 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/slider.js +23 -0
- package/dist/components/ui/smart-input.d.ts +25 -0
- package/dist/components/ui/smart-input.js +177 -0
- package/dist/components/ui/stepper.d.ts +22 -0
- package/dist/components/ui/stepper.js +137 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/switch.js +27 -0
- package/dist/components/ui/tabs.d.ts +14 -0
- package/dist/components/ui/tabs.js +102 -0
- package/dist/components/ui/tag-group.d.ts +22 -0
- package/dist/components/ui/tag-group.js +56 -0
- package/dist/components/ui/tag.d.ts +16 -0
- package/dist/components/ui/tag.js +72 -0
- package/dist/components/ui/textarea.d.ts +13 -0
- package/dist/components/ui/textarea.js +85 -0
- package/dist/components/ui/toast.d.ts +17 -0
- package/dist/components/ui/toast.js +102 -0
- package/dist/components/ui/toaster.d.ts +6 -0
- package/dist/components/ui/toaster.js +100 -0
- package/dist/components/ui/tooltip.d.ts +14 -0
- package/dist/components/ui/tooltip.js +49 -0
- package/dist/components/ui/types/accordion-nested-list.types.d.ts +112 -0
- package/dist/components/ui/types/accordion.types.d.ts +1 -0
- package/dist/components/ui/types/ag-grid.types.d.ts +164 -0
- package/dist/components/ui/types/alert.types.d.ts +5 -0
- package/dist/components/ui/types/avatar.types.d.ts +1 -0
- package/dist/components/ui/types/badge.types.d.ts +1 -0
- package/dist/components/ui/types/breadcrumb.types.d.ts +1 -0
- package/dist/components/ui/types/button-group.types.d.ts +1 -0
- package/dist/components/ui/types/button.types.d.ts +1 -0
- package/dist/components/ui/types/card.types.d.ts +1 -0
- package/dist/components/ui/types/chart.types.d.ts +23 -0
- package/dist/components/ui/types/checkbox.types.d.ts +1 -0
- package/dist/components/ui/types/chips.types.d.ts +1 -0
- package/dist/components/ui/types/date-picker.types.d.ts +100 -0
- package/dist/components/ui/types/dialog.types.d.ts +8 -0
- package/dist/components/ui/types/dynamic-layout.types.d.ts +1 -0
- package/dist/components/ui/types/empty-container.types.d.ts +18 -0
- package/dist/components/ui/types/file-upload.types.d.ts +23 -0
- package/dist/components/ui/types/filter-panel.types.d.ts +42 -0
- package/dist/components/ui/types/filter-strip.types.d.ts +86 -0
- package/dist/components/ui/types/horizontal-scroller.types.d.ts +49 -0
- package/dist/components/ui/types/hover-card.types.d.ts +1 -0
- package/dist/components/ui/types/input.types.d.ts +1 -0
- package/dist/components/ui/types/loader.types.d.ts +1 -0
- package/dist/components/ui/types/nested-list.types.d.ts +63 -0
- package/dist/components/ui/types/nested-list.types.js +24 -0
- package/dist/components/ui/types/notification-panel.types.d.ts +63 -0
- package/dist/components/ui/types/popover.types.d.ts +1 -0
- package/dist/components/ui/types/progress-bar.types.d.ts +2 -0
- package/dist/components/ui/types/prompt.types.d.ts +1 -0
- package/dist/components/ui/types/radio-button-group.types.d.ts +1 -0
- package/dist/components/ui/types/select.types.d.ts +329 -0
- package/dist/components/ui/types/sidebar.types.d.ts +1 -0
- package/dist/components/ui/types/slider.types.d.ts +1 -0
- package/dist/components/ui/types/stepper.types.d.ts +1 -0
- package/dist/components/ui/types/switch.types.d.ts +1 -0
- package/dist/components/ui/types/tabs.types.d.ts +1 -0
- package/dist/components/ui/types/tag-group.types.d.ts +1 -0
- package/dist/components/ui/types/tag.types.d.ts +1 -0
- package/dist/components/ui/types/text-area.types.d.ts +1 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.js +97 -0
- package/dist/ia-logo.svg +18 -0
- package/dist/icons/assets/PivotMode.svg.js +4 -0
- package/dist/icons/assets/PivotMode.svg2.js +5 -0
- package/dist/icons/assets/alan.svg.js +4 -0
- package/dist/icons/assets/alan.svg2.js +5 -0
- package/dist/icons/assets/alerts.svg.js +4 -0
- package/dist/icons/assets/alerts.svg2.js +5 -0
- package/dist/icons/assets/analyticalSearch.svg.js +4 -0
- package/dist/icons/assets/analyticalSearch.svg2.js +5 -0
- package/dist/icons/assets/back.svg.js +4 -0
- package/dist/icons/assets/back.svg2.js +5 -0
- package/dist/icons/assets/backdrop.svg.js +4 -0
- package/dist/icons/assets/backdrop.svg2.js +15 -0
- package/dist/icons/assets/bell.svg.js +4 -0
- package/dist/icons/assets/bell.svg2.js +5 -0
- package/dist/icons/assets/bin.svg.js +4 -0
- package/dist/icons/assets/bin.svg2.js +5 -0
- package/dist/icons/assets/blocks.svg.js +4 -0
- package/dist/icons/assets/blocks.svg2.js +5 -0
- package/dist/icons/assets/box.svg.js +4 -0
- package/dist/icons/assets/box.svg2.js +5 -0
- package/dist/icons/assets/calender-month.svg.js +4 -0
- package/dist/icons/assets/calender-month.svg2.js +5 -0
- package/dist/icons/assets/calender.svg.js +4 -0
- package/dist/icons/assets/calender.svg2.js +5 -0
- package/dist/icons/assets/chart.svg.js +4 -0
- package/dist/icons/assets/chart.svg2.js +5 -0
- package/dist/icons/assets/checkmark.svg.js +4 -0
- package/dist/icons/assets/checkmark.svg2.js +5 -0
- package/dist/icons/assets/chevronRight.svg.js +4 -0
- package/dist/icons/assets/chevronRight.svg2.js +5 -0
- package/dist/icons/assets/collapse.svg.js +4 -0
- package/dist/icons/assets/collapse.svg2.js +5 -0
- package/dist/icons/assets/column.svg.js +4 -0
- package/dist/icons/assets/column.svg2.js +5 -0
- package/dist/icons/assets/copy.svg.js +4 -0
- package/dist/icons/assets/copy.svg2.js +5 -0
- package/dist/icons/assets/createNewDocument.svg.js +4 -0
- package/dist/icons/assets/createNewDocument.svg2.js +5 -0
- package/dist/icons/assets/cross.svg.js +4 -0
- package/dist/icons/assets/cross.svg2.js +5 -0
- package/dist/icons/assets/delete.svg.js +4 -0
- package/dist/icons/assets/delete.svg2.js +5 -0
- package/dist/icons/assets/density.svg.js +4 -0
- package/dist/icons/assets/density.svg2.js +5 -0
- package/dist/icons/assets/document.svg.js +4 -0
- package/dist/icons/assets/document.svg2.js +5 -0
- package/dist/icons/assets/drag.svg.js +4 -0
- package/dist/icons/assets/drag.svg2.js +5 -0
- package/dist/icons/assets/draw.svg.js +4 -0
- package/dist/icons/assets/draw.svg2.js +5 -0
- package/dist/icons/assets/email.svg.js +4 -0
- package/dist/icons/assets/email.svg2.js +5 -0
- package/dist/icons/assets/errorCircle.svg.js +4 -0
- package/dist/icons/assets/errorCircle.svg2.js +5 -0
- package/dist/icons/assets/expand.svg.js +4 -0
- package/dist/icons/assets/expand.svg2.js +5 -0
- package/dist/icons/assets/filter.svg.js +4 -0
- package/dist/icons/assets/filter.svg2.js +5 -0
- package/dist/icons/assets/fiveSideStar.svg.js +4 -0
- package/dist/icons/assets/fiveSideStar.svg2.js +5 -0
- package/dist/icons/assets/floppy.svg.js +4 -0
- package/dist/icons/assets/floppy.svg2.js +5 -0
- package/dist/icons/assets/font.svg.js +4 -0
- package/dist/icons/assets/font.svg2.js +5 -0
- package/dist/icons/assets/funnel-hide.svg.js +4 -0
- package/dist/icons/assets/funnel-hide.svg2.js +5 -0
- package/dist/icons/assets/funnel-show.svg.js +4 -0
- package/dist/icons/assets/funnel-show.svg2.js +5 -0
- package/dist/icons/assets/globe.svg.js +4 -0
- package/dist/icons/assets/globe.svg2.js +5 -0
- package/dist/icons/assets/hamburger-closed.svg.js +4 -0
- package/dist/icons/assets/hamburger-closed.svg2.js +5 -0
- package/dist/icons/assets/hamburger-open.svg.js +4 -0
- package/dist/icons/assets/hamburger-open.svg2.js +5 -0
- package/dist/icons/assets/help-icon.svg.js +4 -0
- package/dist/icons/assets/help-icon.svg2.js +5 -0
- package/dist/icons/assets/ia-logo.svg.js +4 -0
- package/dist/icons/assets/ia-logo.svg2.js +5 -0
- package/dist/icons/assets/illustration_1.svg.js +4 -0
- package/dist/icons/assets/illustration_1.svg2.js +5 -0
- package/dist/icons/assets/info-icon.svg.js +4 -0
- package/dist/icons/assets/info-icon.svg2.js +5 -0
- package/dist/icons/assets/loadingSpinner.svg.js +4 -0
- package/dist/icons/assets/loadingSpinner.svg2.js +5 -0
- package/dist/icons/assets/locked.svg.js +4 -0
- package/dist/icons/assets/locked.svg2.js +5 -0
- package/dist/icons/assets/loginArrow.svg.js +4 -0
- package/dist/icons/assets/loginArrow.svg2.js +5 -0
- package/dist/icons/assets/matchWith.svg.js +4 -0
- package/dist/icons/assets/matchWith.svg2.js +5 -0
- package/dist/icons/assets/message-icon.svg.js +4 -0
- package/dist/icons/assets/message-icon.svg2.js +5 -0
- package/dist/icons/assets/more.svg.js +4 -0
- package/dist/icons/assets/more.svg2.js +5 -0
- package/dist/icons/assets/multi-color-filter.svg.js +4 -0
- package/dist/icons/assets/multi-color-filter.svg2.js +5 -0
- package/dist/icons/assets/paperrocket.svg.js +4 -0
- package/dist/icons/assets/paperrocket.svg2.js +5 -0
- package/dist/icons/assets/pencil.svg.js +4 -0
- package/dist/icons/assets/pencil.svg2.js +5 -0
- package/dist/icons/assets/person.svg.js +4 -0
- package/dist/icons/assets/person.svg2.js +5 -0
- package/dist/icons/assets/pin.svg.js +4 -0
- package/dist/icons/assets/pin.svg2.js +5 -0
- package/dist/icons/assets/plus.svg.js +4 -0
- package/dist/icons/assets/plus.svg2.js +5 -0
- package/dist/icons/assets/reset.svg.js +4 -0
- package/dist/icons/assets/reset.svg2.js +5 -0
- package/dist/icons/assets/rocket.svg.js +4 -0
- package/dist/icons/assets/rocket.svg2.js +5 -0
- package/dist/icons/assets/search.svg.js +4 -0
- package/dist/icons/assets/search.svg2.js +5 -0
- package/dist/icons/assets/settings.svg.js +4 -0
- package/dist/icons/assets/settings.svg2.js +5 -0
- package/dist/icons/assets/shapes.svg.js +4 -0
- package/dist/icons/assets/shapes.svg2.js +5 -0
- package/dist/icons/assets/stack-comfort.svg.js +4 -0
- package/dist/icons/assets/stack-comfort.svg2.js +5 -0
- package/dist/icons/assets/stack-compact.svg.js +4 -0
- package/dist/icons/assets/stack-compact.svg2.js +5 -0
- package/dist/icons/assets/stack.svg.js +4 -0
- package/dist/icons/assets/stack.svg2.js +5 -0
- package/dist/icons/assets/store.svg.js +4 -0
- package/dist/icons/assets/store.svg2.js +5 -0
- package/dist/icons/assets/table.svg.js +4 -0
- package/dist/icons/assets/table.svg2.js +5 -0
- package/dist/icons/assets/three-dots.svg.js +4 -0
- package/dist/icons/assets/three-dots.svg2.js +5 -0
- package/dist/icons/assets/trendingDown.svg.js +4 -0
- package/dist/icons/assets/trendingDown.svg2.js +5 -0
- package/dist/icons/assets/trendingFlat.svg.js +4 -0
- package/dist/icons/assets/trendingFlat.svg2.js +5 -0
- package/dist/icons/assets/trendingNeutral.svg.js +4 -0
- package/dist/icons/assets/trendingNeutral.svg2.js +5 -0
- package/dist/icons/assets/trendingUp.svg.js +4 -0
- package/dist/icons/assets/trendingUp.svg2.js +5 -0
- package/dist/icons/assets/unpin.svg.js +4 -0
- package/dist/icons/assets/unpin.svg2.js +5 -0
- package/dist/icons/assets/upload.svg.js +4 -0
- package/dist/icons/assets/upload.svg2.js +5 -0
- package/dist/icons/assets/webp/bill-or-receipt.webp.js +4 -0
- package/dist/icons/assets/webp/checklist-with-pen.webp.js +4 -0
- package/dist/icons/assets/webp/click-me-arrow.webp.js +4 -0
- package/dist/icons/assets/webp/csv-logo.webp.js +4 -0
- package/dist/icons/assets/webp/dollar.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-1.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-2.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-3.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-4.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-5.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-6.webp.js +4 -0
- package/dist/icons/assets/webp/excel-logo.webp.js +4 -0
- package/dist/icons/assets/webp/file-upload.webp.js +4 -0
- package/dist/icons/assets/webp/inventory-adjustment.webp.js +4 -0
- package/dist/icons/assets/webp/multicolor-bell.webp.js +4 -0
- package/dist/icons/assets/webp/price-tag.webp.js +4 -0
- package/dist/icons/assets/webp/receipts-stack.webp.js +4 -0
- package/dist/icons/assets/webp/recommended-receipt.webp.js +4 -0
- package/dist/icons/assets/webp/return-carton.webp.js +4 -0
- package/dist/icons/assets/webp/shipping-container.webp.js +4 -0
- package/dist/icons/assets/webp/stack-of-packaged-boxes.webp.js +4 -0
- package/dist/icons/assets/webp/text-logo.webp.js +4 -0
- package/dist/icons/assets/webp/two-stacked-packaged-boxes.webp.js +4 -0
- package/dist/icons/assets/webp/warranty.webp.js +4 -0
- package/dist/icons/index.d.ts +119 -0
- package/dist/icons/index.js +382 -0
- package/dist/impact-nova.css +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +340 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.js +18 -0
- package/dist/main.d.ts +0 -0
- package/dist/vite.svg +1 -0
- package/package.json +515 -0
- package/tailwind.config.d.ts +6 -0
- package/tailwind.config.js +182 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ICellRendererParams } from 'ag-grid-community';
|
|
2
|
+
export interface SwitchDisplayRendererProps extends ICellRendererParams {
|
|
3
|
+
/** Label shown to the left of the switch */
|
|
4
|
+
leftLabel?: string;
|
|
5
|
+
/** Label shown to the right of the switch */
|
|
6
|
+
rightLabel?: string;
|
|
7
|
+
/** Whether the switch is disabled */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* SwitchDisplayRenderer - Lightweight styled div that looks like a toggle switch.
|
|
12
|
+
*
|
|
13
|
+
* Like CheckboxDisplayRenderer, this toggles the boolean value directly on click
|
|
14
|
+
* via `node.setDataValue()`. No separate editor component is needed.
|
|
15
|
+
*
|
|
16
|
+
* Zero React state: the on/off state is derived from `props.value`.
|
|
17
|
+
*
|
|
18
|
+
* The switch visual matches impact-nova's Switch component styling
|
|
19
|
+
* (16px height, 24px width, rounded-full) but is rendered as pure CSS divs
|
|
20
|
+
* to avoid mounting a Radix primitive for every cell.
|
|
21
|
+
*
|
|
22
|
+
* Usage in colDef:
|
|
23
|
+
* ```ts
|
|
24
|
+
* {
|
|
25
|
+
* field: 'isEnabled',
|
|
26
|
+
* cellRenderer: SwitchDisplayRenderer,
|
|
27
|
+
* editable: false,
|
|
28
|
+
* cellRendererParams: { leftLabel: 'Off', rightLabel: 'On' },
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare const SwitchDisplayRenderer: {
|
|
33
|
+
(props: SwitchDisplayRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsxs as b, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback as d } from "react";
|
|
3
|
+
const p = (c) => {
|
|
4
|
+
const { value: u, node: i, column: l, leftLabel: o, rightLabel: s, disabled: e } = c, r = !!u, a = d(() => {
|
|
5
|
+
e || !l || i.setDataValue(l.getColId(), !r);
|
|
6
|
+
}, [e, l, i, r]), h = d(
|
|
7
|
+
(n) => {
|
|
8
|
+
e || (n.key === " " || n.key === "Enter") && (n.preventDefault(), a());
|
|
9
|
+
},
|
|
10
|
+
[e, a]
|
|
11
|
+
);
|
|
12
|
+
return /* @__PURE__ */ b("div", { className: `flex items-center justify-center h-full w-full gap-2 ag-cell-inner-padding ${e ? "opacity-60 cursor-not-allowed" : !e ? "ag-editable-cell-highlight" : ""}`, children: [
|
|
13
|
+
o && /* @__PURE__ */ t("span", { className: "text-xs text-muted-foreground", children: o }),
|
|
14
|
+
/* @__PURE__ */ t(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
onClick: a,
|
|
18
|
+
onKeyDown: h,
|
|
19
|
+
role: "switch",
|
|
20
|
+
"aria-checked": r,
|
|
21
|
+
"aria-disabled": e,
|
|
22
|
+
tabIndex: e ? -1 : 0,
|
|
23
|
+
className: `inline-flex h-4 w-6 shrink-0 items-center rounded-full border transition-colors ${e ? "cursor-not-allowed opacity-50" : "cursor-pointer"} ${r ? "bg-[#eceefd] border-accordion-bg" : "bg-white border-light-blue"}`,
|
|
24
|
+
children: /* @__PURE__ */ t(
|
|
25
|
+
"div",
|
|
26
|
+
{
|
|
27
|
+
className: `pointer-events-none block h-[10px] w-[10px] rounded-full shadow-lg transition-transform ${r ? "translate-x-[10px] bg-primary" : "translate-x-[2px] bg-tertiary-border"}`
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
),
|
|
32
|
+
s && /* @__PURE__ */ t("span", { className: "text-xs text-muted-foreground", children: s })
|
|
33
|
+
] });
|
|
34
|
+
};
|
|
35
|
+
p.displayName = "SwitchDisplayRenderer";
|
|
36
|
+
export {
|
|
37
|
+
p as SwitchDisplayRenderer
|
|
38
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ICellRendererParams } from 'ag-grid-community';
|
|
2
|
+
export interface TextAreaDisplayRendererProps extends ICellRendererParams {
|
|
3
|
+
/** Placeholder text shown when value is empty */
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
/** Whether the field is disabled */
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Maximum lines to show before truncating (default: 2) */
|
|
8
|
+
maxLines?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* TextAreaDisplayRenderer - Lightweight styled div showing truncated multi-line text.
|
|
12
|
+
*
|
|
13
|
+
* This is the DISPLAY component. It renders no `<textarea>` element and holds
|
|
14
|
+
* zero React state. Shows the text value with line-clamp truncation.
|
|
15
|
+
* When clicked, AG Grid activates the paired `TextAreaCellEditor` as a popup.
|
|
16
|
+
*
|
|
17
|
+
* Usage in colDef:
|
|
18
|
+
* ```ts
|
|
19
|
+
* {
|
|
20
|
+
* field: 'description',
|
|
21
|
+
* cellRenderer: TextAreaDisplayRenderer,
|
|
22
|
+
* cellEditor: TextAreaCellEditor,
|
|
23
|
+
* cellEditorPopup: true,
|
|
24
|
+
* editable: true,
|
|
25
|
+
* singleClickEdit: true,
|
|
26
|
+
* cellRendererParams: { placeholder: 'Enter description...', maxLines: 2 },
|
|
27
|
+
* cellEditorParams: { rows: 4, maxLength: 500, placeholder: 'Enter description...' },
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const TextAreaDisplayRenderer: {
|
|
32
|
+
(props: TextAreaDisplayRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
displayName: string;
|
|
34
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
const m = (r) => {
|
|
3
|
+
const { valueFormatted: s, value: t, placeholder: d, disabled: i, maxLines: n = 2, colDef: o } = r, c = !i && o?.editable === !0, e = s ?? (t != null ? String(t) : ""), a = e === "" || e == null;
|
|
4
|
+
return /* @__PURE__ */ l(
|
|
5
|
+
"div",
|
|
6
|
+
{
|
|
7
|
+
className: `w-full h-full flex items-center ag-cell-inner-padding ${i ? "opacity-60 cursor-not-allowed" : c ? "ag-editable-cell-highlight" : ""}`,
|
|
8
|
+
children: /* @__PURE__ */ l(
|
|
9
|
+
"div",
|
|
10
|
+
{
|
|
11
|
+
className: "flex w-full items-center rounded-[8px] bg-white px-1.5 h-7 cursor-text",
|
|
12
|
+
children: /* @__PURE__ */ l(
|
|
13
|
+
"span",
|
|
14
|
+
{
|
|
15
|
+
className: `w-full text-sm font-medium text-[#1f2b4d] overflow-hidden ${a ? "text-[#dfe2e7]" : ""}`,
|
|
16
|
+
style: {
|
|
17
|
+
display: "-webkit-box",
|
|
18
|
+
WebkitLineClamp: n,
|
|
19
|
+
WebkitBoxOrient: "vertical"
|
|
20
|
+
},
|
|
21
|
+
children: a ? d ?? "" : e
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
m.displayName = "TextAreaDisplayRenderer";
|
|
30
|
+
export {
|
|
31
|
+
m as TextAreaDisplayRenderer
|
|
32
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { IRowNode, ColDef, GridApi, Column } from 'ag-grid-community';
|
|
3
|
+
/**
|
|
4
|
+
* Badge variant/color mapping types used across badge-related renderers.
|
|
5
|
+
*/
|
|
6
|
+
export type BadgeVariant = 'solid' | 'outline' | 'subtle';
|
|
7
|
+
export type BadgeColor = 'primary' | 'success' | 'warning' | 'destructive' | 'neutral';
|
|
8
|
+
/**
|
|
9
|
+
* Maps legacy variant names (from backend/config) to impact-nova Badge variants.
|
|
10
|
+
*/
|
|
11
|
+
export declare const mapBadgeVariant: (v: string | undefined) => BadgeVariant;
|
|
12
|
+
/**
|
|
13
|
+
* Maps legacy color names (from backend/config) to impact-nova Badge colors.
|
|
14
|
+
*/
|
|
15
|
+
export declare const mapBadgeColor: (c: string | undefined) => BadgeColor;
|
|
16
|
+
/**
|
|
17
|
+
* Resolves a value from either a static prop or a field in row data.
|
|
18
|
+
* Used by renderers that support both static and dynamic (field-driven) configuration.
|
|
19
|
+
*/
|
|
20
|
+
export declare const getFieldValue: <T>(fieldName: string | undefined, staticValue: T | undefined, rowData: Record<string, unknown> | null | undefined) => T | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Validation condition for dynamic behavior
|
|
23
|
+
*/
|
|
24
|
+
export interface ValidationCondition {
|
|
25
|
+
field: string;
|
|
26
|
+
condition: '>' | '<' | '>=' | '<=' | '==' | '!=' | 'contains';
|
|
27
|
+
value: any;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validation rules for disabling/enabling elements
|
|
31
|
+
*/
|
|
32
|
+
export interface ValidationRules {
|
|
33
|
+
disabled?: {
|
|
34
|
+
operator: 'AND' | 'OR';
|
|
35
|
+
conditions: ValidationCondition[];
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Evaluates validation rules against row data
|
|
40
|
+
*/
|
|
41
|
+
export declare const evaluateValidationRules: (rules: ValidationRules | undefined, rowData: Record<string, unknown> | null | undefined) => boolean;
|
|
42
|
+
export interface SelectOption {
|
|
43
|
+
label: string;
|
|
44
|
+
value: string;
|
|
45
|
+
isDisabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface ActionButton {
|
|
48
|
+
label: string;
|
|
49
|
+
onClick: (data: Record<string, unknown>) => void;
|
|
50
|
+
variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
51
|
+
size?: 'default' | 'sm' | 'lg' | 'icon';
|
|
52
|
+
icon?: ReactNode;
|
|
53
|
+
iconPlacement?: 'left' | 'right';
|
|
54
|
+
className?: string;
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface RightSideIcon {
|
|
58
|
+
icon?: string | ReactNode;
|
|
59
|
+
iconField?: string;
|
|
60
|
+
tooltip?: string;
|
|
61
|
+
tooltipField?: string;
|
|
62
|
+
tooltipSide?: 'top' | 'bottom' | 'left' | 'right';
|
|
63
|
+
backgroundColor?: string;
|
|
64
|
+
backgroundColorField?: string;
|
|
65
|
+
color?: string;
|
|
66
|
+
colorField?: string;
|
|
67
|
+
showOnHover?: boolean;
|
|
68
|
+
onClick?: (params: {
|
|
69
|
+
rowId: string;
|
|
70
|
+
field: string;
|
|
71
|
+
rowData: Record<string, unknown>;
|
|
72
|
+
}) => void | Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
export interface RightSideBadge {
|
|
75
|
+
label?: string;
|
|
76
|
+
labelField?: string;
|
|
77
|
+
color?: string;
|
|
78
|
+
colorField?: string;
|
|
79
|
+
variant?: string;
|
|
80
|
+
variantField?: string;
|
|
81
|
+
onClick?: (params: {
|
|
82
|
+
rowId: string;
|
|
83
|
+
field: string;
|
|
84
|
+
rowData: Record<string, unknown>;
|
|
85
|
+
}) => void | Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
export interface RightSideContentItem {
|
|
88
|
+
type: 'icon' | 'badge' | 'dynamic';
|
|
89
|
+
icon?: RightSideIcon;
|
|
90
|
+
badge?: RightSideBadge;
|
|
91
|
+
dynamic?: ReactNode | ((rowData: Record<string, unknown>) => ReactNode);
|
|
92
|
+
}
|
|
93
|
+
export interface RightSideContent {
|
|
94
|
+
items: RightSideContentItem[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Props passed to components rendered within a SplitCellRenderer or SplitCellEditor.
|
|
98
|
+
* These are "sub-cell" components that receive a subset of standard AG Grid params.
|
|
99
|
+
*/
|
|
100
|
+
export interface SubCellComponentProps {
|
|
101
|
+
value: unknown;
|
|
102
|
+
valueFormatted?: string;
|
|
103
|
+
data: unknown;
|
|
104
|
+
node?: IRowNode;
|
|
105
|
+
colDef?: ColDef;
|
|
106
|
+
api?: GridApi;
|
|
107
|
+
column?: Column;
|
|
108
|
+
context?: unknown;
|
|
109
|
+
onValueChange?: (value: unknown) => void;
|
|
110
|
+
suppressAutoFocus?: boolean;
|
|
111
|
+
stopEditing?: (suppressNavigateAfterEdit?: boolean) => void;
|
|
112
|
+
}
|
|
113
|
+
export interface SplitConfig {
|
|
114
|
+
field: string;
|
|
115
|
+
headerName?: string;
|
|
116
|
+
type?: string;
|
|
117
|
+
editable?: boolean;
|
|
118
|
+
cellRenderer?: string | React.ComponentType<SubCellComponentProps>;
|
|
119
|
+
cellRendererParams?: Record<string, unknown>;
|
|
120
|
+
cellEditor?: string | React.ComponentType<SubCellComponentProps>;
|
|
121
|
+
cellEditorParams?: Record<string, unknown>;
|
|
122
|
+
valueFormatter?: string | {
|
|
123
|
+
type: string;
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
} | ((params: {
|
|
126
|
+
value: unknown;
|
|
127
|
+
data: unknown;
|
|
128
|
+
}) => string | React.ReactNode);
|
|
129
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const i = (r) => {
|
|
2
|
+
switch (r) {
|
|
3
|
+
case "filled":
|
|
4
|
+
return "solid";
|
|
5
|
+
case "stroke":
|
|
6
|
+
return "outline";
|
|
7
|
+
case "subtle":
|
|
8
|
+
return "subtle";
|
|
9
|
+
case "solid":
|
|
10
|
+
return "solid";
|
|
11
|
+
case "outline":
|
|
12
|
+
return "outline";
|
|
13
|
+
default:
|
|
14
|
+
return "solid";
|
|
15
|
+
}
|
|
16
|
+
}, l = (r) => {
|
|
17
|
+
switch (r) {
|
|
18
|
+
case "default":
|
|
19
|
+
return "primary";
|
|
20
|
+
case "info":
|
|
21
|
+
return "primary";
|
|
22
|
+
case "success":
|
|
23
|
+
return "success";
|
|
24
|
+
case "warning":
|
|
25
|
+
return "warning";
|
|
26
|
+
case "error":
|
|
27
|
+
return "destructive";
|
|
28
|
+
case "primary":
|
|
29
|
+
return "primary";
|
|
30
|
+
case "destructive":
|
|
31
|
+
return "destructive";
|
|
32
|
+
case "neutral":
|
|
33
|
+
return "neutral";
|
|
34
|
+
default:
|
|
35
|
+
return "primary";
|
|
36
|
+
}
|
|
37
|
+
}, c = (r, n, u) => {
|
|
38
|
+
if (r && u && r in u) {
|
|
39
|
+
const s = u[r];
|
|
40
|
+
return s != null && s !== "" ? s : void 0;
|
|
41
|
+
}
|
|
42
|
+
return n;
|
|
43
|
+
}, o = (r, n) => {
|
|
44
|
+
if (!r?.disabled || !n) return !1;
|
|
45
|
+
const { operator: u, conditions: s } = r.disabled, a = s.map((e) => {
|
|
46
|
+
const t = n[e.field];
|
|
47
|
+
if (t == null) return !1;
|
|
48
|
+
switch (e.condition) {
|
|
49
|
+
case ">":
|
|
50
|
+
return Number(t) > Number(e.value);
|
|
51
|
+
case "<":
|
|
52
|
+
return Number(t) < Number(e.value);
|
|
53
|
+
case ">=":
|
|
54
|
+
return Number(t) >= Number(e.value);
|
|
55
|
+
case "<=":
|
|
56
|
+
return Number(t) <= Number(e.value);
|
|
57
|
+
case "==":
|
|
58
|
+
return t == e.value;
|
|
59
|
+
case "!=":
|
|
60
|
+
return t != e.value;
|
|
61
|
+
case "contains":
|
|
62
|
+
return String(t).includes(String(e.value));
|
|
63
|
+
default:
|
|
64
|
+
return !1;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return u === "AND" ? a.every((e) => e === !0) : u === "OR" ? a.some((e) => e === !0) : !1;
|
|
68
|
+
};
|
|
69
|
+
export {
|
|
70
|
+
o as evaluateValidationRules,
|
|
71
|
+
c as getFieldValue,
|
|
72
|
+
l as mapBadgeColor,
|
|
73
|
+
i as mapBadgeVariant
|
|
74
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AdvancedFilterModel } from '../../../types/ag-grid.types';
|
|
3
|
+
import { GridApi } from 'ag-grid-community';
|
|
4
|
+
interface AdvancedFilterDialogProps {
|
|
5
|
+
isOpen: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
onApply: (model: AdvancedFilterModel | null) => void;
|
|
8
|
+
columnId: string;
|
|
9
|
+
columnLabel: string;
|
|
10
|
+
columnType: 'text' | 'number' | 'date' | 'select' | 'multi';
|
|
11
|
+
selectOptions?: Array<{
|
|
12
|
+
label: string;
|
|
13
|
+
value: string;
|
|
14
|
+
}>;
|
|
15
|
+
isMultiSelect?: boolean;
|
|
16
|
+
initialModel?: AdvancedFilterModel | null;
|
|
17
|
+
api?: GridApi;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* AdvancedFilterDialog - Uses ColumnFilterSection for each column.
|
|
21
|
+
* Per-column logic stored as a map.
|
|
22
|
+
*/
|
|
23
|
+
export declare const AdvancedFilterDialog: React.FC<AdvancedFilterDialogProps>;
|
|
24
|
+
export default AdvancedFilterDialog;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { jsxs as f, jsx as r, Fragment as Q } from "react/jsx-runtime";
|
|
2
|
+
import { useState as R } from "react";
|
|
3
|
+
import { Dialog as U, DialogContent as W, DialogHeader as X, DialogTitle as Y, DialogClose as Z, DialogBody as _, DialogFooter as I } from "../../../dialog.js";
|
|
4
|
+
import { Button as p } from "../../../button.js";
|
|
5
|
+
import { ButtonGroup as ee } from "../../../button-group.js";
|
|
6
|
+
import { Cross as te } from "../../../../../icons/index.js";
|
|
7
|
+
import { ColumnFilterSection as q } from "./column-filter-section.js";
|
|
8
|
+
import { createEmptyRule as F } from "../utils/filter-utils.js";
|
|
9
|
+
const z = (N) => {
|
|
10
|
+
const c = {};
|
|
11
|
+
return N.forEach((m) => {
|
|
12
|
+
m.columnId && (c[m.columnId] || (c[m.columnId] = []), c[m.columnId].push(m));
|
|
13
|
+
}), c;
|
|
14
|
+
}, ce = ({
|
|
15
|
+
isOpen: N,
|
|
16
|
+
onClose: c,
|
|
17
|
+
onApply: m,
|
|
18
|
+
columnId: s,
|
|
19
|
+
columnLabel: B,
|
|
20
|
+
columnType: C,
|
|
21
|
+
selectOptions: A,
|
|
22
|
+
isMultiSelect: P,
|
|
23
|
+
initialModel: j,
|
|
24
|
+
api: d
|
|
25
|
+
// Add api to props
|
|
26
|
+
}) => {
|
|
27
|
+
const T = () => (j?.rules || []).filter((e) => !("logic" in e)), [y, $] = R("column"), [x, S] = R(() => {
|
|
28
|
+
const e = {}, n = T(), t = z(n);
|
|
29
|
+
return Object.keys(t).forEach((a) => {
|
|
30
|
+
e[a] = j?.logic || "OR";
|
|
31
|
+
}), e[s] || (e[s] = "OR"), e;
|
|
32
|
+
}), [h, O] = R(() => {
|
|
33
|
+
const e = T();
|
|
34
|
+
if (d) {
|
|
35
|
+
const t = d.getFilterModel();
|
|
36
|
+
t && Object.keys(t).forEach((i) => {
|
|
37
|
+
if (!e.some((l) => l.columnId === i)) {
|
|
38
|
+
const l = t[i];
|
|
39
|
+
let o = null;
|
|
40
|
+
if (l.filterType === "text")
|
|
41
|
+
o = {
|
|
42
|
+
id: Math.random().toString(36).substr(2, 9),
|
|
43
|
+
columnId: i,
|
|
44
|
+
columnType: "text",
|
|
45
|
+
operator: l.type === "contains" ? "contains" : "equals",
|
|
46
|
+
value: l.filter
|
|
47
|
+
};
|
|
48
|
+
else if (l.filterType === "number")
|
|
49
|
+
o = {
|
|
50
|
+
id: Math.random().toString(36).substr(2, 9),
|
|
51
|
+
columnId: i,
|
|
52
|
+
columnType: "number",
|
|
53
|
+
operator: l.type === "equals" ? "equals" : l.type || "equals",
|
|
54
|
+
value: String(l.filter)
|
|
55
|
+
};
|
|
56
|
+
else if (l.filterType === "set")
|
|
57
|
+
o = {
|
|
58
|
+
id: Math.random().toString(36).substr(2, 9),
|
|
59
|
+
columnId: i,
|
|
60
|
+
columnType: "select",
|
|
61
|
+
operator: "equals",
|
|
62
|
+
value: l.values
|
|
63
|
+
};
|
|
64
|
+
else if (l.filterType === "multi") {
|
|
65
|
+
const u = l.filterModels?.find((b) => b && b.filterType === "set");
|
|
66
|
+
u && (o = {
|
|
67
|
+
id: Math.random().toString(36).substr(2, 9),
|
|
68
|
+
columnId: i,
|
|
69
|
+
columnType: "multi",
|
|
70
|
+
// or select?
|
|
71
|
+
operator: "equals",
|
|
72
|
+
value: u.values
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
o && e.push(o);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return e.some((t) => t.columnId === s) || e.push(F(s, C)), e;
|
|
80
|
+
}), [v] = R(() => ({
|
|
81
|
+
allRules: h,
|
|
82
|
+
// Use the computed rules (potentially synced)
|
|
83
|
+
columnLogic: { ...x }
|
|
84
|
+
})), G = JSON.stringify({ allRules: h, columnLogic: x }) !== JSON.stringify(v), k = (e) => h.filter((n) => n.columnId === e), D = (e, n) => {
|
|
85
|
+
O((t) => {
|
|
86
|
+
const a = /* @__PURE__ */ new Set(), i = [];
|
|
87
|
+
t.forEach((o) => {
|
|
88
|
+
a.has(o.columnId) || (a.add(o.columnId), i.push(o.columnId));
|
|
89
|
+
}), a.has(e) || i.push(e);
|
|
90
|
+
const l = [];
|
|
91
|
+
return i.forEach((o) => {
|
|
92
|
+
o === e ? l.push(...n) : l.push(...t.filter((u) => u.columnId === o));
|
|
93
|
+
}), l;
|
|
94
|
+
});
|
|
95
|
+
}, L = (e) => x[e] || "OR", M = (e, n) => {
|
|
96
|
+
S((t) => ({ ...t, [e]: n }));
|
|
97
|
+
}, J = () => {
|
|
98
|
+
y === "column" ? (D(s, [F(s, C)]), M(s, "OR")) : (O([F(s, C)]), S({ [s]: "OR" }));
|
|
99
|
+
}, H = () => {
|
|
100
|
+
O(v.allRules.length > 0 ? v.allRules : [F(s, C)]), S(v.columnLogic);
|
|
101
|
+
}, V = () => {
|
|
102
|
+
const e = h.filter((n) => n.operator === "empty" || n.operator === "notEmpty" ? !!n.columnId : n.columnId && n.value !== "" && n.value !== null);
|
|
103
|
+
if (e.length === 0)
|
|
104
|
+
m(null);
|
|
105
|
+
else {
|
|
106
|
+
const n = e[0].columnId;
|
|
107
|
+
m({ logic: L(n), rules: e });
|
|
108
|
+
}
|
|
109
|
+
c();
|
|
110
|
+
}, K = z(h), w = Object.keys(K), E = (e, n) => {
|
|
111
|
+
if (!d) return n;
|
|
112
|
+
const t = d.getColumn(e);
|
|
113
|
+
if (!t) return n;
|
|
114
|
+
const a = t.getColDef(), i = [];
|
|
115
|
+
let l = t.getParent();
|
|
116
|
+
for (; l; ) {
|
|
117
|
+
const u = l.getColGroupDef();
|
|
118
|
+
u && u.headerName && i.unshift(u.headerName), l = l.getParent();
|
|
119
|
+
}
|
|
120
|
+
const o = a?.headerName || e;
|
|
121
|
+
return i.push(o), i.join(" > ");
|
|
122
|
+
};
|
|
123
|
+
return /* @__PURE__ */ f(U, { open: N, onOpenChange: c, children: [
|
|
124
|
+
(console.log("[AdvancedFilterDialog] Current State:", {
|
|
125
|
+
mode: y,
|
|
126
|
+
allRules: h,
|
|
127
|
+
columnLogic: x,
|
|
128
|
+
activeColumns: w
|
|
129
|
+
}), null),
|
|
130
|
+
/* @__PURE__ */ f(W, { className: "w-[550px] max-w-[95vw] p-0", hideClose: !0, children: [
|
|
131
|
+
/* @__PURE__ */ f(X, { className: "flex flex-row items-center gap-4 px-4 py-2", children: [
|
|
132
|
+
/* @__PURE__ */ r(Y, { children: "Advanced Filter" }),
|
|
133
|
+
/* @__PURE__ */ r("div", { className: "flex-1 flex items-center justify-end", children: /* @__PURE__ */ f(
|
|
134
|
+
ee,
|
|
135
|
+
{
|
|
136
|
+
className: "",
|
|
137
|
+
value: y,
|
|
138
|
+
onValueChange: (e) => $(e),
|
|
139
|
+
children: [
|
|
140
|
+
/* @__PURE__ */ r(p, { value: "column", size: "md", children: "Current Column" }),
|
|
141
|
+
/* @__PURE__ */ r(p, { value: "global", size: "md", children: "All Filters" })
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
) }),
|
|
145
|
+
/* @__PURE__ */ r(Z, { asChild: !0, children: /* @__PURE__ */ r(p, { variant: "ghost", size: "icon", className: "h-8 w-8 p-0 text-[#60697D] hover:text-[#3649C6]", onClick: c, "aria-label": "Close", children: /* @__PURE__ */ r(te, { size: 14 }) }) })
|
|
146
|
+
] }),
|
|
147
|
+
/* @__PURE__ */ r(_, { className: "px-0 py-4 min-h-[300px] max-h-[400px] overflow-y-auto", children: /* @__PURE__ */ r("div", { className: "flex flex-col gap-6 w-full px-4", children: y === "column" ? (
|
|
148
|
+
// Column Mode: Single column section
|
|
149
|
+
/* @__PURE__ */ r(
|
|
150
|
+
q,
|
|
151
|
+
{
|
|
152
|
+
columnId: s,
|
|
153
|
+
columnLabel: E(s, B),
|
|
154
|
+
columnType: C,
|
|
155
|
+
selectOptions: A,
|
|
156
|
+
isMultiSelect: A ? !!P : !0,
|
|
157
|
+
rules: k(s),
|
|
158
|
+
logic: L(s),
|
|
159
|
+
onLogicChange: (e) => M(s, e),
|
|
160
|
+
onRulesChange: (e) => D(s, e)
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
) : (
|
|
164
|
+
// Global Mode: All columns with filters
|
|
165
|
+
/* @__PURE__ */ r(Q, { children: w.length === 0 ? /* @__PURE__ */ r("div", { className: "text-center py-8 text-slate-400", children: "No filters applied. Open a column to add filters." }) : w.map((e, n) => {
|
|
166
|
+
let t = null;
|
|
167
|
+
if (d) {
|
|
168
|
+
const g = d.getColumn(e);
|
|
169
|
+
g && (t = g.getColDef());
|
|
170
|
+
}
|
|
171
|
+
const a = t?.headerComponentParams, i = t?.headerName || e, l = E(e, i), o = t?.filter === "agNumberColumnFilter" ? "number" : t?.filter === "agDateColumnFilter" ? "date" : t?.filter === "agMultiColumnFilter" ? "multi" : t?.filter === "agSetColumnFilter" || a?.selectOptions ? "select" : "text";
|
|
172
|
+
console.log(`[AdvancedFilterDialog] Column: ${e}, Type: ${o}, Filter: ${t?.filter}`);
|
|
173
|
+
const u = a?.selectOptions, b = a?.isMultiSelect;
|
|
174
|
+
return /* @__PURE__ */ f("div", { children: [
|
|
175
|
+
n > 0 && /* @__PURE__ */ r("hr", { className: "border-slate-200 mb-6" }),
|
|
176
|
+
/* @__PURE__ */ r(
|
|
177
|
+
q,
|
|
178
|
+
{
|
|
179
|
+
columnId: e,
|
|
180
|
+
columnLabel: l,
|
|
181
|
+
columnType: o,
|
|
182
|
+
selectOptions: u,
|
|
183
|
+
isMultiSelect: b,
|
|
184
|
+
rules: k(e),
|
|
185
|
+
logic: L(e),
|
|
186
|
+
onLogicChange: (g) => M(e, g),
|
|
187
|
+
onRulesChange: (g) => D(e, g),
|
|
188
|
+
canDeleteLastRule: !0,
|
|
189
|
+
onDeleteColumnFilter: () => D(e, [])
|
|
190
|
+
}
|
|
191
|
+
)
|
|
192
|
+
] }, e);
|
|
193
|
+
}) })
|
|
194
|
+
) }) }),
|
|
195
|
+
/* @__PURE__ */ f(I, { className: "flex justify-between", children: [
|
|
196
|
+
/* @__PURE__ */ r(
|
|
197
|
+
p,
|
|
198
|
+
{
|
|
199
|
+
onClick: J,
|
|
200
|
+
variant: "secondary",
|
|
201
|
+
children: "Clear all"
|
|
202
|
+
}
|
|
203
|
+
),
|
|
204
|
+
/* @__PURE__ */ f("div", { className: "flex gap-3", children: [
|
|
205
|
+
/* @__PURE__ */ r(
|
|
206
|
+
p,
|
|
207
|
+
{
|
|
208
|
+
onClick: H,
|
|
209
|
+
variant: "outline",
|
|
210
|
+
disabled: !G,
|
|
211
|
+
children: "Discard"
|
|
212
|
+
}
|
|
213
|
+
),
|
|
214
|
+
/* @__PURE__ */ r(p, { onClick: V, variant: "default", children: "Apply" })
|
|
215
|
+
] })
|
|
216
|
+
] })
|
|
217
|
+
] })
|
|
218
|
+
] });
|
|
219
|
+
};
|
|
220
|
+
export {
|
|
221
|
+
ce as AdvancedFilterDialog,
|
|
222
|
+
ce as default
|
|
223
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AdvancedFilterRule } from '../../../types/ag-grid.types';
|
|
3
|
+
export interface ColumnFilterSectionProps {
|
|
4
|
+
columnId: string;
|
|
5
|
+
columnLabel: string;
|
|
6
|
+
columnType: 'text' | 'number' | 'date' | 'select' | 'multi';
|
|
7
|
+
selectOptions?: Array<{
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}>;
|
|
11
|
+
isMultiSelect?: boolean;
|
|
12
|
+
rules: AdvancedFilterRule[];
|
|
13
|
+
logic: 'AND' | 'OR';
|
|
14
|
+
onLogicChange: (logic: 'AND' | 'OR') => void;
|
|
15
|
+
onRulesChange: (rules: AdvancedFilterRule[]) => void;
|
|
16
|
+
canDeleteLastRule?: boolean;
|
|
17
|
+
onDeleteColumnFilter?: () => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* ColumnFilterSection - Self-contained filter UI for one column.
|
|
21
|
+
* Manages its own logic (AND/OR) independently.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ColumnFilterSection: React.FC<ColumnFilterSectionProps>;
|
|
24
|
+
export default ColumnFilterSection;
|