@3mo/data-grid 0.0.1
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/dist/Checkbox/Checkbox.d.ts +37 -0
- package/dist/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox/index.d.ts +2 -0
- package/dist/Checkbox/index.d.ts.map +1 -0
- package/dist/Color/Color.d.ts +18 -0
- package/dist/Color/Color.d.ts.map +1 -0
- package/dist/Color/index.d.ts +2 -0
- package/dist/Color/index.d.ts.map +1 -0
- package/dist/ColumnDefinition.d.ts +16 -0
- package/dist/ColumnDefinition.d.ts.map +1 -0
- package/dist/ColumnDefinition.js +1 -0
- package/dist/ContextMenu/ContextMenu.d.ts +16 -0
- package/dist/ContextMenu/ContextMenu.d.ts.map +1 -0
- package/dist/ContextMenu/ContextMenuDirective.d.ts +13 -0
- package/dist/ContextMenu/ContextMenuDirective.d.ts.map +1 -0
- package/dist/ContextMenu/ContextMenuItem.d.ts +10 -0
- package/dist/ContextMenu/ContextMenuItem.d.ts.map +1 -0
- package/dist/ContextMenu/index.d.ts +4 -0
- package/dist/ContextMenu/index.d.ts.map +1 -0
- package/dist/CsvGenerator.d.ts +4 -0
- package/dist/CsvGenerator.d.ts.map +1 -0
- package/dist/CsvGenerator.js +22 -0
- package/dist/DataGrid/ColumnDefinition.d.ts +16 -0
- package/dist/DataGrid/ColumnDefinition.d.ts.map +1 -0
- package/dist/DataGrid/CsvGenerator.d.ts +4 -0
- package/dist/DataGrid/CsvGenerator.d.ts.map +1 -0
- package/dist/DataGrid/DataGrid.d.ts +230 -0
- package/dist/DataGrid/DataGrid.d.ts.map +1 -0
- package/dist/DataGrid/DataGridCell.d.ts +27 -0
- package/dist/DataGrid/DataGridCell.d.ts.map +1 -0
- package/dist/DataGrid/DataGridFooter.d.ts +27 -0
- package/dist/DataGrid/DataGridFooter.d.ts.map +1 -0
- package/dist/DataGrid/DataGridHeader.d.ts +32 -0
- package/dist/DataGrid/DataGridHeader.d.ts.map +1 -0
- package/dist/DataGrid/DataGridHeaderSeparator.d.ts +25 -0
- package/dist/DataGrid/DataGridHeaderSeparator.d.ts.map +1 -0
- package/dist/DataGrid/DataGridPrimaryContextMenuItem.d.ts +10 -0
- package/dist/DataGrid/DataGridPrimaryContextMenuItem.d.ts.map +1 -0
- package/dist/DataGrid/DataGridSidePanel.d.ts +26 -0
- package/dist/DataGrid/DataGridSidePanel.d.ts.map +1 -0
- package/dist/DataGrid/FieldSelectDataGridPageSize.d.ts +14 -0
- package/dist/DataGrid/FieldSelectDataGridPageSize.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumn.d.ts +31 -0
- package/dist/DataGrid/columns/DataGridColumn.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnBoolean.d.ts +24 -0
- package/dist/DataGrid/columns/DataGridColumnBoolean.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnCurrency.d.ts +13 -0
- package/dist/DataGrid/columns/DataGridColumnCurrency.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnDate.d.ts +16 -0
- package/dist/DataGrid/columns/DataGridColumnDate.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnImage.d.ts +12 -0
- package/dist/DataGrid/columns/DataGridColumnImage.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnNumber.d.ts +13 -0
- package/dist/DataGrid/columns/DataGridColumnNumber.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnNumberBase.d.ts +22 -0
- package/dist/DataGrid/columns/DataGridColumnNumberBase.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnPercent.d.ts +13 -0
- package/dist/DataGrid/columns/DataGridColumnPercent.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridColumnText.d.ts +12 -0
- package/dist/DataGrid/columns/DataGridColumnText.d.ts.map +1 -0
- package/dist/DataGrid/columns/DataGridFooterSum.d.ts +17 -0
- package/dist/DataGrid/columns/DataGridFooterSum.d.ts.map +1 -0
- package/dist/DataGrid/columns/index.d.ts +11 -0
- package/dist/DataGrid/columns/index.d.ts.map +1 -0
- package/dist/DataGrid/index.d.ts +26 -0
- package/dist/DataGrid/index.d.ts.map +1 -0
- package/dist/DataGrid/rows/DataGridDefaultRow.d.ts +12 -0
- package/dist/DataGrid/rows/DataGridDefaultRow.d.ts.map +1 -0
- package/dist/DataGrid/rows/DataGridRow.d.ts +51 -0
- package/dist/DataGrid/rows/DataGridRow.d.ts.map +1 -0
- package/dist/DataGrid/rows/index.d.ts +3 -0
- package/dist/DataGrid/rows/index.d.ts.map +1 -0
- package/dist/DataGrid.d.ts +230 -0
- package/dist/DataGrid.d.ts.map +1 -0
- package/dist/DataGrid.js +977 -0
- package/dist/DataGridCell.d.ts +27 -0
- package/dist/DataGridCell.d.ts.map +1 -0
- package/dist/DataGridCell.js +92 -0
- package/dist/DataGridFooter.d.ts +27 -0
- package/dist/DataGridFooter.d.ts.map +1 -0
- package/dist/DataGridFooter.js +186 -0
- package/dist/DataGridHeader.d.ts +32 -0
- package/dist/DataGridHeader.d.ts.map +1 -0
- package/dist/DataGridHeader.js +199 -0
- package/dist/DataGridHeaderSeparator.d.ts +25 -0
- package/dist/DataGridHeaderSeparator.d.ts.map +1 -0
- package/dist/DataGridHeaderSeparator.js +129 -0
- package/dist/DataGridPrimaryContextMenuItem.d.ts +10 -0
- package/dist/DataGridPrimaryContextMenuItem.d.ts.map +1 -0
- package/dist/DataGridPrimaryContextMenuItem.js +17 -0
- package/dist/DataGridSidePanel.d.ts +26 -0
- package/dist/DataGridSidePanel.d.ts.map +1 -0
- package/dist/DataGridSidePanel.js +150 -0
- package/dist/DateTime/DateTime.d.ts +48 -0
- package/dist/DateTime/DateTime.d.ts.map +1 -0
- package/dist/DateTime/DateTimeRange.d.ts +23 -0
- package/dist/DateTime/DateTimeRange.d.ts.map +1 -0
- package/dist/DateTime/TimeSpan.d.ts +40 -0
- package/dist/DateTime/TimeSpan.d.ts.map +1 -0
- package/dist/DateTime/index.d.ts +4 -0
- package/dist/DateTime/index.d.ts.map +1 -0
- package/dist/DateTimeFields/DateParser.d.ts +9 -0
- package/dist/DateTimeFields/DateParser.d.ts.map +1 -0
- package/dist/DateTimeFields/DateRangeParser.d.ts +7 -0
- package/dist/DateTimeFields/DateRangeParser.d.ts.map +1 -0
- package/dist/DateTimeFields/FieldDate.d.ts +22 -0
- package/dist/DateTimeFields/FieldDate.d.ts.map +1 -0
- package/dist/DateTimeFields/FieldDateBase.d.ts +29 -0
- package/dist/DateTimeFields/FieldDateBase.d.ts.map +1 -0
- package/dist/DateTimeFields/FieldDateRange.d.ts +34 -0
- package/dist/DateTimeFields/FieldDateRange.d.ts.map +1 -0
- package/dist/DateTimeFields/FieldTime.d.ts +11 -0
- package/dist/DateTimeFields/FieldTime.d.ts.map +1 -0
- package/dist/DateTimeFields/calendar/Calendar.d.ts +30 -0
- package/dist/DateTimeFields/calendar/Calendar.d.ts.map +1 -0
- package/dist/DateTimeFields/calendar/CalendarSelectionAdapter.d.ts +11 -0
- package/dist/DateTimeFields/calendar/CalendarSelectionAdapter.d.ts.map +1 -0
- package/dist/DateTimeFields/calendar/SelectableCalendar.d.ts +16 -0
- package/dist/DateTimeFields/calendar/SelectableCalendar.d.ts.map +1 -0
- package/dist/DateTimeFields/calendar/index.d.ts +4 -0
- package/dist/DateTimeFields/calendar/index.d.ts.map +1 -0
- package/dist/DateTimeFields/index.d.ts +11 -0
- package/dist/DateTimeFields/index.d.ts.map +1 -0
- package/dist/Downloader/Downloader.d.ts +4 -0
- package/dist/Downloader/Downloader.d.ts.map +1 -0
- package/dist/Downloader/index.d.ts +2 -0
- package/dist/Downloader/index.d.ts.map +1 -0
- package/dist/EmptyState/EmptyState.d.ts +20 -0
- package/dist/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/EmptyState/index.d.ts +5 -0
- package/dist/EmptyState/index.d.ts.map +1 -0
- package/dist/FetchableSelectField/FieldFetchableSelect.d.ts +38 -0
- package/dist/FetchableSelectField/FieldFetchableSelect.d.ts.map +1 -0
- package/dist/FetchableSelectField/index.d.ts +2 -0
- package/dist/FetchableSelectField/index.d.ts.map +1 -0
- package/dist/FetcherController/Enqueuer.d.ts +10 -0
- package/dist/FetcherController/Enqueuer.d.ts.map +1 -0
- package/dist/FetcherController/FetcherController.d.ts +23 -0
- package/dist/FetcherController/FetcherController.d.ts.map +1 -0
- package/dist/FetcherController/Throttler.d.ts +8 -0
- package/dist/FetcherController/Throttler.d.ts.map +1 -0
- package/dist/FetcherController/index.d.ts +4 -0
- package/dist/FetcherController/index.d.ts.map +1 -0
- package/dist/Field/Field.d.ts +36 -0
- package/dist/Field/Field.d.ts.map +1 -0
- package/dist/Field/FieldComponent.d.ts +51 -0
- package/dist/Field/FieldComponent.d.ts.map +1 -0
- package/dist/Field/InputFieldComponent.d.ts +30 -0
- package/dist/Field/InputFieldComponent.d.ts.map +1 -0
- package/dist/Field/InputFieldComponent.test.d.ts +23 -0
- package/dist/Field/InputFieldComponent.test.d.ts.map +1 -0
- package/dist/Field/index.d.ts +5 -0
- package/dist/Field/index.d.ts.map +1 -0
- package/dist/FieldSelectDataGridPageSize.d.ts +14 -0
- package/dist/FieldSelectDataGridPageSize.d.ts.map +1 -0
- package/dist/FieldSelectDataGridPageSize.js +23 -0
- package/dist/Flex/AsteriskSyntaxStyleHandler.d.ts +9 -0
- package/dist/Flex/AsteriskSyntaxStyleHandler.d.ts.map +1 -0
- package/dist/Flex/Flex.d.ts +39 -0
- package/dist/Flex/Flex.d.ts.map +1 -0
- package/dist/Flex/index.d.ts +3 -0
- package/dist/Flex/index.d.ts.map +1 -0
- package/dist/FocusController/FocusController.d.ts +17 -0
- package/dist/FocusController/FocusController.d.ts.map +1 -0
- package/dist/FocusController/index.d.ts +2 -0
- package/dist/FocusController/index.d.ts.map +1 -0
- package/dist/Grid/Grid.d.ts +50 -0
- package/dist/Grid/Grid.d.ts.map +1 -0
- package/dist/Grid/index.d.ts +2 -0
- package/dist/Grid/index.d.ts.map +1 -0
- package/dist/Heading/Heading.d.ts +29 -0
- package/dist/Heading/Heading.d.ts.map +1 -0
- package/dist/Heading/index.d.ts +2 -0
- package/dist/Heading/index.d.ts.map +1 -0
- package/dist/Icon/Icon.d.ts +33 -0
- package/dist/Icon/Icon.d.ts.map +1 -0
- package/dist/Icon/MaterialIcon.d.ts +2 -0
- package/dist/Icon/MaterialIcon.d.ts.map +1 -0
- package/dist/Icon/index.d.ts +3 -0
- package/dist/Icon/index.d.ts.map +1 -0
- package/dist/IconButton/IconButton.d.ts +24 -0
- package/dist/IconButton/IconButton.d.ts.map +1 -0
- package/dist/IconButton/index.d.ts +3 -0
- package/dist/IconButton/index.d.ts.map +1 -0
- package/dist/InstanceofAttributeController/InstanceofAttributeController.d.ts +9 -0
- package/dist/InstanceofAttributeController/InstanceofAttributeController.d.ts.map +1 -0
- package/dist/InstanceofAttributeController/index.d.ts +2 -0
- package/dist/InstanceofAttributeController/index.d.ts.map +1 -0
- package/dist/KeyPath/KeyPath.d.ts +16 -0
- package/dist/KeyPath/KeyPath.d.ts.map +1 -0
- package/dist/KeyPath/index.d.ts +2 -0
- package/dist/KeyPath/index.d.ts.map +1 -0
- package/dist/KeyboardController/KeyboardController.d.ts +11 -0
- package/dist/KeyboardController/KeyboardController.d.ts.map +1 -0
- package/dist/KeyboardController/index.d.ts +2 -0
- package/dist/KeyboardController/index.d.ts.map +1 -0
- package/dist/List/CheckboxListItem.d.ts +31 -0
- package/dist/List/CheckboxListItem.d.ts.map +1 -0
- package/dist/List/CollapsibleListItem.d.ts +23 -0
- package/dist/List/CollapsibleListItem.d.ts.map +1 -0
- package/dist/List/List.d.ts +25 -0
- package/dist/List/List.d.ts.map +1 -0
- package/dist/List/ListItem.d.ts +25 -0
- package/dist/List/ListItem.d.ts.map +1 -0
- package/dist/List/ListItemRipple.d.ts +24 -0
- package/dist/List/ListItemRipple.d.ts.map +1 -0
- package/dist/List/ListItemsKeyboardController.d.ts +41 -0
- package/dist/List/ListItemsKeyboardController.d.ts.map +1 -0
- package/dist/List/RadioListItem.d.ts +29 -0
- package/dist/List/RadioListItem.d.ts.map +1 -0
- package/dist/List/SelectableList.d.ts +33 -0
- package/dist/List/SelectableList.d.ts.map +1 -0
- package/dist/List/SelectableListItem.d.ts +19 -0
- package/dist/List/SelectableListItem.d.ts.map +1 -0
- package/dist/List/SelectionListItem.d.ts +13 -0
- package/dist/List/SelectionListItem.d.ts.map +1 -0
- package/dist/List/SelectionListItemWithControl.d.ts +8 -0
- package/dist/List/SelectionListItemWithControl.d.ts.map +1 -0
- package/dist/List/SwitchListItem.d.ts +25 -0
- package/dist/List/SwitchListItem.d.ts.map +1 -0
- package/dist/List/index.d.ts +13 -0
- package/dist/List/index.d.ts.map +1 -0
- package/dist/MediaQueryObserver/MediaQueryController.d.ts +12 -0
- package/dist/MediaQueryObserver/MediaQueryController.d.ts.map +1 -0
- package/dist/MediaQueryObserver/index.d.ts +2 -0
- package/dist/MediaQueryObserver/index.d.ts.map +1 -0
- package/dist/Menu/Menu.d.ts +53 -0
- package/dist/Menu/Menu.d.ts.map +1 -0
- package/dist/Menu/MenuController.d.ts +13 -0
- package/dist/Menu/MenuController.d.ts.map +1 -0
- package/dist/Menu/MenuItem.d.ts +18 -0
- package/dist/Menu/MenuItem.d.ts.map +1 -0
- package/dist/Menu/MenuPlacement.d.ts +2 -0
- package/dist/Menu/MenuPlacement.d.ts.map +1 -0
- package/dist/Menu/NestedMenuItem.d.ts +27 -0
- package/dist/Menu/NestedMenuItem.d.ts.map +1 -0
- package/dist/Menu/index.d.ts +7 -0
- package/dist/Menu/index.d.ts.map +1 -0
- package/dist/MutationObserver/MutationController.d.ts +2 -0
- package/dist/MutationObserver/MutationController.d.ts.map +1 -0
- package/dist/MutationObserver/index.d.ts +3 -0
- package/dist/MutationObserver/index.d.ts.map +1 -0
- package/dist/MutationObserver/observeMutation.d.ts +12 -0
- package/dist/MutationObserver/observeMutation.d.ts.map +1 -0
- package/dist/NumberFields/FieldCurrency.d.ts +22 -0
- package/dist/NumberFields/FieldCurrency.d.ts.map +1 -0
- package/dist/NumberFields/FieldNumber.d.ts +28 -0
- package/dist/NumberFields/FieldNumber.d.ts.map +1 -0
- package/dist/NumberFields/FieldPercent.d.ts +19 -0
- package/dist/NumberFields/FieldPercent.d.ts.map +1 -0
- package/dist/NumberFields/index.d.ts +6 -0
- package/dist/NumberFields/index.d.ts.map +1 -0
- package/dist/PointerController/PointerController.d.ts +16 -0
- package/dist/PointerController/PointerController.d.ts.map +1 -0
- package/dist/PointerController/index.d.ts +2 -0
- package/dist/PointerController/index.d.ts.map +1 -0
- package/dist/Popover/Popover.d.ts +38 -0
- package/dist/Popover/Popover.d.ts.map +1 -0
- package/dist/Popover/PopoverAlignment.d.ts +6 -0
- package/dist/Popover/PopoverAlignment.d.ts.map +1 -0
- package/dist/Popover/PopoverContainer.d.ts +26 -0
- package/dist/Popover/PopoverContainer.d.ts.map +1 -0
- package/dist/Popover/PopoverController.d.ts +20 -0
- package/dist/Popover/PopoverController.d.ts.map +1 -0
- package/dist/Popover/PopoverCoordinates.d.ts +2 -0
- package/dist/Popover/PopoverCoordinates.d.ts.map +1 -0
- package/dist/Popover/PopoverHost.d.ts +11 -0
- package/dist/Popover/PopoverHost.d.ts.map +1 -0
- package/dist/Popover/PopoverPlacement.d.ts +7 -0
- package/dist/Popover/PopoverPlacement.d.ts.map +1 -0
- package/dist/Popover/index.d.ts +7 -0
- package/dist/Popover/index.d.ts.map +1 -0
- package/dist/Radio/Radio.d.ts +33 -0
- package/dist/Radio/Radio.d.ts.map +1 -0
- package/dist/Radio/index.d.ts +2 -0
- package/dist/Radio/index.d.ts.map +1 -0
- package/dist/ResizeObserver/ResizeController.d.ts +2 -0
- package/dist/ResizeObserver/ResizeController.d.ts.map +1 -0
- package/dist/ResizeObserver/index.d.ts +3 -0
- package/dist/ResizeObserver/index.d.ts.map +1 -0
- package/dist/ResizeObserver/observeResize.d.ts +12 -0
- package/dist/ResizeObserver/observeResize.d.ts.map +1 -0
- package/dist/SelectField/FieldSelect.d.ts +63 -0
- package/dist/SelectField/FieldSelect.d.ts.map +1 -0
- package/dist/SelectField/Option.d.ts +27 -0
- package/dist/SelectField/Option.d.ts.map +1 -0
- package/dist/SelectField/SelectValueController.d.ts +27 -0
- package/dist/SelectField/SelectValueController.d.ts.map +1 -0
- package/dist/SelectField/index.d.ts +6 -0
- package/dist/SelectField/index.d.ts.map +1 -0
- package/dist/SlotController/SlotController.d.ts +19 -0
- package/dist/SlotController/SlotController.d.ts.map +1 -0
- package/dist/SlotController/index.d.ts +2 -0
- package/dist/SlotController/index.d.ts.map +1 -0
- package/dist/Splitter/Splitter.d.ts +36 -0
- package/dist/Splitter/Splitter.d.ts.map +1 -0
- package/dist/Splitter/SplitterItem.d.ts +26 -0
- package/dist/Splitter/SplitterItem.d.ts.map +1 -0
- package/dist/Splitter/SplitterResizerHost.d.ts +35 -0
- package/dist/Splitter/SplitterResizerHost.d.ts.map +1 -0
- package/dist/Splitter/index.d.ts +5 -0
- package/dist/Splitter/index.d.ts.map +1 -0
- package/dist/Splitter/resizers/SplitterResizer.d.ts +8 -0
- package/dist/Splitter/resizers/SplitterResizer.d.ts.map +1 -0
- package/dist/Splitter/resizers/SplitterResizerKnob.d.ts +11 -0
- package/dist/Splitter/resizers/SplitterResizerKnob.d.ts.map +1 -0
- package/dist/Splitter/resizers/SplitterResizerLine.d.ts +11 -0
- package/dist/Splitter/resizers/SplitterResizerLine.d.ts.map +1 -0
- package/dist/Splitter/resizers/index.d.ts +4 -0
- package/dist/Splitter/resizers/index.d.ts.map +1 -0
- package/dist/Switch/Switch.d.ts +35 -0
- package/dist/Switch/Switch.d.ts.map +1 -0
- package/dist/Switch/index.d.ts +2 -0
- package/dist/Switch/index.d.ts.map +1 -0
- package/dist/TextFields/FieldEmail.d.ts +17 -0
- package/dist/TextFields/FieldEmail.d.ts.map +1 -0
- package/dist/TextFields/FieldPassword.d.ts +17 -0
- package/dist/TextFields/FieldPassword.d.ts.map +1 -0
- package/dist/TextFields/FieldSearch.d.ts +16 -0
- package/dist/TextFields/FieldSearch.d.ts.map +1 -0
- package/dist/TextFields/FieldText.d.ts +30 -0
- package/dist/TextFields/FieldText.d.ts.map +1 -0
- package/dist/TextFields/FieldTextArea.d.ts +28 -0
- package/dist/TextFields/FieldTextArea.d.ts.map +1 -0
- package/dist/TextFields/index.d.ts +8 -0
- package/dist/TextFields/index.d.ts.map +1 -0
- package/dist/Theme/Accent.d.ts +14 -0
- package/dist/Theme/Accent.d.ts.map +1 -0
- package/dist/Theme/Background.d.ts +12 -0
- package/dist/Theme/Background.d.ts.map +1 -0
- package/dist/Theme/ColorSet.d.ts +7 -0
- package/dist/Theme/ColorSet.d.ts.map +1 -0
- package/dist/Theme/Theme.d.ts +7 -0
- package/dist/Theme/Theme.d.ts.map +1 -0
- package/dist/Theme/ThemeController.d.ts +10 -0
- package/dist/Theme/ThemeController.d.ts.map +1 -0
- package/dist/Theme/index.d.ts +7 -0
- package/dist/Theme/index.d.ts.map +1 -0
- package/dist/Theme/styles.css.d.ts +2 -0
- package/dist/Theme/styles.css.d.ts.map +1 -0
- package/dist/Tooltip/Tooltip.d.ts +25 -0
- package/dist/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/Tooltip/TooltipDirective.d.ts +13 -0
- package/dist/Tooltip/TooltipDirective.d.ts.map +1 -0
- package/dist/Tooltip/TooltipPlacement.d.ts +2 -0
- package/dist/Tooltip/TooltipPlacement.d.ts.map +1 -0
- package/dist/Tooltip/index.d.ts +5 -0
- package/dist/Tooltip/index.d.ts.map +1 -0
- package/dist/bundle.js +310 -0
- package/dist/columns/DataGridColumn.d.ts +31 -0
- package/dist/columns/DataGridColumn.d.ts.map +1 -0
- package/dist/columns/DataGridColumn.js +81 -0
- package/dist/columns/DataGridColumnBoolean.d.ts +24 -0
- package/dist/columns/DataGridColumnBoolean.d.ts.map +1 -0
- package/dist/columns/DataGridColumnBoolean.js +52 -0
- package/dist/columns/DataGridColumnCurrency.d.ts +13 -0
- package/dist/columns/DataGridColumnCurrency.d.ts.map +1 -0
- package/dist/columns/DataGridColumnCurrency.js +28 -0
- package/dist/columns/DataGridColumnDate.d.ts +16 -0
- package/dist/columns/DataGridColumnDate.d.ts.map +1 -0
- package/dist/columns/DataGridColumnDate.js +35 -0
- package/dist/columns/DataGridColumnImage.d.ts +12 -0
- package/dist/columns/DataGridColumnImage.d.ts.map +1 -0
- package/dist/columns/DataGridColumnImage.js +19 -0
- package/dist/columns/DataGridColumnNumber.d.ts +13 -0
- package/dist/columns/DataGridColumnNumber.d.ts.map +1 -0
- package/dist/columns/DataGridColumnNumber.js +26 -0
- package/dist/columns/DataGridColumnNumberBase.d.ts +22 -0
- package/dist/columns/DataGridColumnNumberBase.d.ts.map +1 -0
- package/dist/columns/DataGridColumnNumberBase.js +19 -0
- package/dist/columns/DataGridColumnPercent.d.ts +13 -0
- package/dist/columns/DataGridColumnPercent.d.ts.map +1 -0
- package/dist/columns/DataGridColumnPercent.js +27 -0
- package/dist/columns/DataGridColumnText.d.ts +12 -0
- package/dist/columns/DataGridColumnText.d.ts.map +1 -0
- package/dist/columns/DataGridColumnText.js +22 -0
- package/dist/columns/DataGridFooterSum.d.ts +17 -0
- package/dist/columns/DataGridFooterSum.d.ts.map +1 -0
- package/dist/columns/DataGridFooterSum.js +46 -0
- package/dist/columns/index.d.ts +11 -0
- package/dist/columns/index.d.ts.map +1 -0
- package/dist/columns/index.js +10 -0
- package/dist/disabledProperty/disabledProperty.d.ts +6 -0
- package/dist/disabledProperty/disabledProperty.d.ts.map +1 -0
- package/dist/disabledProperty/index.d.ts +2 -0
- package/dist/disabledProperty/index.d.ts.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/localization/CardinalPluralizationRulesByLanguage.d.ts +13 -0
- package/dist/localization/CardinalPluralizationRulesByLanguage.d.ts.map +1 -0
- package/dist/localization/DirectionsByLanguage.d.ts +11 -0
- package/dist/localization/DirectionsByLanguage.d.ts.map +1 -0
- package/dist/localization/LanguageCode.d.ts +187 -0
- package/dist/localization/LanguageCode.d.ts.map +1 -0
- package/dist/localization/LanguageController.d.ts +10 -0
- package/dist/localization/LanguageController.d.ts.map +1 -0
- package/dist/localization/Localizer.d.ts +41 -0
- package/dist/localization/Localizer.d.ts.map +1 -0
- package/dist/localization/formatters/Currency.d.ts +373 -0
- package/dist/localization/formatters/Currency.d.ts.map +1 -0
- package/dist/localization/formatters/Date.format.d.ts +31 -0
- package/dist/localization/formatters/Date.format.d.ts.map +1 -0
- package/dist/localization/formatters/Date.formatAsDate.d.ts +9 -0
- package/dist/localization/formatters/Date.formatAsDate.d.ts.map +1 -0
- package/dist/localization/formatters/Date.formatAsTime.d.ts +9 -0
- package/dist/localization/formatters/Date.formatAsTime.d.ts.map +1 -0
- package/dist/localization/formatters/Number.format.d.ts +9 -0
- package/dist/localization/formatters/Number.format.d.ts.map +1 -0
- package/dist/localization/formatters/Number.formatAsCurrency.d.ts +12 -0
- package/dist/localization/formatters/Number.formatAsCurrency.d.ts.map +1 -0
- package/dist/localization/formatters/Number.formatAsPercent.d.ts +9 -0
- package/dist/localization/formatters/Number.formatAsPercent.d.ts.map +1 -0
- package/dist/localization/formatters/Number.formatAsUnit.d.ts +11 -0
- package/dist/localization/formatters/Number.formatAsUnit.d.ts.map +1 -0
- package/dist/localization/formatters/OptionsWithLanguage.d.ts +5 -0
- package/dist/localization/formatters/OptionsWithLanguage.d.ts.map +1 -0
- package/dist/localization/formatters/String.toNumber.d.ts +7 -0
- package/dist/localization/formatters/String.toNumber.d.ts.map +1 -0
- package/dist/localization/formatters/index.d.ts +10 -0
- package/dist/localization/formatters/index.d.ts.map +1 -0
- package/dist/localization/index.d.ts +7 -0
- package/dist/localization/index.d.ts.map +1 -0
- package/dist/queryConnectedInstances/index.d.ts +2 -0
- package/dist/queryConnectedInstances/index.d.ts.map +1 -0
- package/dist/queryConnectedInstances/queryConnectedInstances.d.ts +3 -0
- package/dist/queryConnectedInstances/queryConnectedInstances.d.ts.map +1 -0
- package/dist/rows/DataGridDefaultRow.d.ts +12 -0
- package/dist/rows/DataGridDefaultRow.d.ts.map +1 -0
- package/dist/rows/DataGridDefaultRow.js +69 -0
- package/dist/rows/DataGridRow.d.ts +51 -0
- package/dist/rows/DataGridRow.d.ts.map +1 -0
- package/dist/rows/DataGridRow.js +339 -0
- package/dist/rows/index.d.ts +3 -0
- package/dist/rows/index.d.ts.map +1 -0
- package/dist/rows/index.js +2 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +50 -0
package/dist/DataGrid.js
ADDED
|
@@ -0,0 +1,977 @@
|
|
|
1
|
+
var DataGrid_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { property, component, Component, html, css, live, query, nothing, ifDefined, event, queryAll, style, literal, staticHtml } from '@a11d/lit';
|
|
4
|
+
import { NotificationHost } from '@a11d/lit-application';
|
|
5
|
+
import { LocalStorage } from '@a11d/local-storage';
|
|
6
|
+
import { InstanceofAttributeController } from '@3mo/instanceof-attribute-controller';
|
|
7
|
+
import { SlotController } from '@3mo/slot-controller';
|
|
8
|
+
import { tooltip } from '@3mo/tooltip';
|
|
9
|
+
import { observeMutation } from '@3mo/mutation-observer';
|
|
10
|
+
import { MediaQueryController } from '@3mo/media-query-observer';
|
|
11
|
+
import { observeResize } from '@3mo/resize-observer';
|
|
12
|
+
import { Localizer } from '@3mo/localization';
|
|
13
|
+
import { contextMenu } from '@3mo/context-menu';
|
|
14
|
+
import { CsvGenerator, DataGridColumn } from './index.js';
|
|
15
|
+
Localizer.register("en" /* LanguageCode.English */, {
|
|
16
|
+
'${count:pluralityNumber} entries selected': [
|
|
17
|
+
'1 entry selected',
|
|
18
|
+
'${count} entries selected',
|
|
19
|
+
]
|
|
20
|
+
});
|
|
21
|
+
Localizer.register("de" /* LanguageCode.German */, {
|
|
22
|
+
'Exporting excel file': 'Die Excel-Datei wird exportiert',
|
|
23
|
+
'No results': 'Kein Ergebnis',
|
|
24
|
+
'${count:pluralityNumber} entries selected': [
|
|
25
|
+
'1 Eintrag ausgewählt',
|
|
26
|
+
'${count} Einträge ausgewählt',
|
|
27
|
+
],
|
|
28
|
+
'Options': 'Optionen',
|
|
29
|
+
'More Filters': 'Weitere Filter',
|
|
30
|
+
'Deselect All': 'Alle deselektieren',
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* @element mo-data-grid
|
|
34
|
+
*
|
|
35
|
+
* @attr data - The data to be displayed in the DataGrid. It is an array of objects, where each object represents a row.
|
|
36
|
+
* @attr columns - The columns to be displayed in the DataGrid. It is an array of objects, where each object represents a column.
|
|
37
|
+
* @attr headerHidden - Whether the header should be hidden.
|
|
38
|
+
* @attr preventVerticalContentScroll - Whether the content should be prevented from scrolling vertically.
|
|
39
|
+
* @attr page - The current page.
|
|
40
|
+
* @attr pagination - The pagination mode. It can be either `auto` or a number.
|
|
41
|
+
* @attr sorting - The sorting mode. It is an object with `selector` and `strategy` properties.
|
|
42
|
+
* @attr selectionMode - The selection mode.
|
|
43
|
+
* @attr isDataSelectable - Whether data of a given row is selectable.
|
|
44
|
+
* @attr selectedData - The selected data.
|
|
45
|
+
* @attr selectOnClick - Whether the row should be selected on click.
|
|
46
|
+
* @attr selectionBehaviorOnDataChange - The behavior of the selection when the data changes.
|
|
47
|
+
* @attr multipleDetails - Whether multiple details can be opened at the same time.
|
|
48
|
+
* @attr subDataGridDataSelector - The key path of the sub data grid data.
|
|
49
|
+
* @attr hasDataDetail - Whether the data has a detail.
|
|
50
|
+
* @attr detailsOnClick - Whether the details should be opened on click.
|
|
51
|
+
* @attr primaryContextMenuItemOnDoubleClick - The primary context menu item on double click.
|
|
52
|
+
* @attr editability - The editability mode.
|
|
53
|
+
* @attr getRowDetailsTemplate - A function which returns a template for the details of a given row.
|
|
54
|
+
* @attr getRowContextMenuTemplate - A function which returns a template for the context menu of a given row.
|
|
55
|
+
* @attr sidePanelTab - The side panel tab.
|
|
56
|
+
* @attr sidePanelHidden - Whether the side panel should be hidden.
|
|
57
|
+
* @attr selectionToolbarDisabled - Whether the selection toolbar should be disabled.
|
|
58
|
+
* @attr hasAlternatingBackground - Whether the rows should have alternating background.
|
|
59
|
+
* @attr preventFabCollapse - Whether the FAB should be prevented from collapsing.
|
|
60
|
+
*
|
|
61
|
+
* @slot - Use this slot only for declarative DataGrid APIs e.g. setting ColumnDefinitions via `mo-data-grid-columns` tag.
|
|
62
|
+
* @slot toolbar - The horizontal bar above DataGrid's contents.
|
|
63
|
+
* @slot filter - A vertical bar for elements which filter DataGrid's data. It is opened through an icon-button in the toolbar.
|
|
64
|
+
* @slot sum - A horizontal bar in the DataGrid's footer for showing sums. Calculated sums are also placed here by default.
|
|
65
|
+
* @slot settings - A vertical bar for elements which change DataGrid's settings. It is pre-filled with columns' settings and can be opened through an icon-button in the toolbar.
|
|
66
|
+
* @slot fab - A wrapper at the bottom right edge, floating right above the footer, expecting Floating Action Button to be placed in.
|
|
67
|
+
* @slot error-no-content - A slot for displaying an error message when no data is available.
|
|
68
|
+
*
|
|
69
|
+
* @fires dataChange {CustomEvent<Array<TData>>}
|
|
70
|
+
* @fires selectionChange {CustomEvent<Array<TData>>}
|
|
71
|
+
* @fires pageChange {CustomEvent<number>}
|
|
72
|
+
* @fires paginationChange {CustomEvent<DataGridPagination | undefined>}
|
|
73
|
+
* @fires columnsChange {CustomEvent<Array<ColumnDefinition<TData>>>}
|
|
74
|
+
* @fires sidePanelOpen {CustomEvent<DataGridSidePanelTab>}
|
|
75
|
+
* @fires sidePanelClose {CustomEvent}
|
|
76
|
+
* @fires sortingChange {CustomEvent<DataGridSorting<TData>>}
|
|
77
|
+
* @fires rowClick {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
78
|
+
* @fires rowConnected {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
79
|
+
* @fires rowDisconnected {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
80
|
+
* @fires rowDoubleClick {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
81
|
+
* @fires rowDetailsOpen {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
82
|
+
* @fires rowDetailsClose {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
83
|
+
* @fires rowEdit {CustomEvent<DataGridRow<TData, TDetailsElement>>}
|
|
84
|
+
* @fires cellEdit {CustomEvent<DataGridCell<any, TData, TDetailsElement>>}
|
|
85
|
+
*/
|
|
86
|
+
let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
87
|
+
constructor() {
|
|
88
|
+
super(...arguments);
|
|
89
|
+
this.data = new Array();
|
|
90
|
+
this.columns = new Array();
|
|
91
|
+
this.headerHidden = false;
|
|
92
|
+
this.preventVerticalContentScroll = false;
|
|
93
|
+
this.page = 1;
|
|
94
|
+
this.selectionMode = "none" /* DataGridSelectionMode.None */;
|
|
95
|
+
this.selectedData = new Array();
|
|
96
|
+
this.selectOnClick = false;
|
|
97
|
+
this.selectionBehaviorOnDataChange = "reset" /* DataGridSelectionBehaviorOnDataChange.Reset */;
|
|
98
|
+
this.multipleDetails = false;
|
|
99
|
+
this.detailsOnClick = false;
|
|
100
|
+
this.primaryContextMenuItemOnDoubleClick = false;
|
|
101
|
+
this.editability = "never" /* DataGridEditability.Never */;
|
|
102
|
+
this.sidePanelHidden = false;
|
|
103
|
+
this.selectionToolbarDisabled = false;
|
|
104
|
+
this.hasAlternatingBackground = DataGrid_1.hasAlternatingBackground.value;
|
|
105
|
+
this.preventFabCollapse = false;
|
|
106
|
+
this.fabSlotCollapsed = false;
|
|
107
|
+
this.slotController = new SlotController(this, async () => {
|
|
108
|
+
var _a;
|
|
109
|
+
this.hasSums;
|
|
110
|
+
this.hasFabs;
|
|
111
|
+
await this.updateComplete;
|
|
112
|
+
this.style.setProperty('--mo-data-grid-fab-slot-width', `${((_a = this.renderRoot.querySelector('slot[name=fab]')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) || 75}px`);
|
|
113
|
+
});
|
|
114
|
+
this.instanceofAttributeController = new InstanceofAttributeController(this);
|
|
115
|
+
this.smallScreenObserverController = new MediaQueryController(this, '(max-width: 768px)');
|
|
116
|
+
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
117
|
+
this.lastScrollElementTop = 0;
|
|
118
|
+
this.handleScroll = (e) => {
|
|
119
|
+
var _a;
|
|
120
|
+
if (this.preventFabCollapse === false) {
|
|
121
|
+
if (!e.composed) {
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
(_a = e.target) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new Event('scroll', { composed: true, bubbles: true }));
|
|
124
|
+
if (this.hasFabs) {
|
|
125
|
+
const targetElement = e.composedPath()[0];
|
|
126
|
+
const scrollTop = targetElement.scrollTop;
|
|
127
|
+
const isUpScrolling = scrollTop <= this.lastScrollElementTop;
|
|
128
|
+
this.fabSlotCollapsed = !isUpScrolling;
|
|
129
|
+
this.lastScrollElementTop = scrollTop <= 0 ? 0 : scrollTop;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
setPage(page) {
|
|
136
|
+
this.page = page;
|
|
137
|
+
this.pageChange.dispatch(page);
|
|
138
|
+
}
|
|
139
|
+
handlePageChange(page) {
|
|
140
|
+
this.setPage(page);
|
|
141
|
+
}
|
|
142
|
+
setPagination(pagination) {
|
|
143
|
+
this.pagination = pagination;
|
|
144
|
+
this.paginationChange.dispatch(pagination);
|
|
145
|
+
}
|
|
146
|
+
handlePaginationChange(pagination) {
|
|
147
|
+
this.setPagination(pagination);
|
|
148
|
+
}
|
|
149
|
+
setData(data, selectionBehavior = this.selectionBehaviorOnDataChange) {
|
|
150
|
+
this.data = data;
|
|
151
|
+
switch (selectionBehavior) {
|
|
152
|
+
case "reset" /* DataGridSelectionBehaviorOnDataChange.Reset */:
|
|
153
|
+
this.deselectAll();
|
|
154
|
+
break;
|
|
155
|
+
case "maintain" /* DataGridSelectionBehaviorOnDataChange.Maintain */:
|
|
156
|
+
this.select(this.previouslySelectedData);
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
this.dataChange.dispatch(data);
|
|
160
|
+
}
|
|
161
|
+
selectAll() {
|
|
162
|
+
if (this.selectionMode === "multiple" /* DataGridSelectionMode.Multiple */) {
|
|
163
|
+
this.select([...this.data]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
deselectAll() {
|
|
167
|
+
this.select([]);
|
|
168
|
+
}
|
|
169
|
+
select(data) {
|
|
170
|
+
if (this.hasSelection) {
|
|
171
|
+
const selectableData = data.filter(d => this.isSelectable(d));
|
|
172
|
+
this.selectedData = selectableData;
|
|
173
|
+
this.selectionChange.dispatch(selectableData);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
isSelectable(data) {
|
|
177
|
+
var _a, _b;
|
|
178
|
+
return (_b = (_a = this.isDataSelectable) === null || _a === void 0 ? void 0 : _a.call(this, data)) !== null && _b !== void 0 ? _b : true;
|
|
179
|
+
}
|
|
180
|
+
hasDetail(data) {
|
|
181
|
+
var _a, _b;
|
|
182
|
+
const hasAutomatedSubDataGrid = !this.subDataGridDataSelector || this.subDataGridDataSelector && Array.isArray(getValueByKeyPath(data, this.subDataGridDataSelector));
|
|
183
|
+
return hasAutomatedSubDataGrid && ((_b = (_a = this.hasDataDetail) === null || _a === void 0 ? void 0 : _a.call(this, data)) !== null && _b !== void 0 ? _b : true);
|
|
184
|
+
}
|
|
185
|
+
async openRowDetails() {
|
|
186
|
+
await Promise.all(this.detailedRows.map(row => row.setDetails(true)));
|
|
187
|
+
}
|
|
188
|
+
async closeRowDetails() {
|
|
189
|
+
await Promise.all(this.detailedRows.map(row => row.setDetails(false)));
|
|
190
|
+
}
|
|
191
|
+
sort(sorting) {
|
|
192
|
+
this.sorting = sorting;
|
|
193
|
+
this.sortingChange.dispatch(sorting);
|
|
194
|
+
}
|
|
195
|
+
unsort() {
|
|
196
|
+
this.sort(undefined);
|
|
197
|
+
}
|
|
198
|
+
handleSortChange(sorting) {
|
|
199
|
+
this.sort(sorting);
|
|
200
|
+
}
|
|
201
|
+
setColumns(columns) {
|
|
202
|
+
this.columns = columns;
|
|
203
|
+
this.columnsChange.dispatch(columns);
|
|
204
|
+
this.requestUpdate();
|
|
205
|
+
}
|
|
206
|
+
extractColumnsIfNotSetExplicitly() {
|
|
207
|
+
if (this.columns.length === 0) {
|
|
208
|
+
this.extractColumns();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
extractColumns() {
|
|
212
|
+
const extractedColumns = this.elementExtractedColumns.length > 0
|
|
213
|
+
? this.elementExtractedColumns
|
|
214
|
+
: this.autoGeneratedColumns;
|
|
215
|
+
this.setColumns(extractedColumns);
|
|
216
|
+
}
|
|
217
|
+
handleEdit(data, dataSelector, value) {
|
|
218
|
+
const row = this.rows.find(r => r.data === data);
|
|
219
|
+
const cell = row === null || row === void 0 ? void 0 : row.cells.find(c => c.dataSelector === dataSelector);
|
|
220
|
+
if (row && cell && value !== undefined && cell.value !== value) {
|
|
221
|
+
row.requestUpdate();
|
|
222
|
+
setValueByKeyPath(data, dataSelector, value);
|
|
223
|
+
this.cellEdit.dispatch(cell);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
navigateToSidePanelTab(tab) {
|
|
227
|
+
this.sidePanelTab = tab;
|
|
228
|
+
!tab ? this.sidePanelClose.dispatch() : this.sidePanelOpen.dispatch(tab);
|
|
229
|
+
}
|
|
230
|
+
exportExcelFile() {
|
|
231
|
+
var _a, _b;
|
|
232
|
+
try {
|
|
233
|
+
const selectors = this.visibleColumns.map(c => c.dataSelector);
|
|
234
|
+
CsvGenerator.generate(this.data, selectors);
|
|
235
|
+
(_a = NotificationHost.instance) === null || _a === void 0 ? void 0 : _a.notifyInfo(t('Exporting excel file'));
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
(_b = NotificationHost.instance) === null || _b === void 0 ? void 0 : _b.notifyError(error.message);
|
|
239
|
+
throw error;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
get detailedRows() {
|
|
243
|
+
return this.rows.filter(row => this.hasDetail(row.data));
|
|
244
|
+
}
|
|
245
|
+
get hasDetails() {
|
|
246
|
+
return !!this.getRowDetailsTemplate && this.data.some(data => this.hasDetail(data));
|
|
247
|
+
}
|
|
248
|
+
get hasSelection() {
|
|
249
|
+
return this.selectionMode !== "none" /* DataGridSelectionMode.None */;
|
|
250
|
+
}
|
|
251
|
+
get hasContextMenu() {
|
|
252
|
+
return this.getRowContextMenuTemplate !== undefined;
|
|
253
|
+
}
|
|
254
|
+
get toolbarElements() {
|
|
255
|
+
return Array.from(this.children).filter(c => c.slot === 'toolbar' && c.getAttribute('hidden') !== '');
|
|
256
|
+
}
|
|
257
|
+
get filterElements() {
|
|
258
|
+
return Array.from(this.children).filter(c => c.slot === 'filter' && c.getAttribute('hidden') !== '');
|
|
259
|
+
}
|
|
260
|
+
get hasToolbar() {
|
|
261
|
+
return this.toolbarElements.length > 0;
|
|
262
|
+
}
|
|
263
|
+
get hasFilters() {
|
|
264
|
+
return this.filterElements.length > 0;
|
|
265
|
+
}
|
|
266
|
+
get hasSums() {
|
|
267
|
+
const hasSums = !!this.columns.find(c => c.sumHeading) || !!this.querySelector('* [slot="sum"]') || !!this.renderRoot.querySelector('slot[name="sum"] > *');
|
|
268
|
+
this.toggleAttribute('hasSums', hasSums);
|
|
269
|
+
return hasSums;
|
|
270
|
+
}
|
|
271
|
+
get hasFabs() {
|
|
272
|
+
const hasFabs = !!this.querySelector('* [slot=fab]') || !!this.renderRoot.querySelector('#flexFab *:not(slot[name=fab])');
|
|
273
|
+
this.toggleAttribute('hasFabs', hasFabs);
|
|
274
|
+
return hasFabs;
|
|
275
|
+
}
|
|
276
|
+
get hasPagination() {
|
|
277
|
+
return this.pagination !== undefined;
|
|
278
|
+
}
|
|
279
|
+
get supportsDynamicPageSize() {
|
|
280
|
+
return this.hasPagination;
|
|
281
|
+
}
|
|
282
|
+
get pageSize() {
|
|
283
|
+
var _a;
|
|
284
|
+
const dynamicPageSize = (pageSize) => this.supportsDynamicPageSize ? pageSize : DataGrid_1.pageSize.value;
|
|
285
|
+
if (!this.pagination) {
|
|
286
|
+
return dynamicPageSize(this.data.length);
|
|
287
|
+
}
|
|
288
|
+
if (this.pagination === 'auto') {
|
|
289
|
+
const rowsHeight = (_a = this.rowsContainer) === null || _a === void 0 ? void 0 : _a.clientHeight;
|
|
290
|
+
const rowHeight = DataGrid_1.rowHeight.value;
|
|
291
|
+
const pageSize = Math.floor((rowsHeight || 0) / rowHeight) || 1;
|
|
292
|
+
return dynamicPageSize(pageSize);
|
|
293
|
+
}
|
|
294
|
+
return this.pagination;
|
|
295
|
+
}
|
|
296
|
+
get hasFooter() {
|
|
297
|
+
return this.hasPagination || this.hasSums;
|
|
298
|
+
}
|
|
299
|
+
get dataLength() {
|
|
300
|
+
return this.data.length;
|
|
301
|
+
}
|
|
302
|
+
get maxPage() {
|
|
303
|
+
return Math.ceil(this.dataLength / this.pageSize);
|
|
304
|
+
}
|
|
305
|
+
get hasNextPage() {
|
|
306
|
+
return this.page !== this.maxPage;
|
|
307
|
+
}
|
|
308
|
+
updated(...parameters) {
|
|
309
|
+
var _a, _b, _c;
|
|
310
|
+
(_a = this.header) === null || _a === void 0 ? void 0 : _a.requestUpdate();
|
|
311
|
+
(_b = this.sidePanel) === null || _b === void 0 ? void 0 : _b.requestUpdate();
|
|
312
|
+
(_c = this.footer) === null || _c === void 0 ? void 0 : _c.requestUpdate();
|
|
313
|
+
this.rows.forEach(row => row.requestUpdate());
|
|
314
|
+
return super.updated(...parameters);
|
|
315
|
+
}
|
|
316
|
+
firstUpdated(props) {
|
|
317
|
+
super.firstUpdated(props);
|
|
318
|
+
this.extractColumnsIfNotSetExplicitly();
|
|
319
|
+
this.rowEdit.subscribe(() => this.requestUpdate());
|
|
320
|
+
this.cellEdit.subscribe(() => this.requestUpdate());
|
|
321
|
+
this.setPage(1);
|
|
322
|
+
}
|
|
323
|
+
static get styles() {
|
|
324
|
+
return css `
|
|
325
|
+
:host {
|
|
326
|
+
--mo-data-grid-column-details-width: 20px;
|
|
327
|
+
--mo-data-grid-column-selection-width: 40px;
|
|
328
|
+
--mo-data-grid-column-more-width: 20px;
|
|
329
|
+
|
|
330
|
+
--mo-data-grid-header-height: 32px;
|
|
331
|
+
--mo-data-grid-footer-min-height: 40px;
|
|
332
|
+
--mo-data-grid-toolbar-padding: 14px;
|
|
333
|
+
--mo-data-grid-border: 1px solid var(--mo-color-transparent-gray-3);
|
|
334
|
+
|
|
335
|
+
/* --mo-data-grid-columns Generated in JS */
|
|
336
|
+
--mo-data-grid-columns-gap: 6px;
|
|
337
|
+
|
|
338
|
+
--mo-data-grid-row-tree-line-width: 8px;
|
|
339
|
+
--mo-details-data-grid-start-margin: 26px;
|
|
340
|
+
--mo-data-grid-cell-padding: 3px;
|
|
341
|
+
|
|
342
|
+
--mo-data-grid-selection-background: rgba(var(--mo-color-accent-base), 0.5);
|
|
343
|
+
|
|
344
|
+
--mo-data-grid-row-height: ${DataGrid_1.rowHeight.value}px;
|
|
345
|
+
display: flex;
|
|
346
|
+
flex-direction: column;
|
|
347
|
+
height: 100%;
|
|
348
|
+
overflow-x: hidden;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/* Don't try to use ":nth-child(even)" as it won't work for virtualized data-grids */
|
|
352
|
+
[mo-data-grid-row][data-has-alternating-background] {
|
|
353
|
+
background: var(--mo-alternating-background);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
:host([preventVerticalContentScroll]) mo-scroller {
|
|
357
|
+
overflow-y: hidden;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
:host([preventVerticalContentScroll]) mo-scroller::part(container) {
|
|
361
|
+
position: relative;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
:host(:not([selectionMode="none"])) {
|
|
365
|
+
--mo-data-grid-row-tree-line-width: 18px;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
:host([hasDetails]) {
|
|
369
|
+
--mo-data-grid-row-tree-line-width: 18px;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
#flexToolbar {
|
|
373
|
+
position: relative;
|
|
374
|
+
padding: var(--mo-data-grid-toolbar-padding);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
#flexToolbar mo-icon-button {
|
|
378
|
+
align-self: flex-start;
|
|
379
|
+
color: var(--mo-color-gray);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
#flexSelectionToolbar {
|
|
383
|
+
background: var(--mo-color-surface);
|
|
384
|
+
position: absolute;
|
|
385
|
+
inset: 0px;
|
|
386
|
+
width: 100%;
|
|
387
|
+
height: 100%;
|
|
388
|
+
z-index: 1;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
#flexSelectionToolbar > mo-flex {
|
|
392
|
+
background: var(--mo-data-grid-selection-background);
|
|
393
|
+
height: 100%;
|
|
394
|
+
align-items: center;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
#flexSelectionToolbar mo-icon-button {
|
|
398
|
+
align-self: center;
|
|
399
|
+
color: var(--mo-color-foreground);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
#flexActions {
|
|
403
|
+
align-items: center;
|
|
404
|
+
justify-content: center;
|
|
405
|
+
padding-inline: 14px 6px;
|
|
406
|
+
margin: 6px 0;
|
|
407
|
+
cursor: pointer;
|
|
408
|
+
background: var(--mo-color-accent-transparent);
|
|
409
|
+
height: calc(100% - calc(2 * 6px));
|
|
410
|
+
max-height: 45px;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
#flexFab {
|
|
414
|
+
position: absolute;
|
|
415
|
+
top: -28px;
|
|
416
|
+
inset-inline-end: 16px;
|
|
417
|
+
transition: var(--mo-data-grid-fab-transition, var(--mo-duration-quick));
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
:host([fabSlotCollapsed][hasFabs]) #flexFab {
|
|
421
|
+
transform: scale(0);
|
|
422
|
+
opacity: 0;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
mo-data-grid-footer {
|
|
426
|
+
transition: var(--mo-data-grid-fab-transition, var(--mo-duration-quick));
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
:host([hasSums][hasFabs]:not([fabSlotCollapsed])) mo-data-grid-footer {
|
|
430
|
+
--mo-data-grid-footer-trailing-padding: calc(var(--mo-data-grid-fab-slot-width, 56px) + 16px);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
slot[name=fab] {
|
|
434
|
+
display: block;
|
|
435
|
+
z-index: 1;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
mo-empty-state, ::slotted(mo-empty-state) {
|
|
439
|
+
height: 100%;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
#overlayModeContainer {
|
|
443
|
+
position: relative;
|
|
444
|
+
height: 100%;
|
|
445
|
+
width: 100%;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
#overlayModeContainer mo-data-grid-side-panel {
|
|
449
|
+
position: absolute;
|
|
450
|
+
inset: 0;
|
|
451
|
+
width: 100%;
|
|
452
|
+
height: 100%;
|
|
453
|
+
z-index: 1;
|
|
454
|
+
background-color: var(--mo-color-surface);
|
|
455
|
+
}
|
|
456
|
+
`;
|
|
457
|
+
}
|
|
458
|
+
get template() {
|
|
459
|
+
return html `
|
|
460
|
+
<slot name='column' hidden ${observeMutation(() => this.requestUpdate())}>${this.columnsTemplate}</slot>
|
|
461
|
+
${this.toolbarTemplate}
|
|
462
|
+
${this.smallScreenObserverController.matches ? this.overlayModeTemplate : this.splitterModeTemplate}
|
|
463
|
+
`;
|
|
464
|
+
}
|
|
465
|
+
get splitterModeTemplate() {
|
|
466
|
+
return html `
|
|
467
|
+
<mo-splitter direction='horizontal-reversed' ${style({ height: '100%' })} .resizerTemplate=${html `
|
|
468
|
+
<mo-splitter-resizer-line style='--mo-splitter-resizer-line-thickness: 1px; --mo-splitter-resizer-line-idle-background: var(--mo-color-transparent-gray-3); --mo-splitter-resizer-line-horizontal-transform: scaleX(5);'></mo-splitter-resizer-line>
|
|
469
|
+
`}>
|
|
470
|
+
${this.sidePanelTab === undefined ? nothing : html `
|
|
471
|
+
<mo-splitter-item size='min(25%, 300px)' min='max(15%, 250px)' max='clamp(100px, 50%, 750px)'>
|
|
472
|
+
${this.sidePanelTemplate}
|
|
473
|
+
</mo-splitter-item>
|
|
474
|
+
`}
|
|
475
|
+
|
|
476
|
+
<mo-splitter-item min='0px' ${style({ position: 'relative' })}>
|
|
477
|
+
${this.dataGridTemplate}
|
|
478
|
+
</mo-splitter-item>
|
|
479
|
+
</mo-splitter>
|
|
480
|
+
`;
|
|
481
|
+
}
|
|
482
|
+
get overlayModeTemplate() {
|
|
483
|
+
return html `
|
|
484
|
+
<mo-flex id='overlayModeContainer'>
|
|
485
|
+
${this.dataGridTemplate}
|
|
486
|
+
${this.sidePanelTab === undefined ? nothing : this.sidePanelTemplate}
|
|
487
|
+
</mo-flex>
|
|
488
|
+
`;
|
|
489
|
+
}
|
|
490
|
+
get sidePanelTemplate() {
|
|
491
|
+
return html `
|
|
492
|
+
<mo-data-grid-side-panel
|
|
493
|
+
.dataGrid=${this}
|
|
494
|
+
tab=${ifDefined(this.sidePanelTab)}
|
|
495
|
+
>
|
|
496
|
+
<slot slot='settings' name='settings'>${this.settingsDefaultTemplate}</slot>
|
|
497
|
+
<slot slot='filter' name='filter'>${this.filtersDefaultTemplate}</slot>
|
|
498
|
+
</mo-data-grid-side-panel>
|
|
499
|
+
`;
|
|
500
|
+
}
|
|
501
|
+
get settingsDefaultTemplate() {
|
|
502
|
+
return nothing;
|
|
503
|
+
}
|
|
504
|
+
get filtersDefaultTemplate() {
|
|
505
|
+
return nothing;
|
|
506
|
+
}
|
|
507
|
+
get columnsTemplate() {
|
|
508
|
+
return nothing;
|
|
509
|
+
}
|
|
510
|
+
get rowElementTag() {
|
|
511
|
+
return literal `mo-data-grid-default-row`;
|
|
512
|
+
}
|
|
513
|
+
get fabTemplate() {
|
|
514
|
+
// These also update the respective attributes for now
|
|
515
|
+
this.hasSums;
|
|
516
|
+
this.hasFabs;
|
|
517
|
+
return html `
|
|
518
|
+
<slot name='fab' @slotchange=${() => { this.hasSums; this.hasFabs; }}></slot>
|
|
519
|
+
`;
|
|
520
|
+
}
|
|
521
|
+
get contentTemplate() {
|
|
522
|
+
return !this.data.length ? this.noContentTemplate : this.rowsTemplate;
|
|
523
|
+
}
|
|
524
|
+
get noContentTemplate() {
|
|
525
|
+
return html `
|
|
526
|
+
<slot name='error-no-content'>
|
|
527
|
+
<mo-empty-state icon='youtube_searched_for'>${t('No results')}</mo-empty-state>
|
|
528
|
+
</slot>
|
|
529
|
+
`;
|
|
530
|
+
}
|
|
531
|
+
get dataGridTemplate() {
|
|
532
|
+
this.provideCssColumnsProperties();
|
|
533
|
+
this.toggleAttribute('hasDetails', this.hasDetails);
|
|
534
|
+
return html `
|
|
535
|
+
<mo-flex ${style({ width: '*', position: 'relative' })}>
|
|
536
|
+
<mo-grid ${style({ height: '*' })} rows='* auto'>
|
|
537
|
+
<mo-scroller ${style({ minHeight: 'var(--mo-data-grid-content-min-height, calc(2.5 * var(--mo-data-grid-row-height) + var(--mo-data-grid-header-height)))', paddingBottom: '2px' })}>
|
|
538
|
+
<mo-grid ${style({ height: '100%' })} rows='auto *'>
|
|
539
|
+
${this.headerTemplate}
|
|
540
|
+
${this.contentTemplate}
|
|
541
|
+
</mo-grid>
|
|
542
|
+
</mo-scroller>
|
|
543
|
+
${this.footerTemplate}
|
|
544
|
+
</mo-grid>
|
|
545
|
+
</mo-flex>
|
|
546
|
+
`;
|
|
547
|
+
}
|
|
548
|
+
get headerTemplate() {
|
|
549
|
+
return this.headerHidden ? nothing : html `
|
|
550
|
+
<mo-data-grid-header .dataGrid=${this}></mo-data-grid-header>
|
|
551
|
+
`;
|
|
552
|
+
}
|
|
553
|
+
get rowsTemplate() {
|
|
554
|
+
const getRowTemplate = (data, index) => this.getRowTemplate(data, index);
|
|
555
|
+
const shallVirtualize = !this.preventVerticalContentScroll && this.renderData.length > DataGrid_1.virtualizationThreshold;
|
|
556
|
+
const content = shallVirtualize === false
|
|
557
|
+
? this.renderData.map(getRowTemplate)
|
|
558
|
+
: html `<mo-virtualized-scroller .items=${this.renderData} .getItemTemplate=${getRowTemplate}></mo-virtualized-scroller>`;
|
|
559
|
+
return html `
|
|
560
|
+
<mo-scroller id='rowsContainer'
|
|
561
|
+
${style({ gridRow: '2', gridColumn: '1 / last-line' })}
|
|
562
|
+
${observeResize(() => this.requestUpdate())}
|
|
563
|
+
@scroll=${this.handleScroll}
|
|
564
|
+
>
|
|
565
|
+
${content}
|
|
566
|
+
</mo-scroller>
|
|
567
|
+
`;
|
|
568
|
+
}
|
|
569
|
+
getRowTemplate(data, index) {
|
|
570
|
+
return staticHtml `
|
|
571
|
+
<${this.rowElementTag} part='row'
|
|
572
|
+
.dataGrid=${this}
|
|
573
|
+
.data=${data}
|
|
574
|
+
?selected=${live(this.selectedData.includes(data))}
|
|
575
|
+
?data-has-alternating-background=${this.hasAlternatingBackground && index % 2 === 1}
|
|
576
|
+
></${this.rowElementTag}>
|
|
577
|
+
`;
|
|
578
|
+
}
|
|
579
|
+
get footerTemplate() {
|
|
580
|
+
return html `
|
|
581
|
+
<mo-flex ${style({ position: 'relative' })}>
|
|
582
|
+
<mo-flex id='flexFab' direction='vertical-reversed' gap='8px'>
|
|
583
|
+
${this.fabTemplate}
|
|
584
|
+
</mo-flex>
|
|
585
|
+
${this.hasFooter === false ? nothing : html `
|
|
586
|
+
<mo-data-grid-footer
|
|
587
|
+
.dataGrid=${this}
|
|
588
|
+
page=${this.page}
|
|
589
|
+
>
|
|
590
|
+
<slot name='sum' slot='sum'>${this.sumDefaultTemplate}</slot>
|
|
591
|
+
</mo-data-grid-footer>
|
|
592
|
+
`}
|
|
593
|
+
</mo-flex>
|
|
594
|
+
`;
|
|
595
|
+
}
|
|
596
|
+
get sumsTemplate() {
|
|
597
|
+
return html `${this.columns.map(column => this.getSumTemplate(column))}`;
|
|
598
|
+
}
|
|
599
|
+
getSumTemplate(column) {
|
|
600
|
+
if (column.sumHeading === undefined || column.getSumTemplate === undefined) {
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
const sum = this.renderData
|
|
604
|
+
.map(data => parseFloat(getValueByKeyPath(data, column.dataSelector)))
|
|
605
|
+
.filter(n => isNaN(n) === false)
|
|
606
|
+
.reduce(((a, b) => a + b), 0)
|
|
607
|
+
|| 0;
|
|
608
|
+
return html `
|
|
609
|
+
<mo-data-grid-footer-sum heading=${column.sumHeading}>
|
|
610
|
+
${column.getSumTemplate(sum)}
|
|
611
|
+
</mo-data-grid-footer-sum>
|
|
612
|
+
`;
|
|
613
|
+
}
|
|
614
|
+
get toolbarTemplate() {
|
|
615
|
+
return this.hasToolbar === false ? nothing : html `
|
|
616
|
+
<mo-flex id='flexToolbar' direction='horizontal' gap='8px' wrap='wrap' justifyContent='end' alignItems='center'>
|
|
617
|
+
<mo-flex direction='horizontal' alignItems='inherit' gap='8px' wrap='wrap' ${style({ width: '*' })}>
|
|
618
|
+
<slot name='toolbar'>${this.toolbarDefaultTemplate}</slot>
|
|
619
|
+
</mo-flex>
|
|
620
|
+
<mo-flex direction='horizontal' gap='8px'>
|
|
621
|
+
<slot name='toolbarAction'>${this.toolbarActionDefaultTemplate}</slot>
|
|
622
|
+
${this.toolbarActionsTemplate}
|
|
623
|
+
${this.selectionToolbarTemplate}
|
|
624
|
+
</mo-flex>
|
|
625
|
+
</mo-flex>
|
|
626
|
+
`;
|
|
627
|
+
}
|
|
628
|
+
get toolbarDefaultTemplate() {
|
|
629
|
+
return nothing;
|
|
630
|
+
}
|
|
631
|
+
get toolbarActionDefaultTemplate() {
|
|
632
|
+
return nothing;
|
|
633
|
+
}
|
|
634
|
+
get sumDefaultTemplate() {
|
|
635
|
+
return nothing;
|
|
636
|
+
}
|
|
637
|
+
get selectionToolbarTemplate() {
|
|
638
|
+
return this.selectionToolbarDisabled === true || this.selectedData.length === 0 ? nothing : html `
|
|
639
|
+
<mo-flex id='flexSelectionToolbar'>
|
|
640
|
+
<mo-flex direction='horizontal' gap='30px' ${style({ placeSelf: 'stretch' })}>
|
|
641
|
+
<div ${style({ fontWeight: '500', margin: '0 6px' })}>
|
|
642
|
+
${t('${count:pluralityNumber} entries selected', { count: this.selectedData.length })}
|
|
643
|
+
</div>
|
|
644
|
+
${!this.getRowContextMenuTemplate ? nothing : html `
|
|
645
|
+
<mo-flex id='flexActions' direction='horizontal' ${!this.getRowContextMenuTemplate ? nothing : contextMenu(this.getRowContextMenuTemplate(this.selectedData))}>
|
|
646
|
+
<div ${style({ width: '*' })}>${t('Options')}</div>
|
|
647
|
+
<mo-icon-button dense icon='arrow_drop_down' ${style({ display: 'flex', alignItems: 'center', justifyContent: 'center' })}></mo-icon-button>
|
|
648
|
+
</mo-flex>
|
|
649
|
+
`}
|
|
650
|
+
<div ${style({ width: '*' })}></div>
|
|
651
|
+
<mo-icon-button icon='close'
|
|
652
|
+
${tooltip(t('Deselect All'))}
|
|
653
|
+
@click=${() => this.deselectAll()}
|
|
654
|
+
></mo-icon-button>
|
|
655
|
+
</mo-flex>
|
|
656
|
+
</mo-flex>
|
|
657
|
+
`;
|
|
658
|
+
}
|
|
659
|
+
get toolbarActionsTemplate() {
|
|
660
|
+
return html `
|
|
661
|
+
${!this.hasFilters ? nothing : html `
|
|
662
|
+
<mo-icon-button icon='filter_list'
|
|
663
|
+
${tooltip(t('More Filters'))}
|
|
664
|
+
${style({ color: this.sidePanelTab === "filters" /* DataGridSidePanelTab.Filters */ ? 'var(--mo-color-accent)' : 'var(--mo-color-gray)' })}
|
|
665
|
+
@click=${() => this.navigateToSidePanelTab(this.sidePanelTab === "filters" /* DataGridSidePanelTab.Filters */ ? undefined : "filters" /* DataGridSidePanelTab.Filters */)}
|
|
666
|
+
></mo-icon-button>
|
|
667
|
+
`}
|
|
668
|
+
|
|
669
|
+
<mo-icon-button icon='settings'
|
|
670
|
+
${tooltip(t('Settings'))}
|
|
671
|
+
${style({ color: this.sidePanelTab === "settings" /* DataGridSidePanelTab.Settings */ ? 'var(--mo-color-accent)' : 'var(--mo-color-gray)' })}
|
|
672
|
+
@click=${() => this.navigateToSidePanelTab(this.sidePanelTab === "settings" /* DataGridSidePanelTab.Settings */ ? undefined : "settings" /* DataGridSidePanelTab.Settings */)}
|
|
673
|
+
></mo-icon-button>
|
|
674
|
+
`;
|
|
675
|
+
}
|
|
676
|
+
// The reason for not doing this in the CSS is that we need to trim all the 0px values out of the columns
|
|
677
|
+
// because the 'grid column gap' renders a gap no matter if the column is 0px or not
|
|
678
|
+
provideCssColumnsProperties() {
|
|
679
|
+
this.style.setProperty('--mo-data-grid-content-width', this.dataColumnsWidths.join(' '));
|
|
680
|
+
this.style.setProperty('--mo-data-grid-columns', this.columnsWidths.join(' '));
|
|
681
|
+
}
|
|
682
|
+
get columnsWidths() {
|
|
683
|
+
return [
|
|
684
|
+
this.detailsColumnWidth,
|
|
685
|
+
this.selectionColumnWidth,
|
|
686
|
+
...this.dataColumnsWidths,
|
|
687
|
+
this.moreColumnWidth
|
|
688
|
+
].filter((c) => c !== undefined);
|
|
689
|
+
}
|
|
690
|
+
get detailsColumnWidth() {
|
|
691
|
+
return !this.hasDetails ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-details-width');
|
|
692
|
+
}
|
|
693
|
+
get selectionColumnWidth() {
|
|
694
|
+
return !this.hasSelection ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-selection-width');
|
|
695
|
+
}
|
|
696
|
+
get dataColumnsWidths() {
|
|
697
|
+
return this.visibleColumns
|
|
698
|
+
.map(c => c.width)
|
|
699
|
+
.filter((c) => c !== undefined);
|
|
700
|
+
}
|
|
701
|
+
get moreColumnWidth() {
|
|
702
|
+
return this.sidePanelHidden && !this.hasContextMenu ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-more-width');
|
|
703
|
+
}
|
|
704
|
+
get sortedData() {
|
|
705
|
+
const sorting = this.sorting;
|
|
706
|
+
if (!sorting) {
|
|
707
|
+
return this.data;
|
|
708
|
+
}
|
|
709
|
+
const dataClone = [...this.data];
|
|
710
|
+
const compare = (a, b) => {
|
|
711
|
+
var _a, _b, _c, _d;
|
|
712
|
+
const valueA = (_a = getValueByKeyPath(a, sorting.selector)) !== null && _a !== void 0 ? _a : Infinity;
|
|
713
|
+
const valueB = (_b = getValueByKeyPath(b, sorting.selector)) !== null && _b !== void 0 ? _b : Infinity;
|
|
714
|
+
return (_d = (_c = valueB === null || valueB === void 0 ? void 0 : valueB.localeCompare) === null || _c === void 0 ? void 0 : _c.call(valueB, valueA)) !== null && _d !== void 0 ? _d : (valueB - valueA);
|
|
715
|
+
};
|
|
716
|
+
switch (sorting.strategy) {
|
|
717
|
+
case "ascending" /* DataGridSortingStrategy.Ascending */:
|
|
718
|
+
return dataClone.sort((a, b) => compare(a, b));
|
|
719
|
+
case "descending" /* DataGridSortingStrategy.Descending */:
|
|
720
|
+
return dataClone.sort((a, b) => compare(b, a));
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
get renderData() {
|
|
724
|
+
if (this.hasPagination === false) {
|
|
725
|
+
return this.sortedData;
|
|
726
|
+
}
|
|
727
|
+
const from = (this.page - 1) * this.pageSize;
|
|
728
|
+
const to = this.page * this.pageSize;
|
|
729
|
+
return this.sortedData.slice(from, to);
|
|
730
|
+
}
|
|
731
|
+
get elementExtractedColumns() {
|
|
732
|
+
var _a;
|
|
733
|
+
if (!this.columnsSlot) {
|
|
734
|
+
return [];
|
|
735
|
+
}
|
|
736
|
+
const children = this.columnsSlot.children.length > 0 ? Array.from(this.columnsSlot.children) : undefined;
|
|
737
|
+
const assigned = this.columnsSlot.assignedElements().length > 0 ? Array.from(this.columnsSlot.assignedElements()) : undefined;
|
|
738
|
+
return Array.from((_a = assigned !== null && assigned !== void 0 ? assigned : children) !== null && _a !== void 0 ? _a : [])
|
|
739
|
+
.filter((c) => {
|
|
740
|
+
const isColumn = c instanceof DataGridColumn;
|
|
741
|
+
if (isColumn) {
|
|
742
|
+
c.dataGrid = this;
|
|
743
|
+
}
|
|
744
|
+
return isColumn;
|
|
745
|
+
})
|
|
746
|
+
.map(c => c.definition);
|
|
747
|
+
}
|
|
748
|
+
get autoGeneratedColumns() {
|
|
749
|
+
if (!this.dataLength) {
|
|
750
|
+
return [];
|
|
751
|
+
}
|
|
752
|
+
const getDefaultColumnElement = (value) => {
|
|
753
|
+
switch (typeof value) {
|
|
754
|
+
case 'number':
|
|
755
|
+
case 'bigint':
|
|
756
|
+
return 'mo-data-grid-column-number';
|
|
757
|
+
case 'boolean':
|
|
758
|
+
return 'mo-data-grid-column-boolean';
|
|
759
|
+
default:
|
|
760
|
+
return 'mo-data-grid-column-text';
|
|
761
|
+
}
|
|
762
|
+
};
|
|
763
|
+
const sampleData = this.data[0];
|
|
764
|
+
return Object.keys(sampleData || {})
|
|
765
|
+
.filter(key => !key.startsWith('_'))
|
|
766
|
+
.map(key => {
|
|
767
|
+
const columnElement = document.createElement(getDefaultColumnElement(getValueByKeyPath(sampleData, key)));
|
|
768
|
+
columnElement.remove();
|
|
769
|
+
return {
|
|
770
|
+
heading: key.replace(/([A-Z])/g, ' $1').charAt(0).toUpperCase() + key.replace(/([A-Z])/g, ' $1').slice(1),
|
|
771
|
+
dataSelector: key,
|
|
772
|
+
width: '1fr',
|
|
773
|
+
hidden: false,
|
|
774
|
+
getContentTemplate: columnElement.getContentTemplate.bind(columnElement),
|
|
775
|
+
getEditContentTemplate: columnElement.getEditContentTemplate.bind(columnElement),
|
|
776
|
+
};
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
get visibleColumns() {
|
|
780
|
+
return this.columns.filter(c => c.hidden === false);
|
|
781
|
+
}
|
|
782
|
+
get previouslySelectedData() {
|
|
783
|
+
const hasId = this.selectedData.every(d => Object.keys(d).includes('id'));
|
|
784
|
+
if (hasId) {
|
|
785
|
+
const selectedIds = this.selectedData.map((d) => d.id);
|
|
786
|
+
return this.data.filter((d) => selectedIds.includes(d.id));
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
const selectedDataJson = this.selectedData.map(d => JSON.stringify(d));
|
|
790
|
+
return this.data.filter(d => selectedDataJson.includes(JSON.stringify(d)));
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
};
|
|
794
|
+
DataGrid.rowHeight = new LocalStorage('MoDeL.Components.DataGrid.RowHeight', 35);
|
|
795
|
+
DataGrid.pageSize = new LocalStorage('MoDeL.Components.DataGrid.PageSize', 25);
|
|
796
|
+
DataGrid.hasAlternatingBackground = new LocalStorage('MoDeL.Components.DataGrid.HasAlternatingBackground', true);
|
|
797
|
+
DataGrid.virtualizationThreshold = 50;
|
|
798
|
+
__decorate([
|
|
799
|
+
event()
|
|
800
|
+
], DataGrid.prototype, "dataChange", void 0);
|
|
801
|
+
__decorate([
|
|
802
|
+
event()
|
|
803
|
+
], DataGrid.prototype, "selectionChange", void 0);
|
|
804
|
+
__decorate([
|
|
805
|
+
event()
|
|
806
|
+
], DataGrid.prototype, "pageChange", void 0);
|
|
807
|
+
__decorate([
|
|
808
|
+
event()
|
|
809
|
+
], DataGrid.prototype, "paginationChange", void 0);
|
|
810
|
+
__decorate([
|
|
811
|
+
event()
|
|
812
|
+
], DataGrid.prototype, "columnsChange", void 0);
|
|
813
|
+
__decorate([
|
|
814
|
+
event()
|
|
815
|
+
], DataGrid.prototype, "sidePanelOpen", void 0);
|
|
816
|
+
__decorate([
|
|
817
|
+
event()
|
|
818
|
+
], DataGrid.prototype, "sidePanelClose", void 0);
|
|
819
|
+
__decorate([
|
|
820
|
+
event()
|
|
821
|
+
], DataGrid.prototype, "sortingChange", void 0);
|
|
822
|
+
__decorate([
|
|
823
|
+
event()
|
|
824
|
+
], DataGrid.prototype, "rowConnected", void 0);
|
|
825
|
+
__decorate([
|
|
826
|
+
event()
|
|
827
|
+
], DataGrid.prototype, "rowDisconnected", void 0);
|
|
828
|
+
__decorate([
|
|
829
|
+
event()
|
|
830
|
+
], DataGrid.prototype, "rowClick", void 0);
|
|
831
|
+
__decorate([
|
|
832
|
+
event()
|
|
833
|
+
], DataGrid.prototype, "rowDoubleClick", void 0);
|
|
834
|
+
__decorate([
|
|
835
|
+
event()
|
|
836
|
+
], DataGrid.prototype, "rowDetailsOpen", void 0);
|
|
837
|
+
__decorate([
|
|
838
|
+
event()
|
|
839
|
+
], DataGrid.prototype, "rowDetailsClose", void 0);
|
|
840
|
+
__decorate([
|
|
841
|
+
event()
|
|
842
|
+
], DataGrid.prototype, "rowEdit", void 0);
|
|
843
|
+
__decorate([
|
|
844
|
+
event()
|
|
845
|
+
], DataGrid.prototype, "cellEdit", void 0);
|
|
846
|
+
__decorate([
|
|
847
|
+
property({ type: Array })
|
|
848
|
+
], DataGrid.prototype, "data", void 0);
|
|
849
|
+
__decorate([
|
|
850
|
+
property({ type: Array })
|
|
851
|
+
], DataGrid.prototype, "columns", void 0);
|
|
852
|
+
__decorate([
|
|
853
|
+
property({ type: Boolean, reflect: true })
|
|
854
|
+
], DataGrid.prototype, "headerHidden", void 0);
|
|
855
|
+
__decorate([
|
|
856
|
+
property({ type: Boolean, reflect: true })
|
|
857
|
+
], DataGrid.prototype, "preventVerticalContentScroll", void 0);
|
|
858
|
+
__decorate([
|
|
859
|
+
property({ type: Number })
|
|
860
|
+
], DataGrid.prototype, "page", void 0);
|
|
861
|
+
__decorate([
|
|
862
|
+
property({ reflect: true, converter: (value) => Number.isNaN(Number(value)) ? value : Number(value) })
|
|
863
|
+
], DataGrid.prototype, "pagination", void 0);
|
|
864
|
+
__decorate([
|
|
865
|
+
property({ type: Object })
|
|
866
|
+
], DataGrid.prototype, "sorting", void 0);
|
|
867
|
+
__decorate([
|
|
868
|
+
property({ reflect: true })
|
|
869
|
+
], DataGrid.prototype, "selectionMode", void 0);
|
|
870
|
+
__decorate([
|
|
871
|
+
property({ type: Object })
|
|
872
|
+
], DataGrid.prototype, "isDataSelectable", void 0);
|
|
873
|
+
__decorate([
|
|
874
|
+
property({ type: Array })
|
|
875
|
+
], DataGrid.prototype, "selectedData", void 0);
|
|
876
|
+
__decorate([
|
|
877
|
+
property({ type: Boolean })
|
|
878
|
+
], DataGrid.prototype, "selectOnClick", void 0);
|
|
879
|
+
__decorate([
|
|
880
|
+
property()
|
|
881
|
+
], DataGrid.prototype, "selectionBehaviorOnDataChange", void 0);
|
|
882
|
+
__decorate([
|
|
883
|
+
property({ type: Boolean })
|
|
884
|
+
], DataGrid.prototype, "multipleDetails", void 0);
|
|
885
|
+
__decorate([
|
|
886
|
+
property({ updated: subDataGridSelectorChanged })
|
|
887
|
+
], DataGrid.prototype, "subDataGridDataSelector", void 0);
|
|
888
|
+
__decorate([
|
|
889
|
+
property({ type: Object })
|
|
890
|
+
], DataGrid.prototype, "hasDataDetail", void 0);
|
|
891
|
+
__decorate([
|
|
892
|
+
property({ type: Boolean })
|
|
893
|
+
], DataGrid.prototype, "detailsOnClick", void 0);
|
|
894
|
+
__decorate([
|
|
895
|
+
property({ type: Boolean })
|
|
896
|
+
], DataGrid.prototype, "primaryContextMenuItemOnDoubleClick", void 0);
|
|
897
|
+
__decorate([
|
|
898
|
+
property({ reflect: true })
|
|
899
|
+
], DataGrid.prototype, "editability", void 0);
|
|
900
|
+
__decorate([
|
|
901
|
+
property({ type: Object })
|
|
902
|
+
], DataGrid.prototype, "getRowDetailsTemplate", void 0);
|
|
903
|
+
__decorate([
|
|
904
|
+
property({ type: Object })
|
|
905
|
+
], DataGrid.prototype, "getRowContextMenuTemplate", void 0);
|
|
906
|
+
__decorate([
|
|
907
|
+
property()
|
|
908
|
+
], DataGrid.prototype, "sidePanelTab", void 0);
|
|
909
|
+
__decorate([
|
|
910
|
+
property({ type: Boolean })
|
|
911
|
+
], DataGrid.prototype, "sidePanelHidden", void 0);
|
|
912
|
+
__decorate([
|
|
913
|
+
property({ type: Boolean })
|
|
914
|
+
], DataGrid.prototype, "selectionToolbarDisabled", void 0);
|
|
915
|
+
__decorate([
|
|
916
|
+
property({ type: Boolean })
|
|
917
|
+
], DataGrid.prototype, "hasAlternatingBackground", void 0);
|
|
918
|
+
__decorate([
|
|
919
|
+
property({ type: Boolean })
|
|
920
|
+
], DataGrid.prototype, "preventFabCollapse", void 0);
|
|
921
|
+
__decorate([
|
|
922
|
+
property({ type: Boolean, reflect: true })
|
|
923
|
+
], DataGrid.prototype, "fabSlotCollapsed", void 0);
|
|
924
|
+
__decorate([
|
|
925
|
+
queryAll('[mo-data-grid-row]')
|
|
926
|
+
], DataGrid.prototype, "rows", void 0);
|
|
927
|
+
__decorate([
|
|
928
|
+
query('mo-data-grid-header')
|
|
929
|
+
], DataGrid.prototype, "header", void 0);
|
|
930
|
+
__decorate([
|
|
931
|
+
query('#rowsContainer')
|
|
932
|
+
], DataGrid.prototype, "rowsContainer", void 0);
|
|
933
|
+
__decorate([
|
|
934
|
+
query('mo-data-grid-footer')
|
|
935
|
+
], DataGrid.prototype, "footer", void 0);
|
|
936
|
+
__decorate([
|
|
937
|
+
query('mo-data-grid-side-panel')
|
|
938
|
+
], DataGrid.prototype, "sidePanel", void 0);
|
|
939
|
+
__decorate([
|
|
940
|
+
query('slot[name=column]')
|
|
941
|
+
], DataGrid.prototype, "columnsSlot", void 0);
|
|
942
|
+
DataGrid = DataGrid_1 = __decorate([
|
|
943
|
+
component('mo-data-grid')
|
|
944
|
+
], DataGrid);
|
|
945
|
+
export { DataGrid };
|
|
946
|
+
function subDataGridSelectorChanged() {
|
|
947
|
+
const selector = this.subDataGridDataSelector;
|
|
948
|
+
if (selector === undefined || !!this.getRowDetailsTemplate) {
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
this.getRowDetailsTemplate = (data) => html `
|
|
952
|
+
<mo-data-grid ${style({ padding: '0px' })}
|
|
953
|
+
.data=${getValueByKeyPath(data, selector)}
|
|
954
|
+
headerHidden
|
|
955
|
+
sidePanelHidden
|
|
956
|
+
.columns=${this.columns}
|
|
957
|
+
.subDataGridDataSelector=${this.subDataGridDataSelector}
|
|
958
|
+
.hasDataDetail=${this.hasDataDetail}
|
|
959
|
+
.selectionMode=${this.selectionMode}
|
|
960
|
+
.isDataSelectable=${this.isDataSelectable}
|
|
961
|
+
?selectOnClick=${this.selectOnClick}
|
|
962
|
+
?primaryContextMenuItemOnDoubleClick=${this.primaryContextMenuItemOnDoubleClick}
|
|
963
|
+
?multipleDetails=${this.multipleDetails}
|
|
964
|
+
?detailsOnClick=${this.detailsOnClick}
|
|
965
|
+
.getRowContextMenuTemplate=${this.getRowContextMenuTemplate}
|
|
966
|
+
editability=${this.editability}
|
|
967
|
+
@rowConnected=${(e) => this.rowConnected.dispatch(e.detail)}
|
|
968
|
+
@rowDisconnected=${(e) => this.rowDisconnected.dispatch(e.detail)}
|
|
969
|
+
@rowClick=${(e) => this.rowClick.dispatch(e.detail)}
|
|
970
|
+
@rowDoubleClick=${(e) => this.rowDoubleClick.dispatch(e.detail)}
|
|
971
|
+
@rowDetailsOpen=${(e) => this.rowDetailsOpen.dispatch(e.detail)}
|
|
972
|
+
@rowDetailsClose=${(e) => this.rowDetailsClose.dispatch(e.detail)}
|
|
973
|
+
@rowEdit=${(e) => this.rowEdit.dispatch(e.detail)}
|
|
974
|
+
@cellEdit=${(e) => this.cellEdit.dispatch(e.detail)}
|
|
975
|
+
></mo-data-grid>
|
|
976
|
+
`;
|
|
977
|
+
}
|