@cratis/components 0.1.9
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/.storybook/main.ts +24 -0
- package/CommandDialog/CommandDialog.stories.tsx +25 -0
- package/CommandDialog/CommandDialog.tsx +161 -0
- package/CommandDialog/index.ts +4 -0
- package/CommandForm/CommandForm.stories.tsx +24 -0
- package/CommandForm/CommandForm.tsx +266 -0
- package/CommandForm/CommandFormField.tsx +27 -0
- package/CommandForm/CommandFormFields.tsx +142 -0
- package/CommandForm/DatePickerField.tsx +57 -0
- package/CommandForm/DropdownField.tsx +65 -0
- package/CommandForm/InputTextField.tsx +62 -0
- package/CommandForm/SliderField.tsx +68 -0
- package/CommandForm/index.ts +10 -0
- package/Common/ErrorBoundary.stories.tsx +10 -0
- package/Common/ErrorBoundary.tsx +41 -0
- package/Common/FormElement.stories.tsx +10 -0
- package/Common/FormElement.tsx +20 -0
- package/Common/Page.stories.tsx +10 -0
- package/Common/Page.tsx +21 -0
- package/Common/index.ts +6 -0
- package/DataPage/DataPage.stories.tsx +10 -0
- package/DataPage/DataPage.tsx +191 -0
- package/DataPage/index.ts +4 -0
- package/DataTables/DataTableForObservableQuery.stories.tsx +10 -0
- package/DataTables/DataTableForObservableQuery.tsx +97 -0
- package/DataTables/DataTableForQuery.stories.tsx +10 -0
- package/DataTables/DataTableForQuery.tsx +97 -0
- package/DataTables/index.ts +5 -0
- package/Dialogs/BusyIndicatorDialog.stories.tsx +26 -0
- package/Dialogs/BusyIndicatorDialog.tsx +26 -0
- package/Dialogs/ConfirmationDialog.stories.tsx +36 -0
- package/Dialogs/ConfirmationDialog.tsx +75 -0
- package/Dialogs/index.ts +5 -0
- package/Dropdown/Dropdown.tsx +23 -0
- package/Dropdown/index.ts +4 -0
- package/PivotViewer/PivotViewer.stories.tsx +24 -0
- package/PivotViewer/PivotViewer.tsx +791 -0
- package/PivotViewer/components/AxisLabels.tsx +69 -0
- package/PivotViewer/components/DetailPanel.tsx +108 -0
- package/PivotViewer/components/FilterPanel.tsx +189 -0
- package/PivotViewer/components/FilterPanelContainer.tsx +10 -0
- package/PivotViewer/components/PivotCanvas.tsx +660 -0
- package/PivotViewer/components/PivotViewerMain.tsx +229 -0
- package/PivotViewer/components/RangeHistogramFilter.tsx +220 -0
- package/PivotViewer/components/Spinner.tsx +21 -0
- package/PivotViewer/components/Toolbar.tsx +130 -0
- package/PivotViewer/components/ToolbarContainer.tsx +10 -0
- package/PivotViewer/components/index.ts +12 -0
- package/PivotViewer/components/pivot/animation.ts +108 -0
- package/PivotViewer/components/pivot/buckets.ts +152 -0
- package/PivotViewer/components/pivot/colorResolver.ts +67 -0
- package/PivotViewer/components/pivot/constants.ts +46 -0
- package/PivotViewer/components/pivot/sprites.ts +265 -0
- package/PivotViewer/components/pivot/visibility.ts +319 -0
- package/PivotViewer/constants.ts +9 -0
- package/PivotViewer/engine/layout.ts +149 -0
- package/PivotViewer/engine/pivot.worker.ts +86 -0
- package/PivotViewer/engine/store.ts +437 -0
- package/PivotViewer/engine/types.ts +255 -0
- package/PivotViewer/hooks/index.ts +13 -0
- package/PivotViewer/hooks/useContainerDimensions.ts +45 -0
- package/PivotViewer/hooks/useDimensionState.ts +53 -0
- package/PivotViewer/hooks/useFilterOptions.ts +36 -0
- package/PivotViewer/hooks/useFilterPanelDrag.ts +49 -0
- package/PivotViewer/hooks/useFilterState.ts +106 -0
- package/PivotViewer/hooks/useFilteredData.ts +119 -0
- package/PivotViewer/hooks/usePanning.ts +163 -0
- package/PivotViewer/hooks/usePivotEngine.ts +252 -0
- package/PivotViewer/hooks/useSelectedItem.ts +402 -0
- package/PivotViewer/hooks/useWheelZoom.ts +114 -0
- package/PivotViewer/hooks/useZoomState.ts +34 -0
- package/PivotViewer/index.ts +7 -0
- package/PivotViewer/types.ts +59 -0
- package/PivotViewer/utils/animations.ts +249 -0
- package/PivotViewer/utils/constants.ts +20 -0
- package/PivotViewer/utils/index.ts +6 -0
- package/PivotViewer/utils/selection.ts +292 -0
- package/PivotViewer/utils/utils.ts +259 -0
- package/README.md +1 -0
- package/TimeMachine/EventsView.stories.tsx +10 -0
- package/TimeMachine/EventsView.tsx +119 -0
- package/TimeMachine/Properties.stories.tsx +10 -0
- package/TimeMachine/Properties.tsx +98 -0
- package/TimeMachine/ReadModelView.stories.tsx +10 -0
- package/TimeMachine/ReadModelView.tsx +143 -0
- package/TimeMachine/TimeMachine.stories.tsx +10 -0
- package/TimeMachine/TimeMachine.tsx +244 -0
- package/TimeMachine/index.ts +8 -0
- package/TimeMachine/types.ts +23 -0
- package/dist/cjs/CommandDialog/CommandDialog.js +71 -0
- package/dist/cjs/CommandDialog/CommandDialog.js.map +1 -0
- package/dist/cjs/CommandDialog/index.js +9 -0
- package/dist/cjs/CommandDialog/index.js.map +1 -0
- package/dist/cjs/CommandForm/CommandForm.js +179 -0
- package/dist/cjs/CommandForm/CommandForm.js.map +1 -0
- package/dist/cjs/CommandForm/CommandFormField.js +11 -0
- package/dist/cjs/CommandForm/CommandFormField.js.map +1 -0
- package/dist/cjs/CommandForm/CommandFormFields.js +67 -0
- package/dist/cjs/CommandForm/CommandFormFields.js.map +1 -0
- package/dist/cjs/CommandForm/DatePickerField.js +31 -0
- package/dist/cjs/CommandForm/DatePickerField.js.map +1 -0
- package/dist/cjs/CommandForm/DropdownField.js +31 -0
- package/dist/cjs/CommandForm/DropdownField.js.map +1 -0
- package/dist/cjs/CommandForm/InputTextField.js +32 -0
- package/dist/cjs/CommandForm/InputTextField.js.map +1 -0
- package/dist/cjs/CommandForm/SliderField.js +34 -0
- package/dist/cjs/CommandForm/SliderField.js.map +1 -0
- package/dist/cjs/CommandForm/index.js +23 -0
- package/dist/cjs/CommandForm/index.js.map +1 -0
- package/dist/cjs/Common/Page.js +10 -0
- package/dist/cjs/Common/Page.js.map +1 -0
- package/dist/cjs/DataPage/DataPage.js +64 -0
- package/dist/cjs/DataPage/DataPage.js.map +1 -0
- package/dist/cjs/DataPage/index.js +11 -0
- package/dist/cjs/DataPage/index.js.map +1 -0
- package/dist/cjs/DataTables/DataTableForObservableQuery.js +17 -0
- package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +1 -0
- package/dist/cjs/DataTables/DataTableForQuery.js +17 -0
- package/dist/cjs/DataTables/DataTableForQuery.js.map +1 -0
- package/dist/cjs/DataTables/index.js +10 -0
- package/dist/cjs/DataTables/index.js.map +1 -0
- package/dist/cjs/Dialogs/BusyIndicatorDialog.js +13 -0
- package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +1 -0
- package/dist/cjs/Dialogs/ConfirmationDialog.js +33 -0
- package/dist/cjs/Dialogs/ConfirmationDialog.js.map +1 -0
- package/dist/cjs/Dialogs/index.js +10 -0
- package/dist/cjs/Dialogs/index.js.map +1 -0
- package/dist/cjs/Dropdown/Dropdown.js +15 -0
- package/dist/cjs/Dropdown/Dropdown.js.map +1 -0
- package/dist/cjs/Dropdown/index.js +8 -0
- package/dist/cjs/Dropdown/index.js.map +1 -0
- package/dist/cjs/PivotViewer/PivotViewer.js +525 -0
- package/dist/cjs/PivotViewer/PivotViewer.js.map +1 -0
- package/dist/cjs/PivotViewer/components/AxisLabels.js +27 -0
- package/dist/cjs/PivotViewer/components/AxisLabels.js.map +1 -0
- package/dist/cjs/PivotViewer/components/DetailPanel.js +35 -0
- package/dist/cjs/PivotViewer/components/DetailPanel.js.map +1 -0
- package/dist/cjs/PivotViewer/components/FilterPanel.js +59 -0
- package/dist/cjs/PivotViewer/components/FilterPanel.js.map +1 -0
- package/dist/cjs/PivotViewer/components/FilterPanelContainer.js +11 -0
- package/dist/cjs/PivotViewer/components/FilterPanelContainer.js.map +1 -0
- package/dist/cjs/PivotViewer/components/PivotCanvas.js +394 -0
- package/dist/cjs/PivotViewer/components/PivotCanvas.js.map +1 -0
- package/dist/cjs/PivotViewer/components/PivotViewerMain.js +81 -0
- package/dist/cjs/PivotViewer/components/PivotViewerMain.js.map +1 -0
- package/dist/cjs/PivotViewer/components/RangeHistogramFilter.js +124 -0
- package/dist/cjs/PivotViewer/components/RangeHistogramFilter.js.map +1 -0
- package/dist/cjs/PivotViewer/components/Spinner.js +11 -0
- package/dist/cjs/PivotViewer/components/Spinner.js.map +1 -0
- package/dist/cjs/PivotViewer/components/Toolbar.js +12 -0
- package/dist/cjs/PivotViewer/components/Toolbar.js.map +1 -0
- package/dist/cjs/PivotViewer/components/ToolbarContainer.js +11 -0
- package/dist/cjs/PivotViewer/components/ToolbarContainer.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/animation.js +82 -0
- package/dist/cjs/PivotViewer/components/pivot/animation.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/buckets.js +124 -0
- package/dist/cjs/PivotViewer/components/pivot/buckets.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/colorResolver.js +64 -0
- package/dist/cjs/PivotViewer/components/pivot/colorResolver.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/constants.js +19 -0
- package/dist/cjs/PivotViewer/components/pivot/constants.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/sprites.js +227 -0
- package/dist/cjs/PivotViewer/components/pivot/sprites.js.map +1 -0
- package/dist/cjs/PivotViewer/components/pivot/visibility.js +223 -0
- package/dist/cjs/PivotViewer/components/pivot/visibility.js.map +1 -0
- package/dist/cjs/PivotViewer/constants.js +16 -0
- package/dist/cjs/PivotViewer/constants.js.map +1 -0
- package/dist/cjs/PivotViewer/engine/layout.js +95 -0
- package/dist/cjs/PivotViewer/engine/layout.js.map +1 -0
- package/dist/cjs/PivotViewer/engine/store.js +336 -0
- package/dist/cjs/PivotViewer/engine/store.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useContainerDimensions.js +30 -0
- package/dist/cjs/PivotViewer/hooks/useContainerDimensions.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useDimensionState.js +43 -0
- package/dist/cjs/PivotViewer/hooks/useDimensionState.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useFilterOptions.js +24 -0
- package/dist/cjs/PivotViewer/hooks/useFilterOptions.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useFilterState.js +96 -0
- package/dist/cjs/PivotViewer/hooks/useFilterState.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/usePanning.js +120 -0
- package/dist/cjs/PivotViewer/hooks/usePanning.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/usePivotEngine.js +183 -0
- package/dist/cjs/PivotViewer/hooks/usePivotEngine.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useWheelZoom.js +93 -0
- package/dist/cjs/PivotViewer/hooks/useWheelZoom.js.map +1 -0
- package/dist/cjs/PivotViewer/hooks/useZoomState.js +31 -0
- package/dist/cjs/PivotViewer/hooks/useZoomState.js.map +1 -0
- package/dist/cjs/PivotViewer/index.js +9 -0
- package/dist/cjs/PivotViewer/index.js.map +1 -0
- package/dist/cjs/PivotViewer/utils/animations.js +144 -0
- package/dist/cjs/PivotViewer/utils/animations.js.map +1 -0
- package/dist/cjs/PivotViewer/utils/constants.js +12 -0
- package/dist/cjs/PivotViewer/utils/constants.js.map +1 -0
- package/dist/cjs/PivotViewer/utils/selection.js +136 -0
- package/dist/cjs/PivotViewer/utils/selection.js.map +1 -0
- package/dist/cjs/PivotViewer/utils/utils.js +150 -0
- package/dist/cjs/PivotViewer/utils/utils.js.map +1 -0
- package/dist/cjs/TimeMachine/EventsView.js +57 -0
- package/dist/cjs/TimeMachine/EventsView.js.map +1 -0
- package/dist/cjs/TimeMachine/Properties.js +58 -0
- package/dist/cjs/TimeMachine/Properties.js.map +1 -0
- package/dist/cjs/TimeMachine/ReadModelView.js +40 -0
- package/dist/cjs/TimeMachine/ReadModelView.js.map +1 -0
- package/dist/cjs/TimeMachine/TimeMachine.js +98 -0
- package/dist/cjs/TimeMachine/TimeMachine.js.map +1 -0
- package/dist/cjs/TimeMachine/index.js +14 -0
- package/dist/cjs/TimeMachine/index.js.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/useOverlayZIndex.js +24 -0
- package/dist/cjs/useOverlayZIndex.js.map +1 -0
- package/dist/esm/CommandDialog/CommandDialog.d.ts +45 -0
- package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -0
- package/dist/esm/CommandDialog/CommandDialog.js +68 -0
- package/dist/esm/CommandDialog/CommandDialog.js.map +1 -0
- package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +7 -0
- package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -0
- package/dist/esm/CommandDialog/CommandDialog.stories.js +12 -0
- package/dist/esm/CommandDialog/CommandDialog.stories.js.map +1 -0
- package/dist/esm/CommandDialog/index.d.ts +2 -0
- package/dist/esm/CommandDialog/index.d.ts.map +1 -0
- package/dist/esm/CommandDialog/index.js +2 -0
- package/dist/esm/CommandDialog/index.js.map +1 -0
- package/dist/esm/CommandForm/CommandForm.d.ts +49 -0
- package/dist/esm/CommandForm/CommandForm.d.ts.map +1 -0
- package/dist/esm/CommandForm/CommandForm.js +174 -0
- package/dist/esm/CommandForm/CommandForm.js.map +1 -0
- package/dist/esm/CommandForm/CommandForm.stories.d.ts +7 -0
- package/dist/esm/CommandForm/CommandForm.stories.d.ts.map +1 -0
- package/dist/esm/CommandForm/CommandForm.stories.js +12 -0
- package/dist/esm/CommandForm/CommandForm.stories.js.map +1 -0
- package/dist/esm/CommandForm/CommandFormField.d.ts +18 -0
- package/dist/esm/CommandForm/CommandFormField.d.ts.map +1 -0
- package/dist/esm/CommandForm/CommandFormField.js +9 -0
- package/dist/esm/CommandForm/CommandFormField.js.map +1 -0
- package/dist/esm/CommandForm/CommandFormFields.d.ts +11 -0
- package/dist/esm/CommandForm/CommandFormFields.d.ts.map +1 -0
- package/dist/esm/CommandForm/CommandFormFields.js +65 -0
- package/dist/esm/CommandForm/CommandFormFields.js.map +1 -0
- package/dist/esm/CommandForm/DatePickerField.d.ts +20 -0
- package/dist/esm/CommandForm/DatePickerField.d.ts.map +1 -0
- package/dist/esm/CommandForm/DatePickerField.js +29 -0
- package/dist/esm/CommandForm/DatePickerField.js.map +1 -0
- package/dist/esm/CommandForm/DropdownField.d.ts +24 -0
- package/dist/esm/CommandForm/DropdownField.d.ts.map +1 -0
- package/dist/esm/CommandForm/DropdownField.js +29 -0
- package/dist/esm/CommandForm/DropdownField.js.map +1 -0
- package/dist/esm/CommandForm/InputTextField.d.ts +20 -0
- package/dist/esm/CommandForm/InputTextField.d.ts.map +1 -0
- package/dist/esm/CommandForm/InputTextField.js +30 -0
- package/dist/esm/CommandForm/InputTextField.js.map +1 -0
- package/dist/esm/CommandForm/SliderField.d.ts +23 -0
- package/dist/esm/CommandForm/SliderField.d.ts.map +1 -0
- package/dist/esm/CommandForm/SliderField.js +32 -0
- package/dist/esm/CommandForm/SliderField.js.map +1 -0
- package/dist/esm/CommandForm/index.d.ts +8 -0
- package/dist/esm/CommandForm/index.d.ts.map +1 -0
- package/dist/esm/CommandForm/index.js +8 -0
- package/dist/esm/CommandForm/index.js.map +1 -0
- package/dist/esm/Common/ErrorBoundary.d.ts +16 -0
- package/dist/esm/Common/ErrorBoundary.d.ts.map +1 -0
- package/dist/esm/Common/ErrorBoundary.js +21 -0
- package/dist/esm/Common/ErrorBoundary.js.map +1 -0
- package/dist/esm/Common/ErrorBoundary.stories.d.ts +8 -0
- package/dist/esm/Common/ErrorBoundary.stories.d.ts.map +1 -0
- package/dist/esm/Common/ErrorBoundary.stories.js +6 -0
- package/dist/esm/Common/ErrorBoundary.stories.js.map +1 -0
- package/dist/esm/Common/FormElement.d.ts +6 -0
- package/dist/esm/Common/FormElement.d.ts.map +1 -0
- package/dist/esm/Common/FormElement.js +5 -0
- package/dist/esm/Common/FormElement.js.map +1 -0
- package/dist/esm/Common/FormElement.stories.d.ts +8 -0
- package/dist/esm/Common/FormElement.stories.d.ts.map +1 -0
- package/dist/esm/Common/FormElement.stories.js +6 -0
- package/dist/esm/Common/FormElement.stories.js.map +1 -0
- package/dist/esm/Common/Page.d.ts +8 -0
- package/dist/esm/Common/Page.d.ts.map +1 -0
- package/dist/esm/Common/Page.js +8 -0
- package/dist/esm/Common/Page.js.map +1 -0
- package/dist/esm/Common/Page.stories.d.ts +8 -0
- package/dist/esm/Common/Page.stories.d.ts.map +1 -0
- package/dist/esm/Common/Page.stories.js +6 -0
- package/dist/esm/Common/Page.stories.js.map +1 -0
- package/dist/esm/Common/index.d.ts +4 -0
- package/dist/esm/Common/index.d.ts.map +1 -0
- package/dist/esm/Common/index.js +4 -0
- package/dist/esm/Common/index.js.map +1 -0
- package/dist/esm/DataPage/DataPage.d.ts +41 -0
- package/dist/esm/DataPage/DataPage.d.ts.map +1 -0
- package/dist/esm/DataPage/DataPage.js +59 -0
- package/dist/esm/DataPage/DataPage.js.map +1 -0
- package/dist/esm/DataPage/DataPage.stories.d.ts +8 -0
- package/dist/esm/DataPage/DataPage.stories.d.ts.map +1 -0
- package/dist/esm/DataPage/DataPage.stories.js +6 -0
- package/dist/esm/DataPage/DataPage.stories.js.map +1 -0
- package/dist/esm/DataPage/index.d.ts +2 -0
- package/dist/esm/DataPage/index.d.ts.map +1 -0
- package/dist/esm/DataPage/index.js +2 -0
- package/dist/esm/DataPage/index.js.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +17 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.js +15 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts +8 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.stories.js +6 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.stories.js.map +1 -0
- package/dist/esm/DataTables/DataTableForQuery.d.ts +17 -0
- package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForQuery.js +15 -0
- package/dist/esm/DataTables/DataTableForQuery.js.map +1 -0
- package/dist/esm/DataTables/DataTableForQuery.stories.d.ts +8 -0
- package/dist/esm/DataTables/DataTableForQuery.stories.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForQuery.stories.js +6 -0
- package/dist/esm/DataTables/DataTableForQuery.stories.js.map +1 -0
- package/dist/esm/DataTables/index.d.ts +3 -0
- package/dist/esm/DataTables/index.d.ts.map +1 -0
- package/dist/esm/DataTables/index.js +3 -0
- package/dist/esm/DataTables/index.js.map +1 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts +3 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.js +11 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.stories.d.ts +7 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.stories.d.ts.map +1 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.stories.js +15 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.stories.js.map +1 -0
- package/dist/esm/Dialogs/ConfirmationDialog.d.ts +2 -0
- package/dist/esm/Dialogs/ConfirmationDialog.d.ts.map +1 -0
- package/dist/esm/Dialogs/ConfirmationDialog.js +31 -0
- package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -0
- package/dist/esm/Dialogs/ConfirmationDialog.stories.d.ts +7 -0
- package/dist/esm/Dialogs/ConfirmationDialog.stories.d.ts.map +1 -0
- package/dist/esm/Dialogs/ConfirmationDialog.stories.js +20 -0
- package/dist/esm/Dialogs/ConfirmationDialog.stories.js.map +1 -0
- package/dist/esm/Dialogs/index.d.ts +3 -0
- package/dist/esm/Dialogs/index.d.ts.map +1 -0
- package/dist/esm/Dialogs/index.js +3 -0
- package/dist/esm/Dialogs/index.js.map +1 -0
- package/dist/esm/Dropdown/Dropdown.d.ts +5 -0
- package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/esm/Dropdown/Dropdown.js +13 -0
- package/dist/esm/Dropdown/Dropdown.js.map +1 -0
- package/dist/esm/Dropdown/index.d.ts +2 -0
- package/dist/esm/Dropdown/index.d.ts.map +1 -0
- package/dist/esm/Dropdown/index.js +2 -0
- package/dist/esm/Dropdown/index.js.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.d.ts +4 -0
- package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.js +523 -0
- package/dist/esm/PivotViewer/PivotViewer.js.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.stories.d.ts +7 -0
- package/dist/esm/PivotViewer/PivotViewer.stories.d.ts.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.stories.js +12 -0
- package/dist/esm/PivotViewer/PivotViewer.stories.js.map +1 -0
- package/dist/esm/PivotViewer/components/AxisLabels.d.ts +13 -0
- package/dist/esm/PivotViewer/components/AxisLabels.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/AxisLabels.js +25 -0
- package/dist/esm/PivotViewer/components/AxisLabels.js.map +1 -0
- package/dist/esm/PivotViewer/components/DetailPanel.d.ts +6 -0
- package/dist/esm/PivotViewer/components/DetailPanel.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/DetailPanel.js +33 -0
- package/dist/esm/PivotViewer/components/DetailPanel.js.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanel.d.ts +27 -0
- package/dist/esm/PivotViewer/components/FilterPanel.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanel.js +57 -0
- package/dist/esm/PivotViewer/components/FilterPanel.js.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts +4 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.js +9 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.js.map +1 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +29 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.js +373 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +43 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.js +79 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts +11 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.js +122 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.js.map +1 -0
- package/dist/esm/PivotViewer/components/Spinner.d.ts +3 -0
- package/dist/esm/PivotViewer/components/Spinner.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/Spinner.js +9 -0
- package/dist/esm/PivotViewer/components/Spinner.js.map +1 -0
- package/dist/esm/PivotViewer/components/Toolbar.d.ts +21 -0
- package/dist/esm/PivotViewer/components/Toolbar.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/Toolbar.js +10 -0
- package/dist/esm/PivotViewer/components/Toolbar.js.map +1 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts +4 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.js +9 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.js.map +1 -0
- package/dist/esm/PivotViewer/components/index.d.ts +9 -0
- package/dist/esm/PivotViewer/components/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/index.js +8 -0
- package/dist/esm/PivotViewer/components/index.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/animation.d.ts +29 -0
- package/dist/esm/PivotViewer/components/pivot/animation.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/animation.js +79 -0
- package/dist/esm/PivotViewer/components/pivot/animation.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/buckets.d.ts +6 -0
- package/dist/esm/PivotViewer/components/pivot/buckets.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/buckets.js +102 -0
- package/dist/esm/PivotViewer/components/pivot/buckets.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts +4 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.js +61 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/constants.d.ts +38 -0
- package/dist/esm/PivotViewer/components/pivot/constants.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/constants.js +14 -0
- package/dist/esm/PivotViewer/components/pivot/constants.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +6 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.js +203 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.d.ts +26 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.js +221 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.js.map +1 -0
- package/dist/esm/PivotViewer/constants.d.ts +7 -0
- package/dist/esm/PivotViewer/constants.d.ts.map +1 -0
- package/dist/esm/PivotViewer/constants.js +9 -0
- package/dist/esm/PivotViewer/constants.js.map +1 -0
- package/dist/esm/PivotViewer/engine/layout.d.ts +3 -0
- package/dist/esm/PivotViewer/engine/layout.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/layout.js +93 -0
- package/dist/esm/PivotViewer/engine/layout.js.map +1 -0
- package/dist/esm/PivotViewer/engine/pivot.worker.d.ts +2 -0
- package/dist/esm/PivotViewer/engine/pivot.worker.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/pivot.worker.js +58 -0
- package/dist/esm/PivotViewer/engine/pivot.worker.js.map +1 -0
- package/dist/esm/PivotViewer/engine/store.d.ts +9 -0
- package/dist/esm/PivotViewer/engine/store.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/store.js +328 -0
- package/dist/esm/PivotViewer/engine/store.js.map +1 -0
- package/dist/esm/PivotViewer/engine/types.d.ts +125 -0
- package/dist/esm/PivotViewer/engine/types.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/types.js +2 -0
- package/dist/esm/PivotViewer/engine/types.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/index.d.ts +11 -0
- package/dist/esm/PivotViewer/hooks/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/index.js +11 -0
- package/dist/esm/PivotViewer/hooks/index.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useContainerDimensions.d.ts +5 -0
- package/dist/esm/PivotViewer/hooks/useContainerDimensions.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useContainerDimensions.js +28 -0
- package/dist/esm/PivotViewer/hooks/useContainerDimensions.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts +11 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.js +41 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts +12 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.js +22 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.d.ts +9 -0
- package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.js +42 -0
- package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.d.ts +11 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.js +94 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts +9 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.js +85 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePanning.d.ts +10 -0
- package/dist/esm/PivotViewer/hooks/usePanning.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePanning.js +118 -0
- package/dist/esm/PivotViewer/hooks/usePanning.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts +14 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.js +180 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useSelectedItem.d.ts +8 -0
- package/dist/esm/PivotViewer/hooks/useSelectedItem.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useSelectedItem.js +322 -0
- package/dist/esm/PivotViewer/hooks/useSelectedItem.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useWheelZoom.d.ts +2 -0
- package/dist/esm/PivotViewer/hooks/useWheelZoom.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useWheelZoom.js +91 -0
- package/dist/esm/PivotViewer/hooks/useWheelZoom.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useZoomState.d.ts +9 -0
- package/dist/esm/PivotViewer/hooks/useZoomState.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useZoomState.js +29 -0
- package/dist/esm/PivotViewer/hooks/useZoomState.js.map +1 -0
- package/dist/esm/PivotViewer/index.d.ts +4 -0
- package/dist/esm/PivotViewer/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/index.js +2 -0
- package/dist/esm/PivotViewer/index.js.map +1 -0
- package/dist/esm/PivotViewer/types.d.ts +47 -0
- package/dist/esm/PivotViewer/types.d.ts.map +1 -0
- package/dist/esm/PivotViewer/types.js +2 -0
- package/dist/esm/PivotViewer/types.js.map +1 -0
- package/dist/esm/PivotViewer/utils/animations.d.ts +54 -0
- package/dist/esm/PivotViewer/utils/animations.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/animations.js +139 -0
- package/dist/esm/PivotViewer/utils/animations.js.map +1 -0
- package/dist/esm/PivotViewer/utils/constants.d.ts +13 -0
- package/dist/esm/PivotViewer/utils/constants.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/constants.js +7 -0
- package/dist/esm/PivotViewer/utils/constants.js.map +1 -0
- package/dist/esm/PivotViewer/utils/index.d.ts +4 -0
- package/dist/esm/PivotViewer/utils/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/index.js +4 -0
- package/dist/esm/PivotViewer/utils/index.js.map +1 -0
- package/dist/esm/PivotViewer/utils/selection.d.ts +50 -0
- package/dist/esm/PivotViewer/utils/selection.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/selection.js +134 -0
- package/dist/esm/PivotViewer/utils/selection.js.map +1 -0
- package/dist/esm/PivotViewer/utils/utils.d.ts +24 -0
- package/dist/esm/PivotViewer/utils/utils.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/utils.js +138 -0
- package/dist/esm/PivotViewer/utils/utils.js.map +1 -0
- package/dist/esm/TimeMachine/EventsView.d.ts +9 -0
- package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -0
- package/dist/esm/TimeMachine/EventsView.js +55 -0
- package/dist/esm/TimeMachine/EventsView.js.map +1 -0
- package/dist/esm/TimeMachine/EventsView.stories.d.ts +8 -0
- package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +1 -0
- package/dist/esm/TimeMachine/EventsView.stories.js +6 -0
- package/dist/esm/TimeMachine/EventsView.stories.js.map +1 -0
- package/dist/esm/TimeMachine/Properties.d.ts +9 -0
- package/dist/esm/TimeMachine/Properties.d.ts.map +1 -0
- package/dist/esm/TimeMachine/Properties.js +56 -0
- package/dist/esm/TimeMachine/Properties.js.map +1 -0
- package/dist/esm/TimeMachine/Properties.stories.d.ts +8 -0
- package/dist/esm/TimeMachine/Properties.stories.d.ts.map +1 -0
- package/dist/esm/TimeMachine/Properties.stories.js +6 -0
- package/dist/esm/TimeMachine/Properties.stories.js.map +1 -0
- package/dist/esm/TimeMachine/ReadModelView.d.ts +12 -0
- package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -0
- package/dist/esm/TimeMachine/ReadModelView.js +38 -0
- package/dist/esm/TimeMachine/ReadModelView.js.map +1 -0
- package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +8 -0
- package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +1 -0
- package/dist/esm/TimeMachine/ReadModelView.stories.js +6 -0
- package/dist/esm/TimeMachine/ReadModelView.stories.js.map +1 -0
- package/dist/esm/TimeMachine/TimeMachine.d.ts +12 -0
- package/dist/esm/TimeMachine/TimeMachine.d.ts.map +1 -0
- package/dist/esm/TimeMachine/TimeMachine.js +93 -0
- package/dist/esm/TimeMachine/TimeMachine.js.map +1 -0
- package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +8 -0
- package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +1 -0
- package/dist/esm/TimeMachine/TimeMachine.stories.js +6 -0
- package/dist/esm/TimeMachine/TimeMachine.stories.js.map +1 -0
- package/dist/esm/TimeMachine/index.d.ts +6 -0
- package/dist/esm/TimeMachine/index.d.ts.map +1 -0
- package/dist/esm/TimeMachine/index.js +5 -0
- package/dist/esm/TimeMachine/index.js.map +1 -0
- package/dist/esm/TimeMachine/types.d.ts +19 -0
- package/dist/esm/TimeMachine/types.d.ts.map +1 -0
- package/dist/esm/TimeMachine/types.js +2 -0
- package/dist/esm/TimeMachine/types.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/useOverlayZIndex.d.ts +2 -0
- package/dist/esm/useOverlayZIndex.d.ts.map +1 -0
- package/dist/esm/useOverlayZIndex.js +22 -0
- package/dist/esm/useOverlayZIndex.js.map +1 -0
- package/dist/esm/vite.config.d.ts +3 -0
- package/dist/esm/vite.config.d.ts.map +1 -0
- package/dist/esm/vite.config.js +76 -0
- package/dist/esm/vite.config.js.map +1 -0
- package/global.d.ts +11 -0
- package/index.ts +22 -0
- package/package.json +160 -0
- package/useOverlayZIndex.ts +32 -0
- package/vite.config.ts +80 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PivotViewer } from './PivotViewer';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'PivotViewer/PivotViewer',
|
|
5
|
+
component: PivotViewer,
|
|
6
|
+
};
|
|
7
|
+
export default meta;
|
|
8
|
+
export const Default = {
|
|
9
|
+
args: {},
|
|
10
|
+
render: (args) => (_jsx("div", { className: "storybook-wrapper", children: _jsx(PivotViewer, { ...args, data: [] }) }))
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=PivotViewer.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PivotViewer.stories.js","sourceRoot":"","sources":["../../../PivotViewer/PivotViewer.stories.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,IAAI,GAA6B;IACnC,KAAK,EAAE,yBAAyB;IAChC,SAAS,EAAE,WAAW;CACzB,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE,EACL;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,SAAS,EAAC,mBAAmB,YAC9B,KAAC,WAAW,OAAK,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,GACjC,CACT;CACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PivotGroup } from '../types';
|
|
2
|
+
export interface AxisLabelsProps<TItem extends object> {
|
|
3
|
+
groups: PivotGroup<TItem>[];
|
|
4
|
+
bucketWidths: number[];
|
|
5
|
+
dimensionFilter: string | null;
|
|
6
|
+
hoveredGroup: string | null;
|
|
7
|
+
zoomLevel: number;
|
|
8
|
+
onHover: (key: string | null) => void;
|
|
9
|
+
onClick: (key: string) => void;
|
|
10
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
11
|
+
}
|
|
12
|
+
export declare function AxisLabels<TItem extends object>({ groups, bucketWidths, dimensionFilter, hoveredGroup, zoomLevel, onHover, onClick, containerRef, }: AxisLabelsProps<TItem>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=AxisLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisLabels.d.ts","sourceRoot":"","sources":["../../../../PivotViewer/components/AxisLabels.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,MAAM;IACnD,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD;AAED,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,EAAE,EAC/C,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,YAAY,GACb,EAAE,eAAe,CAAC,KAAK,CAAC,2CA0CxB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { GROUP_SPACING } from '../constants.js';
|
|
3
|
+
|
|
4
|
+
function AxisLabels({ groups, bucketWidths, dimensionFilter, hoveredGroup, zoomLevel, onHover, onClick, containerRef, }) {
|
|
5
|
+
return (jsx("div", { className: "pv-axis-labels", ref: containerRef, style: {
|
|
6
|
+
pointerEvents: 'none',
|
|
7
|
+
gap: `${GROUP_SPACING * zoomLevel}px`,
|
|
8
|
+
paddingLeft: 0,
|
|
9
|
+
paddingRight: 0,
|
|
10
|
+
overflowX: 'hidden',
|
|
11
|
+
whiteSpace: 'nowrap',
|
|
12
|
+
}, children: groups.map((group, index) => {
|
|
13
|
+
const isSelected = dimensionFilter === group.key;
|
|
14
|
+
const baseBucketWidth = bucketWidths[index] || 0;
|
|
15
|
+
const bucketWidth = baseBucketWidth * zoomLevel;
|
|
16
|
+
const width = bucketWidth;
|
|
17
|
+
return (jsxs("button", { type: "button", className: `pv-axis-label ${hoveredGroup === group.key ? 'highlighted' : ''} ${isSelected ? 'selected' : ''}`, style: {
|
|
18
|
+
width,
|
|
19
|
+
pointerEvents: 'auto'
|
|
20
|
+
}, onMouseEnter: () => onHover(group.key), onMouseLeave: () => onHover(null), onClick: () => onClick(group.key), children: [jsx("span", { className: "pv-axis-label-text", children: group.label }), jsx("span", { className: "pv-axis-label-count", children: group.count ?? group.items.length })] }, group.key));
|
|
21
|
+
}) }));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { AxisLabels };
|
|
25
|
+
//# sourceMappingURL=AxisLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisLabels.js","sources":["../../../../PivotViewer/components/AxisLabels.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { PivotGroup } from '../types';\nimport { GROUP_SPACING } from '../constants';\n\nexport interface AxisLabelsProps<TItem extends object> {\n groups: PivotGroup<TItem>[];\n bucketWidths: number[];\n dimensionFilter: string | null;\n hoveredGroup: string | null;\n zoomLevel: number;\n onHover: (key: string | null) => void;\n onClick: (key: string) => void;\n containerRef: React.RefObject<HTMLDivElement | null>;\n}\n\nexport function AxisLabels<TItem extends object>({\n groups,\n bucketWidths,\n dimensionFilter,\n hoveredGroup,\n zoomLevel,\n onHover,\n onClick,\n containerRef,\n}: AxisLabelsProps<TItem>) {\n return (\n <div\n className=\"pv-axis-labels\"\n ref={containerRef}\n style={{\n pointerEvents: 'none',\n gap: `${GROUP_SPACING * zoomLevel}px`,\n paddingLeft: 0,\n paddingRight: 0,\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n }}\n >\n {groups.map((group, index) => {\n const isSelected = dimensionFilter === group.key;\n const baseBucketWidth = bucketWidths[index] || 0;\n // Apply zoom to bucket width\n const bucketWidth = baseBucketWidth * zoomLevel;\n // Width is just the bucket width - spacing is handled by CSS gap\n const width = bucketWidth;\n\n return (\n <button\n key={group.key}\n type=\"button\"\n className={`pv-axis-label ${hoveredGroup === group.key ? 'highlighted' : ''} ${isSelected ? 'selected' : ''}`}\n style={{\n width,\n pointerEvents: 'auto'\n }}\n onMouseEnter={() => onHover(group.key)}\n onMouseLeave={() => onHover(null)}\n onClick={() => onClick(group.key)}\n >\n <span className=\"pv-axis-label-text\">{group.label}</span>\n <span className=\"pv-axis-label-count\">{group.count ?? group.items.length}</span>\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;SAiBgB,UAAU,CAAuB,EAC/C,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,YAAY,GACW,EAAA;IACvB,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE;AACL,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,GAAG,EAAE,CAAA,EAAG,aAAa,GAAG,SAAS,CAAA,EAAA,CAAI;AACrC,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,UAAU,EAAE,QAAQ;SACrB,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAC3B,YAAA,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,CAAC,GAAG;YAChD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AAEhD,YAAA,MAAM,WAAW,GAAG,eAAe,GAAG,SAAS;YAE/C,MAAM,KAAK,GAAG,WAAW;AAEzB,YAAA,QACEC,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,cAAA,EAAiB,YAAY,KAAK,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,EAAE,CAAA,CAAA,EAAI,UAAU,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,EAC7G,KAAK,EAAE;oBACL,KAAK;AACL,oBAAA,aAAa,EAAE;AAChB,iBAAA,EACD,YAAY,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAEjCD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,EAAA,CAAQ,EACzDA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAA,CAAQ,CAAA,EAAA,EAZ3E,KAAK,CAAC,GAAG,CAaP;QAEb,CAAC,CAAC,EAAA,CACE;AAEV;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface DetailPanelProps<TItem extends object> {
|
|
2
|
+
selectedItem: TItem | null;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function DetailPanel<TItem extends object>({ selectedItem, onClose, }: DetailPanelProps<TItem>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=DetailPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailPanel.d.ts","sourceRoot":"","sources":["../../../../PivotViewer/components/DetailPanel.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM;IACpD,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAChD,YAAY,EACZ,OAAO,GACR,EAAE,gBAAgB,CAAC,KAAK,CAAC,2CA4FzB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
3
|
+
|
|
4
|
+
function DetailPanel({ selectedItem, onClose, }) {
|
|
5
|
+
const selectedRecord = selectedItem;
|
|
6
|
+
const selectedContent = selectedRecord
|
|
7
|
+
? (selectedRecord['content'] ?? {})
|
|
8
|
+
: {};
|
|
9
|
+
const metadataEntries = selectedRecord
|
|
10
|
+
? [
|
|
11
|
+
['Type', selectedRecord['type']],
|
|
12
|
+
[
|
|
13
|
+
'Occurred',
|
|
14
|
+
selectedRecord['occurred'] instanceof Date
|
|
15
|
+
? selectedRecord['occurred'].toLocaleString()
|
|
16
|
+
: selectedRecord['occurred']
|
|
17
|
+
? new Date(String(selectedRecord['occurred'])).toLocaleString()
|
|
18
|
+
: undefined,
|
|
19
|
+
],
|
|
20
|
+
['Service', selectedRecord['service']],
|
|
21
|
+
['Environment', selectedRecord['environment']],
|
|
22
|
+
['Tenant', selectedRecord['tenant']],
|
|
23
|
+
['Correlation Id', selectedRecord['correlationId']],
|
|
24
|
+
].filter(([, value]) => value !== undefined && value !== null)
|
|
25
|
+
: [];
|
|
26
|
+
const causation = Array.isArray(selectedRecord?.['causation'])
|
|
27
|
+
? selectedRecord?.['causation']
|
|
28
|
+
: [];
|
|
29
|
+
return (jsx(AnimatePresence, { children: selectedRecord && (jsxs(motion.aside, { className: "pv-detail-panel", initial: { x: '100%' }, animate: { x: 0 }, exit: { x: '100%' }, transition: { type: 'spring', stiffness: 400, damping: 35 }, children: [jsxs("header", { children: [jsxs("div", { children: [jsx("h2", { children: String(selectedRecord['name'] ?? selectedRecord['type'] ?? 'Event') }), selectedRecord['type'] ? jsx("p", { children: String(selectedRecord['type']) }) : null] }), jsx("button", { type: "button", onClick: onClose, title: "Close", children: "\u00D7" })] }), jsxs("div", { className: "pv-detail-panel-content", children: [metadataEntries.length > 0 && (jsxs("section", { className: "pv-detail-meta", children: [jsx("h3", { children: "Metadata" }), jsx("dl", { children: metadataEntries.map(([key, value]) => (jsxs("div", { children: [jsx("dt", { children: key }), jsx("dd", { children: String(value) })] }, key))) })] })), causation.length > 0 && (jsxs("section", { className: "pv-detail-causation", children: [jsx("h3", { children: "Causation" }), jsx("div", { className: "pv-pill-row", children: causation.map((value, index) => (jsx("span", { className: "pv-pill", children: String(value) }, `${value}-${index}`))) })] })), jsxs("section", { className: "pv-detail-content", children: [jsx("h3", { children: "Content" }), jsx("dl", { children: Object.entries(selectedContent).map(([key, value]) => (jsxs("div", { children: [jsx("dt", { children: key }), jsx("dd", { children: typeof value === 'object' ? JSON.stringify(value, null, 2) : String(value) })] }, key))) })] })] })] })) }));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { DetailPanel };
|
|
33
|
+
//# sourceMappingURL=DetailPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailPanel.js","sources":["../../../../PivotViewer/components/DetailPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { AnimatePresence, motion } from 'framer-motion';\n\ntype WithRecord<TItem> = TItem extends Record<string, unknown> ? TItem : never;\n\nexport interface DetailPanelProps<TItem extends object> {\n selectedItem: TItem | null;\n onClose: () => void;\n}\n\nexport function DetailPanel<TItem extends object>({\n selectedItem,\n onClose,\n}: DetailPanelProps<TItem>) {\n const selectedRecord = selectedItem as WithRecord<TItem> | null;\n\n const selectedContent = selectedRecord\n ? ((selectedRecord['content'] as Record<string, unknown> | undefined) ?? {})\n : {};\n\n const metadataEntries = selectedRecord\n ? (\n [\n ['Type', selectedRecord['type']],\n [\n 'Occurred',\n selectedRecord['occurred'] instanceof Date\n ? (selectedRecord['occurred'] as Date).toLocaleString()\n : selectedRecord['occurred']\n ? new Date(String(selectedRecord['occurred'])).toLocaleString()\n : undefined,\n ],\n ['Service', selectedRecord['service']],\n ['Environment', selectedRecord['environment']],\n ['Tenant', selectedRecord['tenant']],\n ['Correlation Id', selectedRecord['correlationId']],\n ] as Array<[string, unknown]>\n ).filter(([, value]) => value !== undefined && value !== null)\n : [];\n\n const causation = Array.isArray(selectedRecord?.['causation'])\n ? (selectedRecord?.['causation'] as unknown[])\n : [];\n\n return (\n <AnimatePresence>\n {selectedRecord && (\n <motion.aside\n className=\"pv-detail-panel\"\n initial={{ x: '100%' }}\n animate={{ x: 0 }}\n exit={{ x: '100%' }}\n transition={{ type: 'spring', stiffness: 400, damping: 35 }}\n >\n <header>\n <div>\n <h2>{String(selectedRecord['name'] ?? selectedRecord['type'] ?? 'Event')}</h2>\n {selectedRecord['type'] ? <p>{String(selectedRecord['type'])}</p> : null}\n </div>\n <button type=\"button\" onClick={onClose} title=\"Close\">\n ×\n </button>\n </header>\n <div className=\"pv-detail-panel-content\">\n {metadataEntries.length > 0 && (\n <section className=\"pv-detail-meta\">\n <h3>Metadata</h3>\n <dl>\n {metadataEntries.map(([key, value]) => (\n <div key={key}>\n <dt>{key}</dt>\n <dd>{String(value)}</dd>\n </div>\n ))}\n </dl>\n </section>\n )}\n {causation.length > 0 && (\n <section className=\"pv-detail-causation\">\n <h3>Causation</h3>\n <div className=\"pv-pill-row\">\n {causation.map((value, index) => (\n <span key={`${value}-${index}`} className=\"pv-pill\">\n {String(value)}\n </span>\n ))}\n </div>\n </section>\n )}\n <section className=\"pv-detail-content\">\n <h3>Content</h3>\n <dl>\n {Object.entries(selectedContent).map(([key, value]) => (\n <div key={key}>\n <dt>{key}</dt>\n <dd>{typeof value === 'object' ? JSON.stringify(value, null, 2) : String(value)}</dd>\n </div>\n ))}\n </dl>\n </section>\n </div>\n </motion.aside>\n )}\n </AnimatePresence>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PivotFilter, PivotFilterOption, PivotPrimitive } from '../types';
|
|
2
|
+
import type { FilterState, RangeFilterState } from '../utils/utils';
|
|
3
|
+
export interface FilterPanelProps<TItem extends object> {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
search: string;
|
|
6
|
+
filterState: FilterState;
|
|
7
|
+
rangeFilterState: RangeFilterState;
|
|
8
|
+
expandedFilterKey: string | null;
|
|
9
|
+
filterOptions: {
|
|
10
|
+
filter: PivotFilter<TItem>;
|
|
11
|
+
options: PivotFilterOption[];
|
|
12
|
+
numericRange?: {
|
|
13
|
+
min: number;
|
|
14
|
+
max: number;
|
|
15
|
+
values: PivotPrimitive[];
|
|
16
|
+
};
|
|
17
|
+
}[];
|
|
18
|
+
anchorRef: React.RefObject<HTMLButtonElement | null>;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
onSearchChange: (value: string) => void;
|
|
21
|
+
onFilterToggle: (filterKey: string, optionKey: string, multi: boolean | undefined) => void;
|
|
22
|
+
onFilterClear: (filterKey: string) => void;
|
|
23
|
+
onRangeChange: (filterKey: string, range: [number, number] | null) => void;
|
|
24
|
+
onExpandedFilterChange: (key: string | null) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function FilterPanel<TItem extends object>({ isOpen, search, filterState, rangeFilterState, expandedFilterKey, filterOptions, anchorRef, onClose, onSearchChange, onFilterToggle, onFilterClear, onRangeChange, onExpandedFilterChange, }: FilterPanelProps<TItem>): import("react").ReactPortal;
|
|
27
|
+
//# sourceMappingURL=FilterPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../../../PivotViewer/components/FilterPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIpE,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE;QACb,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,YAAY,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC;KACvE,EAAE,CAAC;IACJ,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3E,sBAAsB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAChD,MAAM,EACN,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,sBAAsB,GACvB,EAAE,gBAAgB,CAAC,KAAK,CAAC,+BA+IzB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef, useState, useEffect } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
5
|
+
import { renderOptionCount } from '../utils/utils.js';
|
|
6
|
+
import { RangeHistogramFilter } from './RangeHistogramFilter.js';
|
|
7
|
+
|
|
8
|
+
function FilterPanel({ isOpen, search, filterState, rangeFilterState, expandedFilterKey, filterOptions, anchorRef, onClose, onSearchChange, onFilterToggle, onFilterClear, onRangeChange, onExpandedFilterChange, }) {
|
|
9
|
+
const panelRef = useRef(null);
|
|
10
|
+
const [position, setPosition] = useState({ top: 0, left: 0 });
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (isOpen && anchorRef.current) {
|
|
13
|
+
const rect = anchorRef.current.getBoundingClientRect();
|
|
14
|
+
setPosition({
|
|
15
|
+
top: rect.bottom + 8,
|
|
16
|
+
left: rect.left,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}, [isOpen, anchorRef]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!isOpen)
|
|
22
|
+
return;
|
|
23
|
+
const handleClickOutside = (event) => {
|
|
24
|
+
const target = event.target;
|
|
25
|
+
const panel = panelRef.current;
|
|
26
|
+
const anchor = anchorRef.current;
|
|
27
|
+
if (panel && !panel.contains(target) && anchor && !anchor.contains(target)) {
|
|
28
|
+
onClose();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const timeoutId = setTimeout(() => {
|
|
32
|
+
document.addEventListener('mousedown', handleClickOutside, true);
|
|
33
|
+
}, 0);
|
|
34
|
+
return () => {
|
|
35
|
+
clearTimeout(timeoutId);
|
|
36
|
+
document.removeEventListener('mousedown', handleClickOutside, true);
|
|
37
|
+
};
|
|
38
|
+
}, [isOpen, anchorRef, onClose]);
|
|
39
|
+
return createPortal(jsx(AnimatePresence, { initial: false, children: isOpen && (jsx(motion.aside, { ref: panelRef, className: "pv-filter-dropdown", style: {
|
|
40
|
+
position: 'fixed',
|
|
41
|
+
left: position.left,
|
|
42
|
+
top: position.top,
|
|
43
|
+
}, initial: { opacity: 0, y: -8 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -8 }, transition: { duration: 0.15 }, children: jsxs("div", { className: "pv-filter-dropdown-content", children: [jsx("div", { className: "pv-search", children: jsx("input", { type: "search", placeholder: "Search events", value: search, onChange: (event) => onSearchChange(event.target.value) }) }), jsx("div", { className: "pv-filter-groups", children: filterOptions.map(({ filter, options, numericRange }) => {
|
|
44
|
+
const selections = filterState[filter.key] ?? new Set();
|
|
45
|
+
const rangeSelection = rangeFilterState[filter.key];
|
|
46
|
+
const isExpanded = expandedFilterKey === filter.key;
|
|
47
|
+
const isNumeric = filter.type === 'number';
|
|
48
|
+
return (jsxs("div", { className: `pv-filter ${isExpanded ? 'expanded' : ''}`, children: [jsxs("button", { type: "button", className: "pv-filter-trigger", onClick: () => onExpandedFilterChange(isExpanded ? null : filter.key), children: [jsx("span", { className: "pv-filter-label", children: filter.label }), jsxs("span", { className: "pv-filter-trigger-meta", children: [!isNumeric && selections.size > 0 && jsx("span", { className: "pv-filter-count", children: selections.size }), isNumeric && rangeSelection && jsx("span", { className: "pv-filter-count", children: "Range" }), jsx("span", { className: "pv-filter-chevron" })] })] }), jsx("div", { className: `pv-filter-content ${isExpanded ? 'expanded' : ''}`, children: isNumeric && numericRange ? (jsx(RangeHistogramFilter, { values: numericRange.values, min: numericRange.min, max: numericRange.max, buckets: filter.buckets ?? 20, selectedRange: rangeSelection ?? null, onChange: (range) => onRangeChange(filter.key, range) })) : (jsxs(Fragment, { children: [jsx("ul", { children: options.map((option) => {
|
|
49
|
+
const optionKey = option.key;
|
|
50
|
+
const checked = selections.has(optionKey);
|
|
51
|
+
return (jsx("li", { children: jsxs("label", { children: [jsx("input", { type: filter.multi ? 'checkbox' : 'radio', name: `filter-${filter.key}`, checked: checked, onChange: () => onFilterToggle(filter.key, optionKey, filter.multi ?? false) }), jsx("span", { children: option.label }), jsx("span", { className: "pv-option-count", children: renderOptionCount(option.count) })] }) }, option.key));
|
|
52
|
+
}) }), selections.size > 0 && (jsx("button", { type: "button", className: "pv-filter-clear", onClick: () => onFilterClear(filter.key), children: "Clear" }))] })) })] }, filter.key));
|
|
53
|
+
}) })] }) })) }), document.body);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { FilterPanel };
|
|
57
|
+
//# sourceMappingURL=FilterPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanel.js","sources":["../../../../PivotViewer/components/FilterPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport type { PivotFilter, PivotFilterOption, PivotPrimitive } from '../types';\nimport type { FilterState, RangeFilterState } from '../utils/utils';\nimport { renderOptionCount } from '../utils/utils';\nimport { RangeHistogramFilter } from './RangeHistogramFilter';\n\nexport interface FilterPanelProps<TItem extends object> {\n isOpen: boolean;\n search: string;\n filterState: FilterState;\n rangeFilterState: RangeFilterState;\n expandedFilterKey: string | null;\n filterOptions: {\n filter: PivotFilter<TItem>;\n options: PivotFilterOption[];\n numericRange?: { min: number; max: number; values: PivotPrimitive[] };\n }[];\n anchorRef: React.RefObject<HTMLButtonElement | null>;\n onClose: () => void;\n onSearchChange: (value: string) => void;\n onFilterToggle: (filterKey: string, optionKey: string, multi: boolean | undefined) => void;\n onFilterClear: (filterKey: string) => void;\n onRangeChange: (filterKey: string, range: [number, number] | null) => void;\n onExpandedFilterChange: (key: string | null) => void;\n}\n\nexport function FilterPanel<TItem extends object>({\n isOpen,\n search,\n filterState,\n rangeFilterState,\n expandedFilterKey,\n filterOptions,\n anchorRef,\n onClose,\n onSearchChange,\n onFilterToggle,\n onFilterClear,\n onRangeChange,\n onExpandedFilterChange,\n}: FilterPanelProps<TItem>) {\n const panelRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n // Calculate position when opening\n useEffect(() => {\n if (isOpen && anchorRef.current) {\n const rect = anchorRef.current.getBoundingClientRect();\n setPosition({\n top: rect.bottom + 8,\n left: rect.left,\n });\n }\n }, [isOpen, anchorRef]);\n\n // Handle click outside to close\n useEffect(() => {\n if (!isOpen) return;\n\n const handleClickOutside = (event: MouseEvent) => {\n const target = event.target as Node;\n const panel = panelRef.current;\n const anchor = anchorRef.current;\n\n if (panel && !panel.contains(target) && anchor && !anchor.contains(target)) {\n onClose();\n }\n };\n\n // Use capture phase to ensure we catch the event before any other handlers\n // Use timeout to avoid closing immediately when clicking the button to open\n const timeoutId = setTimeout(() => {\n document.addEventListener('mousedown', handleClickOutside, true);\n }, 0);\n\n return () => {\n clearTimeout(timeoutId);\n document.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, [isOpen, anchorRef, onClose]);\n\n return createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <motion.aside\n ref={panelRef}\n className=\"pv-filter-dropdown\"\n style={{\n position: 'fixed',\n left: position.left,\n top: position.top,\n }}\n initial={{ opacity: 0, y: -8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.15 }}\n >\n <div className=\"pv-filter-dropdown-content\">\n <div className=\"pv-search\">\n <input\n type=\"search\"\n placeholder=\"Search events\"\n value={search}\n onChange={(event) => onSearchChange(event.target.value)}\n />\n </div>\n <div className=\"pv-filter-groups\">\n {filterOptions.map(({ filter, options, numericRange }) => {\n const selections = filterState[filter.key] ?? new Set<string>();\n const rangeSelection = rangeFilterState[filter.key];\n const isExpanded = expandedFilterKey === filter.key;\n const isNumeric = filter.type === 'number';\n\n return (\n <div key={filter.key} className={`pv-filter ${isExpanded ? 'expanded' : ''}`}>\n <button\n type=\"button\"\n className=\"pv-filter-trigger\"\n onClick={() => onExpandedFilterChange(isExpanded ? null : filter.key)}\n >\n <span className=\"pv-filter-label\">{filter.label}</span>\n <span className=\"pv-filter-trigger-meta\">\n {!isNumeric && selections.size > 0 && <span className=\"pv-filter-count\">{selections.size}</span>}\n {isNumeric && rangeSelection && <span className=\"pv-filter-count\">Range</span>}\n <span className=\"pv-filter-chevron\" />\n </span>\n </button>\n <div className={`pv-filter-content ${isExpanded ? 'expanded' : ''}`}>\n {isNumeric && numericRange ? (\n <RangeHistogramFilter\n values={numericRange.values}\n min={numericRange.min}\n max={numericRange.max}\n buckets={filter.buckets ?? 20}\n selectedRange={rangeSelection ?? null}\n onChange={(range) => onRangeChange(filter.key, range)}\n />\n ) : (\n <>\n <ul>\n {options.map((option) => {\n const optionKey = option.key;\n const checked = selections.has(optionKey);\n return (\n <li key={option.key}>\n <label>\n <input\n type={filter.multi ? 'checkbox' : 'radio'}\n name={`filter-${filter.key}`}\n checked={checked}\n onChange={() =>\n onFilterToggle(filter.key, optionKey, filter.multi ?? false)\n }\n />\n <span>{option.label}</span>\n <span className=\"pv-option-count\">{renderOptionCount(option.count)}</span>\n </label>\n </li>\n );\n })}\n </ul>\n {selections.size > 0 && (\n <button\n type=\"button\"\n className=\"pv-filter-clear\"\n onClick={() => onFilterClear(filter.key)}\n >\n Clear\n </button>\n )}\n </>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </motion.aside>\n )}\n </AnimatePresence>,\n document.body\n );\n}\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type FilterPanelProps } from './FilterPanel';
|
|
2
|
+
export type FilterPanelContainerProps<TItem extends object> = FilterPanelProps<TItem>;
|
|
3
|
+
export declare function FilterPanelContainer<TItem extends object>(props: FilterPanelContainerProps<TItem>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=FilterPanelContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanelContainer.d.ts","sourceRoot":"","sources":["../../../../PivotViewer/components/FilterPanelContainer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,MAAM,yBAAyB,CAAC,KAAK,SAAS,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEtF,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,2CAEjG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { FilterPanel } from './FilterPanel.js';
|
|
3
|
+
|
|
4
|
+
function FilterPanelContainer(props) {
|
|
5
|
+
return jsx(FilterPanel, { ...props });
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { FilterPanelContainer };
|
|
9
|
+
//# sourceMappingURL=FilterPanelContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanelContainer.js","sources":["../../../../PivotViewer/components/FilterPanelContainer.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { FilterPanel, type FilterPanelProps } from './FilterPanel';\n\nexport type FilterPanelContainerProps<TItem extends object> = FilterPanelProps<TItem>;\n\nexport function FilterPanelContainer<TItem extends object>(props: FilterPanelContainerProps<TItem>) {\n return <FilterPanel {...props} />;\n}\n"],"names":["_jsx"],"mappings":";;;AAOM,SAAU,oBAAoB,CAAuB,KAAuC,EAAA;AAChG,IAAA,OAAOA,GAAA,CAAC,WAAW,EAAA,EAAA,GAAK,KAAK,GAAI;AACnC;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { ItemId, LayoutResult, GroupingResult } from '../engine/types';
|
|
3
|
+
import type { ViewMode } from './Toolbar';
|
|
4
|
+
export interface PivotCanvasProps<TItem extends object> {
|
|
5
|
+
items: TItem[];
|
|
6
|
+
layout: LayoutResult;
|
|
7
|
+
grouping: GroupingResult;
|
|
8
|
+
visibleIds: Uint32Array;
|
|
9
|
+
cardWidth: number;
|
|
10
|
+
cardHeight: number;
|
|
11
|
+
zoomLevel: number;
|
|
12
|
+
panX: number;
|
|
13
|
+
panY: number;
|
|
14
|
+
viewportWidth: number;
|
|
15
|
+
viewportHeight: number;
|
|
16
|
+
selectedId: ItemId | null;
|
|
17
|
+
hoveredGroupIndex: number | null;
|
|
18
|
+
viewMode: ViewMode;
|
|
19
|
+
isZooming?: boolean;
|
|
20
|
+
cardRenderer?: (item: TItem) => ReactNode;
|
|
21
|
+
resolveId: (item: TItem, index: number) => string | number;
|
|
22
|
+
onCardClick: (item: TItem, e: MouseEvent, id: number | string) => void;
|
|
23
|
+
onPanStart: (e: MouseEvent) => void;
|
|
24
|
+
onPanMove: (e: MouseEvent) => void;
|
|
25
|
+
onPanEnd: () => void;
|
|
26
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
27
|
+
}
|
|
28
|
+
export declare function PivotCanvas<TItem extends object>({ items, layout, grouping, visibleIds, cardWidth, cardHeight, zoomLevel, panX, panY, viewportWidth, viewportHeight, selectedId, hoveredGroupIndex, isZooming: _isZooming, resolveId: _resolveId, onCardClick, onPanStart, onPanMove, onPanEnd, viewMode, cardRenderer, containerRef, }: PivotCanvasProps<TItem>): null;
|
|
29
|
+
//# sourceMappingURL=PivotCanvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PivotCanvas.d.ts","sourceRoot":"","sources":["../../../../PivotViewer/components/PivotCanvas.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAQ1C,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM;IAEpD,KAAK,EAAE,KAAK,EAAE,CAAC;IAGf,MAAM,EAAE,YAAY,CAAC;IAGrB,QAAQ,EAAE,cAAc,CAAC;IAGzB,UAAU,EAAE,WAAW,CAAC;IAGxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGjC,QAAQ,EAAE,QAAQ,CAAC;IAGnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAG1C,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;IAG3D,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAGvE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD;AAMD,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,EAChD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,SAAS,EAAE,UAAkB,EAC7B,SAAS,EAAE,UAAU,EACrB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAkjBzB"}
|