@economic/taco 2.24.0 → 2.25.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Provider/Localization.d.ts +2 -0
- package/dist/components/Report/Report.d.ts +2 -2
- package/dist/components/Report/components/Header/Header.d.ts +3 -0
- package/dist/components/Report/components/Header/components/Menu.d.ts +3 -0
- package/dist/components/Report/components/Toolbar/components/Filters/util.d.ts +2 -0
- package/dist/components/Report/types.d.ts +2 -2
- package/dist/components/Select2/Select2.d.ts +18 -0
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/components/BaseTable.d.ts +1 -1
- package/dist/components/Table/hooks/useRowCreation.d.ts +2 -2
- package/dist/components/Table/hooks/useTable.d.ts +5 -5
- package/dist/components/Table/hooks/useTableKeyboardNavigation.d.ts +2 -2
- package/dist/components/Table/types.d.ts +37 -37
- package/dist/components/Table/util/sortTypes.d.ts +2 -2
- package/dist/components/Table/util.d.ts +4 -4
- package/dist/components/Table3/hooks/useTable.d.ts +8 -8
- package/dist/components/Table3/types.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js +12 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +2 -0
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Body/Body.js +3 -1
- package/dist/esm/packages/taco/src/components/Report/components/Body/Body.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/Cell.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/Cell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/GroupedCell.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/GroupedCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/util.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Summary.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/Header.js +18 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/components/Menu.js +10 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/components/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/util.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Header/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/Filters.js +13 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/Filters.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/ManageFiltersPopover.js +19 -11
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/FilterValue.js +11 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/util.js +4 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Filters/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Settings/HideOrOrderPopover.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Settings/Settings.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/components/Toolbar/components/Settings/Settings.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/styles/useCssGridStylesheet.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/styles/useCssGridStylesheet.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/useReport.js +3 -3
- package/dist/esm/packages/taco/src/components/Report/useReport.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +3 -3
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/PaginatedTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useRowCreation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/renderRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +16 -16
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnFreezing.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnOrdering.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFontSize.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFooter.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTablePrinting.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRef.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActions.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGoto.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGroups.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowHeight.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSortingListener.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/{useTable/useTable.js → useTableManager/useTableManager.js} +3 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -0
- package/dist/primitives/Table/types.d.ts +5 -16
- package/dist/primitives/Table/useTableManager/types.d.ts +13 -0
- package/dist/primitives/Table/{useTable/useTable.d.ts → useTableManager/useTableManager.d.ts} +3 -2
- package/dist/primitives/Table/useTableManager/util/presets.d.ts +2 -0
- package/dist/primitives/Table/{useTable → useTableManager}/util/setup.d.ts +5 -4
- package/dist/taco.cjs.development.js +98 -27
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +9609 -8428
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableColumnFreezing.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableColumnOrdering.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableFontSize.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableFooter.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTablePrinting.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRef.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowActions.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowActive.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowClick.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowExpansion.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowGoto.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowGroups.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowHeight.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowSelection.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableSearch.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableServerLoading.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableSettings.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableDataListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableFilterListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableFontSizeListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableRowHeightListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableRowSelectionListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSearchListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableServerLoadingListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSettingsListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableShortcutsListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSortingListener.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/useTable.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/columns.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/filtering.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/presets.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/search.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/settings.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/setup.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTable/util/sorting.js.map +0 -1
- package/dist/primitives/Table/useTable/util/presets.d.ts +0 -2
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableColumnFreezing.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableColumnOrdering.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableFontSize.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableFooter.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTablePrinting.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRef.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowActions.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowActive.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowClick.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowExpansion.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowGoto.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowGroups.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowHeight.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableRowSelection.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableSearch.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableServerLoading.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/features/useTableSettings.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableDataListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableFilterListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableFontSizeListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableRowHeightListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableRowSelectionListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableSearchListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableServerLoadingListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableSettingsListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableShortcutsListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/listeners/useTableSortingListener.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/columns.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/filtering.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/presets.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/search.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/settings.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/setup.js +0 -0
- /package/dist/esm/packages/taco/src/primitives/Table/{useTable → useTableManager}/util/sorting.js +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableColumnFreezing.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableColumnOrdering.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableFontSize.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableFooter.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTablePrinting.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRef.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowActions.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowActive.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowClick.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowExpansion.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowGoto.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowGroups.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowHeight.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableRowSelection.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableSearch.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableServerLoading.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/features/useTableSettings.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableDataListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableFilterListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableFontSizeListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableRowHeightListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableRowSelectionListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableSearchListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableServerLoadingListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableSettingsListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableShortcutsListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/listeners/useTableSortingListener.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/columns.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/columns.spec.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/filtering.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/search.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/settings.d.ts +0 -0
- /package/dist/primitives/Table/{useTable → useTableManager}/util/sorting.d.ts +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useCssGridStylesheet.js","sources":["../../../../../../../../src/components/Report/styles/useCssGridStylesheet.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../../primitives/Table/types';\nimport { getCellMinWidth } from '../../../primitives/Table/
|
1
|
+
{"version":3,"file":"useCssGridStylesheet.js","sources":["../../../../../../../../src/components/Report/styles/useCssGridStylesheet.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../../primitives/Table/types';\nimport { getCellMinWidth } from '../../../primitives/Table/useTableManager/util/columns';\n\nexport function useCssGridStylesheet<TType = unknown>(\n tableId: string,\n table: ReactTable<TType>,\n fontSize: TableFontSize\n): string {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = '';\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n let printSize;\n\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(${minSize}px, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(${minSize}px, auto)`;\n }\n\n if (column.columnDef.meta?.enablePrinting === false) {\n printSize = '';\n printHiddenColumns.push(column.id);\n } else {\n printSize = 'auto';\n }\n\n printGridTemplateColumns = `${printGridTemplateColumns} ${printSize}`.trim();\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `table[data-taco='report']#${tableId} > thead > tr > th[data-cell-id='${id}']\\n,table[data-taco='report']#${tableId} > tbody > tr > td[data-cell-id='${id}']\\n`\n )\n .join(',');\n\n return `table[data-taco='report']#${tableId} { grid-template-columns: ${gridTemplateColumns}; grid-template-rows: ${gridTemplateRows}; }\n@media print { table[data-taco='report']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${\n hiddenColumns ? `${hiddenColumns} { display: none; }` : ''\n } }`;\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n"],"names":["useCssGridStylesheet","tableId","table","fontSize","tableMeta","options","meta","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","globalMinSize","getCellMinWidth","gridTemplateRows","getRowModel","rows","length","React","useMemo","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","reduce","accum","column","index","enableGrouping","getIsGrouped","minSize","_column$columnDef$min","columnDef","width","id","size","printSize","minWidth","rowActions","rowActionsLength","undefined","isLastColumn","Number","isNaN","_column$columnDef$met","enablePrinting","push","trim","hiddenColumns","map","join"],"mappings":";;;SAKgBA,oBAAoBA,CAChCC,OAAe,EACfC,KAAwB,EACxBC,QAAuB;EAEvB,MAAMC,SAAS,GAAGF,KAAK,CAACG,OAAO,CAACC,IAA6B;EAC7D,MAAMC,iBAAiB,GAAGL,KAAK,CAACM,qBAAqB,EAAE;EACvD,MAAMC,YAAY,GAAGP,KAAK,CAACQ,QAAQ,EAAE,CAACD,YAAY;EAClD,MAAME,aAAa,GAAGC,eAAe,CAACT,QAAQ,CAAC;;EAG/C,MAAMU,gBAAgB,GAAGX,KAAK,CAACY,WAAW,EAAE,CAACC,IAAI,CAACC,MAAM,GAAG,6BAA6B,GAAG,iBAAiB;EAE5G,OAAOC,cAAK,CAACC,OAAO,CAAC;IACjB,IAAIC,wBAAwB,GAAG,EAAE;IACjC,MAAMC,kBAAkB,GAAa,EAAE;IAEvC,MAAMC,mBAAmB,GAAGd,iBAAiB,CAACe,MAAM,CAAC,CAACC,KAAK,EAAEC,MAAM,EAAEC,KAAK;;MACtE,IAAIvB,KAAK,CAACG,OAAO,CAACqB,cAAc,IAAIF,MAAM,CAACG,YAAY,EAAE,EAAE;QACvD,OAAOJ,KAAK;;MAGhB,MAAMK,OAAO,IAAAC,qBAAA,GAAGL,MAAM,CAACM,SAAS,CAACF,OAAO,cAAAC,qBAAA,cAAAA,qBAAA,GAAIlB,aAAa;MACzD,MAAMoB,KAAK,GAAGtB,YAAY,CAACe,MAAM,CAACQ,EAAE,CAAoB;MAExD,IAAIC,IAAI;MACR,IAAIC,SAAS;MAEb,IAAIV,MAAM,CAACQ,EAAE,KAAK,WAAW,EAAE;QAC3B,MAAMG,QAAQ,GAAG/B,SAAS,CAACgC,UAAU,CAACC,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;QAChEJ,IAAI,aAAaE,mBAAmB;OACvC,MAAM,IAAIJ,KAAK,KAAKO,SAAS,EAAE;QAC5B,MAAMC,YAAY,GAAGd,KAAK,KAAKlB,iBAAiB,CAACS,MAAM,GAAG,CAAC;QAE3D,IAAIe,KAAK,KAAK,MAAM,IAAKS,MAAM,CAACC,KAAK,CAACV,KAAK,CAAC,IAAI,CAACQ,YAAa,EAAE;UAC5DN,IAAI,aAAaL,iBAAiB;SACrC,MAAM;UACH,MAAMO,QAAQ,GAAGJ,KAAK,GAAGH,OAAO,GAAGA,OAAO,GAAGG,KAAK;UAElD,IAAIQ,YAAY,EAAE;YACdN,IAAI,aAAaE,mBAAmB;WACvC,MAAM;YACHF,IAAI,MAAME,YAAY;;;OAGjC,MAAM;QACHF,IAAI,aAAaL,kBAAkB;;MAGvC,IAAI,EAAAc,qBAAA,GAAAlB,MAAM,CAACM,SAAS,CAACxB,IAAI,cAAAoC,qBAAA,uBAArBA,qBAAA,CAAuBC,cAAc,MAAK,KAAK,EAAE;QACjDT,SAAS,GAAG,EAAE;QACdd,kBAAkB,CAACwB,IAAI,CAACpB,MAAM,CAACQ,EAAE,CAAC;OACrC,MAAM;QACHE,SAAS,GAAG,MAAM;;MAGtBf,wBAAwB,MAAMA,4BAA4Be,WAAW,CAACW,IAAI,EAAE;MAE5E,UAAUtB,SAASU,MAAM,CAACY,IAAI,EAAE;KACnC,EAAE,EAAE,CAAC;;IAGN,MAAMC,aAAa,GAAG1B,kBAAkB,CACnC2B,GAAG,CACAf,EAAE,iCAC+B/B,2CAA2C+B,oCAAoC/B,2CAA2C+B,QAAQ,CACtK,CACAgB,IAAI,CAAC,GAAG,CAAC;IAEd,oCAAoC/C,oCAAoCoB,4CAA4CR;2CACjFZ,oCAAoCkB,+BACnE2B,aAAa,MAAMA,kCAAkC,GAAG,MACxD;GACP,EAAE,CAACvC,iBAAiB,EAAEE,YAAY,EAAEE,aAAa,EAAEP,SAAS,CAACgC,UAAU,CAACC,gBAAgB,CAAC,CAAC;AAC/F;;;;"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import cn from 'clsx';
|
3
|
-
import {
|
3
|
+
import { useTableManager } from '../../primitives/Table/useTableManager/useTableManager.js';
|
4
4
|
import { Header, Cell } from './components/Internal/Actions.js';
|
5
5
|
import { Header as Header$1, Cell as Cell$1 } from './components/Internal/Expansion.js';
|
6
6
|
import { Header as Header$2, Cell as Cell$2 } from './components/Internal/Selection.js';
|
@@ -8,7 +8,6 @@ import { useTableRowActiveListener } from './listeners/useTableRowActiveListener
|
|
8
8
|
|
9
9
|
function useReport(props, ref) {
|
10
10
|
const meta = {};
|
11
|
-
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
12
11
|
const INTERNAL_COLUMNS = React__default.useMemo(() => ({
|
13
12
|
rowActions: {
|
14
13
|
header: Header,
|
@@ -41,7 +40,8 @@ function useReport(props, ref) {
|
|
41
40
|
}
|
42
41
|
}
|
43
42
|
}), []);
|
44
|
-
|
43
|
+
// @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel
|
44
|
+
const report = useTableManager(props, ref, meta, INTERNAL_COLUMNS);
|
45
45
|
// listeners
|
46
46
|
useTableRowActiveListener(report.instance, ref);
|
47
47
|
return report;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useReport.js","sources":["../../../../../../../src/components/Report/useReport.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport {
|
1
|
+
{"version":3,"file":"useReport.js","sources":["../../../../../../../src/components/Report/useReport.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { useTableManager } from '../../primitives/Table/useTableManager/useTableManager';\nimport { ReportProps } from './types';\nimport { Header as RowActionsHeader, Cell as RowActionsCell } from './components/Internal/Actions';\nimport { Header as RowExpansionHeader, Cell as RowExpansionCell } from './components/Internal/Expansion';\nimport { Header as RowSelectHeader, Cell as RowSelectCell } from './components/Internal/Selection';\nimport { TableRef } from '../../primitives/Table/types';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\n\ntype ReportMeta = {};\n\nexport function useReport<TType>(props: ReportProps<TType>, ref: React.RefObject<TableRef>) {\n const meta: ReportMeta = {};\n const INTERNAL_COLUMNS = React.useMemo(\n () => ({\n rowActions: {\n header: RowActionsHeader,\n renderer: RowActionsCell,\n meta: {\n align: 'right',\n className: cn(\n 'print:opacity-0 !px-0 !pr-1 overflow-hidden [table_&]:group-[[data-row-active=\"true\"]]/row:sticky [table[data-table-pause-hover=\"false\"]_&]:group-hover/row:sticky right-0',\n 'group-[[data-row-active=\"true\"][data-selected=\"false\"]]/row:text-grey-200',\n 'group-[[data-row-selected=\"true\"]]/row:text-blue-100',\n 'group-[[data-row-selected=\"false\"]:hover]/row:text-grey-100'\n ),\n header: '',\n },\n },\n rowExpansion: {\n header: RowExpansionHeader,\n renderer: RowExpansionCell,\n size: 40,\n meta: {\n align: 'center',\n header: '',\n headerClassName: '!p-0',\n },\n },\n rowSelection: {\n header: RowSelectHeader,\n renderer: RowSelectCell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n header: '',\n headerClassName: '!px-1',\n },\n },\n }),\n []\n );\n\n // @ts-expect-error: fixing type issue while report and table3 TableMeta definitions live in parallel\n const report = useTableManager<TType, ReportMeta>(props, ref, meta, INTERNAL_COLUMNS);\n\n // listeners\n useTableRowActiveListener(report.instance, ref);\n\n return report;\n}\n"],"names":["useReport","props","ref","meta","INTERNAL_COLUMNS","React","useMemo","rowActions","header","RowActionsHeader","renderer","RowActionsCell","align","className","cn","rowExpansion","RowExpansionHeader","RowExpansionCell","size","headerClassName","rowSelection","RowSelectHeader","RowSelectCell","report","useTableManager","useTableRowActiveListener","instance"],"mappings":";;;;;;;;SAYgBA,SAASA,CAAQC,KAAyB,EAAEC,GAA8B;EACtF,MAAMC,IAAI,GAAe,EAAE;EAC3B,MAAMC,gBAAgB,GAAGC,cAAK,CAACC,OAAO,CAClC,OAAO;IACHC,UAAU,EAAE;MACRC,MAAM,EAAEC,MAAgB;MACxBC,QAAQ,EAAEC,IAAc;MACxBR,IAAI,EAAE;QACFS,KAAK,EAAE,OAAO;QACdC,SAAS,EAAEC,EAAE,CACT,4KAA4K,EAC5K,2EAA2E,EAC3E,sDAAsD,EACtD,6DAA6D,CAChE;QACDN,MAAM,EAAE;;KAEf;IACDO,YAAY,EAAE;MACVP,MAAM,EAAEQ,QAAkB;MAC1BN,QAAQ,EAAEO,MAAgB;MAC1BC,IAAI,EAAE,EAAE;MACRf,IAAI,EAAE;QACFS,KAAK,EAAE,QAAQ;QACfJ,MAAM,EAAE,EAAE;QACVW,eAAe,EAAE;;KAExB;IACDC,YAAY,EAAE;MACVZ,MAAM,EAAEa,QAAe;MACvBX,QAAQ,EAAEY,MAAa;MACvBJ,IAAI,EAAE,EAAE;MACRf,IAAI,EAAE;QACFS,KAAK,EAAE,QAAQ;QACfC,SAAS,EAAE,OAAO;QAClBL,MAAM,EAAE,EAAE;QACVW,eAAe,EAAE;;;GAG5B,CAAC,EACF,EAAE,CACL;;EAGD,MAAMI,MAAM,GAAGC,eAAe,CAAoBvB,KAAK,EAAEC,GAAG,EAAEC,IAAI,EAAEC,gBAAgB,CAAC;;EAGrFqB,yBAAyB,CAACF,MAAM,CAACG,QAAQ,EAAExB,GAAG,CAAC;EAE/C,OAAOqB,MAAM;AACjB;;;;"}
|
@@ -195,9 +195,9 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
195
195
|
if (!Array.isArray(value) || value.length === 0) {
|
196
196
|
setValue(selectOptions);
|
197
197
|
} else {
|
198
|
-
|
199
|
-
|
200
|
-
|
198
|
+
// array of all available options which are not selected
|
199
|
+
const preselectedValues = selectOptions.filter(option => !value.includes(option));
|
200
|
+
setValue([...value, ...preselectedValues]);
|
201
201
|
}
|
202
202
|
};
|
203
203
|
const deselectAll = () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Select2.js","sources":["../../../../../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport {\n Select2Children,\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { Option, Select2OptionProps } from './components/Option';\nimport { Group, Select2GroupProps } from './components/Group';\nimport { Select2TitleProps, Title } from './components/Title';\nimport { Select2Context } from './components/Context';\nimport { createCollectionClassName } from './utilities';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { Trigger } from './components/Trigger';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport { Search } from './components/Search';\nimport { isGroup, useChildren } from './hooks/useChildren';\n\nimport { Create } from './components/Create';\nimport { Collection } from './components/Collection';\nimport { CollectionRef } from '../../primitives/Collection/Collection';\nimport { useLocalization } from '../Provider/Localization';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { getNextFocussableElement } from '../../utils/dom';\nimport { FontSize } from '../../types';\nimport { Button } from '../Button/Button';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n autoFocus?: boolean;\n children: Select2Children;\n defaultValue?: Select2Value;\n emptyValue?: Select2OptionValue;\n disabled?: boolean;\n highlighted?: boolean;\n invalid?: boolean;\n multiple?: boolean;\n name?: string;\n onChange?: (value: Select2Value) => void;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n readOnly?: boolean;\n required?: boolean;\n tags?: boolean;\n value?: Select2Value;\n fontSize?: FontSize;\n placeholder?: string;\n};\ntype Select2PropsWithStatics = React.ForwardRefExoticComponent<Select2Props & React.RefAttributes<HTMLButtonElement>> & {\n Option: React.ForwardRefExoticComponent<Select2OptionProps>;\n Group: React.ForwardRefExoticComponent<Select2GroupProps>;\n Title: React.ForwardRefExoticComponent<Select2TitleProps>;\n};\n\nconst Select2 = React.forwardRef<HTMLButtonElement, Select2Props>(function Select2(props, ref) {\n const {\n children: initChildren,\n defaultValue: defaultProp,\n disabled = false,\n emptyValue = undefined,\n placeholder,\n highlighted = false,\n invalid = false,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n readOnly = false,\n tags = false,\n value: prop,\n fontSize,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n if (emptyOption) {\n return [emptyOption, ...initChildren] as Select2Children;\n }\n return initChildren;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [tabTriggeredClose, setTabTriggeredClose] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControllableState<Select2Value>({\n // uncontrolled\n defaultProp,\n // controlled\n onChange,\n prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(multiple, _setValue);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n };\n\n let handleBlur;\n\n if (otherProps.onBlur) {\n // we might be focusing on an input or something inside the dropdown that was triggered by the select\n // so see if the element gaining focus is inside a portal and look up its controller\n // if we don't do this, things like validate on blur occur while simply opening the select\n handleBlur = (event: React.FocusEvent<HTMLButtonElement>) => {\n const elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (!portalId || event.currentTarget.getAttribute(`aria-controls`) !== portalId) {\n otherProps.onBlur?.(event);\n }\n };\n }\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n }\n };\n\n const handleCloseAutoFocus = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (tabTriggeredClose) {\n const nextFocussableElement = getNextFocussableElement(internalRef.current);\n\n if (nextFocussableElement) {\n // UX requirement: move focus to the next focussable element when tab key is pressed to select the value\n nextFocussableElement.focus();\n // Reset the tabTriggeredClose state\n setTabTriggeredClose(false);\n }\n } else {\n internalRef.current?.focus();\n }\n };\n\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.key)\n : filteredChildren\n .map(child =>\n isGroup(child)\n ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.key)\n : child.key\n )\n .flatMap(c => c) || [];\n\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option as string));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n } else {\n return texts.select2.selectAll;\n }\n } else if (areAllSelected) {\n return texts.select2.deselectAllResults;\n } else {\n return texts.select2.selectAllResults;\n }\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n selectOptions.forEach(child => {\n !value.includes(child) && setValue(child);\n });\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue as string));\n setValue(nextValue);\n }\n };\n\n const className = cn('border-grey-300 rounded border bg-white py-1.5 shadow-md outline-none\"', createCollectionClassName());\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n <PopoverPrimitive.Trigger asChild data-taco=\"Select2\">\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n emptyValue={emptyValue}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n ref={internalRef}\n fontSize={fontSize}\n placeholder={placeholder}>\n {flattenedChildren}\n </Trigger>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n asChild\n align=\"start\"\n onOpenAutoFocus={() => {\n internalRef.current?.focus();\n }}\n onCloseAutoFocus={handleCloseAutoFocus}\n sideOffset={4}\n tabIndex={-1}>\n <div className={className} style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}>\n {flattenedChildren.length > 0 || onCreate ? (\n <>\n <Search\n placeholder={onCreate ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n onTabKeyPress={() => setTabTriggeredClose(true)}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <Button\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </Button>\n <div className=\"border-grey-300 mx-3 rounded border-t\" />\n </>\n )}\n </>\n ) : null}\n {flattenedChildren.length <= 0 ? (\n <div className=\"text-grey-700 -mt-0.5 flex h-8 items-center px-2\" role=\"presentation\">\n No results found...\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n tabIndex={-1}\n value={value}>\n {searchQuery === '' ? (\n <Collection>{initialChildren}</Collection>\n ) : (\n <Collection>{filteredChildren}</Collection>\n )}\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}) as Select2PropsWithStatics;\nSelect2.Option = Option;\nSelect2.Group = Group;\nSelect2.Title = Title;\n\nconst ControlledHiddenField = props => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} value={bubbleValue}>\n {emptyValue !== undefined ? <option value={emptyValue} /> : null}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\nSelect2.displayName = 'Select2';\n\nexport { Select2 };\n\nexport type {\n Select2Texts,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n};\n"],"names":["Select2","React","forwardRef","props","ref","children","initChildren","defaultValue","defaultProp","disabled","emptyValue","undefined","placeholder","highlighted","invalid","multiple","name","onChange","onCreate","onDelete","onEdit","readOnly","tags","value","prop","fontSize","otherProps","emptyOption","useMemo","Option","key","className","initialChildren","internalRef","useMergedRef","listboxRef","useRef","searchRef","texts","useLocalization","dimensions","useBoundingClientRectListener","tabTriggeredClose","setTabTriggeredClose","useState","open","setOpen","_setValue","useControllableState","setValue","ListboxPrimitive","validationError","setValidationError","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","flattenedChildren","filteredChildren","searchQuery","setSearchQuery","useChildren","context","handleKeyDown","event","preventDefault","ctrlKey","metaKey","test","_listboxRef$current","current","dispatchEvent","createCustomKeyboardEvent","handleBlur","onBlur","elementGainingFocus","relatedTarget","portalId","_elementGainingFocus$","closest","id","currentTarget","getAttribute","_otherProps$onBlur","call","handleListboxKeyDown","isAriaDirectionKey","handleCloseAutoFocus","stopPropagation","nextFocussableElement","getNextFocussableElement","focus","_internalRef$current","selectOptions","map","child","isGroup","Array","isArray","subChild","flatMap","c","areAllSelected","every","option","includes","selectAllText","select2","deselectAll","selectAll","deselectAllResults","selectAllResults","length","forEach","nextValue","filter","subValue","cn","createCollectionClassName","Select2Context","Provider","PopoverPrimitive","onOpenChange","ControlledHiddenField","options","parentRef","asChild","Trigger","onKeyDown","align","onOpenAutoFocus","_internalRef$current2","onCloseAutoFocus","sideOffset","tabIndex","style","minWidth","width","Search","searchOrCreate","search","onTabKeyPress","Button","appearance","onClick","role","customSelector","Collection","Create","Group","Title","isFormControl","useIsFormControl","bubbleValue","String","BubbleSelect","displayName"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Select2.js","sources":["../../../../../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport {\n Select2Children,\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { Option, Select2OptionProps } from './components/Option';\nimport { Group, Select2GroupProps } from './components/Group';\nimport { Select2TitleProps, Title } from './components/Title';\nimport { Select2Context } from './components/Context';\nimport { createCollectionClassName } from './utilities';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { Trigger } from './components/Trigger';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport { Search } from './components/Search';\nimport { isGroup, useChildren } from './hooks/useChildren';\n\nimport { Create } from './components/Create';\nimport { Collection } from './components/Collection';\nimport { CollectionRef } from '../../primitives/Collection/Collection';\nimport { useLocalization } from '../Provider/Localization';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { getNextFocussableElement } from '../../utils/dom';\nimport { FontSize } from '../../types';\nimport { Button } from '../Button/Button';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: Select2Value;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Select2OptionValue;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: Select2Value) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: Select2Value;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n};\ntype Select2PropsWithStatics = React.ForwardRefExoticComponent<Select2Props & React.RefAttributes<HTMLButtonElement>> & {\n Option: React.ForwardRefExoticComponent<Select2OptionProps>;\n Group: React.ForwardRefExoticComponent<Select2GroupProps>;\n Title: React.ForwardRefExoticComponent<Select2TitleProps>;\n};\n\nconst Select2 = React.forwardRef<HTMLButtonElement, Select2Props>(function Select2(props, ref) {\n const {\n children: initChildren,\n defaultValue: defaultProp,\n disabled = false,\n emptyValue = undefined,\n placeholder,\n highlighted = false,\n invalid = false,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n readOnly = false,\n tags = false,\n value: prop,\n fontSize,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n if (emptyOption) {\n return [emptyOption, ...initChildren] as Select2Children;\n }\n return initChildren;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [tabTriggeredClose, setTabTriggeredClose] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControllableState<Select2Value>({\n // uncontrolled\n defaultProp,\n // controlled\n onChange,\n prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(multiple, _setValue);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n };\n\n let handleBlur;\n\n if (otherProps.onBlur) {\n // we might be focusing on an input or something inside the dropdown that was triggered by the select\n // so see if the element gaining focus is inside a portal and look up its controller\n // if we don't do this, things like validate on blur occur while simply opening the select\n handleBlur = (event: React.FocusEvent<HTMLButtonElement>) => {\n const elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (!portalId || event.currentTarget.getAttribute(`aria-controls`) !== portalId) {\n otherProps.onBlur?.(event);\n }\n };\n }\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n }\n };\n\n const handleCloseAutoFocus = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (tabTriggeredClose) {\n const nextFocussableElement = getNextFocussableElement(internalRef.current);\n\n if (nextFocussableElement) {\n // UX requirement: move focus to the next focussable element when tab key is pressed to select the value\n nextFocussableElement.focus();\n // Reset the tabTriggeredClose state\n setTabTriggeredClose(false);\n }\n } else {\n internalRef.current?.focus();\n }\n };\n\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.key)\n : filteredChildren\n .map(child =>\n isGroup(child)\n ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.key)\n : child.key\n )\n .flatMap(c => c) || [];\n\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option as string));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n } else {\n return texts.select2.selectAll;\n }\n } else if (areAllSelected) {\n return texts.select2.deselectAllResults;\n } else {\n return texts.select2.selectAllResults;\n }\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue as string));\n setValue(nextValue);\n }\n };\n\n const className = cn('border-grey-300 rounded border bg-white py-1.5 shadow-md outline-none\"', createCollectionClassName());\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n <PopoverPrimitive.Trigger asChild data-taco=\"Select2\">\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n emptyValue={emptyValue}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n ref={internalRef}\n fontSize={fontSize}\n placeholder={placeholder}>\n {flattenedChildren}\n </Trigger>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n asChild\n align=\"start\"\n onOpenAutoFocus={() => {\n internalRef.current?.focus();\n }}\n onCloseAutoFocus={handleCloseAutoFocus}\n sideOffset={4}\n tabIndex={-1}>\n <div className={className} style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}>\n {flattenedChildren.length > 0 || onCreate ? (\n <>\n <Search\n placeholder={onCreate ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n onTabKeyPress={() => setTabTriggeredClose(true)}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <Button\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </Button>\n <div className=\"border-grey-300 mx-3 rounded border-t\" />\n </>\n )}\n </>\n ) : null}\n {flattenedChildren.length <= 0 ? (\n <div className=\"text-grey-700 -mt-0.5 flex h-8 items-center px-2\" role=\"presentation\">\n No results found...\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n tabIndex={-1}\n value={value}>\n {searchQuery === '' ? (\n <Collection>{initialChildren}</Collection>\n ) : (\n <Collection>{filteredChildren}</Collection>\n )}\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}) as Select2PropsWithStatics;\nSelect2.Option = Option;\nSelect2.Group = Group;\nSelect2.Title = Title;\n\nconst ControlledHiddenField = props => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} value={bubbleValue}>\n {emptyValue !== undefined ? <option value={emptyValue} /> : null}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\nSelect2.displayName = 'Select2';\n\nexport { Select2 };\n\nexport type {\n Select2Texts,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n};\n"],"names":["Select2","React","forwardRef","props","ref","children","initChildren","defaultValue","defaultProp","disabled","emptyValue","undefined","placeholder","highlighted","invalid","multiple","name","onChange","onCreate","onDelete","onEdit","readOnly","tags","value","prop","fontSize","otherProps","emptyOption","useMemo","Option","key","className","initialChildren","internalRef","useMergedRef","listboxRef","useRef","searchRef","texts","useLocalization","dimensions","useBoundingClientRectListener","tabTriggeredClose","setTabTriggeredClose","useState","open","setOpen","_setValue","useControllableState","setValue","ListboxPrimitive","validationError","setValidationError","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","flattenedChildren","filteredChildren","searchQuery","setSearchQuery","useChildren","context","handleKeyDown","event","preventDefault","ctrlKey","metaKey","test","_listboxRef$current","current","dispatchEvent","createCustomKeyboardEvent","handleBlur","onBlur","elementGainingFocus","relatedTarget","portalId","_elementGainingFocus$","closest","id","currentTarget","getAttribute","_otherProps$onBlur","call","handleListboxKeyDown","isAriaDirectionKey","handleCloseAutoFocus","stopPropagation","nextFocussableElement","getNextFocussableElement","focus","_internalRef$current","selectOptions","map","child","isGroup","Array","isArray","subChild","flatMap","c","areAllSelected","every","option","includes","selectAllText","select2","deselectAll","selectAll","deselectAllResults","selectAllResults","length","preselectedValues","filter","nextValue","subValue","cn","createCollectionClassName","Select2Context","Provider","PopoverPrimitive","onOpenChange","ControlledHiddenField","options","parentRef","asChild","Trigger","onKeyDown","align","onOpenAutoFocus","_internalRef$current2","onCloseAutoFocus","sideOffset","tabIndex","style","minWidth","width","Search","searchOrCreate","search","onTabKeyPress","Button","appearance","onClick","role","customSelector","Collection","Create","Group","Title","isFormControl","useIsFormControl","bubbleValue","String","BubbleSelect","displayName"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PaginatedTable.js","sources":["../../../../../../../../src/components/Table/components/PaginatedTable.tsx"],"sourcesContent":["import React from 'react';\nimport { ForwardedGenericTableWithStatics,
|
1
|
+
{"version":3,"file":"PaginatedTable.js","sources":["../../../../../../../../src/components/Table/components/PaginatedTable.tsx"],"sourcesContent":["import React from 'react';\nimport { ForwardedGenericTableWithStatics, LegacyTableProps, LegacyTableRef } from '../types';\nimport { Table } from './Table';\n\nexport const PaginatedTable = React.forwardRef(function PaginatedTable<T>(\n props: LegacyTableProps<T>,\n ref: React.Ref<LegacyTableRef>\n) {\n return <Table {...props} disablePagination={false} ref={ref} />;\n}) as ForwardedGenericTableWithStatics;\n\nPaginatedTable.Column = () => null;\nPaginatedTable.Group = () => null;\n"],"names":["PaginatedTable","React","forwardRef","props","ref","Table","disablePagination","Column","Group"],"mappings":";;;MAIaA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,cAAcA,CAClEG,KAA0B,EAC1BC,GAA8B;EAE9B,oBAAOH,6BAACI,KAAK,oBAAKF,KAAK;IAAEG,iBAAiB,EAAE,KAAK;IAAEF,GAAG,EAAEA;KAAO;AACnE,CAAC;AAEDJ,cAAc,CAACO,MAAM,GAAG,MAAM,IAAI;AAClCP,cAAc,CAACQ,KAAK,GAAG,MAAM,IAAI;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport {
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { LegacyTableProps, InternalTableRow, ForwardedGenericTableWithStatics, LegacyTableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { Pagination } from '../../Pagination/Pagination';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\n\nexport const Table = React.forwardRef(function Table<T>(\n props: LegacyTableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<LegacyTableRef>\n) {\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\n\n let paginationElement;\n\n if (pagination) {\n paginationElement = (\n <Pagination\n className=\"my-4 w-full\"\n length={pagination.length}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n setPageIndex={pagination.setPageIndex}\n setPageSize={pagination.setPageSize}\n showPageControls={pagination.length > pagination.pageSize}\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\n />\n );\n }\n\n return (\n <>\n {paginationElement}\n <BaseTable {...tableProps} ref={tableRef}>\n {rows.length\n ? rows.map((row: InternalTableRow, index: number) => {\n prepareRow(row, index);\n return (\n <Row\n {...rowProps}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n />\n );\n })\n : emptyStateRenderer()}\n </BaseTable>\n {paginationElement}\n </>\n );\n}) as ForwardedGenericTableWithStatics;\n\nTable.Column = () => null;\nTable.Group = () => null;\n"],"names":["Table","React","forwardRef","props","ref","emptyStateRenderer","DefaultEmptyState","otherProps","tableRef","useMergedRef","rowProps","tableProps","rows","prepareRow","pagination","instance","useTable","paginationElement","Pagination","className","length","pageIndex","pageSize","setPageIndex","setPageSize","showPageControls","dangerouslyHijackGlobalKeyboardNavigation","BaseTable","map","row","index","Row","key","headerGroups","Column","Group"],"mappings":";;;;;;;MASaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,KAAKA,CAChDG,KAA0D,EAC1DC,GAA8B;EAE9B,MAAM;IAAEC,kBAAkB,GAAGC,iBAAiB;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACvE,MAAMK,QAAQ,GAAQC,YAAY,CAAiBL,GAAG,CAAC;EACvD,MAAM;IAAEM,QAAQ;IAAEC,UAAU;IAAEC,IAAI;IAAEC,UAAU;IAAEC,UAAU;IAAEC;GAAU,GAAGC,QAAQ,CAACT,UAAU,EAAEC,QAAQ,CAAC;EAEvG,IAAIS,iBAAiB;EAErB,IAAIH,UAAU,EAAE;IACZG,iBAAiB,gBACbhB,6BAACiB,UAAU;MACPC,SAAS,EAAC,aAAa;MACvBC,MAAM,EAAEN,UAAU,CAACM,MAAM;MACzBC,SAAS,EAAEP,UAAU,CAACO,SAAS;MAC/BC,QAAQ,EAAER,UAAU,CAACQ,QAAQ;MAC7BC,YAAY,EAAET,UAAU,CAACS,YAAY;MACrCC,WAAW,EAAEV,UAAU,CAACU,WAAW;MACnCC,gBAAgB,EAAEX,UAAU,CAACM,MAAM,GAAGN,UAAU,CAACQ,QAAQ;MACzDI,yCAAyC,EAAEvB,KAAK,CAACuB;MAExD;;EAGL,oBACIzB,4DACKgB,iBAAiB,eAClBhB,6BAAC0B,SAAS,oBAAKhB,UAAU;IAAEP,GAAG,EAAEI;MAC3BI,IAAI,CAACQ,MAAM,GACNR,IAAI,CAACgB,GAAG,CAAC,CAACC,GAAqB,EAAEC,KAAa;IAC1CjB,UAAU,CAACgB,GAAG,EAAEC,KAAK,CAAC;IACtB,oBACI7B,6BAAC8B,GAAG,oBACIrB,QAAQ;MACZsB,GAAG,EAAEF,KAAK;MACVA,KAAK,EAAEA,KAAK;MACZD,GAAG,EAAEA,GAAG;MACRd,QAAQ,EAAEA,QAAQ;MAClBkB,YAAY,EAAEtB,UAAU,CAACsB;OAC3B;GAET,CAAC,GACF5B,kBAAkB,EAAE,CAClB,EACXY,iBAAiB,CACnB;AAEX,CAAC;AAEDjB,KAAK,CAACkC,MAAM,GAAG,MAAM,IAAI;AACzBlC,KAAK,CAACmC,KAAK,GAAG,MAAM,IAAI;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WindowedTable.js","sources":["../../../../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-300\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}>\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}>\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","height","_","texts","useLocalization","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useMergedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","state","useTable","windowed","headerRef","rowsRef","setRowsRef","useState","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"WindowedTable.js","sources":["../../../../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { LegacyTableProps, ForwardedGenericTableWithStatics, LegacyTableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-300\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: LegacyTableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<LegacyTableRef>\n) {\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}>\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}>\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","height","_","texts","useLocalization","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useMergedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","state","useTable","windowed","headerRef","rowsRef","setRowsRef","useState","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRowActions.js","sources":["../../../../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Localization';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x && typeof x !== 'boolean') as RowAction<any>[];\n\n if (row) {\n visibleActions = visibleActions.filter(action => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach(action => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.key === 'Escape' && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}>\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","key","_event$target","target","_event$target$form","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useRowActions.js","sources":["../../../../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Localization';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, LegacyTableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: LegacyTableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x && typeof x !== 'boolean') as RowAction<any>[];\n\n if (row) {\n visibleActions = visibleActions.filter(action => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach(action => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: LegacyTableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.key === 'Escape' && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}>\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","key","_event$target","target","_event$target$form","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRowCreation.js","sources":["../../../../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath,
|
1
|
+
{"version":3,"file":"useRowCreation.js","sources":["../../../../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, LegacyTableRef } from '../types';\n\nexport const insertChildTableRow = <TRow,>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow,>(\n data: Row<TRow>[],\n tableRef: React.RefObject<LegacyTableRef>\n): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n"],"names":["insertChildTableRow","data","rowIndexPath","undefined","values","nexTRow","JSON","parse","stringify","childRowIndexPath","_currentRow$subRows","rowIndexes","convertRowIndexPathToNumberArray","currentRow","getByRowIndexPath","join","nextSubRows","subRows","path","map","i","unshift","set","push","removeChildTableRow","rootIndex","Number","shift","length","unsetPath","index","unset","pop","setPath","compact","get","pullAt","useTableRowCreation","tableRef","internalData","setInternalData","React","useState","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
|