@coveord/plasma-mantine 54.0.2 → 54.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +41 -41
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/action-icon/ActionIcon.d.ts +5 -5
- package/dist/cjs/components/action-icon/ActionIcon.d.ts.map +1 -1
- package/dist/cjs/components/action-icon/ActionIcon.js.map +1 -1
- package/dist/cjs/components/action-icon/index.js.map +1 -1
- package/dist/cjs/components/blank-slate/BlankSlate.js.map +1 -1
- package/dist/cjs/components/blank-slate/index.js.map +1 -1
- package/dist/cjs/components/browser-preview/BrowserPreview.d.ts.map +1 -1
- package/dist/cjs/components/browser-preview/BrowserPreview.js.map +1 -1
- package/dist/cjs/components/browser-preview/index.js.map +1 -1
- package/dist/cjs/components/button/Button.d.ts +5 -5
- package/dist/cjs/components/button/Button.d.ts.map +1 -1
- package/dist/cjs/components/button/Button.js.map +1 -1
- package/dist/cjs/components/button/ButtonWithDisabledTooltip.d.ts +2 -2
- package/dist/cjs/components/button/ButtonWithDisabledTooltip.js.map +1 -1
- package/dist/cjs/components/button/index.js.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/code-editor/index.js.map +1 -1
- package/dist/cjs/components/code-editor/languages/xml.js.map +1 -1
- package/dist/cjs/components/code-editor/search/Search.d.ts +0 -1
- package/dist/cjs/components/code-editor/search/Search.d.ts.map +1 -1
- package/dist/cjs/components/code-editor/search/Search.js.map +1 -1
- package/dist/cjs/components/code-editor/search/index.js.map +1 -1
- package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
- package/dist/cjs/components/collection/Collection.js.map +1 -1
- package/dist/cjs/components/collection/CollectionContext.d.ts +2 -3
- package/dist/cjs/components/collection/CollectionContext.d.ts.map +1 -1
- package/dist/cjs/components/collection/CollectionContext.js.map +1 -1
- package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
- package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts +1 -1
- package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
- package/dist/cjs/components/collection/enhanceWithCollectionProps.js.map +1 -1
- package/dist/cjs/components/collection/index.js.map +1 -1
- package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts +0 -1
- package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
- package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
- package/dist/cjs/components/copyToClipboard/index.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
- package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/index.js.map +1 -1
- package/dist/cjs/components/header/Header.context.d.ts +2 -3
- package/dist/cjs/components/header/Header.context.d.ts.map +1 -1
- package/dist/cjs/components/header/Header.context.js.map +1 -1
- package/dist/cjs/components/header/Header.d.ts.map +1 -1
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/HeaderActions/HeaderActions.js.map +1 -1
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -1
- package/dist/cjs/components/header/index.js.map +1 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts +1 -8
- package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirm.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts +2 -3
- package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmContext.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts +9 -24
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
- package/dist/cjs/components/inline-confirm/index.js.map +1 -1
- package/dist/cjs/components/menu/Menu.d.ts +3 -4
- package/dist/cjs/components/menu/Menu.d.ts.map +1 -1
- package/dist/cjs/components/menu/Menu.js.map +1 -1
- package/dist/cjs/components/menu/index.js.map +1 -1
- package/dist/cjs/components/prompt/Prompt.js.map +1 -1
- package/dist/cjs/components/prompt/PromptFooter.js.map +1 -1
- package/dist/cjs/components/prompt/index.js.map +1 -1
- package/dist/cjs/components/sticky-footer/StickyFooter.js.map +1 -1
- package/dist/cjs/components/sticky-footer/index.js.map +1 -1
- package/dist/cjs/components/table/Table.d.ts +7 -7
- package/dist/cjs/components/table/Table.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.js +2 -2
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Table.types.js.map +1 -1
- package/dist/cjs/components/table/TableContext.d.ts.map +1 -1
- package/dist/cjs/components/table/TableContext.js.map +1 -1
- package/dist/cjs/components/table/index.js.map +1 -1
- package/dist/cjs/components/table/layouts/TableLayoutControl.js.map +1 -1
- package/dist/cjs/components/table/layouts/TableLayouts.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayout.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts +2 -3
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionContext.d.ts +2 -3
- package/dist/cjs/components/table/table-actions/TableActionContext.d.ts.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionContext.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionItem.d.ts +5 -5
- package/dist/cjs/components/table/table-actions/TableActionItem.d.ts.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionItem.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionsList.d.ts +1 -1
- package/dist/cjs/components/table/table-actions/TableActionsList.d.ts.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionsList.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableHeaderActions.js.map +1 -1
- package/dist/cjs/components/table/table-actions/index.js.map +1 -1
- package/dist/cjs/components/table/table-column/TableActionsColumn.js.map +1 -1
- package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
- package/dist/cjs/components/table/table-column/TableSelectableColumn.js.map +1 -1
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/table/table-filter/TableFilter.js.map +1 -1
- package/dist/cjs/components/table/table-footer/TableFooter.js.map +1 -1
- package/dist/cjs/components/table/table-header/TableHeader.js.map +1 -1
- package/dist/cjs/components/table/table-header/Th.d.ts.map +1 -1
- package/dist/cjs/components/table/table-header/Th.js.map +1 -1
- package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
- package/dist/cjs/components/table/table-loading/TableLoading.js.map +1 -1
- package/dist/cjs/components/table/table-no-data/TableNoData.js.map +1 -1
- package/dist/cjs/components/table/table-pagination/TablePagination.js.map +1 -1
- package/dist/cjs/components/table/table-pagination/TablePagination.types.js.map +1 -1
- package/dist/cjs/components/table/table-per-page/TablePerPage.js.map +1 -1
- package/dist/cjs/components/table/table-per-page/TablePerPage.types.js.map +1 -1
- package/dist/cjs/components/table/table-predicate/TablePredicate.js.map +1 -1
- package/dist/cjs/components/table/use-table.d.ts +0 -1
- package/dist/cjs/components/table/use-table.d.ts.map +1 -1
- package/dist/cjs/components/table/use-table.js.map +1 -1
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useClickWithLoading.d.ts.map +1 -1
- package/dist/cjs/hooks/useClickWithLoading.js.map +1 -1
- package/dist/cjs/hooks/useControlledList.d.ts.map +1 -1
- package/dist/cjs/hooks/useControlledList.js.map +1 -1
- package/dist/cjs/hooks/useParentHeight.d.ts.map +1 -1
- package/dist/cjs/hooks/useParentHeight.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/theme/PlasmaColors.d.ts.map +1 -1
- package/dist/cjs/theme/PlasmaColors.js.map +1 -1
- package/dist/cjs/theme/Plasmantine.js.map +1 -1
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/cjs/theme/index.js.map +1 -1
- package/dist/cjs/theme/mergeCSSVariablesResolvers.js.map +1 -1
- package/dist/cjs/theme/plasmaCSSVariablesResolver.js.map +1 -1
- package/dist/cjs/types/css/index.d.js.map +1 -1
- package/dist/cjs/utils/createFactoryComponent.d.ts.map +1 -1
- package/dist/cjs/utils/createFactoryComponent.js.map +1 -1
- package/dist/cjs/utils/createPolymorphicComponent.js.map +1 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/overrideComponent.d.ts.map +1 -1
- package/dist/cjs/utils/overrideComponent.js.map +1 -1
- package/dist/cjs/vars/Notification.vars.js.map +1 -1
- package/dist/cjs/vars/Text.vars.js.map +1 -1
- package/dist/esm/components/action-icon/ActionIcon.d.ts +5 -5
- package/dist/esm/components/action-icon/ActionIcon.d.ts.map +1 -1
- package/dist/esm/components/action-icon/ActionIcon.js.map +1 -1
- package/dist/esm/components/action-icon/index.js.map +1 -1
- package/dist/esm/components/blank-slate/BlankSlate.js.map +1 -1
- package/dist/esm/components/blank-slate/index.js.map +1 -1
- package/dist/esm/components/browser-preview/BrowserPreview.d.ts.map +1 -1
- package/dist/esm/components/browser-preview/BrowserPreview.js.map +1 -1
- package/dist/esm/components/browser-preview/index.js.map +1 -1
- package/dist/esm/components/button/Button.d.ts +5 -5
- package/dist/esm/components/button/Button.d.ts.map +1 -1
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/button/ButtonWithDisabledTooltip.d.ts +2 -2
- package/dist/esm/components/button/ButtonWithDisabledTooltip.js.map +1 -1
- package/dist/esm/components/button/index.js.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/code-editor/index.js.map +1 -1
- package/dist/esm/components/code-editor/languages/xml.js.map +1 -1
- package/dist/esm/components/code-editor/search/Search.d.ts +0 -1
- package/dist/esm/components/code-editor/search/Search.d.ts.map +1 -1
- package/dist/esm/components/code-editor/search/Search.js.map +1 -1
- package/dist/esm/components/code-editor/search/index.js.map +1 -1
- package/dist/esm/components/collection/Collection.d.ts.map +1 -1
- package/dist/esm/components/collection/Collection.js.map +1 -1
- package/dist/esm/components/collection/CollectionContext.d.ts +2 -3
- package/dist/esm/components/collection/CollectionContext.d.ts.map +1 -1
- package/dist/esm/components/collection/CollectionContext.js.map +1 -1
- package/dist/esm/components/collection/CollectionItem.js.map +1 -1
- package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts +1 -1
- package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
- package/dist/esm/components/collection/enhanceWithCollectionProps.js.map +1 -1
- package/dist/esm/components/collection/index.js.map +1 -1
- package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts +0 -1
- package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
- package/dist/esm/components/copyToClipboard/CopyToClipboard.js.map +1 -1
- package/dist/esm/components/copyToClipboard/index.js.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
- package/dist/esm/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/index.js.map +1 -1
- package/dist/esm/components/header/Header.context.d.ts +2 -3
- package/dist/esm/components/header/Header.context.d.ts.map +1 -1
- package/dist/esm/components/header/Header.context.js.map +1 -1
- package/dist/esm/components/header/Header.d.ts.map +1 -1
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/HeaderActions/HeaderActions.js.map +1 -1
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -1
- package/dist/esm/components/header/index.js.map +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirm.d.ts +1 -8
- package/dist/esm/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirm.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts +2 -3
- package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmContext.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts +9 -24
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
- package/dist/esm/components/inline-confirm/index.js.map +1 -1
- package/dist/esm/components/menu/Menu.d.ts +3 -4
- package/dist/esm/components/menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/menu/Menu.js.map +1 -1
- package/dist/esm/components/menu/index.js.map +1 -1
- package/dist/esm/components/prompt/Prompt.js.map +1 -1
- package/dist/esm/components/prompt/PromptFooter.js.map +1 -1
- package/dist/esm/components/prompt/index.js.map +1 -1
- package/dist/esm/components/sticky-footer/StickyFooter.js.map +1 -1
- package/dist/esm/components/sticky-footer/index.js.map +1 -1
- package/dist/esm/components/table/Table.d.ts +7 -7
- package/dist/esm/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +1 -1
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.types.js.map +1 -1
- package/dist/esm/components/table/TableContext.d.ts.map +1 -1
- package/dist/esm/components/table/TableContext.js.map +1 -1
- package/dist/esm/components/table/index.js.map +1 -1
- package/dist/esm/components/table/layouts/TableLayoutControl.js.map +1 -1
- package/dist/esm/components/table/layouts/TableLayouts.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayout.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts +2 -3
- package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionContext.d.ts +2 -3
- package/dist/esm/components/table/table-actions/TableActionContext.d.ts.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionContext.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionItem.d.ts +5 -5
- package/dist/esm/components/table/table-actions/TableActionItem.d.ts.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionItem.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionsList.d.ts +1 -1
- package/dist/esm/components/table/table-actions/TableActionsList.d.ts.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionsList.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableHeaderActions.js.map +1 -1
- package/dist/esm/components/table/table-actions/index.js.map +1 -1
- package/dist/esm/components/table/table-column/TableActionsColumn.js.map +1 -1
- package/dist/esm/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
- package/dist/esm/components/table/table-column/TableSelectableColumn.js.map +1 -1
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
- package/dist/esm/components/table/table-filter/TableFilter.js.map +1 -1
- package/dist/esm/components/table/table-footer/TableFooter.js.map +1 -1
- package/dist/esm/components/table/table-header/TableHeader.js.map +1 -1
- package/dist/esm/components/table/table-header/Th.d.ts.map +1 -1
- package/dist/esm/components/table/table-header/Th.js.map +1 -1
- package/dist/esm/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
- package/dist/esm/components/table/table-loading/TableLoading.js.map +1 -1
- package/dist/esm/components/table/table-no-data/TableNoData.js.map +1 -1
- package/dist/esm/components/table/table-pagination/TablePagination.js.map +1 -1
- package/dist/esm/components/table/table-pagination/TablePagination.types.js.map +1 -1
- package/dist/esm/components/table/table-per-page/TablePerPage.js.map +1 -1
- package/dist/esm/components/table/table-per-page/TablePerPage.types.js.map +1 -1
- package/dist/esm/components/table/table-predicate/TablePredicate.js.map +1 -1
- package/dist/esm/components/table/use-table.d.ts +0 -1
- package/dist/esm/components/table/use-table.d.ts.map +1 -1
- package/dist/esm/components/table/use-table.js.map +1 -1
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useClickWithLoading.d.ts.map +1 -1
- package/dist/esm/hooks/useClickWithLoading.js.map +1 -1
- package/dist/esm/hooks/useControlledList.d.ts.map +1 -1
- package/dist/esm/hooks/useControlledList.js.map +1 -1
- package/dist/esm/hooks/useParentHeight.d.ts.map +1 -1
- package/dist/esm/hooks/useParentHeight.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/PlasmaColors.d.ts.map +1 -1
- package/dist/esm/theme/PlasmaColors.js.map +1 -1
- package/dist/esm/theme/Plasmantine.js.map +1 -1
- package/dist/esm/theme/Theme.js.map +1 -1
- package/dist/esm/theme/index.js.map +1 -1
- package/dist/esm/theme/mergeCSSVariablesResolvers.js.map +1 -1
- package/dist/esm/theme/plasmaCSSVariablesResolver.js.map +1 -1
- package/dist/esm/types/css/index.d.js.map +1 -1
- package/dist/esm/utils/createFactoryComponent.d.ts.map +1 -1
- package/dist/esm/utils/createFactoryComponent.js.map +1 -1
- package/dist/esm/utils/createPolymorphicComponent.js.map +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/overrideComponent.d.ts.map +1 -1
- package/dist/esm/utils/overrideComponent.js.map +1 -1
- package/dist/esm/vars/Notification.vars.js.map +1 -1
- package/dist/esm/vars/Text.vars.js.map +1 -1
- package/package.json +19 -19
- package/src/components/table/Table.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-actions/TableHeaderActions.tsx"],"sourcesContent":["import {Factory, factory, Grid, GridColProps, Group, useProps} from '@mantine/core';\nimport {ReactElement, useMemo} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\nimport {TableActionsList} from './TableActionsList';\n\nexport type TableHeaderActionsStylesNames = 'headerActionsRoot' | 'headerActionsGroup';\n\nexport interface TableHeaderActionsProps extends Omit<GridColProps, 'children'> {}\n\ntype TableHeaderActionsFactory = Factory<{\n props: TableHeaderActionsProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderActionsStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderActionsProps> = {};\n\nexport const TableHeaderActions = factory<TableHeaderActionsFactory>(\n (props: TableHeaderActionsProps, ref): ReactElement => {\n const {store, getStyles, getRowActions} = useTableContext();\n const {style, className, classNames, styles, ...others} = useProps(\n 'PlasmaTableHeaderActions',\n defaultProps,\n props,\n );\n\n const actions = useMemo(() => {\n const selectedRows = store.getSelectedRows();\n if (selectedRows.length === 0) {\n return [];\n }\n return getRowActions(selectedRows);\n }, [store.state.rowSelection]);\n\n if (actions.length === 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Actions}\n ref={ref}\n {...getStyles('headerActionsRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('headerActionsGroup', stylesApiProps)}>\n <TableActionsList actions={actions} variant=\"split\" />\n </Group>\n </Grid.Col>\n );\n },\n);\n"],"names":["TableHeaderActions","defaultProps","factory","props","ref","useTableContext","store","getStyles","getRowActions","useProps","style","className","classNames","styles","others","actions","useMemo","selectedRows","getSelectedRows","length","state","rowSelection","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Actions","Group","gap","TableActionsList","variant"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-actions/TableHeaderActions.tsx"],"sourcesContent":["import {Factory, factory, Grid, GridColProps, Group, useProps} from '@mantine/core';\nimport {ReactElement, useMemo} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\nimport {TableActionsList} from './TableActionsList';\n\nexport type TableHeaderActionsStylesNames = 'headerActionsRoot' | 'headerActionsGroup';\n\nexport interface TableHeaderActionsProps extends Omit<GridColProps, 'children'> {}\n\ntype TableHeaderActionsFactory = Factory<{\n props: TableHeaderActionsProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderActionsStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderActionsProps> = {};\n\nexport const TableHeaderActions = factory<TableHeaderActionsFactory>(\n (props: TableHeaderActionsProps, ref): ReactElement => {\n const {store, getStyles, getRowActions} = useTableContext();\n const {style, className, classNames, styles, ...others} = useProps(\n 'PlasmaTableHeaderActions',\n defaultProps,\n props,\n );\n\n const actions = useMemo(() => {\n const selectedRows = store.getSelectedRows();\n if (selectedRows.length === 0) {\n return [];\n }\n return getRowActions(selectedRows);\n }, [store.state.rowSelection]);\n\n if (actions.length === 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Actions}\n ref={ref}\n {...getStyles('headerActionsRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('headerActionsGroup', stylesApiProps)}>\n <TableActionsList actions={actions} variant=\"split\" />\n </Group>\n </Grid.Col>\n );\n },\n);\n"],"names":["TableHeaderActions","defaultProps","factory","props","ref","useTableContext","store","getStyles","getRowActions","useProps","style","className","classNames","styles","others","actions","useMemo","selectedRows","getSelectedRows","length","state","rowSelection","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Actions","Group","gap","TableActionsList","variant"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;;oBApBuD;qBAChC;qBAED;4BACL;gCACC;AAa/B,IAAMC,eAAiD,CAAC;AAEjD,IAAMD,qBAAqBE,IAAAA,aAAO,EACrC,SAACC,OAAgCC;IAC7B,IAA0CC,mBAAAA,IAAAA,6BAAe,KAAlDC,QAAmCD,iBAAnCC,OAAOC,YAA4BF,iBAA5BE,WAAWC,gBAAiBH,iBAAjBG;IACzB,IAA0DC,YAAAA,IAAAA,cAAQ,EAC9D,4BACAR,cACAE,QAHGO,QAAmDD,UAAnDC,OAAOC,YAA4CF,UAA5CE,WAAWC,aAAiCH,UAAjCG,YAAYC,SAAqBJ,UAArBI,QAAWC,sCAAUL;QAAnDC;QAAOC;QAAWC;QAAYC;;IAMrC,IAAME,UAAUC,IAAAA,cAAO,EAAC;QACpB,IAAMC,eAAeX,MAAMY,eAAe;QAC1C,IAAID,aAAaE,MAAM,KAAK,GAAG;YAC3B,OAAO,EAAE;QACb;QACA,OAAOX,cAAcS;IACzB,GAAG;QAACX,MAAMc,KAAK,CAACC,YAAY;KAAC;IAE7B,IAAIN,QAAQI,MAAM,KAAK,GAAG;QACtB,OAAO;IACX;IAEA,IAAMG,iBAAiB;QAACV,YAAAA;QAAYC,QAAAA;IAAM;IAE1C,qBACI,qBAACU,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,OAAO;QACnCxB,KAAKA;OACDG,UAAU,qBAAqB;QAACI,WAAAA;QAAWD,OAAAA;OAAUY,kBACrDR;kBAEJ,cAAA,qBAACe,WAAK;YAACC,KAAI;WAASvB,UAAU,sBAAsBe;sBAChD,cAAA,qBAACS,kCAAgB;gBAAChB,SAASA;gBAASiB,SAAQ;;;;AAI5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-actions/index.ts"],"sourcesContent":["export * from './TableActionItem';\nexport * from './TableHeaderActions';\n"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-actions/index.ts"],"sourcesContent":["export * from './TableActionItem';\nexport * from './TableHeaderActions';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-column/TableActionsColumn.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {FunctionComponent} from 'react';\nimport {TableActionsList, TableActionsListProps} from '../table-actions/TableActionsList';\nimport {useTableContext} from '../TableContext';\n\n/**\n * Generic column to use when your table needs actions on rows\n */\nexport const TableActionsColumn: ColumnDef<unknown> = {\n id: 'actions',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n cell: (info) => <ActionsMenu info={info} />,\n};\n\ninterface TableActionsColumnProps extends Omit<TableActionsListProps, 'actions'> {\n info: CellContext<unknown, unknown>;\n}\n\nconst defaultProps: Partial<TableActionsColumnProps> = {\n label: 'Actions',\n icon: <MoreSize16Px height={16} />,\n};\n\nconst ActionsMenu: FunctionComponent<TableActionsColumnProps> = (props) => {\n const {getRowActions} = useTableContext();\n\n const {info, ...others} = useProps('PlasmaTableActionsColumn', defaultProps, props);\n\n const actionsElements = getRowActions([info.row.original]);\n return <TableActionsList actions={actionsElements} variant=\"combined\" {...others} />;\n};\n"],"names":["TableActionsColumn","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","ActionsMenu","defaultProps","label","icon","MoreSize16Px","height","props","getRowActions","useTableContext","useProps","others","actionsElements","row","original","TableActionsList","actions","variant"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-column/TableActionsColumn.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {FunctionComponent} from 'react';\nimport {TableActionsList, TableActionsListProps} from '../table-actions/TableActionsList';\nimport {useTableContext} from '../TableContext';\n\n/**\n * Generic column to use when your table needs actions on rows\n */\nexport const TableActionsColumn: ColumnDef<unknown> = {\n id: 'actions',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n cell: (info) => <ActionsMenu info={info} />,\n};\n\ninterface TableActionsColumnProps extends Omit<TableActionsListProps, 'actions'> {\n info: CellContext<unknown, unknown>;\n}\n\nconst defaultProps: Partial<TableActionsColumnProps> = {\n label: 'Actions',\n icon: <MoreSize16Px height={16} />,\n};\n\nconst ActionsMenu: FunctionComponent<TableActionsColumnProps> = (props) => {\n const {getRowActions} = useTableContext();\n\n const {info, ...others} = useProps('PlasmaTableActionsColumn', defaultProps, props);\n\n const actionsElements = getRowActions([info.row.original]);\n return <TableActionsList actions={actionsElements} variant=\"combined\" {...others} />;\n};\n"],"names":["TableActionsColumn","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","ActionsMenu","defaultProps","label","icon","MoreSize16Px","height","props","getRowActions","useTableContext","useProps","others","actionsElements","row","original","TableActionsList","actions","variant"],"mappings":";;;;+BAUaA;;;eAAAA;;;;;;gCAVc;oBACJ;gCAG+B;4BACxB;AAKvB,IAAMA,qBAAyC;IAClDC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;IACNC,MAAM,SAACC;6BAAS,qBAACC;YAAYD,MAAMA;;;AACvC;AAMA,IAAME,eAAiD;IACnDC,OAAO;IACPC,oBAAM,qBAACC,8BAAY;QAACC,QAAQ;;AAChC;AAEA,IAAML,cAA0D,SAACM;IAC7D,IAAM,AAACC,gBAAiBC,IAAAA,6BAAe,IAAhCD;IAEP,IAA0BE,YAAAA,IAAAA,cAAQ,EAAC,4BAA4BR,cAAcK,QAAvE,AAACP,OAAmBU,UAAnBV,MAASW,sCAAUD;QAAnBV;;IAEP,IAAMY,kBAAkBJ,cAAc;QAACR,KAAKa,GAAG,CAACC,QAAQ;KAAC;IACzD,qBAAO,qBAACC,kCAAgB;QAACC,SAASJ;QAAiBK,SAAQ;OAAeN;AAC9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {ArrowHeadDownSize16Px, ArrowHeadUpSize16Px} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, ActionIconProps} from '../../action-icon';\nimport {useTableContext} from '../TableContext';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <ArrowHeadUpSize16Px height={16} />,\n iconCollapsed: <ArrowHeadDownSize16Px height={16} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon\n ref={ref}\n onClick={onClick}\n variant=\"subtle\"\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon>\n ) : null;\n});\n"],"names":["TableAccordionColumn","TableCollapsibleColumn","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","CollapsibleIcon","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","ArrowHeadUpSize16Px","height","iconCollapsed","ArrowHeadDownSize16Px","factory","props","ref","getStyles","useTableContext","useProps","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","ActionIcon","variant","color","radius"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {ArrowHeadDownSize16Px, ArrowHeadUpSize16Px} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, ActionIconProps} from '../../action-icon';\nimport {useTableContext} from '../TableContext';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <ArrowHeadUpSize16Px height={16} />,\n iconCollapsed: <ArrowHeadDownSize16Px height={16} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon\n ref={ref}\n onClick={onClick}\n variant=\"subtle\"\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon>\n ) : null;\n});\n"],"names":["TableAccordionColumn","TableCollapsibleColumn","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","CollapsibleIcon","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","ArrowHeadUpSize16Px","height","iconCollapsed","ArrowHeadDownSize16Px","factory","props","ref","getStyles","useTableContext","useProps","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","ActionIcon","variant","color","radius"],"mappings":";;;;;;;;;;;IA+BaA,oBAAoB;eAApBA;;IARAC,sBAAsB;eAAtBA;;;;;;;gCAvB4C;oBAChB;0BAGC;4BACZ;AAI9B,IAAMC,cAAkC;IACpCC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;AACV;AAKO,IAAMR,yBAA6C,4CACnDC;IACHQ,MAAM,SAACC;6BAAS,qBAACC;YAAgBD,MAAMA;;;;AAMpC,IAAMX,uBAA2C,4CACjDE;IACHQ,MAAM,SAACC;QACH,IAAME,WAAW;YACb,4DAA4D;YAC5D,IAAI,CAACF,KAAKG,GAAG,CAACC,aAAa,IAAI;gBAC3BJ,KAAKK,KAAK,CAACC,qBAAqB,CAAC;YACrC;QACJ;QAEA,qBAAO,qBAACL;YAAgBC,UAAUA;YAAUF,MAAMA;;IACtD;;AAiBJ,IAAMO,eAA8C;IAChDC,4BAAc,qBAACC,qCAAmB;QAACC,QAAQ;;IAC3CC,6BAAe,qBAACC,uCAAqB;QAACF,QAAQ;;AAClD;AAEA,IAAMT,kBAAkBY,IAAAA,aAAO,EAAgC,SAACC,OAAOC;IACnE,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAuGE,YAAAA,IAAAA,cAAQ,EAC3G,gCACAX,cACAO,QAHGd,OAAgGkB,UAAhGlB,MAAME,WAA0FgB,UAA1FhB,UAAUM,eAAgFU,UAAhFV,cAAcG,gBAAkEO,UAAlEP,eAAeQ,aAAmDD,UAAnDC,YAAYC,YAAuCF,UAAvCE,WAAWC,QAA4BH,UAA5BG,OAAOC,SAAqBJ,UAArBI,QAAWC,sCAAUL;QAAhGlB;QAAME;QAAUM;QAAcG;QAAeQ;QAAYC;QAAWC;QAAOC;;IAKlF,IAAME,UAAUxB,KAAKG,GAAG,CAACsB,wBAAwB;IACjD,IAAMC,UAAU,SAACC;QACbA,EAAEC,eAAe;QACjB1B,qBAAAA,+BAAAA,SAAWyB;QACXH;IACJ;IACA,OAAOxB,KAAKG,GAAG,CAAC0B,YAAY,mBACxB,qBAACC,sBAAU;QACPf,KAAKA;QACLW,SAASA;QACTK,SAAQ;QACRC,OAAM;QACNC,QAAO;OACHjB,UAAU,mBAAmB;QAACI,WAAAA;QAAWD,YAAAA;QAAYG,QAAAA;QAAQD,OAAAA;IAAK,IAClEE;kBAEHvB,KAAKG,GAAG,CAACC,aAAa,KAAKI,eAAeG;UAE/C;AACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-column/TableSelectableColumn.tsx"],"sourcesContent":["import {Checkbox, Tooltip} from '@mantine/core';\nimport {ColumnDef} from '@tanstack/table-core';\n\n/**\n * Generic column to use when your table needs multi selection of rows\n */\nexport const TableSelectableColumn: ColumnDef<unknown> = {\n id: 'select',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: ({table}) => {\n const label = table.getIsAllRowsSelected() ? 'Unselect all from this page' : 'Select all from this page';\n return (\n <Tooltip label={label}>\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n flex={1}\n aria-label={label}\n />\n </Tooltip>\n );\n },\n cell: ({row}) => (\n <Checkbox\n checked={row.getIsSelected()}\n indeterminate={row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n flex={1}\n aria-label=\"Select row\"\n />\n ),\n};\n"],"names":["TableSelectableColumn","id","enableSorting","enableHiding","meta","controlColumn","header","table","label","getIsAllRowsSelected","Tooltip","Checkbox","checked","getIsAllPageRowsSelected","indeterminate","getIsSomePageRowsSelected","onChange","getToggleAllPageRowsSelectedHandler","flex","aria-label","cell","row","getIsSelected","getIsSomeSelected","getToggleSelectedHandler"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-column/TableSelectableColumn.tsx"],"sourcesContent":["import {Checkbox, Tooltip} from '@mantine/core';\nimport {ColumnDef} from '@tanstack/table-core';\n\n/**\n * Generic column to use when your table needs multi selection of rows\n */\nexport const TableSelectableColumn: ColumnDef<unknown> = {\n id: 'select',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: ({table}) => {\n const label = table.getIsAllRowsSelected() ? 'Unselect all from this page' : 'Select all from this page';\n return (\n <Tooltip label={label}>\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n flex={1}\n aria-label={label}\n />\n </Tooltip>\n );\n },\n cell: ({row}) => (\n <Checkbox\n checked={row.getIsSelected()}\n indeterminate={row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n flex={1}\n aria-label=\"Select row\"\n />\n ),\n};\n"],"names":["TableSelectableColumn","id","enableSorting","enableHiding","meta","controlColumn","header","table","label","getIsAllRowsSelected","Tooltip","Checkbox","checked","getIsAllPageRowsSelected","indeterminate","getIsSomePageRowsSelected","onChange","getToggleAllPageRowsSelectedHandler","flex","aria-label","cell","row","getIsSelected","getIsSomeSelected","getToggleSelectedHandler"],"mappings":";;;;+BAMaA;;;eAAAA;;;;oBANmB;AAMzB,IAAMA,wBAA4C;IACrDC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;YAAEC,cAAAA;QACN,IAAMC,QAAQD,MAAME,oBAAoB,KAAK,gCAAgC;QAC7E,qBACI,qBAACC,aAAO;YAACF,OAAOA;sBACZ,cAAA,qBAACG,cAAQ;gBACLC,SAASL,MAAMM,wBAAwB;gBACvCC,eAAeP,MAAMQ,yBAAyB;gBAC9CC,UAAUT,MAAMU,mCAAmC;gBACnDC,MAAM;gBACNC,cAAYX;;;IAI5B;IACAY,MAAM;YAAEC,YAAAA;6BACJ,qBAACV,cAAQ;YACLC,SAASS,IAAIC,aAAa;YAC1BR,eAAeO,IAAIE,iBAAiB;YACpCP,UAAUK,IAAIG,wBAAwB;YACtCN,MAAM;YACNC,cAAW;;;AAGvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {\n BoxProps,\n Button,\n Checkbox,\n CompoundStylesApiProps,\n Divider,\n factory,\n Factory,\n Grid,\n Popover,\n ScrollArea,\n Stack,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {flexRender, Header} from '@tanstack/react-table';\nimport {ReactNode} from 'react';\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableColumnsSelectorStylesNames = 'columnSelector' | 'columnSelectorWrapper';\n\nexport interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiProps<TableColumnsSelectorFactory> {\n /**\n * The label of the button\n * @default 'Edit columns'\n */\n label?: ReactNode;\n /**\n * The style variant of the button\n * @default 'outline'\n */\n buttonVariant?: string;\n /**\n * Whether the count of visible columns is shown in the button label.\n * @default false\n */\n showVisibleCountLabel?: boolean;\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n */\n footer?: ReactNode;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport type TableColumnsSelectorFactory = Factory<{\n props: TableColumnsSelectorProps;\n ref: HTMLDivElement;\n stylesNames: TableColumnsSelectorStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableColumnsSelectorProps> = {\n label: 'Edit columns',\n buttonVariant: 'outline',\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n showVisibleCountLabel: false,\n};\n\nexport const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {\n label,\n buttonVariant,\n showVisibleCountLabel,\n maxSelectableColumns,\n footer,\n limitReachedTooltip,\n alwaysVisibleTooltip,\n classNames,\n className,\n styles,\n style,\n vars,\n ...others\n } = useProps('TableColumnsSelector', defaultProps, props);\n const {table} = useTableContext();\n\n const allColumns = table.getAllLeafColumns();\n\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.ColumnsSelector}\n {...getStyles('columnSelector', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Popover withinPortal position=\"bottom\" shadow=\"md\">\n <Popover.Target>\n <Button variant={buttonVariant}>{`${label}${\n showVisibleCountLabel ? ` (${selectedColumnsCount})` : ''\n }`}</Button>\n </Popover.Target>\n <Popover.Dropdown miw={240}>\n <ScrollArea.Autosize mah={154}>\n <Stack {...getStyles('columnSelectorWrapper', stylesApiProps)}>\n {filteredColumns.map((column) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible()) ||\n alwaysVisible;\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n key={column.id}\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={column.getIsVisible() || alwaysVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n })}\n </Stack>\n </ScrollArea.Autosize>\n {maxSelectableColumns && (\n <>\n <Divider mb=\"xs\" mt=\"sm\" />\n {footer}\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n});\n"],"names":["TableColumnsSelector","defaultProps","label","buttonVariant","limitReachedTooltip","alwaysVisibleTooltip","showVisibleCountLabel","factory","props","ref","getStyles","useTableContext","useProps","maxSelectableColumns","footer","classNames","className","styles","style","vars","others","table","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","ColumnsSelector","Popover","withinPortal","position","shadow","Target","Button","variant","Dropdown","miw","ScrollArea","Autosize","mah","Stack","map","alwaysVisible","getCanHide","isDisabled","Tooltip","disabled","div","Checkbox","flexRender","header","name","id","checked","onChange","getToggleVisibilityHandler","Divider","mb","mt"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {\n BoxProps,\n Button,\n Checkbox,\n CompoundStylesApiProps,\n Divider,\n factory,\n Factory,\n Grid,\n Popover,\n ScrollArea,\n Stack,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {flexRender, Header} from '@tanstack/react-table';\nimport {ReactNode} from 'react';\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableColumnsSelectorStylesNames = 'columnSelector' | 'columnSelectorWrapper';\n\nexport interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiProps<TableColumnsSelectorFactory> {\n /**\n * The label of the button\n * @default 'Edit columns'\n */\n label?: ReactNode;\n /**\n * The style variant of the button\n * @default 'outline'\n */\n buttonVariant?: string;\n /**\n * Whether the count of visible columns is shown in the button label.\n * @default false\n */\n showVisibleCountLabel?: boolean;\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n */\n footer?: ReactNode;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport type TableColumnsSelectorFactory = Factory<{\n props: TableColumnsSelectorProps;\n ref: HTMLDivElement;\n stylesNames: TableColumnsSelectorStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableColumnsSelectorProps> = {\n label: 'Edit columns',\n buttonVariant: 'outline',\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n showVisibleCountLabel: false,\n};\n\nexport const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {\n label,\n buttonVariant,\n showVisibleCountLabel,\n maxSelectableColumns,\n footer,\n limitReachedTooltip,\n alwaysVisibleTooltip,\n classNames,\n className,\n styles,\n style,\n vars,\n ...others\n } = useProps('TableColumnsSelector', defaultProps, props);\n const {table} = useTableContext();\n\n const allColumns = table.getAllLeafColumns();\n\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.ColumnsSelector}\n {...getStyles('columnSelector', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Popover withinPortal position=\"bottom\" shadow=\"md\">\n <Popover.Target>\n <Button variant={buttonVariant}>{`${label}${\n showVisibleCountLabel ? ` (${selectedColumnsCount})` : ''\n }`}</Button>\n </Popover.Target>\n <Popover.Dropdown miw={240}>\n <ScrollArea.Autosize mah={154}>\n <Stack {...getStyles('columnSelectorWrapper', stylesApiProps)}>\n {filteredColumns.map((column) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible()) ||\n alwaysVisible;\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n key={column.id}\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={column.getIsVisible() || alwaysVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n })}\n </Stack>\n </ScrollArea.Autosize>\n {maxSelectableColumns && (\n <>\n <Divider mb=\"xs\" mt=\"sm\" />\n {footer}\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n});\n"],"names":["TableColumnsSelector","defaultProps","label","buttonVariant","limitReachedTooltip","alwaysVisibleTooltip","showVisibleCountLabel","factory","props","ref","getStyles","useTableContext","useProps","maxSelectableColumns","footer","classNames","className","styles","style","vars","others","table","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","ColumnsSelector","Popover","withinPortal","position","shadow","Target","Button","variant","Dropdown","miw","ScrollArea","Autosize","mah","Stack","map","alwaysVisible","getCanHide","isDisabled","Tooltip","disabled","div","Checkbox","flexRender","header","name","id","checked","onChange","getToggleVisibilityHandler","Divider","mb","mt"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-date-range-picker/TableDateRangePicker.tsx"],"sourcesContent":["import {CalendarSize16Px} from '@coveord/plasma-react-icons';\nimport {BoxProps, CompoundStylesApiProps, Factory, Grid, InputBase, Popover, factory, useProps} from '@mantine/core';\nimport dayjs from 'dayjs';\n\nimport {useState} from 'react';\nimport {\n DateRangePickerInlineCalendar,\n DateRangePickerInlineCalendarProps,\n DateRangePickerPreset,\n DateRangePickerValue,\n} from '../../date-range-picker';\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableDateRangePickerStylesNames = 'dateRangeRoot';\n\nexport interface TableDateRangePickerProps\n extends BoxProps,\n CompoundStylesApiProps<TableDateRangePickerFactory>,\n Pick<DateRangePickerInlineCalendarProps, 'startProps' | 'endProps' | 'rangeCalendarProps'> {\n /**\n * An object containing date presets.\n * If empty the preset dropdown won't be shown\n *\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n * @default {}\n */\n presets?: Record<string, DateRangePickerPreset>;\n}\n\nexport type TableDateRangePickerFactory = Factory<{\n props: TableDateRangePickerProps;\n ref: HTMLDivElement;\n stylesNames: TableDateRangePickerStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableDateRangePickerProps> = {\n presets: {},\n};\n\nexport const TableDateRangePicker = factory<TableDateRangePickerFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {presets, rangeCalendarProps, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableDateRangePicker',\n defaultProps,\n props,\n );\n const [opened, setOpened] = useState(false);\n\n const onApply = (dates: DateRangePickerValue) => {\n store.setDateRange(dates);\n setOpened(false);\n };\n const onCancel = () => {\n setOpened(false);\n };\n\n const formatDate = (date: Date) => dayjs(date).format('MMM DD, YYYY');\n const formattedRange = `${formatDate(store.state.dateRange[0])} - ${formatDate(store.state.dateRange[1])}`;\n const dateRangeInitialized = store.state.dateRange.every((date) => date instanceof Date);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.DateRangePicker}\n ref={ref}\n {...getStyles('dateRangeRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Popover withinPortal opened={opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n component=\"button\"\n leftSection={<CalendarSize16Px height={16} />}\n miw={220}\n onClick={() => setOpened(true)}\n >\n {dateRangeInitialized ? formattedRange : 'Select date range'}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={store.state.dateRange}\n onApply={onApply}\n onCancel={onCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n});\n"],"names":["TableDateRangePicker","defaultProps","presets","factory","props","ref","useTableContext","store","getStyles","useProps","rangeCalendarProps","classNames","className","styles","style","vars","others","useState","opened","setOpened","onApply","dates","setDateRange","onCancel","formatDate","date","dayjs","format","formattedRange","state","dateRange","dateRangeInitialized","every","Date","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","DateRangePicker","Popover","withinPortal","onChange","Target","InputBase","component","leftSection","CalendarSize16Px","height","miw","onClick","Dropdown","p","DateRangePickerInlineCalendar","initialRange"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-date-range-picker/TableDateRangePicker.tsx"],"sourcesContent":["import {CalendarSize16Px} from '@coveord/plasma-react-icons';\nimport {BoxProps, CompoundStylesApiProps, Factory, Grid, InputBase, Popover, factory, useProps} from '@mantine/core';\nimport dayjs from 'dayjs';\n\nimport {useState} from 'react';\nimport {\n DateRangePickerInlineCalendar,\n DateRangePickerInlineCalendarProps,\n DateRangePickerPreset,\n DateRangePickerValue,\n} from '../../date-range-picker';\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableDateRangePickerStylesNames = 'dateRangeRoot';\n\nexport interface TableDateRangePickerProps\n extends BoxProps,\n CompoundStylesApiProps<TableDateRangePickerFactory>,\n Pick<DateRangePickerInlineCalendarProps, 'startProps' | 'endProps' | 'rangeCalendarProps'> {\n /**\n * An object containing date presets.\n * If empty the preset dropdown won't be shown\n *\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n * @default {}\n */\n presets?: Record<string, DateRangePickerPreset>;\n}\n\nexport type TableDateRangePickerFactory = Factory<{\n props: TableDateRangePickerProps;\n ref: HTMLDivElement;\n stylesNames: TableDateRangePickerStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableDateRangePickerProps> = {\n presets: {},\n};\n\nexport const TableDateRangePicker = factory<TableDateRangePickerFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {presets, rangeCalendarProps, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableDateRangePicker',\n defaultProps,\n props,\n );\n const [opened, setOpened] = useState(false);\n\n const onApply = (dates: DateRangePickerValue) => {\n store.setDateRange(dates);\n setOpened(false);\n };\n const onCancel = () => {\n setOpened(false);\n };\n\n const formatDate = (date: Date) => dayjs(date).format('MMM DD, YYYY');\n const formattedRange = `${formatDate(store.state.dateRange[0])} - ${formatDate(store.state.dateRange[1])}`;\n const dateRangeInitialized = store.state.dateRange.every((date) => date instanceof Date);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.DateRangePicker}\n ref={ref}\n {...getStyles('dateRangeRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Popover withinPortal opened={opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n component=\"button\"\n leftSection={<CalendarSize16Px height={16} />}\n miw={220}\n onClick={() => setOpened(true)}\n >\n {dateRangeInitialized ? formattedRange : 'Select date range'}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={store.state.dateRange}\n onApply={onApply}\n onCancel={onCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n});\n"],"names":["TableDateRangePicker","defaultProps","presets","factory","props","ref","useTableContext","store","getStyles","useProps","rangeCalendarProps","classNames","className","styles","style","vars","others","useState","opened","setOpened","onApply","dates","setDateRange","onCancel","formatDate","date","dayjs","format","formattedRange","state","dateRange","dateRangeInitialized","every","Date","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","DateRangePicker","Popover","withinPortal","onChange","Target","InputBase","component","leftSection","CalendarSize16Px","height","miw","onClick","Dropdown","p","DateRangePickerInlineCalendar","initialRange"],"mappings":";;;;+BA6CaA;;;eAAAA;;;;;;;;;;gCA7CkB;oBACsE;8DACnF;qBAEK;+BAMhB;qBAC4B;4BACL;AA6B9B,IAAMC,eAAmD;IACrDC,SAAS,CAAC;AACd;AAEO,IAAMF,uBAAuBG,IAAAA,aAAO,EAA8B,SAACC,OAAOC;IAC7E,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAA6FC,YAAAA,IAAAA,cAAQ,EACjG,8BACAR,cACAG,QAHGF,UAAsFO,UAAtFP,SAASQ,qBAA6ED,UAA7EC,oBAAoBC,aAAyDF,UAAzDE,YAAYC,YAA6CH,UAA7CG,WAAWC,SAAkCJ,UAAlCI,QAAQC,QAA0BL,UAA1BK,OAAOC,OAAmBN,UAAnBM,MAASC,sCAAUP;QAAtFP;QAASQ;QAAoBC;QAAYC;QAAWC;QAAQC;QAAOC;;IAK1E,IAA4BE,+BAAAA,IAAAA,eAAQ,EAAC,YAA9BC,SAAqBD,cAAbE,YAAaF;IAE5B,IAAMG,UAAU,SAACC;QACbd,MAAMe,YAAY,CAACD;QACnBF,UAAU;IACd;IACA,IAAMI,WAAW;QACbJ,UAAU;IACd;IAEA,IAAMK,aAAa,SAACC;eAAeC,IAAAA,cAAK,EAACD,MAAME,MAAM,CAAC;;IACtD,IAAMC,iBAAiB,AAAC,GAA4CJ,OAA1CA,WAAWjB,MAAMsB,KAAK,CAACC,SAAS,CAAC,EAAE,GAAE,OAA0C,OAArCN,WAAWjB,MAAMsB,KAAK,CAACC,SAAS,CAAC,EAAE;IACvG,IAAMC,uBAAuBxB,MAAMsB,KAAK,CAACC,SAAS,CAACE,KAAK,CAAC,SAACP;eAASA,AAAI,aAAYQ,CAAhBR,MAAgBQ;;IAEnF,IAAMC,iBAAiB;QAACvB,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACsB,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,eAAe;QAC3CnC,KAAKA;OACDG,UAAU,iBAAiB;QAACI,WAAAA;QAAWE,OAAAA;OAAUoB,kBACjDlB;kBAEJ,cAAA,sBAACyB,aAAO;YAACC,YAAY;YAACxB,QAAQA;YAAQyB,UAAUxB;;8BAC5C,qBAACsB,aAAO,CAACG,MAAM;8BACX,cAAA,qBAACC,eAAS;wBACNC,WAAU;wBACVC,2BAAa,qBAACC,kCAAgB;4BAACC,QAAQ;;wBACvCC,KAAK;wBACLC,SAAS;mCAAMhC,UAAU;;kCAExBY,uBAAuBH,iBAAiB;;;8BAGjD,qBAACa,aAAO,CAACW,QAAQ;oBAACC,GAAG;8BACjB,cAAA,qBAACC,8CAA6B;wBAC1BC,cAAchD,MAAMsB,KAAK,CAACC,SAAS;wBACnCV,SAASA;wBACTG,UAAUA;wBACVrB,SAASA;wBACTQ,oBAAoBA;;;;;;AAM5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"sourcesContent":["import {CrossSize16Px, FilterSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, BoxProps, CompoundStylesApiProps, Factory, Grid, TextInput, factory, useProps} from '@mantine/core';\nimport {useDebouncedValue, useDidUpdate} from '@mantine/hooks';\nimport {ChangeEventHandler, MouseEventHandler, useEffect, useState} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableFilterStylesNames = 'filterRoot' | 'filterWrapper' | 'filterEmpty';\n\nexport interface TableFilterProps extends BoxProps, CompoundStylesApiProps<TableFilterFactory> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport type TableFilterFactory = Factory<{\n props: TableFilterProps;\n ref: HTMLDivElement;\n stylesNames: TableFilterStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableFilterProps> = {\n placeholder: 'Search by any field',\n};\n\nexport const TableFilter = factory<TableFilterFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {placeholder, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableFilter',\n defaultProps,\n props,\n );\n const [filter, setFilter] = useState(store.state.globalFilter);\n const [debounced, cancel] = useDebouncedValue(filter, 300);\n\n useDidUpdate(() => {\n store.setGlobalFilter(debounced);\n store.setPagination({pageIndex: 0, pageSize: store.state.pagination.pageSize});\n\n return cancel;\n }, [debounced]);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n setFilter(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n setFilter('');\n };\n\n useEffect(() => {\n setFilter(store.state.globalFilter);\n }, [store.state.globalFilter]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Filter}\n ref={ref}\n {...getStyles('filterRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <TextInput\n {...getStyles('filterWrapper', stylesApiProps)}\n placeholder={placeholder}\n autoComplete=\"off\"\n rightSection={\n filter ? (\n <ActionIcon onClick={handleClear} color=\"gray\" variant=\"subtle\">\n <CrossSize16Px height={16} />\n </ActionIcon>\n ) : (\n <FilterSize16Px height={16} {...getStyles('filterEmpty', stylesApiProps)} />\n )\n }\n value={filter}\n onChange={handleChange}\n />\n </Grid.Col>\n );\n});\n"],"names":["TableFilter","defaultProps","placeholder","factory","props","ref","useTableContext","store","getStyles","useProps","classNames","className","styles","style","vars","others","useState","state","globalFilter","filter","setFilter","useDebouncedValue","debounced","cancel","useDidUpdate","setGlobalFilter","setPagination","pageIndex","pageSize","pagination","handleChange","event","value","currentTarget","handleClear","useEffect","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Filter","TextInput","autoComplete","rightSection","ActionIcon","onClick","color","variant","CrossSize16Px","height","FilterSize16Px","onChange"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"sourcesContent":["import {CrossSize16Px, FilterSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, BoxProps, CompoundStylesApiProps, Factory, Grid, TextInput, factory, useProps} from '@mantine/core';\nimport {useDebouncedValue, useDidUpdate} from '@mantine/hooks';\nimport {ChangeEventHandler, MouseEventHandler, useEffect, useState} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableFilterStylesNames = 'filterRoot' | 'filterWrapper' | 'filterEmpty';\n\nexport interface TableFilterProps extends BoxProps, CompoundStylesApiProps<TableFilterFactory> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport type TableFilterFactory = Factory<{\n props: TableFilterProps;\n ref: HTMLDivElement;\n stylesNames: TableFilterStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableFilterProps> = {\n placeholder: 'Search by any field',\n};\n\nexport const TableFilter = factory<TableFilterFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {placeholder, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableFilter',\n defaultProps,\n props,\n );\n const [filter, setFilter] = useState(store.state.globalFilter);\n const [debounced, cancel] = useDebouncedValue(filter, 300);\n\n useDidUpdate(() => {\n store.setGlobalFilter(debounced);\n store.setPagination({pageIndex: 0, pageSize: store.state.pagination.pageSize});\n\n return cancel;\n }, [debounced]);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n setFilter(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n setFilter('');\n };\n\n useEffect(() => {\n setFilter(store.state.globalFilter);\n }, [store.state.globalFilter]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Filter}\n ref={ref}\n {...getStyles('filterRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <TextInput\n {...getStyles('filterWrapper', stylesApiProps)}\n placeholder={placeholder}\n autoComplete=\"off\"\n rightSection={\n filter ? (\n <ActionIcon onClick={handleClear} color=\"gray\" variant=\"subtle\">\n <CrossSize16Px height={16} />\n </ActionIcon>\n ) : (\n <FilterSize16Px height={16} {...getStyles('filterEmpty', stylesApiProps)} />\n )\n }\n value={filter}\n onChange={handleChange}\n />\n </Grid.Col>\n );\n});\n"],"names":["TableFilter","defaultProps","placeholder","factory","props","ref","useTableContext","store","getStyles","useProps","classNames","className","styles","style","vars","others","useState","state","globalFilter","filter","setFilter","useDebouncedValue","debounced","cancel","useDidUpdate","setGlobalFilter","setPagination","pageIndex","pageSize","pagination","handleChange","event","value","currentTarget","handleClear","useEffect","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Filter","TextInput","autoComplete","rightSection","ActionIcon","onClick","color","variant","CrossSize16Px","height","FilterSize16Px","onChange"],"mappings":";;;;+BA8BaA;;;eAAAA;;;;;;;;gCA9B+B;oBAC4D;qBAC1D;qBAC2B;qBAEtC;4BACL;AAoB9B,IAAMC,eAA0C;IAC5CC,aAAa;AACjB;AAEO,IAAMF,cAAcG,IAAAA,aAAO,EAAqB,SAACC,OAAOC;IAC3D,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAA6EC,YAAAA,IAAAA,cAAQ,EACjF,qBACAR,cACAG,QAHGF,cAAsEO,UAAtEP,aAAaQ,aAAyDD,UAAzDC,YAAYC,YAA6CF,UAA7CE,WAAWC,SAAkCH,UAAlCG,QAAQC,QAA0BJ,UAA1BI,OAAOC,OAAmBL,UAAnBK,MAASC,sCAAUN;QAAtEP;QAAaQ;QAAYC;QAAWC;QAAQC;QAAOC;;IAK1D,IAA4BE,+BAAAA,IAAAA,eAAQ,EAACT,MAAMU,KAAK,CAACC,YAAY,OAAtDC,SAAqBH,cAAbI,YAAaJ;IAC5B,IAA4BK,wCAAAA,IAAAA,wBAAiB,EAACF,QAAQ,UAA/CG,YAAqBD,uBAAVE,SAAUF;IAE5BG,IAAAA,mBAAY,EAAC;QACTjB,MAAMkB,eAAe,CAACH;QACtBf,MAAMmB,aAAa,CAAC;YAACC,WAAW;YAAGC,UAAUrB,MAAMU,KAAK,CAACY,UAAU,CAACD,QAAQ;QAAA;QAE5E,OAAOL;IACX,GAAG;QAACD;KAAU;IAEd,IAAMQ,eAAqD,SAACC;QACxD,IAAM,AAACC,QAASD,MAAME,aAAa,CAA5BD;QACPZ,UAAUY;IACd;IAEA,IAAME,cAAoD;QACtDd,UAAU;IACd;IAEAe,IAAAA,gBAAS,EAAC;QACNf,UAAUb,MAAMU,KAAK,CAACC,YAAY;IACtC,GAAG;QAACX,MAAMU,KAAK,CAACC,YAAY;KAAC;IAE7B,IAAMkB,iBAAiB;QAAC1B,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACyB,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,MAAM;QAClCrC,KAAKA;OACDG,UAAU,cAAc;QAACG,WAAAA;QAAWE,OAAAA;OAAUuB,kBAC9CrB;kBAEJ,cAAA,qBAAC4B,eAAS,8CACFnC,UAAU,iBAAiB4B;YAC/BlC,aAAaA;YACb0C,cAAa;YACbC,cACI1B,uBACI,qBAAC2B,gBAAU;gBAACC,SAASb;gBAAac,OAAM;gBAAOC,SAAQ;0BACnD,cAAA,qBAACC,+BAAa;oBAACC,QAAQ;;+BAG3B,qBAACC,gCAAc;gBAACD,QAAQ;eAAQ3C,UAAU,eAAe4B;YAGjEJ,OAAOb;YACPkC,UAAUvB;;;AAI1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-footer/TableFooter.tsx"],"sourcesContent":["import {Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, ReactNode} from 'react';\n\nexport interface TableFooterProps extends GroupProps {\n children?: ReactNode;\n}\n\nexport const TableFooter: FunctionComponent<TableFooterProps> = ({...others}) => (\n <Group justify=\"space-between\" px=\"xl\" py=\"md\" {...others} />\n);\n"],"names":["TableFooter","others","Group","justify","px","py"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-footer/TableFooter.tsx"],"sourcesContent":["import {Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, ReactNode} from 'react';\n\nexport interface TableFooterProps extends GroupProps {\n children?: ReactNode;\n}\n\nexport const TableFooter: FunctionComponent<TableFooterProps> = ({...others}) => (\n <Group justify=\"space-between\" px=\"xl\" py=\"md\" {...others} />\n);\n"],"names":["TableFooter","others","Group","justify","px","py"],"mappings":";;;;+BAOaA;;;eAAAA;;;;;;;oBAPmB;AAOzB,IAAMA,cAAmD;QAAKC;yBACjE,qBAACC,WAAK;QAACC,SAAQ;QAAgBC,IAAG;QAAKC,IAAG;OAASJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-header/TableHeader.tsx"],"sourcesContent":["import {CrossSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, BoxProps, CompoundStylesApiProps, factory, Factory, Grid, Tooltip, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\n\nimport {Button} from '../../button';\nimport {TableLayoutControl} from '../layouts/TableLayoutControl';\nimport {TableComponentsOrder} from '../Table';\nimport {TableHeaderActions} from '../table-actions';\nimport {useTableContext} from '../TableContext';\n\nexport type TableHeaderStylesNames = 'headerRoot' | 'headerGrid' | 'headerGridInner' | 'headerCol';\n\nexport interface TableHeaderProps\n extends Omit<BoxProps, 'classNames' | 'styles' | 'vars'>,\n CompoundStylesApiProps<TableHeaderFactory> {\n /* Children of header (ie: actions, datepicker, etc.) */\n children?: ReactNode;\n unselectAllLabel?: string;\n selectedCountLabel?: (count: number) => string;\n /**\n * Whether to show actions when rows are selected\n *\n * default true\n */\n showActions?: boolean;\n}\n\nexport type TableHeaderFactory = Factory<{\n props: TableHeaderProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderProps> = {\n unselectAllLabel: 'Unselect all',\n selectedCountLabel: (count) => `${count} selected`,\n showActions: true,\n};\n\nexport const TableHeader = factory<TableHeaderFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {\n showActions,\n unselectAllLabel,\n selectedCountLabel,\n children,\n classNames,\n className,\n styles,\n style,\n vars: _vars,\n ...others\n } = useProps('PlasmaTableHeader', defaultProps, props);\n const selectedRows = store.getSelectedRows();\n\n const stylesApiProps = {classNames, styles};\n const innerStyles = getStyles('headerGridInner', stylesApiProps);\n const gridStyles = getStyles('headerGrid', stylesApiProps);\n\n return (\n <Box ref={ref} {...getStyles('headerRoot', {className, style, ...stylesApiProps})} {...others}>\n <Grid\n justify=\"flex-start\"\n align=\"center\"\n classNames={{inner: innerStyles.className, root: gridStyles.className}}\n styles={{inner: innerStyles.style, root: gridStyles.style}}\n >\n {store.multiRowSelectionEnabled && selectedRows.length > 0 ? (\n <Grid.Col\n span=\"auto\"\n {...getStyles('headerCol', stylesApiProps)}\n order={TableComponentsOrder.MultiSelectInfo}\n >\n <Tooltip label={unselectAllLabel}>\n <Button\n onClick={store.clearRowSelection}\n variant=\"subtle\"\n disabled={!store.rowSelectionEnabled}\n leftSection={<CrossSize16Px height={16} />}\n >\n {selectedCountLabel(selectedRows.length)}\n </Button>\n </Tooltip>\n </Grid.Col>\n ) : null}\n {children}\n {showActions ? <TableHeaderActions /> : null}\n <TableLayoutControl />\n </Grid>\n </Box>\n );\n});\n"],"names":["TableHeader","defaultProps","unselectAllLabel","selectedCountLabel","count","showActions","factory","props","ref","useTableContext","store","getStyles","useProps","children","classNames","className","styles","style","vars","_vars","others","selectedRows","getSelectedRows","stylesApiProps","innerStyles","gridStyles","Box","Grid","justify","align","inner","root","multiRowSelectionEnabled","length","Col","span","order","TableComponentsOrder","MultiSelectInfo","Tooltip","label","Button","onClick","clearRowSelection","variant","disabled","rowSelectionEnabled","leftSection","CrossSize16Px","height","TableHeaderActions","TableLayoutControl"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-header/TableHeader.tsx"],"sourcesContent":["import {CrossSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, BoxProps, CompoundStylesApiProps, factory, Factory, Grid, Tooltip, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\n\nimport {Button} from '../../button';\nimport {TableLayoutControl} from '../layouts/TableLayoutControl';\nimport {TableComponentsOrder} from '../Table';\nimport {TableHeaderActions} from '../table-actions';\nimport {useTableContext} from '../TableContext';\n\nexport type TableHeaderStylesNames = 'headerRoot' | 'headerGrid' | 'headerGridInner' | 'headerCol';\n\nexport interface TableHeaderProps\n extends Omit<BoxProps, 'classNames' | 'styles' | 'vars'>,\n CompoundStylesApiProps<TableHeaderFactory> {\n /* Children of header (ie: actions, datepicker, etc.) */\n children?: ReactNode;\n unselectAllLabel?: string;\n selectedCountLabel?: (count: number) => string;\n /**\n * Whether to show actions when rows are selected\n *\n * default true\n */\n showActions?: boolean;\n}\n\nexport type TableHeaderFactory = Factory<{\n props: TableHeaderProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderProps> = {\n unselectAllLabel: 'Unselect all',\n selectedCountLabel: (count) => `${count} selected`,\n showActions: true,\n};\n\nexport const TableHeader = factory<TableHeaderFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {\n showActions,\n unselectAllLabel,\n selectedCountLabel,\n children,\n classNames,\n className,\n styles,\n style,\n vars: _vars,\n ...others\n } = useProps('PlasmaTableHeader', defaultProps, props);\n const selectedRows = store.getSelectedRows();\n\n const stylesApiProps = {classNames, styles};\n const innerStyles = getStyles('headerGridInner', stylesApiProps);\n const gridStyles = getStyles('headerGrid', stylesApiProps);\n\n return (\n <Box ref={ref} {...getStyles('headerRoot', {className, style, ...stylesApiProps})} {...others}>\n <Grid\n justify=\"flex-start\"\n align=\"center\"\n classNames={{inner: innerStyles.className, root: gridStyles.className}}\n styles={{inner: innerStyles.style, root: gridStyles.style}}\n >\n {store.multiRowSelectionEnabled && selectedRows.length > 0 ? (\n <Grid.Col\n span=\"auto\"\n {...getStyles('headerCol', stylesApiProps)}\n order={TableComponentsOrder.MultiSelectInfo}\n >\n <Tooltip label={unselectAllLabel}>\n <Button\n onClick={store.clearRowSelection}\n variant=\"subtle\"\n disabled={!store.rowSelectionEnabled}\n leftSection={<CrossSize16Px height={16} />}\n >\n {selectedCountLabel(selectedRows.length)}\n </Button>\n </Tooltip>\n </Grid.Col>\n ) : null}\n {children}\n {showActions ? <TableHeaderActions /> : null}\n <TableLayoutControl />\n </Grid>\n </Box>\n );\n});\n"],"names":["TableHeader","defaultProps","unselectAllLabel","selectedCountLabel","count","showActions","factory","props","ref","useTableContext","store","getStyles","useProps","children","classNames","className","styles","style","vars","_vars","others","selectedRows","getSelectedRows","stylesApiProps","innerStyles","gridStyles","Box","Grid","justify","align","inner","root","multiRowSelectionEnabled","length","Col","span","order","TableComponentsOrder","MultiSelectInfo","Tooltip","label","Button","onClick","clearRowSelection","variant","disabled","rowSelectionEnabled","leftSection","CrossSize16Px","height","TableHeaderActions","TableLayoutControl"],"mappings":";;;;+BAwCaA;;;eAAAA;;;;;;;gCAxCe;oBACmE;sBAG1E;kCACY;qBACE;4BACF;4BACH;AA0B9B,IAAMC,eAA0C;IAC5CC,kBAAkB;IAClBC,oBAAoB,SAACC;eAAU,AAAC,GAAQ,OAANA,OAAM;;IACxCC,aAAa;AACjB;AAEO,IAAML,cAAcM,IAAAA,aAAO,EAAqB,SAACC,OAAOC;IAC3D,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAWIC,YAAAA,IAAAA,cAAQ,EAAC,qBAAqBX,cAAcM,QAV5CF,cAUAO,UAVAP,aACAH,mBASAU,UATAV,kBACAC,qBAQAS,UARAT,oBACAU,WAOAD,UAPAC,UACAC,aAMAF,UANAE,YACAC,YAKAH,UALAG,WACAC,SAIAJ,UAJAI,QACAC,QAGAL,UAHAK,OACAC,AAAMC,QAENP,UAFAM,MACGE,sCACHR;QAVAP;QACAH;QACAC;QACAU;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGJ,IAAMG,eAAeX,MAAMY,eAAe;IAE1C,IAAMC,iBAAiB;QAACT,YAAAA;QAAYE,QAAAA;IAAM;IAC1C,IAAMQ,cAAcb,UAAU,mBAAmBY;IACjD,IAAME,aAAad,UAAU,cAAcY;IAE3C,qBACI,qBAACG,SAAG;QAAClB,KAAKA;OAASG,UAAU,cAAc;QAACI,WAAAA;QAAWE,OAAAA;OAAUM,kBAAsBH;kBACnF,cAAA,sBAACO,UAAI;YACDC,SAAQ;YACRC,OAAM;YACNf,YAAY;gBAACgB,OAAON,YAAYT,SAAS;gBAAEgB,MAAMN,WAAWV,SAAS;YAAA;YACrEC,QAAQ;gBAACc,OAAON,YAAYP,KAAK;gBAAEc,MAAMN,WAAWR,KAAK;YAAA;;gBAExDP,MAAMsB,wBAAwB,IAAIX,aAAaY,MAAM,GAAG,kBACrD,qBAACN,UAAI,CAACO,GAAG;oBACLC,MAAK;mBACDxB,UAAU,aAAaY;oBAC3Ba,OAAOC,2BAAoB,CAACC,eAAe;8BAE3C,cAAA,qBAACC,aAAO;wBAACC,OAAOtC;kCACZ,cAAA,qBAACuC,cAAM;4BACHC,SAAShC,MAAMiC,iBAAiB;4BAChCC,SAAQ;4BACRC,UAAU,CAACnC,MAAMoC,mBAAmB;4BACpCC,2BAAa,qBAACC,+BAAa;gCAACC,QAAQ;;sCAEnC9C,mBAAmBkB,aAAaY,MAAM;;;sBAInD;gBACHpB;gBACAR,4BAAc,qBAAC6C,gCAAkB,QAAM;8BACxC,qBAACC,sCAAkB;;;;AAInC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-header/Th.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAkC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAC,MAAM,EAAkC,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAiB,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAC,0BAA0B,EAAW,MAAM,gBAAgB,CAAC;AAGpE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,QAAQ,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAC1F,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5E;AAcD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAMH,eAAO,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-header/Th.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAkC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAC,MAAM,EAAkC,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAiB,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAC,0BAA0B,EAAW,MAAM,gBAAgB,CAAC;AAGpE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,QAAQ,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAC1F,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5E;AAcD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAMH,eAAO,MAAM,EAAE;KAAI,CAAC,SAAU,OAAO,CAAC,CAAC,CAAC,GAAG;QAAC,GAAG,CAAC,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAA;KAAC;;eAV1E,OAAO;aACT,oBAAoB;qBACZ,kBAAkB;kBACrB,IAAI;;CAkEjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-header/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {BoxProps, CompoundStylesApiProps, Factory, Group, UnstyledButton, useProps} from '@mantine/core';\nimport {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';\nimport {AriaAttributes, ComponentType, ForwardedRef, SVGProps} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../utils';\nimport {useTableContext} from '../TableContext';\n\nexport type TableThStylesNames = 'th';\n\nexport type SortState = 'asc' | 'desc' | 'none';\n\nexport interface ThProps<T = unknown> extends BoxProps, CompoundStylesApiProps<TableThFactory> {\n header: Header<T, unknown>;\n sortingIcons?: Record<SortState, ComponentType<SVGProps<SVGSVGElement>>>;\n}\n\nconst SortingIcons: ThProps['sortingIcons'] = {\n asc: ArrowUpSize16Px,\n desc: ArrowDownSize16Px,\n none: DoubleArrowHeadVSize16Px,\n};\n\nconst SortingLabels: Record<SortState, AriaAttributes['aria-sort']> = {\n asc: 'ascending',\n desc: 'descending',\n none: 'none',\n} as const;\n\nexport type TableThFactory = Factory<{\n props: ThProps;\n ref: HTMLTableCellElement;\n stylesNames: TableThStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ThProps> = {\n sortingIcons: SortingIcons,\n};\n\nexport const Th = <T,>(props: ThProps<T> & {ref?: ForwardedRef<HTMLTableCellElement>}) => {\n const {getStyles} = useTableContext();\n const {header, sortingIcons, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableTh',\n defaultProps as Partial<ThProps<T>>,\n props,\n );\n\n const columnSizing = {\n ...defaultColumnSizing,\n size: header.column.columnDef.size,\n minSize: header.column.columnDef.minSize,\n maxSize: header.column.columnDef.maxSize,\n };\n\n const thStyles = getStyles('th', {classNames, className, styles, style});\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th\n className={thStyles.className}\n style={{\n ...thStyles.style,\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n {...others}\n >\n <Group wrap=\"nowrap\" gap=\"xs\">\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Group>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted() || 'none';\n const Icon = sortingIcons[sortingOrder];\n\n return (\n <UnstyledButton\n component=\"th\"\n onClick={onSort}\n aria-sort={SortingLabels[sortingOrder]}\n data-control={true}\n {...thStyles}\n {...others}\n >\n <Group wrap=\"nowrap\" gap=\"xs\">\n {flexRender(header.column.columnDef.header, header.getContext())}\n <Icon height={16} width={16} />\n </Group>\n </UnstyledButton>\n );\n};\nTh.extend = identity as CustomComponentThemeExtend<TableThFactory>;\n"],"names":["Th","SortingIcons","asc","ArrowUpSize16Px","desc","ArrowDownSize16Px","none","DoubleArrowHeadVSize16Px","SortingLabels","defaultProps","sortingIcons","props","getStyles","useTableContext","useProps","header","classNames","className","styles","style","vars","others","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","thStyles","isPlaceholder","getCanSort","th","width","minWidth","maxWidth","Group","wrap","gap","flexRender","getContext","onSort","getToggleSortingHandler","sortingOrder","getIsSorted","Icon","UnstyledButton","component","onClick","aria-sort","data-control","height","extend","identity"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-header/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {BoxProps, CompoundStylesApiProps, Factory, Group, UnstyledButton, useProps} from '@mantine/core';\nimport {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';\nimport {AriaAttributes, ComponentType, ForwardedRef, SVGProps} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../utils';\nimport {useTableContext} from '../TableContext';\n\nexport type TableThStylesNames = 'th';\n\nexport type SortState = 'asc' | 'desc' | 'none';\n\nexport interface ThProps<T = unknown> extends BoxProps, CompoundStylesApiProps<TableThFactory> {\n header: Header<T, unknown>;\n sortingIcons?: Record<SortState, ComponentType<SVGProps<SVGSVGElement>>>;\n}\n\nconst SortingIcons: ThProps['sortingIcons'] = {\n asc: ArrowUpSize16Px,\n desc: ArrowDownSize16Px,\n none: DoubleArrowHeadVSize16Px,\n};\n\nconst SortingLabels: Record<SortState, AriaAttributes['aria-sort']> = {\n asc: 'ascending',\n desc: 'descending',\n none: 'none',\n} as const;\n\nexport type TableThFactory = Factory<{\n props: ThProps;\n ref: HTMLTableCellElement;\n stylesNames: TableThStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ThProps> = {\n sortingIcons: SortingIcons,\n};\n\nexport const Th = <T,>(props: ThProps<T> & {ref?: ForwardedRef<HTMLTableCellElement>}) => {\n const {getStyles} = useTableContext();\n const {header, sortingIcons, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableTh',\n defaultProps as Partial<ThProps<T>>,\n props,\n );\n\n const columnSizing = {\n ...defaultColumnSizing,\n size: header.column.columnDef.size,\n minSize: header.column.columnDef.minSize,\n maxSize: header.column.columnDef.maxSize,\n };\n\n const thStyles = getStyles('th', {classNames, className, styles, style});\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th\n className={thStyles.className}\n style={{\n ...thStyles.style,\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n {...others}\n >\n <Group wrap=\"nowrap\" gap=\"xs\">\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Group>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted() || 'none';\n const Icon = sortingIcons[sortingOrder];\n\n return (\n <UnstyledButton\n component=\"th\"\n onClick={onSort}\n aria-sort={SortingLabels[sortingOrder]}\n data-control={true}\n {...thStyles}\n {...others}\n >\n <Group wrap=\"nowrap\" gap=\"xs\">\n {flexRender(header.column.columnDef.header, header.getContext())}\n <Icon height={16} width={16} />\n </Group>\n </UnstyledButton>\n );\n};\nTh.extend = identity as CustomComponentThemeExtend<TableThFactory>;\n"],"names":["Th","SortingIcons","asc","ArrowUpSize16Px","desc","ArrowDownSize16Px","none","DoubleArrowHeadVSize16Px","SortingLabels","defaultProps","sortingIcons","props","getStyles","useTableContext","useProps","header","classNames","className","styles","style","vars","others","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","thStyles","isPlaceholder","getCanSort","th","width","minWidth","maxWidth","Group","wrap","gap","flexRender","getContext","onSort","getToggleSortingHandler","sortingOrder","getIsSorted","Icon","UnstyledButton","component","onClick","aria-sort","data-control","height","extend","identity"],"mappings":";;;;+BAuCaA;;;eAAAA;;;;;;;gCAvC8D;oBACc;0BACnC;qBAEH;4BACrB;AAW9B,IAAMC,eAAwC;IAC1CC,KAAKC,iCAAe;IACpBC,MAAMC,mCAAiB;IACvBC,MAAMC,0CAAwB;AAClC;AAEA,IAAMC,gBAAgE;IAClEN,KAAK;IACLE,MAAM;IACNE,MAAM;AACV;AASA,IAAMG,eAAiC;IACnCC,cAAcT;AAClB;AAEO,IAAMD,KAAK,SAAKW;IACnB,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAsFE,YAAAA,IAAAA,cAAQ,EAC1F,iBACAL,cACAE,QAHGI,SAA+ED,UAA/EC,QAAQL,eAAuEI,UAAvEJ,cAAcM,aAAyDF,UAAzDE,YAAYC,YAA6CH,UAA7CG,WAAWC,SAAkCJ,UAAlCI,QAAQC,QAA0BL,UAA1BK,OAAOC,OAAmBN,UAAnBM,MAASC,sCAAUP;QAA/EC;QAAQL;QAAcM;QAAYC;QAAWC;QAAQC;QAAOC;;IAMnE,IAAME,eAAe,4CACdC,+BAAmB;QACtBC,MAAMT,OAAOU,MAAM,CAACC,SAAS,CAACF,IAAI;QAClCG,SAASZ,OAAOU,MAAM,CAACC,SAAS,CAACC,OAAO;QACxCC,SAASb,OAAOU,MAAM,CAACC,SAAS,CAACE,OAAO;;IAG5C,IAAMC,WAAWjB,UAAU,MAAM;QAACI,YAAAA;QAAYC,WAAAA;QAAWC,QAAAA;QAAQC,OAAAA;IAAK;IAEtE,IAAIJ,OAAOe,aAAa,EAAE;QACtB,OAAO;IACX;IAEA,IAAI,CAACf,OAAOU,MAAM,CAACM,UAAU,IAAI;YAMVT;QALnB,qBACI,qBAACU;YACGf,WAAWY,SAASZ,SAAS;YAC7BE,OAAO,4CACAU,SAASV,KAAK;gBACjBc,OAAOX,CAAAA,qBAAAA,aAAaE,IAAI,cAAjBF,gCAAAA,qBAAqB;gBAC5BY,UAAUZ,aAAaK,OAAO;gBAC9BQ,UAAUb,aAAaM,OAAO;;WAE9BP;sBAEJ,cAAA,qBAACe,WAAK;gBAACC,MAAK;gBAASC,KAAI;0BACpBC,IAAAA,sBAAU,EAACxB,OAAOU,MAAM,CAACC,SAAS,CAACX,MAAM,EAAEA,OAAOyB,UAAU;;;IAI7E;IAEA,IAAMC,SAAS1B,OAAOU,MAAM,CAACiB,uBAAuB;IACpD,IAAMC,eAAe5B,OAAOU,MAAM,CAACmB,WAAW,MAAM;IACpD,IAAMC,OAAOnC,YAAY,CAACiC,aAAa;IAEvC,qBACI,qBAACG,oBAAc;QACXC,WAAU;QACVC,SAASP;QACTQ,aAAWzC,aAAa,CAACmC,aAAa;QACtCO,gBAAc;OACVrB,UACAR;kBAEJ,cAAA,sBAACe,WAAK;YAACC,MAAK;YAASC,KAAI;;gBACpBC,IAAAA,sBAAU,EAACxB,OAAOU,MAAM,CAACC,SAAS,CAACX,MAAM,EAAEA,OAAOyB,UAAU;8BAC7D,qBAACK;oBAAKM,QAAQ;oBAAIlB,OAAO;;;;;AAIzC;AACAjC,GAAGoD,MAAM,GAAGC,eAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-last-updated/TableLastUpdated.tsx"],"sourcesContent":["import {BoxProps, CompoundStylesApiProps, factory, Factory, Group, Text, useProps} from '@mantine/core';\nimport {useDidUpdate} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useState} from 'react';\nimport {useTableContext} from '../TableContext';\n\nexport type TableLastUpdatedStylesNames = 'lastUpdatedRoot' | 'lastUpdatedLabel';\n\nexport interface TableLastUpdatedProps extends BoxProps, CompoundStylesApiProps<TableLastUpdatedFactory> {\n /**\n * Label to contextualize the date\n *\n * @default \"Last update:\"\n */\n label?: string;\n}\nexport type TableLastUpdatedFactory = Factory<{\n props: TableLastUpdatedProps;\n ref: HTMLDivElement;\n stylesNames: TableLastUpdatedStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableLastUpdatedProps> = {\n label: 'Last update:',\n};\n\nexport const TableLastUpdated = factory<TableLastUpdatedFactory>((props, ref) => {\n const {table, getStyles} = useTableContext();\n const {label, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableLastUpdated',\n defaultProps,\n props,\n );\n const [time, setTime] = useState(new Date());\n\n useDidUpdate(() => {\n setTime(new Date());\n }, [table.options.data]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Group\n px=\"xl\"\n justify=\"right\"\n ref={ref}\n {...getStyles('lastUpdatedRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Text size=\"xs\" {...getStyles('lastUpdatedLabel', {className, style, ...stylesApiProps})}>\n {label}\n <span role=\"timer\">{dayjs(time).format('h:mm:ss A')}</span>\n </Text>\n </Group>\n );\n});\n"],"names":["TableLastUpdated","defaultProps","label","factory","props","ref","useTableContext","table","getStyles","useProps","classNames","className","styles","style","vars","others","useState","Date","time","setTime","useDidUpdate","options","data","stylesApiProps","Group","px","justify","Text","size","span","role","dayjs","format"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-last-updated/TableLastUpdated.tsx"],"sourcesContent":["import {BoxProps, CompoundStylesApiProps, factory, Factory, Group, Text, useProps} from '@mantine/core';\nimport {useDidUpdate} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useState} from 'react';\nimport {useTableContext} from '../TableContext';\n\nexport type TableLastUpdatedStylesNames = 'lastUpdatedRoot' | 'lastUpdatedLabel';\n\nexport interface TableLastUpdatedProps extends BoxProps, CompoundStylesApiProps<TableLastUpdatedFactory> {\n /**\n * Label to contextualize the date\n *\n * @default \"Last update:\"\n */\n label?: string;\n}\nexport type TableLastUpdatedFactory = Factory<{\n props: TableLastUpdatedProps;\n ref: HTMLDivElement;\n stylesNames: TableLastUpdatedStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableLastUpdatedProps> = {\n label: 'Last update:',\n};\n\nexport const TableLastUpdated = factory<TableLastUpdatedFactory>((props, ref) => {\n const {table, getStyles} = useTableContext();\n const {label, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableLastUpdated',\n defaultProps,\n props,\n );\n const [time, setTime] = useState(new Date());\n\n useDidUpdate(() => {\n setTime(new Date());\n }, [table.options.data]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Group\n px=\"xl\"\n justify=\"right\"\n ref={ref}\n {...getStyles('lastUpdatedRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Text size=\"xs\" {...getStyles('lastUpdatedLabel', {className, style, ...stylesApiProps})}>\n {label}\n <span role=\"timer\">{dayjs(time).format('h:mm:ss A')}</span>\n </Text>\n </Group>\n );\n});\n"],"names":["TableLastUpdated","defaultProps","label","factory","props","ref","useTableContext","table","getStyles","useProps","classNames","className","styles","style","vars","others","useState","Date","time","setTime","useDidUpdate","options","data","stylesApiProps","Group","px","justify","Text","size","span","role","dayjs","format"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;;;;;;oBA3B2E;qBAC7D;8DACT;qBACK;4BACO;AAmB9B,IAAMC,eAA+C;IACjDC,OAAO;AACX;AAEO,IAAMF,mBAAmBG,IAAAA,aAAO,EAA0B,SAACC,OAAOC;IACrE,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAAuEC,YAAAA,IAAAA,cAAQ,EAC3E,0BACAR,cACAG,QAHGF,QAAgEO,UAAhEP,OAAOQ,aAAyDD,UAAzDC,YAAYC,YAA6CF,UAA7CE,WAAWC,SAAkCH,UAAlCG,QAAQC,QAA0BJ,UAA1BI,OAAOC,OAAmBL,UAAnBK,MAASC,sCAAUN;QAAhEP;QAAOQ;QAAYC;QAAWC;QAAQC;QAAOC;;IAKpD,IAAwBE,+BAAAA,IAAAA,eAAQ,EAAC,IAAIC,aAA9BC,OAAiBF,cAAXG,UAAWH;IAExBI,IAAAA,mBAAY,EAAC;QACTD,QAAQ,IAAIF;IAChB,GAAG;QAACV,MAAMc,OAAO,CAACC,IAAI;KAAC;IAEvB,IAAMC,iBAAiB;QAACb,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACY,WAAK;QACFC,IAAG;QACHC,SAAQ;QACRrB,KAAKA;OACDG,UAAU,mBAAmB;QAACG,WAAAA;QAAWE,OAAAA;OAAUU,kBACnDR;kBAEJ,cAAA,sBAACY,UAAI;YAACC,MAAK;WAASpB,UAAU,oBAAoB;YAACG,WAAAA;YAAWE,OAAAA;WAAUU;;gBACnErB;8BACD,qBAAC2B;oBAAKC,MAAK;8BAASC,IAAAA,cAAK,EAACb,MAAMc,MAAM,CAAC;;;;;AAIvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-loading/TableLoading.tsx"],"sourcesContent":["import {Skeleton, SkeletonProps} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nexport const TableLoading: FunctionComponent<SkeletonProps> = (props) => (\n <Skeleton {...props} style={!props.visible ? {borderRadius: 0} : undefined}>\n {props.children}\n </Skeleton>\n);\n"],"names":["TableLoading","props","Skeleton","style","visible","borderRadius","undefined","children"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-loading/TableLoading.tsx"],"sourcesContent":["import {Skeleton, SkeletonProps} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nexport const TableLoading: FunctionComponent<SkeletonProps> = (props) => (\n <Skeleton {...props} style={!props.visible ? {borderRadius: 0} : undefined}>\n {props.children}\n </Skeleton>\n);\n"],"names":["TableLoading","props","Skeleton","style","visible","borderRadius","undefined","children"],"mappings":";;;;+BAGaA;;;eAAAA;;;;;;oBAHyB;AAG/B,IAAMA,eAAiD,SAACC;yBAC3D,qBAACC,cAAQ,8CAAKD;QAAOE,OAAO,CAACF,MAAMG,OAAO,GAAG;YAACC,cAAc;QAAC,IAAIC;kBAC5DL,MAAMM,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-no-data/TableNoData.tsx"],"sourcesContent":["import {FunctionComponent, ReactNode} from 'react';\n\nexport interface TableNoDataProps {\n children: ReactNode;\n}\n\nexport const TableNoData: FunctionComponent<TableNoDataProps> = ({children}) => <>{children}</>;\n"],"names":["TableNoData","children"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-no-data/TableNoData.tsx"],"sourcesContent":["import {FunctionComponent, ReactNode} from 'react';\n\nexport interface TableNoDataProps {\n children: ReactNode;\n}\n\nexport const TableNoData: FunctionComponent<TableNoDataProps> = ({children}) => <>{children}</>;\n"],"names":["TableNoData","children"],"mappings":";;;;+BAMaA;;;eAAAA;;;;AAAN,IAAMA,cAAmD;QAAEC,iBAAAA;yBAAc;kBAAGA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-pagination/TablePagination.tsx"],"sourcesContent":["import {Pagination} from '@mantine/core';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {FunctionComponent} from 'react';\n\nimport {TablePaginationProps} from './TablePagination.types';\nimport {useTableContext} from '../TableContext';\n\nexport const TablePagination: FunctionComponent<TablePaginationProps> = ({onPageChange}) => {\n const {store, table, containerRef} = useTableContext();\n\n const updatePage = (newPage: number) => {\n onPageChange?.(newPage - 1);\n store.setPagination((prev) => ({...prev, pageIndex: newPage - 1}));\n containerRef.current.scrollIntoView({behavior: 'smooth'});\n };\n\n const total = table.getPageCount();\n\n useDidUpdate(() => {\n if (store.state.pagination.pageIndex + 1 > total && total > 0) {\n updatePage(total);\n }\n }, [store.state.pagination.pageIndex, total]);\n\n return (\n <Pagination\n value={store.state.pagination.pageIndex + 1}\n onChange={updatePage}\n total={total}\n boundaries={0}\n size=\"md\"\n gap=\"xs\"\n getControlProps={(control) => {\n switch (control) {\n case 'previous':\n return {\n component: 'button',\n 'aria-label': 'previous page',\n };\n case 'next':\n return {component: 'button', 'aria-label': 'next page'};\n default:\n return {};\n }\n }}\n />\n );\n};\n"],"names":["TablePagination","onPageChange","useTableContext","store","table","containerRef","updatePage","newPage","setPagination","prev","pageIndex","current","scrollIntoView","behavior","total","getPageCount","useDidUpdate","state","pagination","Pagination","value","onChange","boundaries","size","gap","getControlProps","control","component"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-pagination/TablePagination.tsx"],"sourcesContent":["import {Pagination} from '@mantine/core';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {FunctionComponent} from 'react';\n\nimport {TablePaginationProps} from './TablePagination.types';\nimport {useTableContext} from '../TableContext';\n\nexport const TablePagination: FunctionComponent<TablePaginationProps> = ({onPageChange}) => {\n const {store, table, containerRef} = useTableContext();\n\n const updatePage = (newPage: number) => {\n onPageChange?.(newPage - 1);\n store.setPagination((prev) => ({...prev, pageIndex: newPage - 1}));\n containerRef.current.scrollIntoView({behavior: 'smooth'});\n };\n\n const total = table.getPageCount();\n\n useDidUpdate(() => {\n if (store.state.pagination.pageIndex + 1 > total && total > 0) {\n updatePage(total);\n }\n }, [store.state.pagination.pageIndex, total]);\n\n return (\n <Pagination\n value={store.state.pagination.pageIndex + 1}\n onChange={updatePage}\n total={total}\n boundaries={0}\n size=\"md\"\n gap=\"xs\"\n getControlProps={(control) => {\n switch (control) {\n case 'previous':\n return {\n component: 'button',\n 'aria-label': 'previous page',\n };\n case 'next':\n return {component: 'button', 'aria-label': 'next page'};\n default:\n return {};\n }\n }}\n />\n );\n};\n"],"names":["TablePagination","onPageChange","useTableContext","store","table","containerRef","updatePage","newPage","setPagination","prev","pageIndex","current","scrollIntoView","behavior","total","getPageCount","useDidUpdate","state","pagination","Pagination","value","onChange","boundaries","size","gap","getControlProps","control","component"],"mappings":";;;;+BAOaA;;;eAAAA;;;;;;oBAPY;qBACE;4BAIG;AAEvB,IAAMA,kBAA2D;QAAEC,qBAAAA;IACtE,IAAqCC,mBAAAA,IAAAA,6BAAe,KAA7CC,QAA8BD,iBAA9BC,OAAOC,QAAuBF,iBAAvBE,OAAOC,eAAgBH,iBAAhBG;IAErB,IAAMC,aAAa,SAACC;QAChBN,yBAAAA,mCAAAA,aAAeM,UAAU;QACzBJ,MAAMK,aAAa,CAAC,SAACC;mBAAU,4CAAIA;gBAAMC,WAAWH,UAAU;;;QAC9DF,aAAaM,OAAO,CAACC,cAAc,CAAC;YAACC,UAAU;QAAQ;IAC3D;IAEA,IAAMC,QAAQV,MAAMW,YAAY;IAEhCC,IAAAA,mBAAY,EAAC;QACT,IAAIb,MAAMc,KAAK,CAACC,UAAU,CAACR,SAAS,GAAG,IAAII,SAASA,QAAQ,GAAG;YAC3DR,WAAWQ;QACf;IACJ,GAAG;QAACX,MAAMc,KAAK,CAACC,UAAU,CAACR,SAAS;QAAEI;KAAM;IAE5C,qBACI,qBAACK,gBAAU;QACPC,OAAOjB,MAAMc,KAAK,CAACC,UAAU,CAACR,SAAS,GAAG;QAC1CW,UAAUf;QACVQ,OAAOA;QACPQ,YAAY;QACZC,MAAK;QACLC,KAAI;QACJC,iBAAiB,SAACC;YACd,OAAQA;gBACJ,KAAK;oBACD,OAAO;wBACHC,WAAW;wBACX,cAAc;oBAClB;gBACJ,KAAK;oBACD,OAAO;wBAACA,WAAW;wBAAU,cAAc;oBAAW;gBAC1D;oBACI,OAAO,CAAC;YAChB;QACJ;;AAGZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-pagination/TablePagination.types.ts"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-pagination/TablePagination.types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-per-page/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {FunctionComponent, useMemo} from 'react';\n\nimport {useTableContext} from '../TableContext';\nimport {TablePerPageProps} from './TablePerPage.types';\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n onPerPageChange,\n}) => {\n const {store, table} = useTableContext();\n const choices = useMemo(() => values.map((value) => value.toString()), [values]);\n\n const updatePerPage = (newPerPage: string) => {\n onPerPageChange?.(Number(newPerPage));\n store.setPagination({pageIndex: 0, pageSize: parseInt(newPerPage, 10)});\n };\n\n return table.getPageCount() > 0 ? (\n <Group gap=\"sm\">\n <Text fw={500}>{label}</Text>\n <SegmentedControl\n value={store.state.pagination.pageSize.toString() ?? choices[1] ?? choices[0]}\n onChange={updatePerPage}\n data={choices}\n size=\"sm\"\n />\n </Group>\n ) : null;\n};\n\nTablePerPage.DEFAULT_SIZE = 50;\n"],"names":["TablePerPage","label","values","onPerPageChange","useTableContext","store","table","choices","useMemo","map","value","toString","updatePerPage","newPerPage","Number","setPagination","pageIndex","pageSize","parseInt","getPageCount","Group","gap","Text","fw","SegmentedControl","state","pagination","onChange","data","size","DEFAULT_SIZE"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-per-page/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {FunctionComponent, useMemo} from 'react';\n\nimport {useTableContext} from '../TableContext';\nimport {TablePerPageProps} from './TablePerPage.types';\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n onPerPageChange,\n}) => {\n const {store, table} = useTableContext();\n const choices = useMemo(() => values.map((value) => value.toString()), [values]);\n\n const updatePerPage = (newPerPage: string) => {\n onPerPageChange?.(Number(newPerPage));\n store.setPagination({pageIndex: 0, pageSize: parseInt(newPerPage, 10)});\n };\n\n return table.getPageCount() > 0 ? (\n <Group gap=\"sm\">\n <Text fw={500}>{label}</Text>\n <SegmentedControl\n value={store.state.pagination.pageSize.toString() ?? choices[1] ?? choices[0]}\n onChange={updatePerPage}\n data={choices}\n size=\"sm\"\n />\n </Group>\n ) : null;\n};\n\nTablePerPage.DEFAULT_SIZE = 50;\n"],"names":["TablePerPage","label","values","onPerPageChange","useTableContext","store","table","choices","useMemo","map","value","toString","updatePerPage","newPerPage","Number","setPagination","pageIndex","pageSize","parseInt","getPageCount","Group","gap","Text","fw","SegmentedControl","state","pagination","onChange","data","size","DEFAULT_SIZE"],"mappings":";;;;+BAMaA;;;eAAAA;;;;oBAN+B;qBACH;4BAEX;AAGvB,IAAMA,eAA8E;6BACvFC,OAAAA,kCAAQ,yDACRC,QAAAA,oCAAS;QAAC;QAAI;QAAI;KAAI,kBACtBC,wBAAAA;IAEA,IAAuBC,mBAAAA,IAAAA,6BAAe,KAA/BC,QAAgBD,iBAAhBC,OAAOC,QAASF,iBAATE;IACd,IAAMC,UAAUC,IAAAA,cAAO,EAAC;eAAMN,OAAOO,GAAG,CAAC,SAACC;mBAAUA,MAAMC,QAAQ;;OAAK;QAACT;KAAO;IAE/E,IAAMU,gBAAgB,SAACC;QACnBV,4BAAAA,sCAAAA,gBAAkBW,OAAOD;QACzBR,MAAMU,aAAa,CAAC;YAACC,WAAW;YAAGC,UAAUC,SAASL,YAAY;QAAG;IACzE;QAMmBR,2CAAAA;IAJnB,OAAOC,MAAMa,YAAY,KAAK,kBAC1B,sBAACC,WAAK;QAACC,KAAI;;0BACP,qBAACC,UAAI;gBAACC,IAAI;0BAAMtB;;0BAChB,qBAACuB,sBAAgB;gBACbd,OAAOL,CAAAA,OAAAA,CAAAA,4CAAAA,MAAMoB,KAAK,CAACC,UAAU,CAACT,QAAQ,CAACN,QAAQ,gBAAxCN,uDAAAA,4CAA8CE,OAAO,CAAC,EAAE,cAAxDF,kBAAAA,OAA4DE,OAAO,CAAC,EAAE;gBAC7EoB,UAAUf;gBACVgB,MAAMrB;gBACNsB,MAAK;;;SAGb;AACR;AAEA7B,aAAa8B,YAAY,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-per-page/TablePerPage.types.ts"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-per-page/TablePerPage.types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"sourcesContent":["import {\n BoxProps,\n ComboboxData,\n CompoundStylesApiProps,\n factory,\n Factory,\n Grid,\n Group,\n Select,\n Text,\n useProps,\n} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TablePredicateStylesNames = 'predicate' | 'predicateWrapper' | 'predicateLabel' | 'predicateSelect';\n\nexport interface TablePredicateProps extends BoxProps, CompoundStylesApiProps<TablePredicateFactory> {\n /**\n * Unique identifier for this predicate. Will be used to access the selected value in the table state\n */\n id: string;\n /**\n * The values to display in the predicate\n */\n data: ComboboxData;\n /**\n * Input label (not displayed for now)\n *\n * @default default to the predicate id\n */\n label?: string;\n}\n\nexport type TablePredicateFactory = Factory<{\n props: TablePredicateProps;\n ref: HTMLDivElement;\n stylesNames: TablePredicateStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TablePredicateProps> = {};\n\nexport const TablePredicate: FunctionComponent<TablePredicateProps> = factory<TablePredicateFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {id, data, label, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTablePredicate',\n defaultProps,\n props,\n );\n\n const handleChange = (newValue: string) => {\n store.setPredicates((prev) => ({...prev, [id]: newValue}));\n store.setPagination((prev) => ({...prev, pageIndex: 0}));\n };\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Predicate}\n ref={ref}\n {...getStyles('predicate', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('predicateWrapper', stylesApiProps)}>\n {label ? <Text {...getStyles('predicateLabel', stylesApiProps)}>{label}:</Text> : null}\n <Select\n comboboxProps={{withinPortal: true}}\n value={store.state.predicates[id]}\n onChange={handleChange}\n data={data}\n aria-label={label ?? id}\n searchable={data.length > 7}\n {...getStyles('predicateSelect', stylesApiProps)}\n />\n </Group>\n </Grid.Col>\n );\n});\n"],"names":["TablePredicate","defaultProps","factory","props","ref","useTableContext","store","getStyles","useProps","id","data","label","classNames","className","styles","style","vars","others","handleChange","newValue","setPredicates","prev","setPagination","pageIndex","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Predicate","Group","gap","Text","Select","comboboxProps","withinPortal","value","state","predicates","onChange","aria-label","searchable","length"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"sourcesContent":["import {\n BoxProps,\n ComboboxData,\n CompoundStylesApiProps,\n factory,\n Factory,\n Grid,\n Group,\n Select,\n Text,\n useProps,\n} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TablePredicateStylesNames = 'predicate' | 'predicateWrapper' | 'predicateLabel' | 'predicateSelect';\n\nexport interface TablePredicateProps extends BoxProps, CompoundStylesApiProps<TablePredicateFactory> {\n /**\n * Unique identifier for this predicate. Will be used to access the selected value in the table state\n */\n id: string;\n /**\n * The values to display in the predicate\n */\n data: ComboboxData;\n /**\n * Input label (not displayed for now)\n *\n * @default default to the predicate id\n */\n label?: string;\n}\n\nexport type TablePredicateFactory = Factory<{\n props: TablePredicateProps;\n ref: HTMLDivElement;\n stylesNames: TablePredicateStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TablePredicateProps> = {};\n\nexport const TablePredicate: FunctionComponent<TablePredicateProps> = factory<TablePredicateFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {id, data, label, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTablePredicate',\n defaultProps,\n props,\n );\n\n const handleChange = (newValue: string) => {\n store.setPredicates((prev) => ({...prev, [id]: newValue}));\n store.setPagination((prev) => ({...prev, pageIndex: 0}));\n };\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Predicate}\n ref={ref}\n {...getStyles('predicate', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('predicateWrapper', stylesApiProps)}>\n {label ? <Text {...getStyles('predicateLabel', stylesApiProps)}>{label}:</Text> : null}\n <Select\n comboboxProps={{withinPortal: true}}\n value={store.state.predicates[id]}\n onChange={handleChange}\n data={data}\n aria-label={label ?? id}\n searchable={data.length > 7}\n {...getStyles('predicateSelect', stylesApiProps)}\n />\n </Group>\n </Grid.Col>\n );\n});\n"],"names":["TablePredicate","defaultProps","factory","props","ref","useTableContext","store","getStyles","useProps","id","data","label","classNames","className","styles","style","vars","others","handleChange","newValue","setPredicates","prev","setPagination","pageIndex","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Predicate","Group","gap","Text","Select","comboboxProps","withinPortal","value","state","predicates","onChange","aria-label","searchable","length"],"mappings":";;;;+BA6CaA;;;eAAAA;;;;;;;;oBAlCN;qBAG4B;4BACL;AA4B9B,IAAMC,eAA6C,CAAC;AAE7C,IAAMD,iBAAyDE,IAAAA,aAAO,EAAwB,SAACC,OAAOC;IACzG,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAAiFC,YAAAA,IAAAA,cAAQ,EACrF,wBACAP,cACAE,QAHGM,KAA0ED,UAA1EC,IAAIC,OAAsEF,UAAtEE,MAAMC,QAAgEH,UAAhEG,OAAOC,aAAyDJ,UAAzDI,YAAYC,YAA6CL,UAA7CK,WAAWC,SAAkCN,UAAlCM,QAAQC,QAA0BP,UAA1BO,OAAOC,OAAmBR,UAAnBQ,MAASC,sCAAUT;QAA1EC;QAAIC;QAAMC;QAAOC;QAAYC;QAAWC;QAAQC;QAAOC;;IAM9D,IAAME,eAAe,SAACC;QAClBb,MAAMc,aAAa,CAAC,SAACC;mBAAU,4CAAIA,OAAM,uBAACZ,IAAKU;;QAC/Cb,MAAMgB,aAAa,CAAC,SAACD;mBAAU,4CAAIA;gBAAME,WAAW;;;IACxD;IAEA,IAAMC,iBAAiB;QAACZ,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACW,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,SAAS;QACrC1B,KAAKA;OACDG,UAAU,aAAa;QAACM,WAAAA;QAAWE,OAAAA;OAAUS,kBAC7CP;kBAEJ,cAAA,sBAACc,WAAK;YAACC,KAAI;WAASzB,UAAU,oBAAoBiB;;gBAC7Cb,sBAAQ,sBAACsB,UAAI,8CAAK1B,UAAU,kBAAkBiB;;wBAAkBb;wBAAM;;sBAAW;8BAClF,qBAACuB,YAAM;oBACHC,eAAe;wBAACC,cAAc;oBAAI;oBAClCC,OAAO/B,MAAMgC,KAAK,CAACC,UAAU,CAAC9B,GAAG;oBACjC+B,UAAUtB;oBACVR,MAAMA;oBACN+B,cAAY9B,kBAAAA,mBAAAA,QAASF;oBACrBiC,YAAYhC,KAAKiC,MAAM,GAAG;mBACtBpC,UAAU,mBAAmBiB;;;;AAKrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/use-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/use-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/use-table.ts"],"sourcesContent":["import {useDidUpdate} from '@mantine/hooks';\nimport {type PaginationState, type SortingState, type ExpandedState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {useCallback, useMemo, useState} from 'react';\nimport {type DateRangePickerValue} from '../date-range-picker';\n\n// Create a deeply optional version of another type\ntype PartialDeep<T> = T extends object\n ? {\n [P in keyof T]?: PartialDeep<T[P]>;\n }\n : T;\n\nexport interface TableState<TData = unknown> {\n /**\n * Current pagination state\n *\n * @default { pageIndex: 0, pageSize: 50 }\n */\n pagination: PaginationState;\n /**\n * Total number of entries in the table.\n * This number is used to calculate the number of pages in the pagination.\n * When null, the number of pages is calculated using the current data length.\n *\n * @default null\n */\n totalEntries: number | null;\n /**\n * Current sorting state\n *\n * @default []\n */\n sorting: SortingState;\n /**\n * Current global filter value\n *\n * @default ''\n */\n globalFilter: string;\n\n /**\n * Current expanded state\n *\n * @default {}\n */\n expanded: ExpandedState;\n /**\n * Predicates and their current value\n *\n * @default {}\n */\n predicates: Record<string, string>;\n /**\n * Layout currently selected. When null, the first layout is used.\n *\n * @default null\n */\n layout: string | null;\n /**\n * Currently selected date range\n *\n * @default [null, null]\n */\n dateRange: DateRangePickerValue;\n /**\n * Currently selected rows\n *\n * @default {}\n */\n rowSelection: Record<string, TData>;\n /**\n * Columns that are currently visible\n *\n * @default {}\n */\n columnVisibility: Record<string, boolean>;\n}\n\nexport interface TableStore<TData = unknown> {\n /**\n * Current state of the table.\n */\n state: TableState<TData>;\n /**\n * Allows to change the pagination state.\n */\n setPagination: React.Dispatch<React.SetStateAction<TableState<TData>['pagination']>>;\n /**\n * Allows to change the total number of entries.\n */\n setTotalEntries: React.Dispatch<React.SetStateAction<TableState<TData>['totalEntries']>>;\n /**\n * Allows to change the sorting state.\n */\n setSorting: React.Dispatch<React.SetStateAction<TableState<TData>['sorting']>>;\n /**\n * Allows to change the global filter value.\n */\n setGlobalFilter: React.Dispatch<React.SetStateAction<TableState<TData>['globalFilter']>>;\n /**\n * Allows to change the rows expanded state.\n */\n setExpanded: React.Dispatch<React.SetStateAction<TableState<TData>['expanded']>>;\n /**\n * Allows to change the predicates values.\n */\n setPredicates: React.Dispatch<React.SetStateAction<TableState<TData>['predicates']>>;\n /**\n * Allows to change the selected layout.\n */\n setLayout: React.Dispatch<React.SetStateAction<TableState<TData>['layout']>>;\n /**\n * Allows to change the selected date range.\n */\n setDateRange: React.Dispatch<React.SetStateAction<TableState<TData>['dateRange']>>;\n /**\n * Allows to change the current row selection.\n */\n setRowSelection: React.Dispatch<React.SetStateAction<TableState<TData>['rowSelection']>>;\n /**\n * Allows to change the visible columns.\n */\n setColumnVisibility: React.Dispatch<React.SetStateAction<TableState<TData>['columnVisibility']>>;\n /**\n * Whether the table is currently filtered.\n */\n isFiltered: boolean;\n /**\n * Whether the table has data when unfiltered.\n *\n * This is derived from the totalEntries so make sure you set that number correctly, even if you're using a client side table.\n */\n isVacant: boolean;\n /**\n * Clear currently applied filters.\n */\n clearFilters: () => void;\n /**\n * Deselects all currently selected rows.\n */\n clearRowSelection: () => void;\n /**\n * Get currently selected rows.\n */\n getSelectedRows: () => TData[];\n /**\n * Get currently selected row\n */\n getSelectedRow: () => TData | null;\n /**\n * Whether the user can select multiple rows at the same time.\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether rows can be selected.\n */\n rowSelectionEnabled: boolean;\n /**\n * Whether row selection is forced.\n */\n rowSelectionForced: boolean;\n}\n\nexport interface UseTableOptions<TData = unknown> {\n /**\n * Initial state of the table.\n */\n initialState?: PartialDeep<TableState<TData>>;\n /**\n * Whether rows can be selected.\n *\n * @default true\n */\n enableRowSelection?: boolean;\n /**\n * Whether multiple rows can be selected at the same time.\n *\n * @default false\n */\n enableMultiRowSelection?: boolean;\n /**\n * Forces the user to always have one row selected.\n * When activating that setting, a good practice is to have a row already selected in the initial state.\n *\n * @default false\n */\n forceSelection?: boolean;\n}\n\nconst defaultOptions: UseTableOptions = {\n enableRowSelection: true,\n enableMultiRowSelection: false,\n forceSelection: false,\n};\n\nconst defaultState: Partial<TableState> = {\n pagination: {\n pageIndex: 0,\n pageSize: 50,\n },\n totalEntries: null,\n sorting: [],\n globalFilter: '',\n predicates: {},\n layout: null,\n dateRange: [null, null],\n rowSelection: {},\n columnVisibility: {},\n};\n\nexport const useTable = <TData>(userOptions: UseTableOptions<TData> = {}): TableStore<TData> => {\n const options: UseTableOptions<TData> = defaultsDeep({}, userOptions, defaultOptions);\n const initialState: TableState<TData> = defaultsDeep({}, options.initialState, defaultState);\n\n const [pagination, setPagination] = useState<TableState<TData>['pagination']>(\n initialState.pagination as PaginationState,\n );\n const [totalEntries, _setTotalEntries] = useState<TableState<TData>['totalEntries']>(initialState.totalEntries);\n const [unfilteredTotalEntries, setUnfilteredTotalEntries] = useState<TableState<TData>['totalEntries']>(\n initialState.totalEntries,\n );\n const [sorting, setSorting] = useState<TableState<TData>['sorting']>(initialState.sorting as SortingState);\n const [globalFilter, setGlobalFilter] = useState<TableState<TData>['globalFilter']>(initialState.globalFilter);\n const [expanded, setExpanded] = useState<TableState<TData>['expanded']>(initialState.expanded as ExpandedState);\n const [predicates, setPredicates] = useState<TableState<TData>['predicates']>(initialState.predicates);\n const [layout, setLayout] = useState<TableState<TData>['layout']>(initialState.layout);\n const [dateRange, setDateRange] = useState<TableState<TData>['dateRange']>(initialState.dateRange);\n const [rowSelection, setRowSelection] = useState<TableState<TData>['rowSelection']>(initialState.rowSelection);\n const [columnVisibility, setColumnVisibility] = useState<TableState<TData>['columnVisibility']>(\n initialState.columnVisibility,\n );\n\n const isFiltered =\n !!globalFilter ||\n Object.keys(predicates).some((predicate) => !!predicates[predicate]) ||\n !!dateRange?.[0] ||\n !!dateRange?.[1];\n\n const isVacant = unfilteredTotalEntries === 0;\n\n const setTotalEntries: typeof _setTotalEntries = useCallback(\n (updater) => {\n _setTotalEntries((old) => {\n const newTotalEntries = updater instanceof Function ? updater(old) : updater;\n if (!isFiltered) {\n setUnfilteredTotalEntries(newTotalEntries);\n }\n return newTotalEntries;\n });\n },\n [isFiltered],\n );\n\n const clearFilters = useCallback(() => {\n setPredicates(initialState.predicates);\n setGlobalFilter('');\n }, []);\n\n const clearRowSelection = useCallback(() => {\n setRowSelection({});\n }, []);\n\n const getSelectedRows = useCallback(() => Object.values(rowSelection), [rowSelection]);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n useDidUpdate(() => {\n if (!options.enableMultiRowSelection) {\n clearRowSelection();\n }\n }, [globalFilter, pagination, sorting, dateRange, predicates]);\n\n const state = useMemo(\n () => ({\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n }),\n [\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n ],\n );\n\n return {\n state,\n setPagination,\n setTotalEntries,\n setSorting,\n setGlobalFilter,\n setExpanded,\n setPredicates,\n setLayout,\n setDateRange,\n setRowSelection,\n setColumnVisibility,\n isFiltered,\n isVacant,\n clearFilters,\n clearRowSelection,\n getSelectedRows,\n getSelectedRow,\n rowSelectionEnabled: options.enableRowSelection,\n rowSelectionForced: options.forceSelection,\n multiRowSelectionEnabled: options.enableMultiRowSelection,\n };\n};\n"],"names":["useTable","defaultOptions","enableRowSelection","enableMultiRowSelection","forceSelection","defaultState","pagination","pageIndex","pageSize","totalEntries","sorting","globalFilter","predicates","layout","dateRange","rowSelection","columnVisibility","userOptions","options","defaultsDeep","initialState","useState","setPagination","_setTotalEntries","unfilteredTotalEntries","setUnfilteredTotalEntries","setSorting","setGlobalFilter","expanded","setExpanded","setPredicates","setLayout","setDateRange","setRowSelection","setColumnVisibility","isFiltered","Object","keys","some","predicate","isVacant","setTotalEntries","useCallback","updater","old","newTotalEntries","Function","clearFilters","clearRowSelection","getSelectedRows","values","getSelectedRow","useDidUpdate","state","useMemo","rowSelectionEnabled","rowSelectionForced","multiRowSelectionEnabled"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/use-table.ts"],"sourcesContent":["import {useDidUpdate} from '@mantine/hooks';\nimport {type PaginationState, type SortingState, type ExpandedState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {useCallback, useMemo, useState} from 'react';\nimport {type DateRangePickerValue} from '../date-range-picker';\n\n// Create a deeply optional version of another type\ntype PartialDeep<T> = T extends object\n ? {\n [P in keyof T]?: PartialDeep<T[P]>;\n }\n : T;\n\nexport interface TableState<TData = unknown> {\n /**\n * Current pagination state\n *\n * @default { pageIndex: 0, pageSize: 50 }\n */\n pagination: PaginationState;\n /**\n * Total number of entries in the table.\n * This number is used to calculate the number of pages in the pagination.\n * When null, the number of pages is calculated using the current data length.\n *\n * @default null\n */\n totalEntries: number | null;\n /**\n * Current sorting state\n *\n * @default []\n */\n sorting: SortingState;\n /**\n * Current global filter value\n *\n * @default ''\n */\n globalFilter: string;\n\n /**\n * Current expanded state\n *\n * @default {}\n */\n expanded: ExpandedState;\n /**\n * Predicates and their current value\n *\n * @default {}\n */\n predicates: Record<string, string>;\n /**\n * Layout currently selected. When null, the first layout is used.\n *\n * @default null\n */\n layout: string | null;\n /**\n * Currently selected date range\n *\n * @default [null, null]\n */\n dateRange: DateRangePickerValue;\n /**\n * Currently selected rows\n *\n * @default {}\n */\n rowSelection: Record<string, TData>;\n /**\n * Columns that are currently visible\n *\n * @default {}\n */\n columnVisibility: Record<string, boolean>;\n}\n\nexport interface TableStore<TData = unknown> {\n /**\n * Current state of the table.\n */\n state: TableState<TData>;\n /**\n * Allows to change the pagination state.\n */\n setPagination: React.Dispatch<React.SetStateAction<TableState<TData>['pagination']>>;\n /**\n * Allows to change the total number of entries.\n */\n setTotalEntries: React.Dispatch<React.SetStateAction<TableState<TData>['totalEntries']>>;\n /**\n * Allows to change the sorting state.\n */\n setSorting: React.Dispatch<React.SetStateAction<TableState<TData>['sorting']>>;\n /**\n * Allows to change the global filter value.\n */\n setGlobalFilter: React.Dispatch<React.SetStateAction<TableState<TData>['globalFilter']>>;\n /**\n * Allows to change the rows expanded state.\n */\n setExpanded: React.Dispatch<React.SetStateAction<TableState<TData>['expanded']>>;\n /**\n * Allows to change the predicates values.\n */\n setPredicates: React.Dispatch<React.SetStateAction<TableState<TData>['predicates']>>;\n /**\n * Allows to change the selected layout.\n */\n setLayout: React.Dispatch<React.SetStateAction<TableState<TData>['layout']>>;\n /**\n * Allows to change the selected date range.\n */\n setDateRange: React.Dispatch<React.SetStateAction<TableState<TData>['dateRange']>>;\n /**\n * Allows to change the current row selection.\n */\n setRowSelection: React.Dispatch<React.SetStateAction<TableState<TData>['rowSelection']>>;\n /**\n * Allows to change the visible columns.\n */\n setColumnVisibility: React.Dispatch<React.SetStateAction<TableState<TData>['columnVisibility']>>;\n /**\n * Whether the table is currently filtered.\n */\n isFiltered: boolean;\n /**\n * Whether the table has data when unfiltered.\n *\n * This is derived from the totalEntries so make sure you set that number correctly, even if you're using a client side table.\n */\n isVacant: boolean;\n /**\n * Clear currently applied filters.\n */\n clearFilters: () => void;\n /**\n * Deselects all currently selected rows.\n */\n clearRowSelection: () => void;\n /**\n * Get currently selected rows.\n */\n getSelectedRows: () => TData[];\n /**\n * Get currently selected row\n */\n getSelectedRow: () => TData | null;\n /**\n * Whether the user can select multiple rows at the same time.\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether rows can be selected.\n */\n rowSelectionEnabled: boolean;\n /**\n * Whether row selection is forced.\n */\n rowSelectionForced: boolean;\n}\n\nexport interface UseTableOptions<TData = unknown> {\n /**\n * Initial state of the table.\n */\n initialState?: PartialDeep<TableState<TData>>;\n /**\n * Whether rows can be selected.\n *\n * @default true\n */\n enableRowSelection?: boolean;\n /**\n * Whether multiple rows can be selected at the same time.\n *\n * @default false\n */\n enableMultiRowSelection?: boolean;\n /**\n * Forces the user to always have one row selected.\n * When activating that setting, a good practice is to have a row already selected in the initial state.\n *\n * @default false\n */\n forceSelection?: boolean;\n}\n\nconst defaultOptions: UseTableOptions = {\n enableRowSelection: true,\n enableMultiRowSelection: false,\n forceSelection: false,\n};\n\nconst defaultState: Partial<TableState> = {\n pagination: {\n pageIndex: 0,\n pageSize: 50,\n },\n totalEntries: null,\n sorting: [],\n globalFilter: '',\n predicates: {},\n layout: null,\n dateRange: [null, null],\n rowSelection: {},\n columnVisibility: {},\n};\n\nexport const useTable = <TData>(userOptions: UseTableOptions<TData> = {}): TableStore<TData> => {\n const options: UseTableOptions<TData> = defaultsDeep({}, userOptions, defaultOptions);\n const initialState: TableState<TData> = defaultsDeep({}, options.initialState, defaultState);\n\n const [pagination, setPagination] = useState<TableState<TData>['pagination']>(\n initialState.pagination as PaginationState,\n );\n const [totalEntries, _setTotalEntries] = useState<TableState<TData>['totalEntries']>(initialState.totalEntries);\n const [unfilteredTotalEntries, setUnfilteredTotalEntries] = useState<TableState<TData>['totalEntries']>(\n initialState.totalEntries,\n );\n const [sorting, setSorting] = useState<TableState<TData>['sorting']>(initialState.sorting as SortingState);\n const [globalFilter, setGlobalFilter] = useState<TableState<TData>['globalFilter']>(initialState.globalFilter);\n const [expanded, setExpanded] = useState<TableState<TData>['expanded']>(initialState.expanded as ExpandedState);\n const [predicates, setPredicates] = useState<TableState<TData>['predicates']>(initialState.predicates);\n const [layout, setLayout] = useState<TableState<TData>['layout']>(initialState.layout);\n const [dateRange, setDateRange] = useState<TableState<TData>['dateRange']>(initialState.dateRange);\n const [rowSelection, setRowSelection] = useState<TableState<TData>['rowSelection']>(initialState.rowSelection);\n const [columnVisibility, setColumnVisibility] = useState<TableState<TData>['columnVisibility']>(\n initialState.columnVisibility,\n );\n\n const isFiltered =\n !!globalFilter ||\n Object.keys(predicates).some((predicate) => !!predicates[predicate]) ||\n !!dateRange?.[0] ||\n !!dateRange?.[1];\n\n const isVacant = unfilteredTotalEntries === 0;\n\n const setTotalEntries: typeof _setTotalEntries = useCallback(\n (updater) => {\n _setTotalEntries((old) => {\n const newTotalEntries = updater instanceof Function ? updater(old) : updater;\n if (!isFiltered) {\n setUnfilteredTotalEntries(newTotalEntries);\n }\n return newTotalEntries;\n });\n },\n [isFiltered],\n );\n\n const clearFilters = useCallback(() => {\n setPredicates(initialState.predicates);\n setGlobalFilter('');\n }, []);\n\n const clearRowSelection = useCallback(() => {\n setRowSelection({});\n }, []);\n\n const getSelectedRows = useCallback(() => Object.values(rowSelection), [rowSelection]);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n useDidUpdate(() => {\n if (!options.enableMultiRowSelection) {\n clearRowSelection();\n }\n }, [globalFilter, pagination, sorting, dateRange, predicates]);\n\n const state = useMemo(\n () => ({\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n }),\n [\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n ],\n );\n\n return {\n state,\n setPagination,\n setTotalEntries,\n setSorting,\n setGlobalFilter,\n setExpanded,\n setPredicates,\n setLayout,\n setDateRange,\n setRowSelection,\n setColumnVisibility,\n isFiltered,\n isVacant,\n clearFilters,\n clearRowSelection,\n getSelectedRows,\n getSelectedRow,\n rowSelectionEnabled: options.enableRowSelection,\n rowSelectionForced: options.forceSelection,\n multiRowSelectionEnabled: options.enableMultiRowSelection,\n };\n};\n"],"names":["useTable","defaultOptions","enableRowSelection","enableMultiRowSelection","forceSelection","defaultState","pagination","pageIndex","pageSize","totalEntries","sorting","globalFilter","predicates","layout","dateRange","rowSelection","columnVisibility","userOptions","options","defaultsDeep","initialState","useState","setPagination","_setTotalEntries","unfilteredTotalEntries","setUnfilteredTotalEntries","setSorting","setGlobalFilter","expanded","setExpanded","setPredicates","setLayout","setDateRange","setRowSelection","setColumnVisibility","isFiltered","Object","keys","some","predicate","isVacant","setTotalEntries","useCallback","updater","old","newTotalEntries","Function","clearFilters","clearRowSelection","getSelectedRows","values","getSelectedRow","useDidUpdate","state","useMemo","rowSelectionEnabled","rowSelectionForced","multiRowSelectionEnabled"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export * from './useParentHeight';\nexport * from './useControlledList';\n"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export * from './useParentHeight';\nexport * from './useControlledList';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useClickWithLoading.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickWithLoading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAE9D,eAAO,MAAM,mBAAmB,aAAc,
|
|
1
|
+
{"version":3,"file":"useClickWithLoading.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickWithLoading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAE9D,eAAO,MAAM,mBAAmB,aAAc,iBAAiB,CAAC,iBAAiB,CAAC;;yBAG5C,UAAU,CAAC,iBAAiB,CAAC;CAelE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useClickWithLoading.ts"],"sourcesContent":["import {MouseEvent, MouseEventHandler, useState} from 'react';\n\nexport const useClickWithLoading = (handler?: MouseEventHandler<HTMLButtonElement>) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const handleClick = async (event: MouseEvent<HTMLButtonElement>) => {\n const possiblePromise: unknown = handler?.(event);\n try {\n if (possiblePromise instanceof Promise) {\n setIsLoading(true);\n await possiblePromise;\n setIsLoading(false);\n }\n } catch (err) {\n setIsLoading(false);\n console.error(err);\n }\n };\n\n return {isLoading, handleClick};\n};\n"],"names":["useClickWithLoading","handler","useState","isLoading","setIsLoading","handleClick","event","possiblePromise","err","Promise","console","error"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useClickWithLoading.ts"],"sourcesContent":["import {MouseEvent, MouseEventHandler, useState} from 'react';\n\nexport const useClickWithLoading = (handler?: MouseEventHandler<HTMLButtonElement>) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const handleClick = async (event: MouseEvent<HTMLButtonElement>) => {\n const possiblePromise: unknown = handler?.(event);\n try {\n if (possiblePromise instanceof Promise) {\n setIsLoading(true);\n await possiblePromise;\n setIsLoading(false);\n }\n } catch (err) {\n setIsLoading(false);\n console.error(err);\n }\n };\n\n return {isLoading, handleClick};\n};\n"],"names":["useClickWithLoading","handler","useState","isLoading","setIsLoading","handleClick","event","possiblePromise","err","Promise","console","error"],"mappings":";;;;+BAEaA;;;eAAAA;;;;;;;qBAFyC;AAE/C,IAAMA,sBAAsB,SAACC;IAChC,IAAkCC,+BAAAA,IAAAA,eAAQ,EAAC,YAApCC,YAA2BD,cAAhBE,eAAgBF;IAElC,IAAMG;mBAAc,sBAAA,SAAOC;gBACjBC,iBAOGC;;;;wBAPHD,kBAA2BN,oBAAAA,8BAAAA,QAAUK;;;;;;;;;6BAEnCC,AAAe,aAAYE,CAA3BF,iBAA2BE,UAA3BF;;;;wBACAH,aAAa;wBACb;;4BAAMG;;;wBAAN;wBACAH,aAAa;;;;;;;;wBAEZI;wBACLJ,aAAa;wBACbM,QAAQC,KAAK,CAACH;;;;;;;;;;;QAEtB;wBAZMH,YAAqBC;;;;IAc3B,OAAO;QAACH,WAAAA;QAAWE,aAAAA;IAAW;AAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControlledList.d.ts","sourceRoot":"","sources":["../../../src/hooks/useControlledList.ts"],"names":[],"mappings":"AAEA,UAAU,iBAAiB,CAAC,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,YAAY,CAAC,CAAC;IACpB,8CAA8C;IAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,kDAAkD;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,iFAAiF;IACjF,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useControlledList.d.ts","sourceRoot":"","sources":["../../../src/hooks/useControlledList.ts"],"names":[],"mappings":"AAEA,UAAU,iBAAiB,CAAC,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,YAAY,CAAC,CAAC;IACpB,8CAA8C;IAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,kDAAkD;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,iFAAiF;IACjF,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,qCAAmC,iBAAiB,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CA6BjH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useControlledList.ts"],"sourcesContent":["import {useUncontrolled} from '@mantine/hooks';\n\ninterface UseControlledList<T> {\n /** Initial value for uncontrolled state */\n defaultValue?: T[];\n /** Value for controlled state */\n value?: T[];\n /** Controlled state onChange handler */\n onChange?: (values: T[]) => void;\n}\n\ninterface ListHandlers<T> {\n /** Appends the item at the end of the list */\n append: (item: T) => void;\n /** Removes the item at the index from the list */\n remove: (index: number) => void;\n /** Moves the item at the \"from\" position to another position within the list */\n reorder: ({from, to}: {from: number; to: number}) => void;\n}\n\n/**\n * Manage a list of items in a controlled fashion, to be used with inputs\n */\nexport const useControlledList = <T>({defaultValue, value, onChange}: UseControlledList<T>): [T[], ListHandlers<T>] => {\n const [values, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const remove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n handleChange?.(newValues);\n };\n\n const append = (item: T) => {\n const newValues = [...values, item];\n handleChange?.(newValues);\n };\n\n const reorder = ({from, to}: {from: number; to: number}) => {\n const newValues = [...values];\n const item = values[from];\n\n newValues.splice(from, 1);\n newValues.splice(to, 0, item);\n\n handleChange?.(newValues);\n };\n\n return [values, {remove, append, reorder}];\n};\n"],"names":["useControlledList","defaultValue","value","onChange","useUncontrolled","finalValue","values","handleChange","remove","index","newValues","filter","_","i","append","item","reorder","from","to","splice"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useControlledList.ts"],"sourcesContent":["import {useUncontrolled} from '@mantine/hooks';\n\ninterface UseControlledList<T> {\n /** Initial value for uncontrolled state */\n defaultValue?: T[];\n /** Value for controlled state */\n value?: T[];\n /** Controlled state onChange handler */\n onChange?: (values: T[]) => void;\n}\n\ninterface ListHandlers<T> {\n /** Appends the item at the end of the list */\n append: (item: T) => void;\n /** Removes the item at the index from the list */\n remove: (index: number) => void;\n /** Moves the item at the \"from\" position to another position within the list */\n reorder: ({from, to}: {from: number; to: number}) => void;\n}\n\n/**\n * Manage a list of items in a controlled fashion, to be used with inputs\n */\nexport const useControlledList = <T>({defaultValue, value, onChange}: UseControlledList<T>): [T[], ListHandlers<T>] => {\n const [values, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const remove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n handleChange?.(newValues);\n };\n\n const append = (item: T) => {\n const newValues = [...values, item];\n handleChange?.(newValues);\n };\n\n const reorder = ({from, to}: {from: number; to: number}) => {\n const newValues = [...values];\n const item = values[from];\n\n newValues.splice(from, 1);\n newValues.splice(to, 0, item);\n\n handleChange?.(newValues);\n };\n\n return [values, {remove, append, reorder}];\n};\n"],"names":["useControlledList","defaultValue","value","onChange","useUncontrolled","finalValue","values","handleChange","remove","index","newValues","filter","_","i","append","item","reorder","from","to","splice"],"mappings":";;;;+BAuBaA;;;eAAAA;;;;;qBAvBiB;AAuBvB,IAAMA,oBAAoB;QAAKC,qBAAAA,cAAcC,cAAAA,OAAOC,iBAAAA;IACvD,IAA+BC,sCAAAA,IAAAA,sBAAe,EAAC;QAC3CF,OAAAA;QACAD,cAAAA;QACAI,YAAY,EAAE;QACdF,UAAAA;IACJ,QALOG,SAAwBF,qBAAhBG,eAAgBH;IAO/B,IAAMI,SAAS,SAACC;QACZ,IAAMC,YAAYJ,OAAOK,MAAM,CAAC,SAACC,GAAGC;mBAAMA,MAAMJ;;QAChDF,yBAAAA,mCAAAA,aAAeG;IACnB;IAEA,IAAMI,SAAS,SAACC;QACZ,IAAML,YAAY,AAAC,uBAAGJ,eAAJ;YAAYS;SAAK;QACnCR,yBAAAA,mCAAAA,aAAeG;IACnB;IAEA,IAAMM,UAAU;YAAEC,aAAAA,MAAMC,WAAAA;QACpB,IAAMR,YAAa,uBAAGJ;QACtB,IAAMS,OAAOT,MAAM,CAACW,KAAK;QAEzBP,UAAUS,MAAM,CAACF,MAAM;QACvBP,UAAUS,MAAM,CAACD,IAAI,GAAGH;QAExBR,yBAAAA,mCAAAA,aAAeG;IACnB;IAEA,OAAO;QAACJ;QAAQ;YAACE,QAAAA;YAAQM,QAAAA;YAAQE,SAAAA;QAAO;KAAE;AAC9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useParentHeight.d.ts","sourceRoot":"","sources":["../../../src/hooks/useParentHeight.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useParentHeight.d.ts","sourceRoot":"","sources":["../../../src/hooks/useParentHeight.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAWjF,CAAC"}
|