@neo4j-ndl/react 4.20.0 → 4.21.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/lib/cjs/_common/export-stories-utils.js +1 -1
- package/lib/cjs/_common/export-stories-utils.js.map +1 -1
- package/lib/cjs/_common/utils.js +3 -3
- package/lib/cjs/_common/utils.js.map +1 -1
- package/lib/cjs/_generated/style-rules/color-utils.js +3 -0
- package/lib/cjs/_generated/style-rules/color-utils.js.map +1 -1
- package/lib/cjs/_generated/style-rules/date-utils.js +14 -13
- package/lib/cjs/_generated/style-rules/date-utils.js.map +1 -1
- package/lib/cjs/_generated/style-rules/literal-schemas.js +5 -3
- package/lib/cjs/_generated/style-rules/literal-schemas.js.map +1 -1
- package/lib/cjs/ai/code-preview/CodePreview.js +1 -1
- package/lib/cjs/ai/code-preview/CodePreview.js.map +1 -1
- package/lib/cjs/ai/file-tag/FileTag.js.map +1 -1
- package/lib/cjs/ai/image-tag/ImageTag.js.map +1 -1
- package/lib/cjs/ai/prompt/Prompt.js +10 -10
- package/lib/cjs/ai/prompt/Prompt.js.map +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-advanced.story.js +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-advanced.story.js.map +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-context.story.js +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-context.story.js.map +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-default.story.js +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-default.story.js.map +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-header.story.js +1 -1
- package/lib/cjs/ai/prompt/stories/prompt-header.story.js.map +1 -1
- package/lib/cjs/ai/response/Response.js +4 -4
- package/lib/cjs/ai/response/Response.js.map +1 -1
- package/lib/cjs/ai/response/stories/response-full-example.story.js +1 -1
- package/lib/cjs/ai/response/stories/response-full-example.story.js.map +1 -1
- package/lib/cjs/ai/suggestion/Suggestion.js.map +1 -1
- package/lib/cjs/ai/thinking/thinking-duration-formatter.js +5 -5
- package/lib/cjs/ai/thinking/thinking-duration-formatter.js.map +1 -1
- package/lib/cjs/banner/Banner.js +2 -2
- package/lib/cjs/banner/Banner.js.map +1 -1
- package/lib/cjs/button/ButtonBase.js +4 -4
- package/lib/cjs/button/ButtonBase.js.map +1 -1
- package/lib/cjs/code/Code.js +3 -3
- package/lib/cjs/code/Code.js.map +1 -1
- package/lib/cjs/code-block/CodeBlock.js +2 -2
- package/lib/cjs/code-block/CodeBlock.js.map +1 -1
- package/lib/cjs/color-picker/ColorPicker.js +22 -22
- package/lib/cjs/color-picker/ColorPicker.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-custom-swatches.story.js +20 -20
- package/lib/cjs/color-picker/stories/color-picker-custom-swatches.story.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-default.story.js +4 -4
- package/lib/cjs/color-picker/stories/color-picker-default.story.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js +4 -4
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-without-eyedropper.story.js +4 -4
- package/lib/cjs/color-picker/stories/color-picker-without-eyedropper.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-large-data-set.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-large-data-set.story.js.map +1 -1
- package/lib/cjs/data-grid/Components.js +20 -20
- package/lib/cjs/data-grid/Components.js.map +1 -1
- package/lib/cjs/data-grid/DataGrid.js +3 -3
- package/lib/cjs/data-grid/DataGrid.js.map +1 -1
- package/lib/cjs/data-grid/data-grid-nav/data-grid-nav.js +55 -54
- package/lib/cjs/data-grid/data-grid-nav/data-grid-nav.js.map +1 -1
- package/lib/cjs/data-grid/data-grid-nav/helpers.js +1 -1
- package/lib/cjs/data-grid/data-grid-nav/helpers.js.map +1 -1
- package/lib/cjs/data-grid/data-grid-nav/index.js +2 -2
- package/lib/cjs/data-grid/data-grid-nav/index.js.map +1 -1
- package/lib/cjs/data-grid/helpers/index.js +42 -40
- package/lib/cjs/data-grid/helpers/index.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js +10 -7
- package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js +10 -7
- package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +5 -5
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js +5 -5
- package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
- package/lib/cjs/data-grid/style-rules/evaluate.js +23 -23
- package/lib/cjs/data-grid/style-rules/evaluate.js.map +1 -1
- package/lib/cjs/data-grid/style-rules/types.js +1 -1
- package/lib/cjs/data-grid/style-rules/types.js.map +1 -1
- package/lib/cjs/dialog/Dialog.js +5 -5
- package/lib/cjs/dialog/Dialog.js.map +1 -1
- package/lib/cjs/dialog/dialog-types.js.map +1 -1
- package/lib/cjs/drawer/Drawer.js +5 -5
- package/lib/cjs/drawer/Drawer.js.map +1 -1
- package/lib/cjs/dropdown-button/DropdownButton.js +4 -4
- package/lib/cjs/dropdown-button/DropdownButton.js.map +1 -1
- package/lib/cjs/dropzone/stories/dropzone-full.story.js +1 -1
- package/lib/cjs/dropzone/stories/dropzone-full.story.js.map +1 -1
- package/lib/cjs/flex/stories/flex-default.story.js +1 -1
- package/lib/cjs/flex/stories/flex-default.story.js.map +1 -1
- package/lib/cjs/hooks/index.js +3 -3
- package/lib/cjs/hooks/index.js.map +1 -1
- package/lib/cjs/icon-button-base/IconButtonBase.js +4 -4
- package/lib/cjs/icon-button-base/IconButtonBase.js.map +1 -1
- package/lib/cjs/icons/generated/custom/ScatterPlot.js +30 -0
- package/lib/cjs/icons/generated/custom/ScatterPlot.js.map +1 -0
- package/lib/cjs/icons/generated/custom/index.js +4 -2
- package/lib/cjs/icons/generated/custom/index.js.map +1 -1
- package/lib/cjs/inline-edit/InlineEdit.js +8 -8
- package/lib/cjs/inline-edit/InlineEdit.js.map +1 -1
- package/lib/cjs/kbd/kbd-utils.js +2 -2
- package/lib/cjs/kbd/kbd-utils.js.map +1 -1
- package/lib/cjs/modal/Modal.js +6 -6
- package/lib/cjs/modal/Modal.js.map +1 -1
- package/lib/cjs/next/tree-view/TreeView.js +23 -23
- package/lib/cjs/next/tree-view/TreeView.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-lazy.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-lazy.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-multi.story.js +6 -6
- package/lib/cjs/next/tree-view/stories/tree-view-multi.story.js.map +1 -1
- package/lib/cjs/popover/Popover.js.map +1 -1
- package/lib/cjs/popover/stories/popover-custom-offset.story.js +3 -3
- package/lib/cjs/popover/stories/popover-custom-offset.story.js.map +1 -1
- package/lib/cjs/popover/use-popover.js +2 -0
- package/lib/cjs/popover/use-popover.js.map +1 -1
- package/lib/cjs/segmented-control/SegmentedControl.js.map +1 -1
- package/lib/cjs/select/Overrides.js +30 -30
- package/lib/cjs/select/Overrides.js.map +1 -1
- package/lib/cjs/select-icon-button/SelectIconButton.js +4 -4
- package/lib/cjs/select-icon-button/SelectIconButton.js.map +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
- package/lib/cjs/side-navigation/SideNavigation.js +9 -9
- package/lib/cjs/side-navigation/SideNavigation.js.map +1 -1
- package/lib/cjs/slider/Slider.js +1 -1
- package/lib/cjs/slider/Slider.js.map +1 -1
- package/lib/cjs/slider/stories/slider-single-controlled.story.js +2 -2
- package/lib/cjs/slider/stories/slider-single-controlled.story.js.map +1 -1
- package/lib/cjs/spotlight/Spotlight.js +6 -6
- package/lib/cjs/spotlight/Spotlight.js.map +1 -1
- package/lib/cjs/spotlight/SpotlightProvider.js +6 -6
- package/lib/cjs/spotlight/SpotlightProvider.js.map +1 -1
- package/lib/cjs/spotlight/SpotlightTarget.js +18 -16
- package/lib/cjs/spotlight/SpotlightTarget.js.map +1 -1
- package/lib/cjs/status-indicator/StatusIndicator.js +4 -2
- package/lib/cjs/status-indicator/StatusIndicator.js.map +1 -1
- package/lib/cjs/tabs/Tabs.js +3 -3
- package/lib/cjs/tabs/Tabs.js.map +1 -1
- package/lib/cjs/tabs/use-tabs-scroll-overflow.js +2 -2
- package/lib/cjs/tabs/use-tabs-scroll-overflow.js.map +1 -1
- package/lib/cjs/text-input/stories/text-input-full.story.js +1 -1
- package/lib/cjs/text-input/stories/text-input-full.story.js.map +1 -1
- package/lib/cjs/text-input/stories/text-input-with-icons.story.js +1 -1
- package/lib/cjs/text-input/stories/text-input-with-icons.story.js.map +1 -1
- package/lib/cjs/theme/agnostic.js +4 -4
- package/lib/cjs/theme/agnostic.js.map +1 -1
- package/lib/cjs/time-picker/TimePicker.js +24 -24
- package/lib/cjs/time-picker/TimePicker.js.map +1 -1
- package/lib/cjs/time-picker/generate-time-options.js +3 -3
- package/lib/cjs/time-picker/generate-time-options.js.map +1 -1
- package/lib/cjs/timezone-picker/TimeZonePicker.js +44 -44
- package/lib/cjs/timezone-picker/TimeZonePicker.js.map +1 -1
- package/lib/cjs/timezone-picker/generate-timezone-options.js +5 -5
- package/lib/cjs/timezone-picker/generate-timezone-options.js.map +1 -1
- package/lib/cjs/toast/ToastControlled.js +1 -1
- package/lib/cjs/toast/ToastControlled.js.map +1 -1
- package/lib/cjs/tooltip/use-tooltip.js +8 -1
- package/lib/cjs/tooltip/use-tooltip.js.map +1 -1
- package/lib/cjs/tree-view/TreeItemWrapper.js +8 -8
- package/lib/cjs/tree-view/TreeItemWrapper.js.map +1 -1
- package/lib/cjs/tree-view/TreeView.js +6 -2
- package/lib/cjs/tree-view/TreeView.js.map +1 -1
- package/lib/cjs/tree-view/TreeViewTextItem.js +17 -17
- package/lib/cjs/tree-view/TreeViewTextItem.js.map +1 -1
- package/lib/cjs/tree-view/tree-view-keyboard-coordinates.js +2 -0
- package/lib/cjs/tree-view/tree-view-keyboard-coordinates.js.map +1 -1
- package/lib/cjs/tree-view/tree-view-utils.js +12 -12
- package/lib/cjs/tree-view/tree-view-utils.js.map +1 -1
- package/lib/esm/_common/export-stories-utils.js +1 -1
- package/lib/esm/_common/export-stories-utils.js.map +1 -1
- package/lib/esm/_common/utils.js +3 -3
- package/lib/esm/_common/utils.js.map +1 -1
- package/lib/esm/_generated/style-rules/color-utils.js +3 -0
- package/lib/esm/_generated/style-rules/color-utils.js.map +1 -1
- package/lib/esm/_generated/style-rules/date-utils.js +14 -13
- package/lib/esm/_generated/style-rules/date-utils.js.map +1 -1
- package/lib/esm/_generated/style-rules/literal-schemas.js +5 -3
- package/lib/esm/_generated/style-rules/literal-schemas.js.map +1 -1
- package/lib/esm/ai/code-preview/CodePreview.js +1 -1
- package/lib/esm/ai/code-preview/CodePreview.js.map +1 -1
- package/lib/esm/ai/file-tag/FileTag.js.map +1 -1
- package/lib/esm/ai/image-tag/ImageTag.js.map +1 -1
- package/lib/esm/ai/prompt/Prompt.js +10 -10
- package/lib/esm/ai/prompt/Prompt.js.map +1 -1
- package/lib/esm/ai/prompt/stories/prompt-advanced.story.js +1 -1
- package/lib/esm/ai/prompt/stories/prompt-advanced.story.js.map +1 -1
- package/lib/esm/ai/prompt/stories/prompt-context.story.js +1 -1
- package/lib/esm/ai/prompt/stories/prompt-context.story.js.map +1 -1
- package/lib/esm/ai/prompt/stories/prompt-default.story.js +1 -1
- package/lib/esm/ai/prompt/stories/prompt-default.story.js.map +1 -1
- package/lib/esm/ai/prompt/stories/prompt-header.story.js +1 -1
- package/lib/esm/ai/prompt/stories/prompt-header.story.js.map +1 -1
- package/lib/esm/ai/response/Response.js +4 -4
- package/lib/esm/ai/response/Response.js.map +1 -1
- package/lib/esm/ai/response/stories/response-full-example.story.js +1 -1
- package/lib/esm/ai/response/stories/response-full-example.story.js.map +1 -1
- package/lib/esm/ai/suggestion/Suggestion.js.map +1 -1
- package/lib/esm/ai/thinking/thinking-duration-formatter.js +5 -5
- package/lib/esm/ai/thinking/thinking-duration-formatter.js.map +1 -1
- package/lib/esm/banner/Banner.js +2 -2
- package/lib/esm/banner/Banner.js.map +1 -1
- package/lib/esm/button/ButtonBase.js +4 -4
- package/lib/esm/button/ButtonBase.js.map +1 -1
- package/lib/esm/code/Code.js +3 -3
- package/lib/esm/code/Code.js.map +1 -1
- package/lib/esm/code-block/CodeBlock.js +2 -2
- package/lib/esm/code-block/CodeBlock.js.map +1 -1
- package/lib/esm/color-picker/ColorPicker.js +22 -22
- package/lib/esm/color-picker/ColorPicker.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-custom-swatches.story.js +20 -20
- package/lib/esm/color-picker/stories/color-picker-custom-swatches.story.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-default.story.js +4 -4
- package/lib/esm/color-picker/stories/color-picker-default.story.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js +4 -4
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-without-eyedropper.story.js +4 -4
- package/lib/esm/color-picker/stories/color-picker-without-eyedropper.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-large-data-set.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-large-data-set.story.js.map +1 -1
- package/lib/esm/data-grid/Components.js +20 -20
- package/lib/esm/data-grid/Components.js.map +1 -1
- package/lib/esm/data-grid/DataGrid.js +3 -3
- package/lib/esm/data-grid/DataGrid.js.map +1 -1
- package/lib/esm/data-grid/data-grid-nav/data-grid-nav.js +55 -54
- package/lib/esm/data-grid/data-grid-nav/data-grid-nav.js.map +1 -1
- package/lib/esm/data-grid/data-grid-nav/helpers.js +1 -1
- package/lib/esm/data-grid/data-grid-nav/helpers.js.map +1 -1
- package/lib/esm/data-grid/data-grid-nav/index.js +2 -2
- package/lib/esm/data-grid/data-grid-nav/index.js.map +1 -1
- package/lib/esm/data-grid/helpers/index.js +42 -40
- package/lib/esm/data-grid/helpers/index.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js +10 -7
- package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js +10 -7
- package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +5 -5
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-virtualization.story.js +5 -5
- package/lib/esm/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
- package/lib/esm/data-grid/style-rules/evaluate.js +23 -23
- package/lib/esm/data-grid/style-rules/evaluate.js.map +1 -1
- package/lib/esm/data-grid/style-rules/types.js +1 -1
- package/lib/esm/data-grid/style-rules/types.js.map +1 -1
- package/lib/esm/dialog/Dialog.js +5 -5
- package/lib/esm/dialog/Dialog.js.map +1 -1
- package/lib/esm/dialog/dialog-types.js.map +1 -1
- package/lib/esm/drawer/Drawer.js +5 -5
- package/lib/esm/drawer/Drawer.js.map +1 -1
- package/lib/esm/dropdown-button/DropdownButton.js +4 -4
- package/lib/esm/dropdown-button/DropdownButton.js.map +1 -1
- package/lib/esm/dropzone/stories/dropzone-full.story.js +1 -1
- package/lib/esm/dropzone/stories/dropzone-full.story.js.map +1 -1
- package/lib/esm/flex/stories/flex-default.story.js +1 -1
- package/lib/esm/flex/stories/flex-default.story.js.map +1 -1
- package/lib/esm/hooks/index.js +3 -3
- package/lib/esm/hooks/index.js.map +1 -1
- package/lib/esm/icon-button-base/IconButtonBase.js +4 -4
- package/lib/esm/icon-button-base/IconButtonBase.js.map +1 -1
- package/lib/esm/icons/generated/custom/ScatterPlot.js +28 -0
- package/lib/esm/icons/generated/custom/ScatterPlot.js.map +1 -0
- package/lib/esm/icons/generated/custom/index.js +1 -0
- package/lib/esm/icons/generated/custom/index.js.map +1 -1
- package/lib/esm/inline-edit/InlineEdit.js +8 -8
- package/lib/esm/inline-edit/InlineEdit.js.map +1 -1
- package/lib/esm/kbd/kbd-utils.js +2 -2
- package/lib/esm/kbd/kbd-utils.js.map +1 -1
- package/lib/esm/modal/Modal.js +6 -6
- package/lib/esm/modal/Modal.js.map +1 -1
- package/lib/esm/next/tree-view/TreeView.js +23 -23
- package/lib/esm/next/tree-view/TreeView.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-lazy.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-lazy.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-multi.story.js +6 -6
- package/lib/esm/next/tree-view/stories/tree-view-multi.story.js.map +1 -1
- package/lib/esm/popover/Popover.js.map +1 -1
- package/lib/esm/popover/stories/popover-custom-offset.story.js +3 -3
- package/lib/esm/popover/stories/popover-custom-offset.story.js.map +1 -1
- package/lib/esm/popover/use-popover.js +2 -0
- package/lib/esm/popover/use-popover.js.map +1 -1
- package/lib/esm/segmented-control/SegmentedControl.js.map +1 -1
- package/lib/esm/select/Overrides.js +30 -30
- package/lib/esm/select/Overrides.js.map +1 -1
- package/lib/esm/select-icon-button/SelectIconButton.js +4 -4
- package/lib/esm/select-icon-button/SelectIconButton.js.map +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
- package/lib/esm/side-navigation/SideNavigation.js +9 -9
- package/lib/esm/side-navigation/SideNavigation.js.map +1 -1
- package/lib/esm/slider/Slider.js +1 -1
- package/lib/esm/slider/Slider.js.map +1 -1
- package/lib/esm/slider/stories/slider-single-controlled.story.js +2 -2
- package/lib/esm/slider/stories/slider-single-controlled.story.js.map +1 -1
- package/lib/esm/spotlight/Spotlight.js +6 -6
- package/lib/esm/spotlight/Spotlight.js.map +1 -1
- package/lib/esm/spotlight/SpotlightProvider.js +6 -6
- package/lib/esm/spotlight/SpotlightProvider.js.map +1 -1
- package/lib/esm/spotlight/SpotlightTarget.js +18 -16
- package/lib/esm/spotlight/SpotlightTarget.js.map +1 -1
- package/lib/esm/status-indicator/StatusIndicator.js +4 -2
- package/lib/esm/status-indicator/StatusIndicator.js.map +1 -1
- package/lib/esm/tabs/Tabs.js +3 -3
- package/lib/esm/tabs/Tabs.js.map +1 -1
- package/lib/esm/tabs/use-tabs-scroll-overflow.js +2 -2
- package/lib/esm/tabs/use-tabs-scroll-overflow.js.map +1 -1
- package/lib/esm/text-input/stories/text-input-full.story.js +1 -1
- package/lib/esm/text-input/stories/text-input-full.story.js.map +1 -1
- package/lib/esm/text-input/stories/text-input-with-icons.story.js +1 -1
- package/lib/esm/text-input/stories/text-input-with-icons.story.js.map +1 -1
- package/lib/esm/theme/agnostic.js +3 -3
- package/lib/esm/theme/agnostic.js.map +1 -1
- package/lib/esm/time-picker/TimePicker.js +24 -24
- package/lib/esm/time-picker/TimePicker.js.map +1 -1
- package/lib/esm/time-picker/generate-time-options.js +3 -3
- package/lib/esm/time-picker/generate-time-options.js.map +1 -1
- package/lib/esm/timezone-picker/TimeZonePicker.js +44 -44
- package/lib/esm/timezone-picker/TimeZonePicker.js.map +1 -1
- package/lib/esm/timezone-picker/generate-timezone-options.js +5 -5
- package/lib/esm/timezone-picker/generate-timezone-options.js.map +1 -1
- package/lib/esm/toast/ToastControlled.js +1 -1
- package/lib/esm/toast/ToastControlled.js.map +1 -1
- package/lib/esm/tooltip/use-tooltip.js +8 -1
- package/lib/esm/tooltip/use-tooltip.js.map +1 -1
- package/lib/esm/tree-view/TreeItemWrapper.js +8 -8
- package/lib/esm/tree-view/TreeItemWrapper.js.map +1 -1
- package/lib/esm/tree-view/TreeView.js +6 -2
- package/lib/esm/tree-view/TreeView.js.map +1 -1
- package/lib/esm/tree-view/TreeViewTextItem.js +17 -17
- package/lib/esm/tree-view/TreeViewTextItem.js.map +1 -1
- package/lib/esm/tree-view/tree-view-keyboard-coordinates.js +2 -0
- package/lib/esm/tree-view/tree-view-keyboard-coordinates.js.map +1 -1
- package/lib/esm/tree-view/tree-view-utils.js +12 -12
- package/lib/esm/tree-view/tree-view-utils.js.map +1 -1
- package/lib/types/_common/export-stories-utils.d.ts +1 -1
- package/lib/types/_common/utils.d.ts +3 -3
- package/lib/types/_generated/style-rules/color-utils.d.ts.map +1 -1
- package/lib/types/_generated/style-rules/date-utils.d.ts +3 -3
- package/lib/types/_generated/style-rules/date-utils.d.ts.map +1 -1
- package/lib/types/_generated/style-rules/literal-schemas.d.ts.map +1 -1
- package/lib/types/ai/code-preview/CodePreview.d.ts +1 -1
- package/lib/types/ai/file-tag/FileTag.d.ts +1 -1
- package/lib/types/ai/file-tag/FileTag.d.ts.map +1 -1
- package/lib/types/ai/image-tag/ImageTag.d.ts +1 -1
- package/lib/types/ai/image-tag/ImageTag.d.ts.map +1 -1
- package/lib/types/ai/prompt/Prompt.d.ts +3 -3
- package/lib/types/ai/prompt/Prompt.d.ts.map +1 -1
- package/lib/types/ai/suggestion/Suggestion.d.ts +1 -1
- package/lib/types/ai/suggestion/Suggestion.d.ts.map +1 -1
- package/lib/types/ai/thinking/thinking-duration-formatter.d.ts +5 -5
- package/lib/types/banner/Banner.d.ts +1 -1
- package/lib/types/banner/Banner.d.ts.map +1 -1
- package/lib/types/button/ButtonBase.d.ts +2 -2
- package/lib/types/button/ButtonBase.d.ts.map +1 -1
- package/lib/types/code/Code.d.ts +1 -1
- package/lib/types/code/Code.d.ts.map +1 -1
- package/lib/types/data-grid/Components.d.ts +2 -2
- package/lib/types/data-grid/Components.d.ts.map +1 -1
- package/lib/types/data-grid/DataGrid.d.ts +2 -2
- package/lib/types/data-grid/data-grid-nav/data-grid-nav.d.ts +4 -4
- package/lib/types/data-grid/data-grid-nav/data-grid-nav.d.ts.map +1 -1
- package/lib/types/data-grid/data-grid-nav/helpers.d.ts +1 -1
- package/lib/types/data-grid/data-grid-nav/index.d.ts +1 -1
- package/lib/types/data-grid/data-grid-nav/index.d.ts.map +1 -1
- package/lib/types/data-grid/helpers/index.d.ts +5 -5
- package/lib/types/data-grid/helpers/index.d.ts.map +1 -1
- package/lib/types/data-grid/stories/datagrid-in-dialog.story.d.ts.map +1 -1
- package/lib/types/data-grid/stories/datagrid-keyboard-navigation.story.d.ts.map +1 -1
- package/lib/types/data-grid/stories/datagrid-pinned-columns.stories.d.ts +2 -2
- package/lib/types/data-grid/stories/datagrid-search-and-filters.stories.d.ts +2 -2
- package/lib/types/data-grid/stories/datagrid-virtualization.story.d.ts.map +1 -1
- package/lib/types/data-grid/style-rules/evaluate.d.ts +1 -1
- package/lib/types/dialog/Dialog.d.ts.map +1 -1
- package/lib/types/dialog/dialog-types.d.ts +1 -1
- package/lib/types/dialog/dialog-types.d.ts.map +1 -1
- package/lib/types/drawer/Drawer.d.ts +1 -1
- package/lib/types/drawer/Drawer.d.ts.map +1 -1
- package/lib/types/dropdown-button/DropdownButton.d.ts +1 -1
- package/lib/types/dropdown-button/DropdownButton.d.ts.map +1 -1
- package/lib/types/hooks/index.d.ts +3 -3
- package/lib/types/icon-button-base/IconButtonBase.d.ts +1 -1
- package/lib/types/icon-button-base/IconButtonBase.d.ts.map +1 -1
- package/lib/types/icons/generated/custom/ScatterPlot.d.ts +29 -0
- package/lib/types/icons/generated/custom/ScatterPlot.d.ts.map +1 -0
- package/lib/types/icons/generated/custom/index.d.ts +1 -0
- package/lib/types/icons/generated/custom/index.d.ts.map +1 -1
- package/lib/types/modal/Modal.d.ts +1 -1
- package/lib/types/modal/Modal.d.ts.map +1 -1
- package/lib/types/popover/Popover.d.ts.map +1 -1
- package/lib/types/popover/use-popover.d.ts.map +1 -1
- package/lib/types/segmented-control/SegmentedControl.d.ts +1 -1
- package/lib/types/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/lib/types/select/Overrides.d.ts.map +1 -1
- package/lib/types/select-icon-button/SelectIconButton.d.ts +1 -1
- package/lib/types/select-icon-button/SelectIconButton.d.ts.map +1 -1
- package/lib/types/selectable-tag/stories/selectable-tag-sizes.story.d.ts.map +1 -1
- package/lib/types/spotlight/SpotlightProvider.d.ts.map +1 -1
- package/lib/types/spotlight/SpotlightTarget.d.ts +4 -3
- package/lib/types/spotlight/SpotlightTarget.d.ts.map +1 -1
- package/lib/types/status-indicator/StatusIndicator.d.ts.map +1 -1
- package/lib/types/tabs/Tabs.d.ts +1 -1
- package/lib/types/tabs/Tabs.d.ts.map +1 -1
- package/lib/types/theme/agnostic.d.ts +2 -2
- package/lib/types/theme/agnostic.d.ts.map +1 -1
- package/lib/types/tooltip/use-tooltip.d.ts.map +1 -1
- package/lib/types/tree-view/TreeView.d.ts.map +1 -1
- package/lib/types/tree-view/TreeViewTextItem.d.ts.map +1 -1
- package/lib/types/tree-view/tree-view-keyboard-coordinates.d.ts.map +1 -1
- package/lib/types/tree-view/tree-view-utils.d.ts +12 -12
- package/lib/types/tree-view/tree-view-utils.d.ts.map +1 -1
- package/package.json +5 -3
- package/skills/ndl-react/SKILL.md +54 -3
- package/skills/ndl-react/components/ai/file-tag.md +1 -1
- package/skills/ndl-react/components/ai/image-tag.md +1 -1
- package/skills/ndl-react/components/ai/prompt.md +10 -10
- package/skills/ndl-react/components/ai/response.md +1 -1
- package/skills/ndl-react/components/ai/suggestion.md +1 -1
- package/skills/ndl-react/components/banner.md +1 -1
- package/skills/ndl-react/components/clean-icon-button.md +1 -1
- package/skills/ndl-react/components/code.md +1 -1
- package/skills/ndl-react/components/combobox.md +1 -1
- package/skills/ndl-react/components/data-grid.md +35 -28
- package/skills/ndl-react/components/dialog.md +1 -1
- package/skills/ndl-react/components/drawer.md +1 -1
- package/skills/ndl-react/components/dropdown-button.md +1 -1
- package/skills/ndl-react/components/dropzone.md +1 -1
- package/skills/ndl-react/components/filled-button.md +2 -2
- package/skills/ndl-react/components/flex.md +2 -2
- package/skills/ndl-react/components/icon-button.md +1 -1
- package/skills/ndl-react/components/modal.md +1 -1
- package/skills/ndl-react/components/next/tree-view.md +8 -8
- package/skills/ndl-react/components/outlined-button.md +2 -2
- package/skills/ndl-react/components/popover.md +3 -3
- package/skills/ndl-react/components/segmented-control.md +1 -1
- package/skills/ndl-react/components/select-icon-button.md +1 -1
- package/skills/ndl-react/components/selectable-tag.md +10 -4
- package/skills/ndl-react/components/slider.md +2 -2
- package/skills/ndl-react/components/tabs.md +1 -1
- package/skills/ndl-react/components/text-button.md +2 -2
- package/skills/ndl-react/components/text-input.md +2 -2
- package/skills/ndl-react/references/styling.md +290 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker-dialog.story.js","sourceRoot":"","sources":["../../../../src/color-picker/stories/color-picker-dialog.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAqE;AACrE,iCAAiC;AAEjC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACjC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"color-picker-dialog.story.js","sourceRoot":"","sources":["../../../../src/color-picker/stories/color-picker-dialog.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAAqE;AACrE,iCAAiC;AAEjC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACjC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;KACvC,CAAC,CAAC;IAEH,OAAO,CACL,iCAAK,SAAS,EAAC,gDAAgD,aAC7D,uBAAC,oBAAY,IACX,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,4BAGhC,EACf,wBAAC,cAAM,IAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAC1C,uBAAC,cAAM,CAAC,MAAM,yBAAuB,EACrC,uBAAC,cAAM,CAAC,OAAO,IAAC,SAAS,EAAC,8BAA8B,YACtD,uBAAC,mBAAW,IACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9C,gBAAgB,EAAC,OAAO,GACxB,GACa,IACV,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { ColorPicker, Dialog, FilledButton } from '@neo4j-ndl/react';\nimport { useState } from 'react';\n\nconst Component = () => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleClick = () => setIsOpen((prev) => !prev);\n const handleClose = () => setIsOpen(false);\n\n const [color, setColor] = useState({\n a: 1, // oxlint-disable-line id-length\n b: 0, // oxlint-disable-line id-length\n g: 0, // oxlint-disable-line id-length\n r: 0, // oxlint-disable-line id-length\n });\n\n return (\n <div className=\"n-flex n-items-center n-justify-centern-w-full\">\n <FilledButton\n onClick={handleClick}\n htmlAttributes={{ 'aria-haspopup': 'dialog' }}\n >\n Open Dialog\n </FilledButton>\n <Dialog onClose={handleClose} isOpen={isOpen}>\n <Dialog.Header>Header</Dialog.Header>\n <Dialog.Content className=\"n-max-h-96 n-overflow-y-auto\">\n <ColorPicker\n color={color}\n onChange={(newColor) => setColor(newColor.rgb)}\n floatingStrategy=\"fixed\"\n />\n </Dialog.Content>\n </Dialog>\n </div>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -25,10 +25,10 @@ const react_1 = require("react");
|
|
|
25
25
|
const ColorPicker_1 = require("../ColorPicker");
|
|
26
26
|
const Component = () => {
|
|
27
27
|
const [color, setColor] = (0, react_1.useState)({
|
|
28
|
-
a: 1,
|
|
29
|
-
b: 0,
|
|
30
|
-
g: 0,
|
|
31
|
-
r: 0,
|
|
28
|
+
a: 1, // oxlint-disable-line id-length
|
|
29
|
+
b: 0, // oxlint-disable-line id-length
|
|
30
|
+
g: 0, // oxlint-disable-line id-length
|
|
31
|
+
r: 0, // oxlint-disable-line id-length
|
|
32
32
|
});
|
|
33
33
|
return ((0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { color: color, onChange: (newColor) => setColor(newColor.rgb), shouldShowEyeDropper: false }));
|
|
34
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker-without-eyedropper.story.js","sourceRoot":"","sources":["../../../../src/color-picker/stories/color-picker-without-eyedropper.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,iCAAiC;AAEjC,gDAA6C;AAE7C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACjC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"color-picker-without-eyedropper.story.js","sourceRoot":"","sources":["../../../../src/color-picker/stories/color-picker-without-eyedropper.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,iCAAiC;AAEjC,gDAA6C;AAE7C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACjC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;QACtC,CAAC,EAAE,CAAC,EAAE,gCAAgC;KACvC,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,yBAAW,IACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9C,oBAAoB,EAAE,KAAK,GAC3B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { useState } from 'react';\n\nimport { ColorPicker } from '../ColorPicker';\n\nconst Component = () => {\n const [color, setColor] = useState({\n a: 1, // oxlint-disable-line id-length\n b: 0, // oxlint-disable-line id-length\n g: 0, // oxlint-disable-line id-length\n r: 0, // oxlint-disable-line id-length\n });\n\n return (\n <ColorPicker\n color={color}\n onChange={(newColor) => setColor(newColor.rgb)}\n shouldShowEyeDropper={false}\n />\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -24,7 +24,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
24
24
|
require("@neo4j-ndl/base/lib/neo4j-ds-styles.css");
|
|
25
25
|
const react_1 = require("@neo4j-ndl/react");
|
|
26
26
|
const react_2 = require("react");
|
|
27
|
-
const options = Array.from({ length: 10000 }, (
|
|
27
|
+
const options = Array.from({ length: 10000 }, (_unused, index) => ({
|
|
28
28
|
label: `Node ${index + 1}`,
|
|
29
29
|
value: `node-${index + 1}`,
|
|
30
30
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-large-data-set.story.js","sourceRoot":"","sources":["../../../../src/combobox/stories/combobox-large-data-set.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA4C;AAC5C,iCAAiC;AAOjC,MAAM,OAAO,GAAa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"combobox-large-data-set.story.js","sourceRoot":"","sources":["../../../../src/combobox/stories/combobox-large-data-set.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAA4C;AAC5C,iCAAiC;AAOjC,MAAM,OAAO,GAAa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3E,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC,EAAE;IAC1B,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC,EAAE;CAC3B,CAAC,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3D,OAAO,CACL,uBAAC,gBAAQ,IACP,KAAK,EAAC,OAAO,EACb,WAAW,QACX,OAAO,QACP,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC5C,QAAQ,EAAC,iHAAiH,GAC1H,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { Combobox } from '@neo4j-ndl/react';\nimport { useState } from 'react';\n\ntype Option = {\n label: string;\n value: string;\n};\n\nconst options: Option[] = Array.from({ length: 10000 }, (_unused, index) => ({\n label: `Node ${index + 1}`,\n value: `node-${index + 1}`,\n}));\n\nconst Component = () => {\n const [value, setValue] = useState(options.slice(0, 1500));\n\n return (\n <Combobox\n label=\"Nodes\"\n isClearable\n isMulti\n options={options}\n value={value}\n onChange={(nextValue) => setValue(nextValue)}\n helpText=\"10,000 options with 1,500 selected: the list renders only its visible rows and the counter rounds to thousands.\"\n />\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -64,7 +64,7 @@ const TABLE_RESULTS = {
|
|
|
64
64
|
};
|
|
65
65
|
const getPaginationOptions = (pageSize) => {
|
|
66
66
|
return [...new Set([...TABLE_RESULTS.values, pageSize])]
|
|
67
|
-
.sort((
|
|
67
|
+
.sort((firstSize, secondSize) => firstSize - secondSize)
|
|
68
68
|
.map((option) => ({
|
|
69
69
|
label: `${option}`,
|
|
70
70
|
value: option,
|
|
@@ -128,10 +128,10 @@ const ActionButton = (_a) => {
|
|
|
128
128
|
const { onClick } = action, restAction = __rest(action, ["onClick"]);
|
|
129
129
|
const interceptedOnClick = (0, react_2.useCallback)(
|
|
130
130
|
// oxlint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
-
(
|
|
131
|
+
(event) => {
|
|
132
132
|
const providedOnClick = onClick !== null && onClick !== void 0 ? onClick : action.onClick;
|
|
133
133
|
if (typeof providedOnClick === 'function') {
|
|
134
|
-
providedOnClick(
|
|
134
|
+
providedOnClick(event);
|
|
135
135
|
}
|
|
136
136
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
137
137
|
}, [action.onClick, onClick, onClose]);
|
|
@@ -158,10 +158,10 @@ const ActionCell = ({ cell, innerCleanIconButtonProps, innerMenuProps, }) => {
|
|
|
158
158
|
} }, innerCleanIconButtonProps, { htmlAttributes: Object.assign({ tabIndex: 0 }, innerCleanIconButtonProps === null || innerCleanIconButtonProps === void 0 ? void 0 : innerCleanIconButtonProps.htmlAttributes), children: (innerCleanIconButtonProps === null || innerCleanIconButtonProps === void 0 ? void 0 : innerCleanIconButtonProps.children) || ((0, jsx_runtime_1.jsx)(EllipsisHorizontalIconOutline_1.EllipsisHorizontalIconOutline, {})) })), (0, jsx_runtime_1.jsx)(menu_1.Menu, Object.assign({ isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => {
|
|
159
159
|
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
|
|
160
160
|
setIsActionsOpen(false);
|
|
161
|
-
} }, innerMenuProps, { portalTarget: portalTarget, children: (innerMenuProps === null || innerMenuProps === void 0 ? void 0 : innerMenuProps.children) || ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: actions.map((action,
|
|
161
|
+
} }, innerMenuProps, { portalTarget: portalTarget, children: (innerMenuProps === null || innerMenuProps === void 0 ? void 0 : innerMenuProps.children) || ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: actions.map((action, index) => components.ActionButton && ((0, jsx_runtime_1.jsx)(components.ActionButton, { action: Object.assign(Object.assign({}, action), { onClick: (event) => {
|
|
162
162
|
var _a;
|
|
163
|
-
(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action,
|
|
164
|
-
} }), onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${
|
|
163
|
+
(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action, event, cell);
|
|
164
|
+
} }), onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${index}`))) })) }))] }));
|
|
165
165
|
};
|
|
166
166
|
exports.ActionCell = ActionCell;
|
|
167
167
|
const ColumnControls = (_a) => {
|
|
@@ -208,7 +208,7 @@ const ColumnControls = (_a) => {
|
|
|
208
208
|
setIsActionsOpen(!isActionsOpen);
|
|
209
209
|
}, htmlAttributes: {
|
|
210
210
|
tabIndex: 0,
|
|
211
|
-
}, children: (0, jsx_runtime_1.jsx)(ChevronDownIconSolid_1.ChevronDownIconSolid, {}) }), (0, jsx_runtime_1.jsx)(menu_1.Menu, { isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => setIsActionsOpen(false), portalTarget: portalTarget, children: newActions.map((action,
|
|
211
|
+
}, children: (0, jsx_runtime_1.jsx)(ChevronDownIconSolid_1.ChevronDownIconSolid, {}) }), (0, jsx_runtime_1.jsx)(menu_1.Menu, { isOpen: isActionsOpen, anchorRef: actionsButtonRef, onClose: () => setIsActionsOpen(false), portalTarget: portalTarget, children: newActions.map((action, index) => components.ActionButton && ((0, jsx_runtime_1.jsx)(components.ActionButton, { action: action, onClose: () => setIsActionsOpen(false) }, `${cell.column.id}-action-${index}`))) })] })) }))) : null;
|
|
212
212
|
};
|
|
213
213
|
exports.ColumnControls = ColumnControls;
|
|
214
214
|
const HeaderCell = (_a) => {
|
|
@@ -257,16 +257,16 @@ const HeaderCell = (_a) => {
|
|
|
257
257
|
? `${cell.column.columnDef.maxSize}px`
|
|
258
258
|
: 'none', width: isActionColumn ? 40 : cell.getSize() }) }, (isKeyboardNavigationEnabled
|
|
259
259
|
? {
|
|
260
|
-
onKeyDown: (
|
|
260
|
+
onKeyDown: (event) => {
|
|
261
261
|
if (isResizable &&
|
|
262
|
-
|
|
263
|
-
(
|
|
264
|
-
const direction =
|
|
262
|
+
event.altKey &&
|
|
263
|
+
(event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
|
|
264
|
+
const direction = event.key === 'ArrowLeft'
|
|
265
265
|
? helpers_1.ResizeDirection.LEFT
|
|
266
266
|
: helpers_1.ResizeDirection.RIGHT;
|
|
267
267
|
(0, helpers_1.resizeColumn)(direction, cell);
|
|
268
|
-
|
|
269
|
-
|
|
268
|
+
event.preventDefault();
|
|
269
|
+
event.stopPropagation();
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
272
272
|
},
|
|
@@ -384,7 +384,7 @@ const PaginationNumericButton = (_a) => {
|
|
|
384
384
|
'ndl-is-selected': isSelected,
|
|
385
385
|
'ndl-not-selected': !isSelected,
|
|
386
386
|
'ndl-not-selected-numeric': typeof currentIndex === 'number' && !isSelected,
|
|
387
|
-
}), onClick: (
|
|
387
|
+
}), onClick: (event) => typeof currentIndex === 'number' && onClick && onClick(event), tabIndex: typeof currentIndex === 'number' ? 0 : -1 }, restProps, htmlAttributes, { children: children || currentIndex })));
|
|
388
388
|
};
|
|
389
389
|
exports.PaginationNumericButton = PaginationNumericButton;
|
|
390
390
|
const PaginationNumericButtons = () => {
|
|
@@ -440,17 +440,17 @@ const InlineEditCell = (_a) => {
|
|
|
440
440
|
if (!((_b = cell.column.columnDef.meta) === null || _b === void 0 ? void 0 : _b.isInlineEditCell)) {
|
|
441
441
|
return null;
|
|
442
442
|
}
|
|
443
|
-
return ((0, jsx_runtime_1.jsx)("input", Object.assign({ ref: ref, style: style, className: className, onChange: (
|
|
443
|
+
return ((0, jsx_runtime_1.jsx)("input", Object.assign({ ref: ref, style: style, className: className, onChange: (event) => setInputValue(event.target.value), value: inputValue, onFocus: () => {
|
|
444
444
|
dataGridNav.disable();
|
|
445
|
-
}, onKeyDown: (
|
|
445
|
+
}, onKeyDown: (event) => {
|
|
446
446
|
var _a, _b, _c, _d;
|
|
447
|
-
if (
|
|
447
|
+
if (event.key === 'Enter') {
|
|
448
448
|
(_b = (_a = cell === null || cell === void 0 ? void 0 : cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.isInlineEditCell) === null || _b === void 0 ? void 0 : _b.onEditChange(inputValue, cell);
|
|
449
|
-
(_c =
|
|
449
|
+
(_c = event.currentTarget.parentElement) === null || _c === void 0 ? void 0 : _c.focus();
|
|
450
450
|
return;
|
|
451
451
|
}
|
|
452
|
-
else if (
|
|
453
|
-
(_d =
|
|
452
|
+
else if (event.key === 'Escape') {
|
|
453
|
+
(_d = event.currentTarget.parentElement) === null || _d === void 0 ? void 0 : _d.focus();
|
|
454
454
|
return;
|
|
455
455
|
}
|
|
456
456
|
}, onBlur: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components.js","sourceRoot":"","sources":["../../../src/data-grid/Components.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { useMergeRefs } from '@floating-ui/react';\nimport {\n type Cell,\n type CellContext,\n flexRender,\n type Header as HeaderType,\n type Row,\n type RowData,\n type SortDirection,\n} from '@tanstack/react-table';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { GroupBase, SelectComponentsConfig } from 'react-select';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport DataGridCrossIcon from '../icons/generated/custom/DataGridCross';\nimport { Bars3CenterLeftIconOutline } from '../icons/generated/heroIcons/Bars3CenterLeftIconOutline';\nimport { BarsArrowDownIconOutline } from '../icons/generated/heroIcons/BarsArrowDownIconOutline';\nimport { BarsArrowUpIconOutline } from '../icons/generated/heroIcons/BarsArrowUpIconOutline';\nimport { ChevronDownIconSolid } from '../icons/generated/heroIcons/ChevronDownIconSolid';\nimport { ChevronLeftIconOutline } from '../icons/generated/heroIcons/ChevronLeftIconOutline';\nimport { ChevronRightIconOutline } from '../icons/generated/heroIcons/ChevronRightIconOutline';\nimport { EllipsisHorizontalIconOutline } from '../icons/generated/heroIcons/EllipsisHorizontalIconOutline';\nimport { LoadingSpinner } from '../loading-spinner';\nimport { Menu } from '../menu';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Typography } from '../typography';\nimport { useDataGridContext } from './data-grid-context';\nimport { type ColumnAction } from './datagrid-types';\nimport {\n resizeColumn,\n ResizeDirection,\n userFriendlyPagination,\n} from './helpers';\nimport { useDataGridCellStyle } from './style-rules/hooks';\n\n/** Table results per page, with the first option being the default */\nconst TABLE_RESULTS = {\n DEFAULT: 10,\n values: [10, 25, 50, 100],\n} as const;\n\ntype paginationOption = {\n value: number;\n label: string;\n};\n\nconst getPaginationOptions = (pageSize: number): paginationOption[] => {\n return [...new Set([...TABLE_RESULTS.values, pageSize])]\n .sort((a, b) => a - b)\n .map((option) => ({\n label: `${option}`,\n value: option,\n }));\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DEFAULT_SORT_ACTIONS: (cell: HeaderType<any, unknown>) => {\n [key in SortDirection | 'default']: ColumnAction;\n} = (cell) => ({\n asc: {\n icon: <BarsArrowUpIconOutline />,\n onClick: () => cell.column.toggleSorting(false),\n title: 'Sort ascending',\n },\n default: {\n icon: <Bars3CenterLeftIconOutline />,\n onClick: () => cell.column.clearSorting(),\n title: 'Default sort',\n },\n desc: {\n icon: <BarsArrowDownIconOutline />,\n onClick: () => cell.column.toggleSorting(true),\n title: 'Sort descending',\n },\n});\n\ntype ResizingBarProps<T extends RowData> = {\n header: HeaderType<T, unknown>;\n};\n\nconst ResizingBar = <T extends RowData>({\n header,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', ResizingBarProps<T>>) => {\n const { isKeyboardNavigationEnabled } = useDataGridContext<T>();\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.LEFT, header);\n } else if (event.key === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.RIGHT, header);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('ndl-data-grid-resizer', className, {\n 'ndl-data-grid-is-resizing': header.column.getIsResizing(),\n })}\n style={style}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onKeyDown={handleKeyDown}\n aria-label=\"Resizing bar\"\n tabIndex={isKeyboardNavigationEnabled ? -1 : 0}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype ScrollableProps = {\n children?: React.ReactNode;\n};\n\nconst Scrollable = ({\n children,\n ref,\n className,\n style,\n htmlAttributes,\n ...restProps\n}: CommonProps<'div', ScrollableProps> & {\n ref: React.RefObject<HTMLDivElement | null>;\n}) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-scrollable', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype HeaderProps = {\n children?: React.ReactNode;\n};\n\nconst Header = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderProps>) => {\n const { tableProps, components } = useDataGridContext();\n const { getHeaderGroups, getState } = tableProps;\n\n return (\n <div\n role=\"rowgroup\"\n className={classNames('ndl-data-grid-thead', className, {\n 'ndl-data-grid-is-resizing':\n getState().columnSizingInfo.isResizingColumn,\n })}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {getHeaderGroups().map((headerGroup) => (\n <div key={headerGroup.id} className=\"ndl-data-grid-tr\" role=\"row\">\n {headerGroup.headers.map(\n (header) =>\n components.HeaderCell && (\n <components.HeaderCell key={header.id} cell={header} />\n ),\n )}\n </div>\n ))}\n </>\n )}\n </div>\n );\n};\n\ntype ActionButtonProps = {\n action: ColumnAction;\n onClose: () => void;\n};\n\nexport const ActionButton = <T extends React.ElementType = 'button'>({\n action,\n onClose,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, ActionButtonProps>) => {\n const { onClick, ...restAction } = action;\n\n const interceptedOnClick = useCallback(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const providedOnClick = onClick ?? action.onClick;\n if (typeof providedOnClick === 'function') {\n providedOnClick(e);\n }\n onClose?.();\n },\n [action.onClick, onClick, onClose],\n );\n\n return (\n <Menu.Item\n onClick={interceptedOnClick}\n as={as}\n className={className}\n style={style}\n htmlAttributes={htmlAttributes}\n ref={ref}\n {...restAction}\n {...restProps}\n />\n );\n};\n\nexport interface ActionCellProps<T extends RowData> {\n cell?: CellContext<T, unknown>;\n innerCleanIconButtonProps?: Partial<\n React.ComponentPropsWithoutRef<typeof CleanIconButton>\n >;\n innerMenuProps?: Partial<React.ComponentProps<typeof Menu>>;\n}\n\nconst ActionCell = <T extends RowData>({\n cell,\n innerCleanIconButtonProps,\n innerMenuProps,\n}: ActionCellProps<T>) => {\n const { components, isSkeletonLoading, portalTarget } =\n useDataGridContext<T>();\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (\n !cell ||\n !cell.column.columnDef.meta ||\n typeof cell.column.columnDef?.meta?.isActionCell !== 'object'\n ) {\n return null;\n }\n\n const { actions, onOpenChange } = cell.column.columnDef.meta.isActionCell;\n\n if (isSkeletonLoading) {\n return null;\n }\n\n return (\n <>\n <CleanIconButton\n as=\"button\"\n size=\"medium\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n onOpenChange?.(!isActionsOpen);\n setIsActionsOpen(!isActionsOpen);\n }}\n {...innerCleanIconButtonProps}\n htmlAttributes={{\n tabIndex: 0,\n ...innerCleanIconButtonProps?.htmlAttributes,\n }}\n >\n {innerCleanIconButtonProps?.children || (\n <EllipsisHorizontalIconOutline />\n )}\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => {\n onOpenChange?.(false);\n setIsActionsOpen(false);\n }}\n {...innerMenuProps}\n portalTarget={portalTarget}\n >\n {innerMenuProps?.children || (\n <>\n {actions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={{\n ...action,\n onClick: (e) => {\n action.onClick?.(e, cell);\n },\n }}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </>\n )}\n </Menu>\n </>\n );\n};\n\ntype ColumnControlsProps<T extends RowData> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nexport const ColumnControls = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ColumnControlsProps<T>>) => {\n const { components, portalTarget } = useDataGridContext();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n const { hasDefaultSortingActions = true, actions } =\n cell.column.columnDef.meta?.columnActions || {};\n\n const sortingActions = useMemo(() => {\n if (canSort) {\n if (sort !== 'asc' && sort !== 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).asc,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'asc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).asc,\n ];\n }\n }\n // Default case\n return [];\n }, [sort, cell, canSort]);\n\n const newActions: ColumnAction[] = [\n ...(hasDefaultSortingActions ? sortingActions : []),\n ...(actions ?? []),\n ];\n\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (!actions || actions.length === 0) {\n return null;\n }\n\n return newActions.length > 0 ? (\n <div\n ref={ref}\n className={classNames('ndl-header-action-group', className)}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <Fragment>\n <CleanIconButton\n size=\"small\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n setIsActionsOpen(!isActionsOpen);\n }}\n htmlAttributes={{\n tabIndex: 0,\n }}\n >\n <ChevronDownIconSolid />\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => setIsActionsOpen(false)}\n portalTarget={portalTarget}\n >\n {newActions.map(\n (action, i) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${i}`}\n action={action}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu>\n </Fragment>\n )}\n </div>\n ) : null;\n};\n\ntype HeaderCellProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderCellProps<T>>) => {\n const { components, isResizable, isKeyboardNavigationEnabled } =\n useDataGridContext<T>();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n\n const ariaSortRole = useMemo(() => {\n switch (sort) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return 'none';\n }\n }, [sort]);\n\n const Icon = useMemo(() => {\n switch (sort) {\n case 'asc':\n return <BarsArrowUpIconOutline className=\"ndl-header-icon\" />;\n case 'desc':\n return <BarsArrowDownIconOutline className=\"ndl-header-icon\" />;\n default:\n return (\n <Bars3CenterLeftIconOutline className=\"ndl-hoverable-indicator ndl-header-icon\" />\n );\n }\n }, [sort]);\n\n const ariaDescription = useMemo(() => {\n return canSort\n ? `Press ENTER or SPACE to sort column ${cell.column.id}`\n : `Column id: ${cell.column.id}`;\n }, [canSort, cell.column.id]);\n\n const isActionColumn = useMemo(\n () => typeof cell.column.columnDef.meta?.isActionCell === 'object',\n [cell.column.columnDef.meta],\n );\n\n const Tag = canSort ? 'button' : 'div';\n\n const InnerHeaderCell = () => (\n <div className=\"ndl-header-cell\">\n {cell.isPlaceholder\n ? null\n : flexRender(cell.column.columnDef.header, cell.getContext())}\n {canSort && Icon}\n </div>\n );\n\n return (\n <div\n ref={ref}\n tabIndex={isKeyboardNavigationEnabled && !isActionColumn ? 0 : undefined}\n key={cell.id}\n role=\"columnheader\"\n className={classNames('ndl-data-grid-th', className, {\n 'ndl-data-grid-is-resizing': cell.column.getIsResizing(),\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n })}\n aria-sort={ariaSortRole}\n style={{\n ...style,\n maxWidth: cell.column.columnDef.maxSize\n ? `${cell.column.columnDef.maxSize}px`\n : 'none',\n width: isActionColumn ? 40 : cell.getSize(),\n }}\n {...(isKeyboardNavigationEnabled\n ? {\n onKeyDown: (e) => {\n if (\n isResizable &&\n e.altKey &&\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight')\n ) {\n const direction =\n e.key === 'ArrowLeft'\n ? ResizeDirection.LEFT\n : ResizeDirection.RIGHT;\n resizeColumn(direction, cell);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n },\n }\n : {})}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n <Tag\n className=\"ndl-header-group\"\n style={{\n cursor: canSort ? 'pointer' : 'default',\n }}\n aria-description={ariaDescription}\n onClick={() => canSort && cell.column.toggleSorting()}\n tabIndex={canSort ? 0 : undefined}\n >\n {components.HeaderTitle ? (\n <components.HeaderTitle cell={cell}>\n <InnerHeaderCell />\n </components.HeaderTitle>\n ) : (\n <InnerHeaderCell />\n )}\n </Tag>\n {/* Column actions*/}\n {components.ColumnControls && (\n <components.ColumnControls cell={cell} />\n )}\n {/* Resizer*/}\n {isResizable &&\n cell.column.getCanResize() &&\n components.ResizingBar && <components.ResizingBar header={cell} />}\n </>\n )}\n </div>\n );\n};\n\ntype HeaderTitleProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderTitle = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderTitleProps<T>>) => {\n const { column, id } = cell;\n const title =\n typeof column.columnDef.header === 'string' ? column.columnDef.header : id;\n return (\n <div\n ref={ref}\n className={className}\n title={title}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype BodyProps = {\n children?: React.ReactNode;\n};\n\nconst Body = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyProps>) => {\n const { tableProps, components, isLoading } = useDataGridContext();\n const { getRowModel } = tableProps;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tbody', className)}\n role=\"rowgroup\"\n aria-busy={isLoading ? 'true' : 'false'}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {isLoading && components.LoadingPlaceholder && (\n <components.LoadingPlaceholder />\n )}\n\n {!isLoading &&\n getRowModel().rows.length === 0 &&\n components.NoDataPlaceholder && <components.NoDataPlaceholder />}\n\n {!isLoading &&\n getRowModel().rows.map(\n (row, idx) =>\n components.BodyRow && (\n <components.BodyRow key={`table-row-${idx}`} row={row} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype BodyCellProps<T extends RowData> = {\n cell: Cell<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst BodyCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyCellProps<T>>) => {\n const isResizing = cell.column.getIsResizing();\n\n const isActionColumn = Boolean(cell.column.columnDef.meta?.isActionCell);\n const isInlineEditCell = Boolean(\n cell.column.columnDef.meta?.isInlineEditCell,\n );\n const isDropDownCell = Boolean(cell.column.columnDef.meta?.isDropDownCell);\n const isCustomCell = isActionColumn || isDropDownCell;\n const { isKeyboardNavigationEnabled, isSkeletonLoading, skeletonProps } =\n useDataGridContext();\n const ruleStyle = useDataGridCellStyle(cell);\n return (\n <div\n ref={ref}\n key={cell.id}\n className={classNames('ndl-data-grid-td', className, {\n 'ndl-data-grid-custom-cell': isCustomCell,\n 'ndl-data-grid-dropdown-cell': isDropDownCell,\n 'ndl-data-grid-inline-edit': isInlineEditCell,\n 'ndl-data-grid-is-resizing': isResizing,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n })}\n role=\"cell\"\n tabIndex={isKeyboardNavigationEnabled ? 0 : undefined}\n style={{\n ...ruleStyle,\n ...style,\n width: isActionColumn ? 40 : cell.column.getSize(),\n }}\n {...restProps}\n {...htmlAttributes}\n >\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n width=\"100%\"\n {...skeletonProps}\n isLoading={isSkeletonLoading && !isActionColumn}\n >\n {children || flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </div>\n );\n};\n\ntype BodyRowProps<T extends RowData> = {\n row: Row<T>;\n children?: React.ReactNode;\n};\n\nconst BodyRow = <T extends RowData>({\n row,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyRowProps<T>>) => {\n const { components } = useDataGridContext<T>();\n\n return (\n <div\n key={row.id}\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tr', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {row\n .getVisibleCells()\n .map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell key={cell.id} cell={cell} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype TableResultProps = {\n manualPagination?: {\n from: number;\n to: number;\n totalRows: number;\n };\n children?: React.ReactNode;\n /**\n * The label to use for the results, meaning the word \"results\" in the sentence \"Showing X-Y of Z results\".\n * @defaultValue 'results'\n */\n resultsLabel?: string;\n};\n\nconst TableResults = ({\n manualPagination,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n resultsLabel = 'results',\n ...restProps\n}: CommonProps<'span', TableResultProps>) => {\n const { tableProps, isSkeletonLoading, skeletonProps, isSmallNavigation } =\n useDataGridContext();\n const { getState, getRowModel, getCoreRowModel } = tableProps;\n const {\n pagination: { pageSize, pageIndex },\n } = getState();\n const { rows } = getRowModel();\n\n const { from, to, totalRows } = useMemo(\n () =>\n manualPagination || {\n from: 1 + pageIndex * pageSize,\n to: rows.length + pageIndex * pageSize,\n totalRows: getCoreRowModel().rows.length,\n },\n [pageIndex, pageSize, manualPagination, rows, getCoreRowModel],\n );\n\n if (isSmallNavigation) {\n return null;\n }\n\n return (\n <Skeleton\n as=\"span\"\n onBackground=\"weak\"\n shape=\"rectangular\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <span\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-results', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <span>\n Showing{' '}\n <span className=\"n-font-bold\">\n {totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0}\n </span>{' '}\n of <span className=\"n-font-bold\">{totalRows}</span> {resultsLabel}\n </span>\n )}\n </span>\n </Skeleton>\n );\n};\n\ntype RowsPerPageProps = {\n /**\n * The target element to portal the menu of the select component to.\n * Should be document.body normally, or the modal root if the select is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n children?: React.ReactNode;\n};\n\nconst RowsPerPage = ({\n portalTarget: portalTargetProp,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', RowsPerPageProps>) => {\n const { tableProps, portalTarget } = useDataGridContext();\n\n const { setPageSize, getState } = tableProps;\n\n const {\n pagination: { pageSize },\n } = getState();\n\n const paginationOptions = getPaginationOptions(pageSize);\n const defaultPaginationOption = paginationOptions.find(\n (option) => option.value === pageSize,\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-rows-per-page', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n Show\n <Select\n type=\"select\"\n size=\"medium\"\n ariaLabel=\"Select page size\"\n selectProps={{\n defaultValue: defaultPaginationOption,\n isSearchable: false,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (option) => {\n if (option) {\n setPageSize(option.value);\n }\n },\n options: paginationOptions,\n styles: {\n container: () => ({\n width: '100%',\n }),\n },\n }}\n />\n </>\n )}\n </div>\n );\n};\n\ntype PaginationArrowButtonProps = {\n action: 'previous' | 'next';\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationArrowButton = ({\n action,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationArrowButtonProps>) => {\n const PaginationIcon =\n action === 'previous' ? ChevronLeftIconOutline : ChevronRightIconOutline;\n const ariaLabel = action === 'previous' ? 'Previous page' : 'Next page';\n const classes = classNames('ndl-data-grid-pagination-icon-button', className);\n\n return (\n <CleanIconButton\n ref={ref}\n style={style}\n className={classes}\n description={ariaLabel}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children || <PaginationIcon />}\n </CleanIconButton>\n );\n};\n\ntype PaginationNumericButtonProps = {\n currentIndex: number | string;\n isSelected: boolean;\n children?: React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationNumericButton = ({\n currentIndex,\n isSelected,\n children,\n className,\n style,\n htmlAttributes,\n onClick,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationNumericButtonProps>) => {\n return (\n <button\n ref={ref}\n style={style}\n type=\"button\"\n data-testid={`ndl-table-${currentIndex}`}\n className={classNames(\n 'ndl-data-grid-pagination-numeric-button',\n className,\n {\n 'ndl-is-selected': isSelected,\n 'ndl-not-selected': !isSelected,\n 'ndl-not-selected-numeric':\n typeof currentIndex === 'number' && !isSelected,\n },\n )}\n onClick={(e) => typeof currentIndex === 'number' && onClick && onClick(e)}\n tabIndex={typeof currentIndex === 'number' ? 0 : -1}\n {...restProps}\n {...htmlAttributes}\n >\n {children || currentIndex}\n </button>\n );\n};\n\nconst PaginationNumericButtons = () => {\n const { tableProps, components } = useDataGridContext();\n const { getState, setPageIndex, getPageCount } = tableProps;\n const {\n pagination: { pageIndex },\n } = getState();\n\n return (\n <>\n {userFriendlyPagination(pageIndex + 1, getPageCount()).map(\n (option, idx) =>\n components.PaginationNumericButton && (\n <components.PaginationNumericButton\n /** Use index to avoid situations where two \"...\" values will appear, causing a key conflict */\n key={`${option}-${idx}`}\n onClick={() =>\n typeof option === 'number' && setPageIndex(option - 1)\n }\n currentIndex={option}\n isSelected={option === pageIndex + 1}\n />\n ),\n )}\n </>\n );\n};\n\ntype PaginationProps = {\n children?: React.ReactNode;\n};\n\nconst Pagination = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'nav', PaginationProps>) => {\n const { tableProps, components, isMediumNavigation } = useDataGridContext();\n\n const { getCanPreviousPage, getCanNextPage, previousPage, nextPage } =\n tableProps;\n\n return (\n <nav\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-nav', className)}\n aria-label=\"Pagination\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {/* Previous page */}\n {getCanPreviousPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"previous\"\n onClick={previousPage}\n />\n )\n : null}\n {/* Pages - hidden on narrow containers */}\n {!isMediumNavigation && components.PaginationNumericButtons && (\n <components.PaginationNumericButtons />\n )}\n {/* Next page */}\n {getCanNextPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"next\"\n onClick={nextPage}\n />\n )\n : null}\n </>\n )}\n </nav>\n );\n};\n\ntype NavigationProps = {\n children?: React.ReactNode;\n};\n\nconst Navigation = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NavigationProps>) => {\n const {\n tableProps,\n components,\n isSkeletonLoading,\n skeletonProps,\n isSmallNavigation,\n } = useDataGridContext();\n\n const { getPageCount } = tableProps;\n\n return (\n <div\n ref={ref}\n style={{\n ...style,\n ...(isSmallNavigation && { justifyContent: 'end' }),\n }}\n className={classNames('ndl-data-grid-navigation', className)}\n {...restProps}\n {...htmlAttributes}\n >\n <>\n {children || (\n <>\n {components.TableResults && <components.TableResults />}\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n height=\"36px\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <div className=\"ndl-data-grid-navigation-right-items\">\n {getPageCount() > 1 && components.Pagination && (\n <components.Pagination />\n )}\n {/* Page size selector */}\n {components.RowsPerPage && <components.RowsPerPage />}\n </div>\n </Skeleton>\n </>\n )}\n </>\n </div>\n );\n};\n\ntype LoadingPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst LoadingPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', LoadingPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <div role=\"cell\" className=\"ndl-data-grid-placeholder\">\n <div className=\"ndl-data-grid-loading-placeholder\">\n <LoadingSpinner />\n <h6>Loading data</h6>\n </div>\n </div>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst NoDataPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <NoDataPlaceholderContentWrapper>\n <NoDataIcon />\n <Typography variant=\"subheading-small\">No data available</Typography>\n </NoDataPlaceholderContentWrapper>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderContentWrapperProps = {\n children?: React.ReactNode;\n};\n\nexport const NoDataPlaceholderContentWrapper = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderContentWrapperProps>) => {\n return (\n <div\n role=\"cell\"\n className={classNames('ndl-data-grid-placeholder', className)}\n ref={ref}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nexport interface InlineEditCellProps<T extends RowData> {\n cell: CellContext<T, unknown>;\n value: string;\n ariaLabel: string;\n}\n\nconst InlineEditCell = <T extends RowData>({\n cell,\n value,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'input', InlineEditCellProps<T>>) => {\n const [inputValue, setInputValue] = useState(value);\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n const { dataGridNav } = useDataGridContext<T>();\n\n if (!cell.column.columnDef.meta?.isInlineEditCell) {\n return null;\n }\n\n return (\n <input\n ref={ref}\n style={style}\n className={className}\n onChange={(e) => setInputValue(e.target.value)}\n value={inputValue}\n onFocus={() => {\n dataGridNav.disable();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n cell?.column.columnDef.meta?.isInlineEditCell?.onEditChange(\n inputValue,\n cell,\n );\n e.currentTarget.parentElement?.focus();\n return;\n } else if (e.key === 'Escape') {\n e.currentTarget.parentElement?.focus();\n return;\n }\n }}\n onBlur={() => {\n setInputValue(value);\n dataGridNav.enable();\n }}\n aria-label={ariaLabel}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype DropDownCellProps<T extends RowData> = {\n cell: CellContext<T, unknown>;\n options: {\n value: string;\n label: string;\n }[];\n /**\n * The target element to portal the menu of the select component to, e.g. the modal root if the data grid is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n /** Aria label of the select component. Required for accessibility. */\n ariaLabel: string;\n /** Whether the select component is disabled */\n isDisabled?: boolean;\n /** Error message. If it exists the select will be in error state. */\n errorText?: string | React.ReactNode;\n /** Help text of the select component. */\n helpText?: string | React.ReactNode;\n /**\n * Override the underlying react-select components (e.g. `Option`, `SingleValue`,\n * `MultiValue`). Merged over the Needle defaults, so only the components you\n * pass are replaced.\n */\n components?: SelectComponentsConfig<\n DropDownCellOption,\n boolean,\n GroupBase<DropDownCellOption>\n >;\n};\n\ntype DropDownCellOption = {\n value: string;\n label: string;\n};\n\nconst DropDownCell = <T extends RowData>({\n cell,\n options,\n portalTarget: portalTargetProp,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref: forwardRef,\n isDisabled,\n errorText,\n helpText,\n components,\n ...restProps\n}: CommonProps<'div', DropDownCellProps<T>>) => {\n const { dataGridNav, portalTarget } = useDataGridContext<T>();\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, forwardRef]);\n\n const dropDownMeta = cell.column.columnDef.meta?.isDropDownCell;\n if (!dropDownMeta) {\n return null;\n }\n const isMulti = dropDownMeta.isMulti ?? false;\n\n const cellValue = cell.getValue();\n const selectedValues = (\n Array.isArray(cellValue) ? cellValue : [cellValue]\n ).map((value) => value?.toString());\n\n const defaultValue = isMulti\n ? options.filter((option) => selectedValues.includes(option.value))\n : options.find((option) => option.value === cellValue?.toString());\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <Select<DropDownCellOption, boolean>\n ref={mergedRef}\n className={className}\n isFluid={true}\n isClean={true}\n style={{ ...style, height: '100%', width: '100%' }}\n type=\"select\"\n size=\"medium\"\n ariaLabel={ariaLabel}\n isDisabled={isDisabled}\n errorText={errorText}\n helpText={helpText}\n selectProps={{\n components: components,\n defaultValue,\n isMulti,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (selected) => {\n const selectedOptions = Array.isArray(selected)\n ? (selected as DropDownCellOption[])\n : selected\n ? [selected as DropDownCellOption]\n : [];\n const values = selectedOptions.map((option) => option.value);\n // `TValue` is not known inside the component; cast once at this boundary\n // to invoke onChange with the resolved single/multi value.\n const handleChange = dropDownMeta.onChange as (\n newValue: string | string[] | undefined,\n cellArg: typeof cell,\n ) => void;\n handleChange(isMulti ? values : values[0], cell);\n dataGridNav.enable();\n if (ref?.current) {\n dataGridNav.focusParentCell(ref.current);\n }\n },\n onMenuOpen: () => {\n dataGridNav.disable();\n },\n options: options,\n styles: {\n container: () => ({ height: '100%', width: '100%' }),\n control: () => ({\n borderRadius: 0,\n height: '100%',\n paddingLeft: '16px !important',\n paddingRight: '16px !important',\n }),\n },\n }}\n htmlAttributes={htmlAttributes}\n {...restProps}\n />\n );\n};\n\nconst NoDataIcon = ({\n className,\n ...restProps\n}: React.ComponentPropsWithoutRef<typeof DataGridCrossIcon>) => {\n const classes = classNames('n-size-token-64', className);\n return <DataGridCrossIcon className={classes} {...restProps} />;\n};\n\nexport {\n ResizingBar,\n Header,\n Body,\n BodyCell,\n BodyRow,\n InlineEditCell,\n DropDownCell,\n ActionCell,\n HeaderCell,\n HeaderTitle,\n Navigation,\n TableResults,\n RowsPerPage,\n Pagination,\n PaginationNumericButtons,\n PaginationArrowButton,\n PaginationNumericButton,\n NoDataPlaceholder,\n NoDataIcon,\n LoadingPlaceholder,\n Scrollable,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Components.js","sourceRoot":"","sources":["../../../src/data-grid/Components.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8CAAkD;AAClD,uDAQ+B;AAC/B,4DAAoC;AAEpC,iCAOe;AAOf,4DAAuD;AACvD,4FAAwE;AACxE,wGAAqG;AACrG,oGAAiG;AACjG,gGAA6F;AAC7F,4FAAyF;AACzF,gGAA6F;AAC7F,kGAA+F;AAC/F,8GAA2G;AAC3G,wDAAoD;AACpD,kCAA+B;AAC/B,sCAAmC;AACnC,0CAAuC;AACvC,8CAA2C;AAC3C,2DAAyD;AAEzD,uCAImB;AACnB,+CAA2D;AAE3D,sEAAsE;AACtE,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACjB,CAAC;AAOX,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAsB,EAAE;IACpE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrD,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC;SACvD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,KAAK,EAAE,GAAG,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,8DAA8D;AACvD,MAAM,oBAAoB,GAE7B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACb,GAAG,EAAE;QACH,IAAI,EAAE,uBAAC,+CAAsB,KAAG;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,KAAK,EAAE,gBAAgB;KACxB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,uBAAC,uDAA0B,KAAG;QACpC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QACzC,KAAK,EAAE,cAAc;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,uBAAC,mDAAwB,KAAG;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAC9C,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAC,CAAC;AAlBU,QAAA,oBAAoB,wBAkB9B;AAMH,MAAM,WAAW,GAAG,CAAoB,EAOK,EAAE,EAAE;QAPT,EACtC,MAAM,EACN,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cAN0B,yDAOvC,CADa;IAEZ,MAAM,EAAE,2BAA2B,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAEhE,MAAM,aAAa,GAAG,CAAC,KAA6C,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAA,sBAAY,EAAC,yBAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACtC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAA,sBAAY,EAAC,yBAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,iDACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAA,oBAAU,EAAC,uBAAuB,EAAE,SAAS,EAAE;YACxD,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;SAC3D,CAAC,EACF,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACtC,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,EACvC,SAAS,EAAE,aAAa,gBACb,cAAc,EACzB,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC1C,SAAS,EACT,cAAc,EAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAuxCA,kCAAW;AAjxCb,MAAM,UAAU,GAAG,CAAC,EASnB,EAAE,EAAE;QATe,EAClB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,KAAK,EACL,cAAc,OAIf,EAHI,SAAS,cANM,2DAOnB,CADa;IAIZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,0BAA0B,EAAE,SAAS,CAAC,IACxD,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAgxCA,gCAAU;AA1wCZ,MAAM,MAAM,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACd,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE6B,EAD7B,SAAS,cANE,2DAOf,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACxD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAEjD,OAAO,CACL,8CACE,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,EAAE,SAAS,EAAE;YACtD,2BAA2B,EACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC,gBAAgB;SAC/C,CAAC,EACF,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,IACJ,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,2DACG,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACtC,gCAA0B,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,KAAK,YAC9D,WAAW,CAAC,OAAO,CAAC,GAAG,CACtB,CAAC,MAAM,EAAE,EAAE,CACT,UAAU,CAAC,UAAU,IAAI,CACvB,uBAAC,UAAU,CAAC,UAAU,IAAiB,IAAI,EAAE,MAAM,IAAvB,MAAM,CAAC,EAAE,CAAkB,CACxD,CACJ,IANO,WAAW,CAAC,EAAE,CAOlB,CACP,CAAC,GACD,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAgtCA,wBAAM;AAzsCD,MAAM,YAAY,GAAG,CAAyC,EAStB,EAAE,EAAE;QATkB,EACnE,MAAM,EACN,OAAO,EACP,EAAE,EACF,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE0C,EAD1C,SAAS,cARuD,0EASpE,CADa;IAEZ,MAAM,EAAE,OAAO,KAAoB,MAAM,EAArB,UAAU,UAAK,MAAM,EAAnC,WAA0B,CAAS,CAAC;IAE1C,MAAM,kBAAkB,GAAG,IAAA,mBAAW;IACpC,8DAA8D;IAC9D,CAAC,KAAU,EAAE,EAAE;QACb,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YAC1C,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;IACd,CAAC,EACD,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACnC,CAAC;IAEF,OAAO,CACL,uBAAC,WAAI,CAAC,IAAI,kBACR,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,IACJ,UAAU,EACV,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,YAAY,gBAoCvB;AAUF,MAAM,UAAU,GAAG,CAAoB,EACrC,IAAI,EACJ,yBAAyB,EACzB,cAAc,GACK,EAAE,EAAE;;IACvB,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,GACnD,IAAA,sCAAkB,GAAK,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE1D,IACE,CAAC,IAAI;QACL,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;QAC3B,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,0CAAE,IAAI,0CAAE,YAAY,CAAA,KAAK,QAAQ,EAC7D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;IAE1E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,6DACE,uBAAC,mCAAe,kBACd,EAAE,EAAC,QAAQ,EACX,IAAI,EAAC,QAAQ,EACb,WAAW,EAAC,SAAS,EACrB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,aAAa,CAAC,CAAC;oBAC/B,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;gBACnC,CAAC,IACG,yBAAyB,IAC7B,cAAc,kBACZ,QAAQ,EAAE,CAAC,IACR,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,cAAc,aAG7C,CAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,QAAQ,KAAI,CACtC,uBAAC,6DAA6B,KAAG,CAClC,IACe,EAClB,uBAAC,WAAI,kBACH,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,KAAK,CAAC,CAAC;oBACtB,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,IACG,cAAc,IAClB,YAAY,EAAE,YAAY,YAEzB,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,KAAI,CAC3B,2DACG,OAAO,CAAC,GAAG,CACV,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,UAAU,CAAC,YAAY,IAAI,CACzB,uBAAC,UAAU,CAAC,YAAY,IAEtB,MAAM,kCACD,MAAM,KACT,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;;gCACjB,MAAA,MAAM,CAAC,OAAO,uDAAG,KAAK,EAAE,IAAI,CAAC,CAAC;4BAChC,CAAC,KAEH,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAPjC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,EAAE,CAQxC,CACH,CACJ,GACA,CACJ,IACI,IACN,CACJ,CAAC;AACJ,CAAC,CAAC;AAmlCA,gCAAU;AA5kCL,MAAM,cAAc,GAAG,CAAoB,EAQL,EAAE,EAAE;;QARC,EAChD,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cAPoC,mEAQjD,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACzC,MAAM,EAAE,wBAAwB,GAAG,IAAI,EAAE,OAAO,EAAE,GAChD,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,aAAa,KAAI,EAAE,CAAC;IAElD,MAAM,cAAc,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtC,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,GAAG;oBAC9B,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,IAAI;iBAChC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,OAAO;oBAClC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,IAAI;iBAChC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO;oBACL,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,OAAO;oBAClC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,GAAG;iBAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QACD,eAAe;QACf,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAmB;QACjC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;KACnB,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,8CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,oBAAU,EAAC,yBAAyB,EAAE,SAAS,CAAC,EAC3D,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wBAAC,gBAAQ,eACP,uBAAC,mCAAe,IACd,IAAI,EAAC,OAAO,EACZ,WAAW,EAAC,SAAS,EACrB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;wBACZ,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;oBACnC,CAAC,EACD,cAAc,EAAE;wBACd,QAAQ,EAAE,CAAC;qBACZ,YAED,uBAAC,2CAAoB,KAAG,GACR,EAClB,uBAAC,WAAI,IACH,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACtC,YAAY,EAAE,YAAY,YAEzB,UAAU,CAAC,GAAG,CACb,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,UAAU,CAAC,YAAY,IAAI,CACzB,uBAAC,UAAU,CAAC,YAAY,IAEtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAFjC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,EAAE,CAGxC,CACH,CACJ,GACI,IACE,CACZ,IACG,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAlGW,QAAA,cAAc,kBAkGzB;AAOF,MAAM,UAAU,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EACrC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEoC,EADpC,SAAS,cAPyB,mEAQtC,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,GAC5D,IAAA,sCAAkB,GAAK,CAAC;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAEzC,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,MAAM,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACxB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,KAAK;gBACR,OAAO,uBAAC,+CAAsB,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,uBAAC,mDAAwB,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAAC;YAClE;gBACE,OAAO,CACL,uBAAC,uDAA0B,IAAC,SAAS,EAAC,yCAAyC,GAAG,CACnF,CAAC;QACN,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACnC,OAAO,OAAO;YACZ,CAAC,CAAC,uCAAuC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACzD,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,eAAO,EAC5B,GAAG,EAAE,WAAC,OAAA,OAAO,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,YAAY,CAAA,KAAK,QAAQ,CAAA,EAAA,EAClE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAC7B,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAC5B,iCAAK,SAAS,EAAC,iBAAiB,aAC7B,IAAI,CAAC,aAAa;gBACjB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAA,wBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAC9D,OAAO,IAAI,IAAI,IACZ,CACP,CAAC;IAEF,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,2BAA2B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAExE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,EAAE;YACnD,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACxD,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACtD,gCAAgC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;YACtE,iCAAiC,EAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;YACvC,0BAA0B,EAAE,cAAc;YAC1C,oBAAoB,EAAE,2BAA2B;SAClD,CAAC,eACS,YAAY,EACvB,KAAK,kCACA,KAAK,KACR,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;gBACrC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI;gBACtC,CAAC,CAAC,MAAM,EACV,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAEzC,CAAC,2BAA2B;QAC9B,CAAC,CAAC;YACE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IACE,WAAW;oBACX,KAAK,CAAC,MAAM;oBACZ,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC,EACzD,CAAC;oBACD,MAAM,SAAS,GACb,KAAK,CAAC,GAAG,KAAK,WAAW;wBACvB,CAAC,CAAC,yBAAe,CAAC,IAAI;wBACtB,CAAC,CAAC,yBAAe,CAAC,KAAK,CAAC;oBAC5B,IAAA,sBAAY,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,OAAO;gBACT,CAAC;YACH,CAAC;SACF;QACH,CAAC,CAAC,EAAE,CAAC,EACH,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DACE,uBAAC,GAAG,IACF,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE;wBACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBACxC,sBACiB,eAAe,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EACrD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAEhC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CACxB,uBAAC,UAAU,CAAC,WAAW,IAAC,IAAI,EAAE,IAAI,YAChC,uBAAC,eAAe,KAAG,GACI,CAC1B,CAAC,CAAC,CAAC,CACF,uBAAC,eAAe,KAAG,CACpB,GACG,EAEL,UAAU,CAAC,cAAc,IAAI,CAC5B,uBAAC,UAAU,CAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAC1C,EAEA,WAAW;oBACV,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC1B,UAAU,CAAC,WAAW,IAAI,uBAAC,UAAU,CAAC,WAAW,IAAC,MAAM,EAAE,IAAI,GAAI,IACnE,CACJ,KAtEI,IAAI,CAAC,EAAE,CAuER,CACP,CAAC;AACJ,CAAC,CAAC;AA01BA,gCAAU;AAn1BZ,MAAM,WAAW,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EACtC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEqC,EADrC,SAAS,cAP0B,mEAQvC,CADa;IAEZ,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AA4zBA,kCAAW;AAtzBb,MAAM,IAAI,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE2B,EAD3B,SAAS,cANA,2DAOb,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACnE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IAEnC,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,EAAE,SAAS,CAAC,EACvD,IAAI,EAAC,UAAU,eACJ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IACnC,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DACG,SAAS,IAAI,UAAU,CAAC,kBAAkB,IAAI,CAC7C,uBAAC,UAAU,CAAC,kBAAkB,KAAG,CAClC,EAEA,CAAC,SAAS;oBACT,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBAC/B,UAAU,CAAC,iBAAiB,IAAI,uBAAC,UAAU,CAAC,iBAAiB,KAAG,EAEjE,CAAC,SAAS;oBACT,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CACpB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACX,UAAU,CAAC,OAAO,IAAI,CACpB,uBAAC,UAAU,CAAC,OAAO,IAA0B,GAAG,EAAE,GAAG,IAA5B,aAAa,GAAG,EAAE,CAAc,CAC1D,CACJ,IACF,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAqwBA,oBAAI;AA9vBN,MAAM,QAAQ,GAAG,CAAoB,EAQE,EAAE,EAAE;;QARN,EACnC,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEkC,EADlC,SAAS,cAPuB,mEAQpC,CADa;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,YAAY,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,OAAO,CAC9B,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,CAC7C,CAAC;IACF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,cAAc,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,cAAc,IAAI,cAAc,CAAC;IACtD,MAAM,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,aAAa,EAAE,GACrE,IAAA,sCAAkB,GAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EAER,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,EAAE;YACnD,2BAA2B,EAAE,YAAY;YACzC,6BAA6B,EAAE,cAAc;YAC7C,2BAA2B,EAAE,gBAAgB;YAC7C,2BAA2B,EAAE,UAAU;YACvC,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACtD,gCAAgC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;YACtE,iCAAiC,EAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;YACvC,0BAA0B,EAAE,cAAc;YAC1C,oBAAoB,EAAE,2BAA2B;SAClD,CAAC,EACF,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACrD,KAAK,gDACA,SAAS,GACT,KAAK,KACR,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAEhD,SAAS,EACT,cAAc,cAElB,uBAAC,mBAAQ,kBACP,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,EACnB,KAAK,EAAC,MAAM,IACR,aAAa,IACjB,SAAS,EAAE,iBAAiB,IAAI,CAAC,cAAc,YAE9C,QAAQ,IAAI,IAAA,wBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAC7D,KA/BN,IAAI,CAAC,EAAE,CAgCR,CACP,CAAC;AACJ,CAAC,CAAC;AAssBA,4BAAQ;AA/rBV,MAAM,OAAO,GAAG,CAAoB,EAQE,EAAE,EAAE;QARN,EAClC,GAAG,EACH,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cAPsB,kEAQnC,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAE/C,OAAO,CACL,8CAEE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,SAAS,CAAC,EACpD,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,2DACG,GAAG;iBACD,eAAe,EAAE;iBACjB,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,UAAU,CAAC,QAAQ,IAAI,CACrB,uBAAC,UAAU,CAAC,QAAQ,IAAe,IAAI,EAAE,IAAI,IAAnB,IAAI,CAAC,EAAE,CAAgB,CAClD,CACJ,GACF,CACJ,KAnBI,GAAG,CAAC,EAAE,CAoBP,CACP,CAAC;AACJ,CAAC,CAAC;AA6pBA,0BAAO;AA7oBT,MAAM,YAAY,GAAG,CAAC,EASkB,EAAE,EAAE;QATtB,EACpB,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EACH,YAAY,GAAG,SAAS,OAEc,EADnC,SAAS,cARQ,+FASrB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,GACvE,IAAA,sCAAkB,GAAE,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;IAC9D,MAAM,EACJ,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GACpC,GAAG,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAA,eAAO,EACrC,GAAG,EAAE,CACH,gBAAgB,IAAI;QAClB,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,QAAQ;QAC9B,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ;QACtC,SAAS,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM;KACzC,EACH,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,CAAC,CAC/D,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uBAAC,mBAAQ,kBACP,EAAE,EAAC,MAAM,EACT,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,IACf,aAAa,IACjB,SAAS,EAAE,iBAAiB,YAE5B,+CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,uBAAuB,EAAE,SAAS,CAAC,IACrD,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wDACU,GAAG,EACX,iCAAM,SAAS,EAAC,aAAa,YAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GACnD,EAAC,GAAG,SACR,iCAAM,SAAS,EAAC,aAAa,YAAE,SAAS,GAAQ,OAAE,YAAY,IAC5D,CACR,IACI,IACE,CACZ,CAAC;AACJ,CAAC,CAAC;AAylBA,oCAAY;AA7kBd,MAAM,WAAW,GAAG,CAAC,EAQkB,EAAE,EAAE;QARtB,EACnB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEkC,EADlC,SAAS,cAPO,2EAQpB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE1D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAE7C,MAAM,EACJ,UAAU,EAAE,EAAE,QAAQ,EAAE,GACzB,GAAG,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,IAAI,CACpD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CACtC,CAAC;IAEF,MAAM,gBAAgB,GACpB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEnE,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,6BAA6B,EAAE,SAAS,CAAC,IAC3D,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,qEAEE,uBAAC,eAAM,IACL,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kBAAkB,EAC5B,WAAW,EAAE;wBACX,YAAY,EAAE,uBAAuB;wBACrC,YAAY,EAAE,KAAK;wBACnB,gBAAgB,EAAE,gBAAgB;wBAClC,YAAY,EAAE,OAAO;wBACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;4BACnB,IAAI,MAAM,EAAE,CAAC;gCACX,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC5B,CAAC;wBACH,CAAC;wBACD,OAAO,EAAE,iBAAiB;wBAC1B,MAAM,EAAE;4BACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gCAChB,KAAK,EAAE,MAAM;6BACd,CAAC;yBACH;qBACF,GACD,IACD,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAghBA,kCAAW;AAxgBb,MAAM,qBAAqB,GAAG,CAAC,EAQqB,EAAE,EAAE;QARzB,EAC7B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE+C,EAD/C,SAAS,cAPiB,qEAQ9B,CADa;IAEZ,MAAM,cAAc,GAClB,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,+CAAsB,CAAC,CAAC,CAAC,iDAAuB,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;IACxE,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;IAE9E,OAAO,CACL,uBAAC,mCAAe,kBACd,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,SAAS,EACtB,cAAc,EAAE,cAAc,IAC1B,SAAS,cAEZ,QAAQ,IAAI,uBAAC,cAAc,KAAG,IACf,CACnB,CAAC;AACJ,CAAC,CAAC;AAifA,sDAAqB;AAxevB,MAAM,uBAAuB,GAAG,CAAC,EAUqB,EAAE,EAAE;QAVzB,EAC/B,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,EACP,GAAG,OAEiD,EADjD,SAAS,cATmB,oGAUhC,CADa;IAEZ,OAAO,CACL,iDACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,QAAQ,iBACA,aAAa,YAAY,EAAE,EACxC,SAAS,EAAE,IAAA,oBAAU,EACnB,yCAAyC,EACzC,SAAS,EACT;YACE,iBAAiB,EAAE,UAAU;YAC7B,kBAAkB,EAAE,CAAC,UAAU;YAC/B,0BAA0B,EACxB,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,UAAU;SAClD,CACF,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,OAAO,YAAY,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAE/D,QAAQ,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC/C,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,YAAY,IAClB,CACV,CAAC;AACJ,CAAC,CAAC;AAocA,0DAAuB;AAlczB,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IACxD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EACJ,UAAU,EAAE,EAAE,SAAS,EAAE,GAC1B,GAAG,QAAQ,EAAE,CAAC;IAEf,OAAO,CACL,2DACG,IAAA,gCAAsB,EAAC,SAAS,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,CACxD,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CACd,UAAU,CAAC,uBAAuB,IAAI,CACpC,uBAAC,UAAU,CAAC,uBAAuB;QACjC,+FAA+F;YAE/F,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAExD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,KAAK,SAAS,GAAG,CAAC,IAL/B,GAAG,MAAM,IAAI,GAAG,EAAE,CAMvB,CACH,CACJ,GACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAuaA,4DAAwB;AAja1B,MAAM,UAAU,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAClB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cANM,2DAOnB,CADa;IAEZ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAE5E,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,GAClE,UAAU,CAAC;IAEb,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,mBAAmB,EAAE,SAAS,CAAC,gBAC1C,YAAY,IACnB,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,6DAEG,kBAAkB,EAAE;oBACnB,CAAC,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAClC,uBAAC,UAAU,CAAC,qBAAqB,IAC/B,MAAM,EAAC,UAAU,EACjB,OAAO,EAAE,YAAY,GACrB,CACH;oBACH,CAAC,CAAC,IAAI,EAEP,CAAC,kBAAkB,IAAI,UAAU,CAAC,wBAAwB,IAAI,CAC7D,uBAAC,UAAU,CAAC,wBAAwB,KAAG,CACxC,EAEA,cAAc,EAAE;oBACf,CAAC,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAClC,uBAAC,UAAU,CAAC,qBAAqB,IAC/B,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,QAAQ,GACjB,CACH;oBACH,CAAC,CAAC,IAAI,IACP,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AA8WA,gCAAU;AAxWZ,MAAM,UAAU,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAClB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEiC,EADjC,SAAS,cANM,2DAOnB,CADa;IAEZ,MAAM,EACJ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAClB,GAAG,IAAA,sCAAkB,GAAE,CAAC;IAEzB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IAEpC,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,kCACA,KAAK,GACL,CAAC,iBAAiB,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,GAErD,SAAS,EAAE,IAAA,oBAAU,EAAC,0BAA0B,EAAE,SAAS,CAAC,IACxD,SAAS,EACT,cAAc,cAElB,2DACG,QAAQ,IAAI,CACX,6DACG,UAAU,CAAC,YAAY,IAAI,uBAAC,UAAU,CAAC,YAAY,KAAG,EACvD,uBAAC,mBAAQ,kBACP,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,aAAa,EACnB,MAAM,EAAC,MAAM,IACT,aAAa,IACjB,SAAS,EAAE,iBAAiB,YAE5B,iCAAK,SAAS,EAAC,sCAAsC,aAClD,YAAY,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,IAAI,CAC9C,uBAAC,UAAU,CAAC,UAAU,KAAG,CAC1B,EAEA,UAAU,CAAC,WAAW,IAAI,uBAAC,UAAU,CAAC,WAAW,KAAG,IACjD,IACG,IACV,CACJ,GACA,IACC,CACP,CAAC;AACJ,CAAC,CAAC;AAgTA,gCAAU;AA1SZ,MAAM,kBAAkB,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EAC1B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEyC,EADzC,SAAS,cANc,2DAO3B,CADa;IAEZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,+BAA+B,EAAE,SAAS,CAAC,EACjE,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,gCAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,2BAA2B,YACpD,iCAAK,SAAS,EAAC,mCAAmC,aAChD,uBAAC,gCAAc,KAAG,EAClB,0DAAqB,IACjB,GACF,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAwRA,gDAAkB;AAlRpB,MAAM,iBAAiB,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEwC,EADxC,SAAS,cANa,2DAO1B,CADa;IAEZ,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,oBAAU,EAAC,+BAA+B,EAAE,SAAS,CAAC,EACjE,IAAI,EAAC,KAAK,IACN,SAAS,EACT,cAAc,cAEjB,QAAQ,IAAI,CACX,wBAAC,uCAA+B,eAC9B,uBAAC,UAAU,KAAG,EACd,uBAAC,uBAAU,IAAC,OAAO,EAAC,kBAAkB,kCAA+B,IACrC,CACnC,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAuPA,8CAAiB;AAjPZ,MAAM,+BAA+B,GAAG,CAAC,EAOW,EAAE,EAAE;QAPf,EAC9C,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAEsD,EADtD,SAAS,cANkC,2DAO/C,CADa;IAEZ,OAAO,CACL,8CACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,IAAA,oBAAU,EAAC,2BAA2B,EAAE,SAAS,CAAC,EAC7D,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,+BAA+B,mCAoB1C;AAQF,MAAM,cAAc,GAAG,CAAoB,EASI,EAAE,EAAE;;QATR,EACzC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE0C,EAD1C,SAAS,cAR6B,6EAS1C,CADa;IAEZ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAEhD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,CAAA,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,gDACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,GAAG,EAAE;YACZ,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;;YACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC1B,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,gBAAgB,0CAAE,YAAY,CACzD,UAAU,EACV,IAAI,CACL,CAAC;gBACF,MAAA,KAAK,CAAC,aAAa,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;iBAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAA,KAAK,CAAC,aAAa,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;QACH,CAAC,EACD,MAAM,EAAE,GAAG,EAAE;YACX,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,gBACW,SAAS,IACjB,SAAS,EACT,cAAc,EAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAmJA,wCAAc;AA7GhB,MAAM,YAAY,GAAG,CAAoB,EAcE,EAAE,EAAE;;QAdN,EACvC,IAAI,EACJ,OAAO,EACP,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,EAAE,UAAU,EACf,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,OAE+B,EADtC,SAAS,cAb2B,oJAcxC,CADa;IAEZ,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAkB,GAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,cAAc,CAAC;IAChE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAA,YAAY,CAAC,OAAO,mCAAI,KAAK,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClC,MAAM,cAAc,GAAG,CACrB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACnD,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAC;IAEpC,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,MAAK,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE,CAAA,CAAC,CAAC;IAErE,MAAM,gBAAgB,GACpB,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEnE,OAAO,CACL,uBAAC,eAAM,kBACL,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,KAAK,kCAAO,KAAK,KAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAChD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE;YACX,UAAU,EAAE,UAAU;YACtB,YAAY;YACZ,OAAO;YACP,gBAAgB,EAAE,gBAAgB;YAClC,YAAY,EAAE,OAAO;YACrB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC7C,CAAC,CAAE,QAAiC;oBACpC,CAAC,CAAC,QAAQ;wBACR,CAAC,CAAC,CAAC,QAA8B,CAAC;wBAClC,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,yEAAyE;gBACzE,2DAA2D;gBAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,QAGzB,CAAC;gBACV,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACjD,WAAW,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;oBACjB,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACf,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE;gBACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACpD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,iBAAiB;oBAC9B,YAAY,EAAE,iBAAiB;iBAChC,CAAC;aACH;SACF,EACD,cAAc,EAAE,cAAc,IAC1B,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAiBA,oCAAY;AAfd,MAAM,UAAU,GAAG,CAAC,EAGuC,EAAE,EAAE;QAH3C,EAClB,SAAS,OAEgD,EADtD,SAAS,cAFM,aAGnB,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,uBAAC,uBAAiB,kBAAC,SAAS,EAAE,OAAO,IAAM,SAAS,EAAI,CAAC;AAClE,CAAC,CAAC;AAqBA,gCAAU","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { useMergeRefs } from '@floating-ui/react';\nimport {\n type Cell,\n type CellContext,\n flexRender,\n type Header as HeaderType,\n type Row,\n type RowData,\n type SortDirection,\n} from '@tanstack/react-table';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { GroupBase, SelectComponentsConfig } from 'react-select';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { CleanIconButton } from '../clean-icon-button';\nimport DataGridCrossIcon from '../icons/generated/custom/DataGridCross';\nimport { Bars3CenterLeftIconOutline } from '../icons/generated/heroIcons/Bars3CenterLeftIconOutline';\nimport { BarsArrowDownIconOutline } from '../icons/generated/heroIcons/BarsArrowDownIconOutline';\nimport { BarsArrowUpIconOutline } from '../icons/generated/heroIcons/BarsArrowUpIconOutline';\nimport { ChevronDownIconSolid } from '../icons/generated/heroIcons/ChevronDownIconSolid';\nimport { ChevronLeftIconOutline } from '../icons/generated/heroIcons/ChevronLeftIconOutline';\nimport { ChevronRightIconOutline } from '../icons/generated/heroIcons/ChevronRightIconOutline';\nimport { EllipsisHorizontalIconOutline } from '../icons/generated/heroIcons/EllipsisHorizontalIconOutline';\nimport { LoadingSpinner } from '../loading-spinner';\nimport { Menu } from '../menu';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Typography } from '../typography';\nimport { useDataGridContext } from './data-grid-context';\nimport { type ColumnAction } from './datagrid-types';\nimport {\n resizeColumn,\n ResizeDirection,\n userFriendlyPagination,\n} from './helpers';\nimport { useDataGridCellStyle } from './style-rules/hooks';\n\n/** Table results per page, with the first option being the default */\nconst TABLE_RESULTS = {\n DEFAULT: 10,\n values: [10, 25, 50, 100],\n} as const;\n\ntype paginationOption = {\n value: number;\n label: string;\n};\n\nconst getPaginationOptions = (pageSize: number): paginationOption[] => {\n return [...new Set([...TABLE_RESULTS.values, pageSize])]\n .sort((firstSize, secondSize) => firstSize - secondSize)\n .map((option) => ({\n label: `${option}`,\n value: option,\n }));\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DEFAULT_SORT_ACTIONS: (cell: HeaderType<any, unknown>) => {\n [key in SortDirection | 'default']: ColumnAction;\n} = (cell) => ({\n asc: {\n icon: <BarsArrowUpIconOutline />,\n onClick: () => cell.column.toggleSorting(false),\n title: 'Sort ascending',\n },\n default: {\n icon: <Bars3CenterLeftIconOutline />,\n onClick: () => cell.column.clearSorting(),\n title: 'Default sort',\n },\n desc: {\n icon: <BarsArrowDownIconOutline />,\n onClick: () => cell.column.toggleSorting(true),\n title: 'Sort descending',\n },\n});\n\ntype ResizingBarProps<T extends RowData> = {\n header: HeaderType<T, unknown>;\n};\n\nconst ResizingBar = <T extends RowData>({\n header,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', ResizingBarProps<T>>) => {\n const { isKeyboardNavigationEnabled } = useDataGridContext<T>();\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.LEFT, header);\n } else if (event.key === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n resizeColumn(ResizeDirection.RIGHT, header);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('ndl-data-grid-resizer', className, {\n 'ndl-data-grid-is-resizing': header.column.getIsResizing(),\n })}\n style={style}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onKeyDown={handleKeyDown}\n aria-label=\"Resizing bar\"\n tabIndex={isKeyboardNavigationEnabled ? -1 : 0}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype ScrollableProps = {\n children?: React.ReactNode;\n};\n\nconst Scrollable = ({\n children,\n ref,\n className,\n style,\n htmlAttributes,\n ...restProps\n}: CommonProps<'div', ScrollableProps> & {\n ref: React.RefObject<HTMLDivElement | null>;\n}) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-scrollable', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype HeaderProps = {\n children?: React.ReactNode;\n};\n\nconst Header = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderProps>) => {\n const { tableProps, components } = useDataGridContext();\n const { getHeaderGroups, getState } = tableProps;\n\n return (\n <div\n role=\"rowgroup\"\n className={classNames('ndl-data-grid-thead', className, {\n 'ndl-data-grid-is-resizing':\n getState().columnSizingInfo.isResizingColumn,\n })}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {getHeaderGroups().map((headerGroup) => (\n <div key={headerGroup.id} className=\"ndl-data-grid-tr\" role=\"row\">\n {headerGroup.headers.map(\n (header) =>\n components.HeaderCell && (\n <components.HeaderCell key={header.id} cell={header} />\n ),\n )}\n </div>\n ))}\n </>\n )}\n </div>\n );\n};\n\ntype ActionButtonProps = {\n action: ColumnAction;\n onClose: () => void;\n};\n\nexport const ActionButton = <T extends React.ElementType = 'button'>({\n action,\n onClose,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, ActionButtonProps>) => {\n const { onClick, ...restAction } = action;\n\n const interceptedOnClick = useCallback(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n (event: any) => {\n const providedOnClick = onClick ?? action.onClick;\n if (typeof providedOnClick === 'function') {\n providedOnClick(event);\n }\n onClose?.();\n },\n [action.onClick, onClick, onClose],\n );\n\n return (\n <Menu.Item\n onClick={interceptedOnClick}\n as={as}\n className={className}\n style={style}\n htmlAttributes={htmlAttributes}\n ref={ref}\n {...restAction}\n {...restProps}\n />\n );\n};\n\nexport interface ActionCellProps<T extends RowData> {\n cell?: CellContext<T, unknown>;\n innerCleanIconButtonProps?: Partial<\n React.ComponentPropsWithoutRef<typeof CleanIconButton>\n >;\n innerMenuProps?: Partial<React.ComponentProps<typeof Menu>>;\n}\n\nconst ActionCell = <T extends RowData>({\n cell,\n innerCleanIconButtonProps,\n innerMenuProps,\n}: ActionCellProps<T>) => {\n const { components, isSkeletonLoading, portalTarget } =\n useDataGridContext<T>();\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (\n !cell ||\n !cell.column.columnDef.meta ||\n typeof cell.column.columnDef?.meta?.isActionCell !== 'object'\n ) {\n return null;\n }\n\n const { actions, onOpenChange } = cell.column.columnDef.meta.isActionCell;\n\n if (isSkeletonLoading) {\n return null;\n }\n\n return (\n <>\n <CleanIconButton\n as=\"button\"\n size=\"medium\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n onOpenChange?.(!isActionsOpen);\n setIsActionsOpen(!isActionsOpen);\n }}\n {...innerCleanIconButtonProps}\n htmlAttributes={{\n tabIndex: 0,\n ...innerCleanIconButtonProps?.htmlAttributes,\n }}\n >\n {innerCleanIconButtonProps?.children || (\n <EllipsisHorizontalIconOutline />\n )}\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => {\n onOpenChange?.(false);\n setIsActionsOpen(false);\n }}\n {...innerMenuProps}\n portalTarget={portalTarget}\n >\n {innerMenuProps?.children || (\n <>\n {actions.map(\n (action, index) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${index}`}\n action={{\n ...action,\n onClick: (event) => {\n action.onClick?.(event, cell);\n },\n }}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </>\n )}\n </Menu>\n </>\n );\n};\n\ntype ColumnControlsProps<T extends RowData> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nexport const ColumnControls = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ColumnControlsProps<T>>) => {\n const { components, portalTarget } = useDataGridContext();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n const { hasDefaultSortingActions = true, actions } =\n cell.column.columnDef.meta?.columnActions || {};\n\n const sortingActions = useMemo(() => {\n if (canSort) {\n if (sort !== 'asc' && sort !== 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).asc,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'asc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).desc,\n ];\n }\n if (sort === 'desc') {\n return [\n DEFAULT_SORT_ACTIONS(cell).default,\n DEFAULT_SORT_ACTIONS(cell).asc,\n ];\n }\n }\n // Default case\n return [];\n }, [sort, cell, canSort]);\n\n const newActions: ColumnAction[] = [\n ...(hasDefaultSortingActions ? sortingActions : []),\n ...(actions ?? []),\n ];\n\n const actionsButtonRef = useRef<HTMLButtonElement>(null);\n const [isActionsOpen, setIsActionsOpen] = useState(false);\n\n if (!actions || actions.length === 0) {\n return null;\n }\n\n return newActions.length > 0 ? (\n <div\n ref={ref}\n className={classNames('ndl-header-action-group', className)}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <Fragment>\n <CleanIconButton\n size=\"small\"\n description=\"Actions\"\n ref={actionsButtonRef}\n isActive={isActionsOpen}\n onClick={() => {\n setIsActionsOpen(!isActionsOpen);\n }}\n htmlAttributes={{\n tabIndex: 0,\n }}\n >\n <ChevronDownIconSolid />\n </CleanIconButton>\n <Menu\n isOpen={isActionsOpen}\n anchorRef={actionsButtonRef}\n onClose={() => setIsActionsOpen(false)}\n portalTarget={portalTarget}\n >\n {newActions.map(\n (action, index) =>\n components.ActionButton && (\n <components.ActionButton\n key={`${cell.column.id}-action-${index}`}\n action={action}\n onClose={() => setIsActionsOpen(false)}\n />\n ),\n )}\n </Menu>\n </Fragment>\n )}\n </div>\n ) : null;\n};\n\ntype HeaderCellProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderCellProps<T>>) => {\n const { components, isResizable, isKeyboardNavigationEnabled } =\n useDataGridContext<T>();\n\n const sort = cell.column.getIsSorted();\n const canSort = cell.column.getCanSort();\n\n const ariaSortRole = useMemo(() => {\n switch (sort) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return 'none';\n }\n }, [sort]);\n\n const Icon = useMemo(() => {\n switch (sort) {\n case 'asc':\n return <BarsArrowUpIconOutline className=\"ndl-header-icon\" />;\n case 'desc':\n return <BarsArrowDownIconOutline className=\"ndl-header-icon\" />;\n default:\n return (\n <Bars3CenterLeftIconOutline className=\"ndl-hoverable-indicator ndl-header-icon\" />\n );\n }\n }, [sort]);\n\n const ariaDescription = useMemo(() => {\n return canSort\n ? `Press ENTER or SPACE to sort column ${cell.column.id}`\n : `Column id: ${cell.column.id}`;\n }, [canSort, cell.column.id]);\n\n const isActionColumn = useMemo(\n () => typeof cell.column.columnDef.meta?.isActionCell === 'object',\n [cell.column.columnDef.meta],\n );\n\n const Tag = canSort ? 'button' : 'div';\n\n const InnerHeaderCell = () => (\n <div className=\"ndl-header-cell\">\n {cell.isPlaceholder\n ? null\n : flexRender(cell.column.columnDef.header, cell.getContext())}\n {canSort && Icon}\n </div>\n );\n\n return (\n <div\n ref={ref}\n tabIndex={isKeyboardNavigationEnabled && !isActionColumn ? 0 : undefined}\n key={cell.id}\n role=\"columnheader\"\n className={classNames('ndl-data-grid-th', className, {\n 'ndl-data-grid-is-resizing': cell.column.getIsResizing(),\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n })}\n aria-sort={ariaSortRole}\n style={{\n ...style,\n maxWidth: cell.column.columnDef.maxSize\n ? `${cell.column.columnDef.maxSize}px`\n : 'none',\n width: isActionColumn ? 40 : cell.getSize(),\n }}\n {...(isKeyboardNavigationEnabled\n ? {\n onKeyDown: (event) => {\n if (\n isResizable &&\n event.altKey &&\n (event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n const direction =\n event.key === 'ArrowLeft'\n ? ResizeDirection.LEFT\n : ResizeDirection.RIGHT;\n resizeColumn(direction, cell);\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n },\n }\n : {})}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n <Tag\n className=\"ndl-header-group\"\n style={{\n cursor: canSort ? 'pointer' : 'default',\n }}\n aria-description={ariaDescription}\n onClick={() => canSort && cell.column.toggleSorting()}\n tabIndex={canSort ? 0 : undefined}\n >\n {components.HeaderTitle ? (\n <components.HeaderTitle cell={cell}>\n <InnerHeaderCell />\n </components.HeaderTitle>\n ) : (\n <InnerHeaderCell />\n )}\n </Tag>\n {/* Column actions*/}\n {components.ColumnControls && (\n <components.ColumnControls cell={cell} />\n )}\n {/* Resizer*/}\n {isResizable &&\n cell.column.getCanResize() &&\n components.ResizingBar && <components.ResizingBar header={cell} />}\n </>\n )}\n </div>\n );\n};\n\ntype HeaderTitleProps<T> = {\n cell: HeaderType<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst HeaderTitle = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', HeaderTitleProps<T>>) => {\n const { column, id } = cell;\n const title =\n typeof column.columnDef.header === 'string' ? column.columnDef.header : id;\n return (\n <div\n ref={ref}\n className={className}\n title={title}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\ntype BodyProps = {\n children?: React.ReactNode;\n};\n\nconst Body = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyProps>) => {\n const { tableProps, components, isLoading } = useDataGridContext();\n const { getRowModel } = tableProps;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tbody', className)}\n role=\"rowgroup\"\n aria-busy={isLoading ? 'true' : 'false'}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {isLoading && components.LoadingPlaceholder && (\n <components.LoadingPlaceholder />\n )}\n\n {!isLoading &&\n getRowModel().rows.length === 0 &&\n components.NoDataPlaceholder && <components.NoDataPlaceholder />}\n\n {!isLoading &&\n getRowModel().rows.map(\n (row, idx) =>\n components.BodyRow && (\n <components.BodyRow key={`table-row-${idx}`} row={row} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype BodyCellProps<T extends RowData> = {\n cell: Cell<T, unknown>;\n children?: React.ReactNode;\n};\n\nconst BodyCell = <T extends RowData>({\n cell,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyCellProps<T>>) => {\n const isResizing = cell.column.getIsResizing();\n\n const isActionColumn = Boolean(cell.column.columnDef.meta?.isActionCell);\n const isInlineEditCell = Boolean(\n cell.column.columnDef.meta?.isInlineEditCell,\n );\n const isDropDownCell = Boolean(cell.column.columnDef.meta?.isDropDownCell);\n const isCustomCell = isActionColumn || isDropDownCell;\n const { isKeyboardNavigationEnabled, isSkeletonLoading, skeletonProps } =\n useDataGridContext();\n const ruleStyle = useDataGridCellStyle(cell);\n return (\n <div\n ref={ref}\n key={cell.id}\n className={classNames('ndl-data-grid-td', className, {\n 'ndl-data-grid-custom-cell': isCustomCell,\n 'ndl-data-grid-dropdown-cell': isDropDownCell,\n 'ndl-data-grid-inline-edit': isInlineEditCell,\n 'ndl-data-grid-is-resizing': isResizing,\n 'ndl-data-grid-pinned-cell': cell.column.getIsPinned(),\n 'ndl-data-grid-pinned-cell-left': cell.column.getIsPinned() === 'left',\n 'ndl-data-grid-pinned-cell-right':\n cell.column.getIsPinned() === 'right',\n 'ndl-data-grid-row-action': isActionColumn,\n 'ndl-focusable-cell': isKeyboardNavigationEnabled,\n })}\n role=\"cell\"\n tabIndex={isKeyboardNavigationEnabled ? 0 : undefined}\n style={{\n ...ruleStyle,\n ...style,\n width: isActionColumn ? 40 : cell.column.getSize(),\n }}\n {...restProps}\n {...htmlAttributes}\n >\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n width=\"100%\"\n {...skeletonProps}\n isLoading={isSkeletonLoading && !isActionColumn}\n >\n {children || flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </div>\n );\n};\n\ntype BodyRowProps<T extends RowData> = {\n row: Row<T>;\n children?: React.ReactNode;\n};\n\nconst BodyRow = <T extends RowData>({\n row,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', BodyRowProps<T>>) => {\n const { components } = useDataGridContext<T>();\n\n return (\n <div\n key={row.id}\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-tr', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {row\n .getVisibleCells()\n .map(\n (cell) =>\n components.BodyCell && (\n <components.BodyCell key={cell.id} cell={cell} />\n ),\n )}\n </>\n )}\n </div>\n );\n};\n\ntype TableResultProps = {\n manualPagination?: {\n from: number;\n to: number;\n totalRows: number;\n };\n children?: React.ReactNode;\n /**\n * The label to use for the results, meaning the word \"results\" in the sentence \"Showing X-Y of Z results\".\n * @defaultValue 'results'\n */\n resultsLabel?: string;\n};\n\nconst TableResults = ({\n manualPagination,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n resultsLabel = 'results',\n ...restProps\n}: CommonProps<'span', TableResultProps>) => {\n const { tableProps, isSkeletonLoading, skeletonProps, isSmallNavigation } =\n useDataGridContext();\n const { getState, getRowModel, getCoreRowModel } = tableProps;\n const {\n pagination: { pageSize, pageIndex },\n } = getState();\n const { rows } = getRowModel();\n\n const { from, to, totalRows } = useMemo(\n () =>\n manualPagination || {\n from: 1 + pageIndex * pageSize,\n to: rows.length + pageIndex * pageSize,\n totalRows: getCoreRowModel().rows.length,\n },\n [pageIndex, pageSize, manualPagination, rows, getCoreRowModel],\n );\n\n if (isSmallNavigation) {\n return null;\n }\n\n return (\n <Skeleton\n as=\"span\"\n onBackground=\"weak\"\n shape=\"rectangular\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <span\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-results', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <span>\n Showing{' '}\n <span className=\"n-font-bold\">\n {totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0}\n </span>{' '}\n of <span className=\"n-font-bold\">{totalRows}</span> {resultsLabel}\n </span>\n )}\n </span>\n </Skeleton>\n );\n};\n\ntype RowsPerPageProps = {\n /**\n * The target element to portal the menu of the select component to.\n * Should be document.body normally, or the modal root if the select is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n children?: React.ReactNode;\n};\n\nconst RowsPerPage = ({\n portalTarget: portalTargetProp,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', RowsPerPageProps>) => {\n const { tableProps, portalTarget } = useDataGridContext();\n\n const { setPageSize, getState } = tableProps;\n\n const {\n pagination: { pageSize },\n } = getState();\n\n const paginationOptions = getPaginationOptions(pageSize);\n const defaultPaginationOption = paginationOptions.find(\n (option) => option.value === pageSize,\n );\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-rows-per-page', className)}\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n Show\n <Select\n type=\"select\"\n size=\"medium\"\n ariaLabel=\"Select page size\"\n selectProps={{\n defaultValue: defaultPaginationOption,\n isSearchable: false,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (option) => {\n if (option) {\n setPageSize(option.value);\n }\n },\n options: paginationOptions,\n styles: {\n container: () => ({\n width: '100%',\n }),\n },\n }}\n />\n </>\n )}\n </div>\n );\n};\n\ntype PaginationArrowButtonProps = {\n action: 'previous' | 'next';\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationArrowButton = ({\n action,\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationArrowButtonProps>) => {\n const PaginationIcon =\n action === 'previous' ? ChevronLeftIconOutline : ChevronRightIconOutline;\n const ariaLabel = action === 'previous' ? 'Previous page' : 'Next page';\n const classes = classNames('ndl-data-grid-pagination-icon-button', className);\n\n return (\n <CleanIconButton\n ref={ref}\n style={style}\n className={classes}\n description={ariaLabel}\n htmlAttributes={htmlAttributes}\n {...restProps}\n >\n {children || <PaginationIcon />}\n </CleanIconButton>\n );\n};\n\ntype PaginationNumericButtonProps = {\n currentIndex: number | string;\n isSelected: boolean;\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nconst PaginationNumericButton = ({\n currentIndex,\n isSelected,\n children,\n className,\n style,\n htmlAttributes,\n onClick,\n ref,\n ...restProps\n}: CommonProps<'button', PaginationNumericButtonProps>) => {\n return (\n <button\n ref={ref}\n style={style}\n type=\"button\"\n data-testid={`ndl-table-${currentIndex}`}\n className={classNames(\n 'ndl-data-grid-pagination-numeric-button',\n className,\n {\n 'ndl-is-selected': isSelected,\n 'ndl-not-selected': !isSelected,\n 'ndl-not-selected-numeric':\n typeof currentIndex === 'number' && !isSelected,\n },\n )}\n onClick={(event) =>\n typeof currentIndex === 'number' && onClick && onClick(event)\n }\n tabIndex={typeof currentIndex === 'number' ? 0 : -1}\n {...restProps}\n {...htmlAttributes}\n >\n {children || currentIndex}\n </button>\n );\n};\n\nconst PaginationNumericButtons = () => {\n const { tableProps, components } = useDataGridContext();\n const { getState, setPageIndex, getPageCount } = tableProps;\n const {\n pagination: { pageIndex },\n } = getState();\n\n return (\n <>\n {userFriendlyPagination(pageIndex + 1, getPageCount()).map(\n (option, idx) =>\n components.PaginationNumericButton && (\n <components.PaginationNumericButton\n /** Use index to avoid situations where two \"...\" values will appear, causing a key conflict */\n key={`${option}-${idx}`}\n onClick={() =>\n typeof option === 'number' && setPageIndex(option - 1)\n }\n currentIndex={option}\n isSelected={option === pageIndex + 1}\n />\n ),\n )}\n </>\n );\n};\n\ntype PaginationProps = {\n children?: React.ReactNode;\n};\n\nconst Pagination = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'nav', PaginationProps>) => {\n const { tableProps, components, isMediumNavigation } = useDataGridContext();\n\n const { getCanPreviousPage, getCanNextPage, previousPage, nextPage } =\n tableProps;\n\n return (\n <nav\n ref={ref}\n style={style}\n className={classNames('ndl-data-grid-nav', className)}\n aria-label=\"Pagination\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <>\n {/* Previous page */}\n {getCanPreviousPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"previous\"\n onClick={previousPage}\n />\n )\n : null}\n {/* Pages - hidden on narrow containers */}\n {!isMediumNavigation && components.PaginationNumericButtons && (\n <components.PaginationNumericButtons />\n )}\n {/* Next page */}\n {getCanNextPage()\n ? components.PaginationArrowButton && (\n <components.PaginationArrowButton\n action=\"next\"\n onClick={nextPage}\n />\n )\n : null}\n </>\n )}\n </nav>\n );\n};\n\ntype NavigationProps = {\n children?: React.ReactNode;\n};\n\nconst Navigation = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NavigationProps>) => {\n const {\n tableProps,\n components,\n isSkeletonLoading,\n skeletonProps,\n isSmallNavigation,\n } = useDataGridContext();\n\n const { getPageCount } = tableProps;\n\n return (\n <div\n ref={ref}\n style={{\n ...style,\n ...(isSmallNavigation && { justifyContent: 'end' }),\n }}\n className={classNames('ndl-data-grid-navigation', className)}\n {...restProps}\n {...htmlAttributes}\n >\n <>\n {children || (\n <>\n {components.TableResults && <components.TableResults />}\n <Skeleton\n onBackground=\"weak\"\n shape=\"rectangular\"\n height=\"36px\"\n {...skeletonProps}\n isLoading={isSkeletonLoading}\n >\n <div className=\"ndl-data-grid-navigation-right-items\">\n {getPageCount() > 1 && components.Pagination && (\n <components.Pagination />\n )}\n {/* Page size selector */}\n {components.RowsPerPage && <components.RowsPerPage />}\n </div>\n </Skeleton>\n </>\n )}\n </>\n </div>\n );\n};\n\ntype LoadingPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst LoadingPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', LoadingPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <div role=\"cell\" className=\"ndl-data-grid-placeholder\">\n <div className=\"ndl-data-grid-loading-placeholder\">\n <LoadingSpinner />\n <h6>Loading data</h6>\n </div>\n </div>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderProps = {\n children?: React.ReactNode;\n};\n\nconst NoDataPlaceholder = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderProps>) => {\n return (\n <div\n ref={ref}\n style={style}\n className={classNames('nld-table-placeholder-wrapper', className)}\n role=\"row\"\n {...restProps}\n {...htmlAttributes}\n >\n {children || (\n <NoDataPlaceholderContentWrapper>\n <NoDataIcon />\n <Typography variant=\"subheading-small\">No data available</Typography>\n </NoDataPlaceholderContentWrapper>\n )}\n </div>\n );\n};\n\ntype NoDataPlaceholderContentWrapperProps = {\n children?: React.ReactNode;\n};\n\nexport const NoDataPlaceholderContentWrapper = ({\n children,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', NoDataPlaceholderContentWrapperProps>) => {\n return (\n <div\n role=\"cell\"\n className={classNames('ndl-data-grid-placeholder', className)}\n ref={ref}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nexport interface InlineEditCellProps<T extends RowData> {\n cell: CellContext<T, unknown>;\n value: string;\n ariaLabel: string;\n}\n\nconst InlineEditCell = <T extends RowData>({\n cell,\n value,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'input', InlineEditCellProps<T>>) => {\n const [inputValue, setInputValue] = useState(value);\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n const { dataGridNav } = useDataGridContext<T>();\n\n if (!cell.column.columnDef.meta?.isInlineEditCell) {\n return null;\n }\n\n return (\n <input\n ref={ref}\n style={style}\n className={className}\n onChange={(event) => setInputValue(event.target.value)}\n value={inputValue}\n onFocus={() => {\n dataGridNav.disable();\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n cell?.column.columnDef.meta?.isInlineEditCell?.onEditChange(\n inputValue,\n cell,\n );\n event.currentTarget.parentElement?.focus();\n return;\n } else if (event.key === 'Escape') {\n event.currentTarget.parentElement?.focus();\n return;\n }\n }}\n onBlur={() => {\n setInputValue(value);\n dataGridNav.enable();\n }}\n aria-label={ariaLabel}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\ntype DropDownCellProps<T extends RowData> = {\n cell: CellContext<T, unknown>;\n options: {\n value: string;\n label: string;\n }[];\n /**\n * The target element to portal the menu of the select component to, e.g. the modal root if the data grid is inside a modal.\n * Defaults to the portalTarget prop of the DataGrid root component.\n */\n portalTarget?: HTMLElement | null;\n /** Aria label of the select component. Required for accessibility. */\n ariaLabel: string;\n /** Whether the select component is disabled */\n isDisabled?: boolean;\n /** Error message. If it exists the select will be in error state. */\n errorText?: string | React.ReactNode;\n /** Help text of the select component. */\n helpText?: string | React.ReactNode;\n /**\n * Override the underlying react-select components (e.g. `Option`, `SingleValue`,\n * `MultiValue`). Merged over the Needle defaults, so only the components you\n * pass are replaced.\n */\n components?: SelectComponentsConfig<\n DropDownCellOption,\n boolean,\n GroupBase<DropDownCellOption>\n >;\n};\n\ntype DropDownCellOption = {\n value: string;\n label: string;\n};\n\nconst DropDownCell = <T extends RowData>({\n cell,\n options,\n portalTarget: portalTargetProp,\n ariaLabel,\n className,\n style,\n htmlAttributes,\n ref: forwardRef,\n isDisabled,\n errorText,\n helpText,\n components,\n ...restProps\n}: CommonProps<'div', DropDownCellProps<T>>) => {\n const { dataGridNav, portalTarget } = useDataGridContext<T>();\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, forwardRef]);\n\n const dropDownMeta = cell.column.columnDef.meta?.isDropDownCell;\n if (!dropDownMeta) {\n return null;\n }\n const isMulti = dropDownMeta.isMulti ?? false;\n\n const cellValue = cell.getValue();\n const selectedValues = (\n Array.isArray(cellValue) ? cellValue : [cellValue]\n ).map((value) => value?.toString());\n\n const defaultValue = isMulti\n ? options.filter((option) => selectedValues.includes(option.value))\n : options.find((option) => option.value === cellValue?.toString());\n\n const menuPortalTarget =\n portalTargetProp === undefined ? portalTarget : portalTargetProp;\n\n return (\n <Select<DropDownCellOption, boolean>\n ref={mergedRef}\n className={className}\n isFluid={true}\n isClean={true}\n style={{ ...style, height: '100%', width: '100%' }}\n type=\"select\"\n size=\"medium\"\n ariaLabel={ariaLabel}\n isDisabled={isDisabled}\n errorText={errorText}\n helpText={helpText}\n selectProps={{\n components: components,\n defaultValue,\n isMulti,\n menuPortalTarget: menuPortalTarget,\n menuPosition: 'fixed',\n onChange: (selected) => {\n const selectedOptions = Array.isArray(selected)\n ? (selected as DropDownCellOption[])\n : selected\n ? [selected as DropDownCellOption]\n : [];\n const values = selectedOptions.map((option) => option.value);\n // `TValue` is not known inside the component; cast once at this boundary\n // to invoke onChange with the resolved single/multi value.\n const handleChange = dropDownMeta.onChange as (\n newValue: string | string[] | undefined,\n cellArg: typeof cell,\n ) => void;\n handleChange(isMulti ? values : values[0], cell);\n dataGridNav.enable();\n if (ref?.current) {\n dataGridNav.focusParentCell(ref.current);\n }\n },\n onMenuOpen: () => {\n dataGridNav.disable();\n },\n options: options,\n styles: {\n container: () => ({ height: '100%', width: '100%' }),\n control: () => ({\n borderRadius: 0,\n height: '100%',\n paddingLeft: '16px !important',\n paddingRight: '16px !important',\n }),\n },\n }}\n htmlAttributes={htmlAttributes}\n {...restProps}\n />\n );\n};\n\nconst NoDataIcon = ({\n className,\n ...restProps\n}: React.ComponentPropsWithoutRef<typeof DataGridCrossIcon>) => {\n const classes = classNames('n-size-token-64', className);\n return <DataGridCrossIcon className={classes} {...restProps} />;\n};\n\nexport {\n ResizingBar,\n Header,\n Body,\n BodyCell,\n BodyRow,\n InlineEditCell,\n DropDownCell,\n ActionCell,\n HeaderCell,\n HeaderTitle,\n Navigation,\n TableResults,\n RowsPerPage,\n Pagination,\n PaginationNumericButtons,\n PaginationArrowButton,\n PaginationNumericButton,\n NoDataPlaceholder,\n NoDataIcon,\n LoadingPlaceholder,\n Scrollable,\n};\n"]}
|
|
@@ -145,10 +145,10 @@ const DataGridComponent = function DataGrid(_a) {
|
|
|
145
145
|
'ndl-data-grid-resizable': isResizable,
|
|
146
146
|
'ndl-data-grid-zebra-striping': Styling.hasZebraStriping,
|
|
147
147
|
}), ref: ref, style: Object.assign(Object.assign({}, rootStyle), style) }, restProps, htmlAttributes, (isKeyboardNavigable ? listeners : {}), { children: [(0, jsx_runtime_1.jsx)(ScrollableContainer, { ref: scrollableContainerRef, htmlAttributes: {
|
|
148
|
-
onKeyDown: (
|
|
148
|
+
onKeyDown: (event) => {
|
|
149
149
|
if (isScrollable && !isKeyboardNavigable) {
|
|
150
|
-
if (
|
|
151
|
-
|
|
150
|
+
if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {
|
|
151
|
+
event.stopPropagation();
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
},
|