@osdk/react-components 0.2.0-beta.1 → 0.2.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +21 -5
- package/build/browser/base-components/action-button/ActionButton.js +31 -0
- package/build/browser/base-components/action-button/ActionButton.js.map +1 -0
- package/build/browser/base-components/action-button/ActionButton.module.css +70 -0
- package/build/browser/base-components/action-button/ActionButton.module.css.js +8 -0
- package/build/browser/base-components/checkbox/Checkbox.js +27 -32
- package/build/browser/base-components/checkbox/Checkbox.module.css +79 -0
- package/build/browser/base-components/checkbox/Checkbox.module.css.js +7 -0
- package/build/browser/base-components/combobox/Combobox.js +124 -0
- package/build/browser/base-components/combobox/Combobox.js.map +1 -0
- package/build/browser/base-components/combobox/Combobox.module.css +177 -0
- package/build/browser/base-components/combobox/Combobox.module.css.js +16 -0
- package/build/browser/base-components/dialog/Dialog.js +52 -0
- package/build/browser/base-components/dialog/Dialog.js.map +1 -0
- package/build/browser/base-components/dialog/Dialog.module.css +101 -0
- package/build/browser/base-components/dialog/Dialog.module.css.js +13 -0
- package/build/browser/base-components/draggable-list/DraggableList.js +155 -0
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -0
- package/build/browser/base-components/draggable-list/DraggableList.module.css +108 -0
- package/build/browser/base-components/draggable-list/DraggableList.module.css.js +11 -0
- package/build/browser/base-components/search-bar/SearchBar.js +44 -0
- package/build/browser/base-components/search-bar/SearchBar.js.map +1 -0
- package/build/browser/base-components/search-bar/SearchBar.module.css +53 -0
- package/build/browser/base-components/search-bar/SearchBar.module.css.js +8 -0
- package/build/browser/base-components/select/Select.js +89 -0
- package/build/browser/base-components/select/Select.js.map +1 -0
- package/build/browser/base-components/select/Select.module.css +138 -0
- package/build/browser/base-components/select/Select.module.css.js +11 -0
- package/build/browser/base-components/switch/Switch.js +33 -0
- package/build/browser/base-components/switch/Switch.js.map +1 -0
- package/build/browser/base-components/switch/Switch.module.css +91 -0
- package/build/browser/base-components/switch/Switch.module.css.js +7 -0
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
- package/build/browser/filter-list/__tests__/getFilterKey.test.js +53 -0
- package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +1 -0
- package/build/browser/filter-list/__tests__/testUtils.js +192 -0
- package/build/browser/filter-list/__tests__/testUtils.js.map +1 -0
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
- package/build/browser/filter-list/hooks/useDebouncedValue.js +52 -0
- package/build/browser/filter-list/hooks/useDebouncedValue.js.map +1 -0
- package/build/browser/filter-list/hooks/useFilterListState.js +119 -0
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +92 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/browser/filter-list/types/AddFilterMenuTypes.js +2 -0
- package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +1 -0
- package/build/browser/filter-list/types/CustomRendererTypes.js +2 -0
- package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -0
- package/build/browser/filter-list/types/KeywordSearchTypes.js +2 -0
- package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -0
- package/build/browser/filter-list/types/LinkedFilterTypes.js +2 -0
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -0
- package/build/browser/filter-list/types/index.js +21 -0
- package/build/browser/filter-list/types/index.js.map +1 -0
- package/build/browser/filter-list/utils/assertUnreachable.js +25 -0
- package/build/browser/filter-list/utils/assertUnreachable.js.map +1 -0
- package/build/browser/filter-list/utils/coerceFilterValue.js +33 -0
- package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +337 -0
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -0
- package/build/browser/filter-list/utils/filterValues.js +55 -0
- package/build/browser/filter-list/utils/filterValues.js.map +1 -0
- package/build/browser/filter-list/utils/getFilterKey.js +34 -0
- package/build/browser/filter-list/utils/getFilterKey.js.map +1 -0
- package/build/browser/object-table/CellContextMenu.js +23 -20
- package/build/browser/object-table/CellContextMenu.module.css +20 -0
- package/build/browser/object-table/CellContextMenu.module.css.js +6 -0
- package/build/browser/object-table/ColumnConfigDialog.js +259 -0
- package/build/browser/object-table/ColumnConfigDialog.js.map +1 -0
- package/build/browser/object-table/ColumnConfigDialog.module.css +247 -0
- package/build/browser/object-table/ColumnConfigDialog.module.css.js +29 -0
- package/build/browser/object-table/LoadingCell.js +24 -29
- package/build/browser/object-table/LoadingCell.module.css +48 -0
- package/build/browser/object-table/LoadingCell.module.css.js +8 -0
- package/build/browser/object-table/LoadingRow.js +24 -50
- package/build/browser/object-table/LoadingStateTable.js +49 -343
- package/build/browser/object-table/LoadingStateTable.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +178 -0
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -0
- package/build/browser/object-table/MultiColumnSortDialog.module.css +195 -0
- package/build/browser/object-table/MultiColumnSortDialog.module.css.js +22 -0
- package/build/browser/object-table/NonIdealState.js +23 -20
- package/build/browser/object-table/NonIdealState.module.css +27 -0
- package/build/browser/object-table/NonIdealState.module.css.js +7 -0
- package/build/browser/object-table/ObjectTable.js +43 -13
- package/build/browser/object-table/ObjectTable.js.map +1 -1
- package/build/browser/object-table/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/SortableItemsList.js +35 -0
- package/build/browser/object-table/SortableItemsList.js.map +1 -0
- package/build/browser/object-table/Table.js +54 -934
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/Table.module.css +29 -0
- package/build/browser/object-table/Table.module.css.js +6 -0
- package/build/browser/object-table/TableBody.js +36 -260
- package/build/browser/object-table/TableBody.module.css +20 -0
- package/build/browser/object-table/TableBody.module.css.js +6 -0
- package/build/browser/object-table/TableCell.js +31 -111
- package/build/browser/object-table/TableCell.module.css +73 -0
- package/build/browser/object-table/TableCell.module.css.js +8 -0
- package/build/browser/object-table/TableHeader.js +126 -216
- package/build/browser/object-table/TableHeader.js.map +1 -1
- package/build/browser/object-table/TableHeader.module.css +106 -0
- package/build/browser/object-table/TableHeader.module.css.js +10 -0
- package/build/browser/object-table/TableHeaderContent.js +21 -18
- package/build/browser/object-table/TableHeaderContent.module.css +30 -0
- package/build/browser/object-table/TableHeaderContent.module.css.js +6 -0
- package/build/browser/object-table/TableHeaderWithPopover.js +110 -93
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.module.css +141 -0
- package/build/browser/object-table/TableHeaderWithPopover.module.css.js +17 -0
- package/build/browser/object-table/TableRow.js +26 -144
- package/build/browser/object-table/TableRow.module.css +60 -0
- package/build/browser/object-table/TableRow.module.css.js +6 -0
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +3 -0
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnDefs.js +7 -2
- package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnResize.js +45 -0
- package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
- package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
- package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js +8 -7
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
- package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/browser/object-table/utils/types.js +2 -0
- package/build/browser/object-table/utils/types.js.map +1 -0
- package/build/browser/public/experimental.js +1 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/styles.css +1875 -0
- package/build/cjs/public/experimental.cjs +1036 -197
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +659 -29
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +435 -44
- package/build/esm/base-components/action-button/ActionButton.js +31 -0
- package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
- package/build/esm/base-components/action-button/ActionButton.module.css +70 -0
- package/build/esm/base-components/checkbox/Checkbox.module.css +1 -1
- package/build/esm/base-components/combobox/Combobox.js +124 -0
- package/build/esm/base-components/combobox/Combobox.js.map +1 -0
- package/build/esm/base-components/combobox/Combobox.module.css +177 -0
- package/build/esm/base-components/dialog/Dialog.js +52 -0
- package/build/esm/base-components/dialog/Dialog.js.map +1 -0
- package/build/esm/base-components/dialog/Dialog.module.css +101 -0
- package/build/esm/base-components/draggable-list/DraggableList.js +155 -0
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
- package/build/esm/base-components/draggable-list/DraggableList.module.css +108 -0
- package/build/esm/base-components/search-bar/SearchBar.js +44 -0
- package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
- package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
- package/build/esm/base-components/select/Select.js +89 -0
- package/build/esm/base-components/select/Select.js.map +1 -0
- package/build/esm/base-components/select/Select.module.css +138 -0
- package/build/esm/base-components/switch/Switch.js +33 -0
- package/build/esm/base-components/switch/Switch.js.map +1 -0
- package/build/esm/base-components/switch/Switch.module.css +91 -0
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
- package/build/esm/filter-list/__tests__/getFilterKey.test.js +53 -0
- package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +1 -0
- package/build/esm/filter-list/__tests__/testUtils.js +192 -0
- package/build/esm/filter-list/__tests__/testUtils.js.map +1 -0
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
- package/build/esm/filter-list/hooks/useDebouncedValue.js +52 -0
- package/build/esm/filter-list/hooks/useDebouncedValue.js.map +1 -0
- package/build/esm/filter-list/hooks/useFilterListState.js +119 -0
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/esm/filter-list/types/AddFilterMenuTypes.js +2 -0
- package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +1 -0
- package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
- package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
- package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
- package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
- package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
- package/build/esm/filter-list/types/index.js +21 -0
- package/build/esm/filter-list/types/index.js.map +1 -0
- package/build/esm/filter-list/utils/assertUnreachable.js +25 -0
- package/build/esm/filter-list/utils/assertUnreachable.js.map +1 -0
- package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
- package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +337 -0
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
- package/build/esm/filter-list/utils/filterValues.js +55 -0
- package/build/esm/filter-list/utils/filterValues.js.map +1 -0
- package/build/esm/filter-list/utils/getFilterKey.js +34 -0
- package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
- package/build/esm/object-table/ColumnConfigDialog.js +259 -0
- package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
- package/build/esm/object-table/ColumnConfigDialog.module.css +247 -0
- package/build/esm/object-table/LoadingStateTable.js +4 -4
- package/build/esm/object-table/LoadingStateTable.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +178 -0
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
- package/build/esm/object-table/MultiColumnSortDialog.module.css +195 -0
- package/build/esm/object-table/NonIdealState.module.css +2 -3
- package/build/esm/object-table/ObjectTable.js +43 -13
- package/build/esm/object-table/ObjectTable.js.map +1 -1
- package/build/esm/object-table/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/SortableItemsList.js +35 -0
- package/build/esm/object-table/SortableItemsList.js.map +1 -0
- package/build/esm/object-table/Table.js +9 -7
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +9 -2
- package/build/esm/object-table/TableCell.module.css +11 -0
- package/build/esm/object-table/TableHeader.js +93 -6
- package/build/esm/object-table/TableHeader.js.map +1 -1
- package/build/esm/object-table/TableHeader.module.css +7 -2
- package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +54 -23
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +3 -0
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnDefs.js +7 -2
- package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnResize.js +45 -0
- package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
- package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
- package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js +8 -7
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
- package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/esm/object-table/utils/types.js +2 -0
- package/build/esm/object-table/utils/types.js.map +1 -0
- package/build/esm/public/experimental.js +1 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
- package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
- package/build/types/base-components/combobox/Combobox.d.ts +52 -0
- package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
- package/build/types/base-components/dialog/Dialog.d.ts +10 -0
- package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
- package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
- package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
- package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
- package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
- package/build/types/base-components/select/Select.d.ts +34 -0
- package/build/types/base-components/select/Select.d.ts.map +1 -0
- package/build/types/base-components/switch/Switch.d.ts +10 -0
- package/build/types/base-components/switch/Switch.d.ts.map +1 -0
- package/build/types/filter-list/FilterListApi.d.ts +63 -12
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts +101 -53
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +1 -0
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +1 -0
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +1 -0
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +1 -0
- package/build/types/filter-list/__tests__/testUtils.d.ts +59 -0
- package/build/types/filter-list/__tests__/testUtils.d.ts.map +1 -0
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +1 -0
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +1 -0
- package/build/types/filter-list/hooks/useDebouncedValue.d.ts +11 -0
- package/build/types/filter-list/hooks/useDebouncedValue.d.ts.map +1 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts +11 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +20 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +61 -0
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
- package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
- package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts +70 -0
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/index.d.ts +4 -0
- package/build/types/filter-list/types/index.d.ts.map +1 -0
- package/build/types/filter-list/utils/assertUnreachable.d.ts +6 -0
- package/build/types/filter-list/utils/assertUnreachable.d.ts.map +1 -0
- package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
- package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +16 -0
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterValues.d.ts +5 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
- package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
- package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
- package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
- package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
- package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
- package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
- package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
- package/build/types/object-table/ObjectTable.d.ts +1 -1
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +41 -6
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/SortableItemsList.d.ts +13 -0
- package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
- package/build/types/object-table/Table.d.ts +12 -1
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableHeader.d.ts +3 -1
- package/build/types/object-table/TableHeader.d.ts.map +1 -1
- package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
- package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
- package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
- package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
- package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts +5 -4
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts +5 -0
- package/build/types/object-table/utils/types.d.ts.map +1 -0
- package/build/types/public/experimental.d.ts +2 -0
- package/build/types/public/experimental.d.ts.map +1 -1
- package/package.json +16 -8
|
@@ -41,27 +41,42 @@
|
|
|
41
41
|
flex-shrink: 0;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
.osdkHeaderText {
|
|
45
|
+
display: -webkit-box;
|
|
46
|
+
-webkit-box-orient: vertical;
|
|
47
|
+
-webkit-line-clamp: 3;
|
|
48
|
+
line-clamp: 3;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
text-overflow: ellipsis;
|
|
51
|
+
flex-grow: 1;
|
|
52
|
+
}
|
|
53
|
+
|
|
44
54
|
.osdkHeaderPopoverTrigger {
|
|
45
|
-
padding:
|
|
55
|
+
padding: var(--osdk-table-header-menu-padding);
|
|
46
56
|
flex-shrink: 0;
|
|
47
57
|
flex-grow: 0;
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
background-color: var(--osdk-table-header-menu-bg);
|
|
59
|
+
border: var(--osdk-table-header-menu-border);
|
|
50
60
|
border-radius: var(--osdk-surface-border-radius);
|
|
51
|
-
color: var(--osdk-
|
|
61
|
+
color: var(--osdk-table-header-menu-color);
|
|
62
|
+
cursor: pointer;
|
|
52
63
|
user-select: none;
|
|
53
|
-
outline: none;
|
|
54
64
|
|
|
55
65
|
&:hover {
|
|
56
|
-
background-color: var(--osdk-
|
|
66
|
+
background-color: var(--osdk-table-header-menu-bg-hover);
|
|
57
67
|
}
|
|
58
68
|
|
|
59
69
|
&[data-popup-open] {
|
|
60
|
-
background-color: var(--osdk-
|
|
70
|
+
background-color: var(--osdk-table-header-menu-bg-active);
|
|
71
|
+
color: var(--osdk-table-header-menu-color-active);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:focus {
|
|
75
|
+
outline: none;
|
|
61
76
|
}
|
|
62
77
|
|
|
63
78
|
&:focus-visible {
|
|
64
|
-
outline: var(--osdk-focus-
|
|
79
|
+
outline: var(--osdk-focus-outline);
|
|
65
80
|
outline-offset: var(--osdk-focus-visible-outline-offset);
|
|
66
81
|
}
|
|
67
82
|
}
|
|
@@ -75,36 +90,52 @@
|
|
|
75
90
|
box-sizing: border-box;
|
|
76
91
|
padding: var(--osdk-surface-spacing);
|
|
77
92
|
border-radius: var(--osdk-surface-border-radius);
|
|
78
|
-
border: var(--osdk-surface-border
|
|
79
|
-
|
|
80
|
-
background-color: var(--osdk-surface-background-color-default);
|
|
93
|
+
border: var(--osdk-surface-border);
|
|
94
|
+
background-color: var(--osdk-surface-background-color-default-rest);
|
|
81
95
|
color: var(--osdk-typography-color-default-rest);
|
|
82
96
|
box-shadow: var(--osdk-surface-shadow-2);
|
|
83
97
|
font-size: var(--osdk-typography-size-body-medium);
|
|
84
|
-
|
|
98
|
+
|
|
99
|
+
&:focus {
|
|
100
|
+
outline: none;
|
|
101
|
+
}
|
|
85
102
|
}
|
|
86
103
|
|
|
87
104
|
.osdkHeaderMenuItem {
|
|
88
105
|
justify-content: flex-start;
|
|
89
106
|
padding: var(--osdk-surface-spacing);
|
|
90
107
|
cursor: pointer;
|
|
91
|
-
}
|
|
92
108
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
109
|
+
&:hover {
|
|
110
|
+
background-color: var(--osdk-surface-background-color-default-hover);
|
|
111
|
+
border-radius: var(--osdk-surface-border-radius);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&:focus {
|
|
115
|
+
outline: none;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&:focus-visible {
|
|
119
|
+
outline: var(--osdk-focus-outline);
|
|
120
|
+
outline-offset: var(--osdk-focus-visible-outline-offset);
|
|
121
|
+
}
|
|
97
122
|
}
|
|
98
123
|
|
|
99
|
-
.osdkHeaderActiveMenuItem {
|
|
124
|
+
.osdkHeaderMenuItem .osdkHeaderActiveMenuItem {
|
|
100
125
|
background-color: var(--osdk-intent-primary-rest);
|
|
101
126
|
color: var(--osdk-intent-primary-foreground);
|
|
102
|
-
}
|
|
103
127
|
|
|
104
|
-
|
|
105
|
-
|
|
128
|
+
&:hover {
|
|
129
|
+
background-color: var(--osdk-intent-primary-hover);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
&:active {
|
|
133
|
+
background-color: var(--osdk-intent-primary-active);
|
|
134
|
+
}
|
|
106
135
|
}
|
|
107
136
|
|
|
108
|
-
.
|
|
109
|
-
|
|
137
|
+
.sortIndex {
|
|
138
|
+
font-size: var(--osdk-typography-size-body-x-small);
|
|
139
|
+
margin-left: var(--osdk-surface-spacing);
|
|
140
|
+
color: var(--osdk-typography-color-muted);
|
|
110
141
|
}
|
|
@@ -14,165 +14,187 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import { describe, expect, it } from "vitest";
|
|
17
|
+
import { act, renderHook } from "@testing-library/react";
|
|
18
|
+
import { describe, expect, it, vi } from "vitest";
|
|
19
|
+
import { SELECTION_COLUMN_ID } from "../../utils/constants.js";
|
|
19
20
|
import { useColumnVisibility } from "../useColumnVisibility.js";
|
|
20
21
|
const TestObjectType = {
|
|
21
22
|
type: "object",
|
|
22
23
|
apiName: "TestObject"
|
|
23
24
|
};
|
|
25
|
+
// Helper to create mock ColumnDef objects that mirror what useColumnDefs would produce
|
|
26
|
+
function createMockColumn(id, isVisible) {
|
|
27
|
+
return {
|
|
28
|
+
id,
|
|
29
|
+
meta: isVisible !== undefined ? {
|
|
30
|
+
isVisible
|
|
31
|
+
} : undefined
|
|
32
|
+
};
|
|
33
|
+
}
|
|
24
34
|
describe(useColumnVisibility, () => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
}];
|
|
45
|
-
const {
|
|
46
|
-
result
|
|
47
|
-
} = renderHook(() => useColumnVisibility({
|
|
48
|
-
columnDefinitions
|
|
49
|
-
}));
|
|
50
|
-
expect(result.current).toEqual({});
|
|
51
|
-
});
|
|
52
|
-
it("handles mixed column types with different visibility states", async () => {
|
|
53
|
-
const columnDefinitions = [{
|
|
54
|
-
locator: {
|
|
55
|
-
type: "property",
|
|
56
|
-
id: "name"
|
|
57
|
-
},
|
|
58
|
-
isVisible: true
|
|
59
|
-
}, {
|
|
60
|
-
locator: {
|
|
61
|
-
type: "function",
|
|
62
|
-
id: "myFunction"
|
|
63
|
-
},
|
|
64
|
-
isVisible: false
|
|
65
|
-
}, {
|
|
66
|
-
locator: {
|
|
67
|
-
type: "rdp",
|
|
68
|
-
id: "myRdp",
|
|
69
|
-
creator: () => ({})
|
|
70
|
-
},
|
|
71
|
-
isVisible: true
|
|
72
|
-
}, {
|
|
73
|
-
locator: {
|
|
74
|
-
type: "property",
|
|
75
|
-
id: "email"
|
|
76
|
-
}
|
|
77
|
-
}];
|
|
78
|
-
const {
|
|
79
|
-
result
|
|
80
|
-
} = renderHook(() => useColumnVisibility({
|
|
81
|
-
columnDefinitions
|
|
82
|
-
}));
|
|
83
|
-
await waitFor(() => {
|
|
84
|
-
expect(result.current).toEqual({
|
|
35
|
+
describe("column visibility", () => {
|
|
36
|
+
it("returns empty columnVisibility when no columnDefinitions provided", () => {
|
|
37
|
+
const allColumns = [];
|
|
38
|
+
const {
|
|
39
|
+
result
|
|
40
|
+
} = renderHook(() => useColumnVisibility({
|
|
41
|
+
allColumns
|
|
42
|
+
}));
|
|
43
|
+
expect(result.current.columnVisibility).toEqual({});
|
|
44
|
+
});
|
|
45
|
+
it("initializes all columns as visible by default", () => {
|
|
46
|
+
const allColumns = [createMockColumn("name"), createMockColumn("email")];
|
|
47
|
+
const {
|
|
48
|
+
result
|
|
49
|
+
} = renderHook(() => useColumnVisibility({
|
|
50
|
+
allColumns
|
|
51
|
+
}));
|
|
52
|
+
expect(result.current.columnVisibility).toEqual({
|
|
85
53
|
name: true,
|
|
86
|
-
|
|
87
|
-
myRdp: true
|
|
54
|
+
email: true
|
|
88
55
|
});
|
|
89
56
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
type: "property",
|
|
104
|
-
id: "name"
|
|
105
|
-
},
|
|
106
|
-
isVisible: true
|
|
107
|
-
}]
|
|
108
|
-
}
|
|
57
|
+
it("handles mixed column types with different visibility states", () => {
|
|
58
|
+
const allColumns = [createMockColumn("name", true), createMockColumn("myFunction", false), createMockColumn("myRdp", true), createMockColumn("email")];
|
|
59
|
+
const {
|
|
60
|
+
result
|
|
61
|
+
} = renderHook(() => useColumnVisibility({
|
|
62
|
+
allColumns
|
|
63
|
+
}));
|
|
64
|
+
expect(result.current.columnVisibility).toEqual({
|
|
65
|
+
name: true,
|
|
66
|
+
myFunction: false,
|
|
67
|
+
myRdp: true,
|
|
68
|
+
email: true
|
|
69
|
+
});
|
|
109
70
|
});
|
|
110
|
-
|
|
111
|
-
|
|
71
|
+
it("updates columnVisibility when columnDefinitions change", () => {
|
|
72
|
+
const initialColumns = [createMockColumn("name", true)];
|
|
73
|
+
const {
|
|
74
|
+
result,
|
|
75
|
+
rerender
|
|
76
|
+
} = renderHook(({
|
|
77
|
+
allColumns
|
|
78
|
+
}) => useColumnVisibility({
|
|
79
|
+
allColumns
|
|
80
|
+
}), {
|
|
81
|
+
initialProps: {
|
|
82
|
+
allColumns: initialColumns
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
expect(result.current.columnVisibility).toEqual({
|
|
112
86
|
name: true
|
|
113
87
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
id: "name"
|
|
120
|
-
},
|
|
121
|
-
isVisible: false
|
|
122
|
-
}, {
|
|
123
|
-
locator: {
|
|
124
|
-
type: "property",
|
|
125
|
-
id: "email"
|
|
126
|
-
},
|
|
127
|
-
isVisible: true
|
|
128
|
-
}]
|
|
129
|
-
});
|
|
130
|
-
await waitFor(() => {
|
|
131
|
-
expect(result.current).toEqual({
|
|
88
|
+
const updatedColumns = [createMockColumn("name", false), createMockColumn("email", true)];
|
|
89
|
+
rerender({
|
|
90
|
+
allColumns: updatedColumns
|
|
91
|
+
});
|
|
92
|
+
expect(result.current.columnVisibility).toEqual({
|
|
132
93
|
name: false,
|
|
133
94
|
email: true
|
|
134
95
|
});
|
|
135
96
|
});
|
|
136
97
|
});
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
isVisible: false
|
|
155
|
-
}, {
|
|
156
|
-
locator: {
|
|
157
|
-
type: "property",
|
|
158
|
-
id: "id"
|
|
159
|
-
}
|
|
160
|
-
}];
|
|
161
|
-
const {
|
|
162
|
-
result
|
|
163
|
-
} = renderHook(() => useColumnVisibility({
|
|
164
|
-
columnDefinitions
|
|
165
|
-
}));
|
|
166
|
-
await waitFor(() => {
|
|
167
|
-
expect(result.current).toEqual({
|
|
98
|
+
describe("onColumnVisibilityChanged callback", () => {
|
|
99
|
+
it("calls onColumnVisibilityChanged when visibility changed", () => {
|
|
100
|
+
const onColumnVisibilityChanged = vi.fn();
|
|
101
|
+
const allColumns = [createMockColumn("name", true), createMockColumn("email", true)];
|
|
102
|
+
const {
|
|
103
|
+
result
|
|
104
|
+
} = renderHook(() => useColumnVisibility({
|
|
105
|
+
allColumns,
|
|
106
|
+
onColumnVisibilityChanged
|
|
107
|
+
}));
|
|
108
|
+
act(() => {
|
|
109
|
+
result.current.onColumnVisibilityChange(prev => ({
|
|
110
|
+
...prev,
|
|
111
|
+
email: false
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
expect(result.current.columnVisibility).toEqual({
|
|
168
115
|
name: true,
|
|
169
|
-
|
|
116
|
+
email: false
|
|
170
117
|
});
|
|
118
|
+
expect(onColumnVisibilityChanged).toHaveBeenCalledWith([{
|
|
119
|
+
columnId: "name",
|
|
120
|
+
isVisible: true
|
|
121
|
+
}, {
|
|
122
|
+
columnId: "email",
|
|
123
|
+
isVisible: false
|
|
124
|
+
}]);
|
|
171
125
|
});
|
|
126
|
+
it("does not call callback when callback is not provided", () => {
|
|
127
|
+
const allColumns = [createMockColumn("name", true)];
|
|
128
|
+
const {
|
|
129
|
+
result
|
|
130
|
+
} = renderHook(() => useColumnVisibility({
|
|
131
|
+
allColumns
|
|
132
|
+
}));
|
|
172
133
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
134
|
+
// Should not throw
|
|
135
|
+
act(() => {
|
|
136
|
+
result.current.onColumnVisibilityChange({
|
|
137
|
+
name: false
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
expect(result.current.columnVisibility).toEqual({
|
|
141
|
+
name: false
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe("column ordering", () => {
|
|
146
|
+
it("initializes column order from column definitions", () => {
|
|
147
|
+
const allColumns = [createMockColumn("name"), createMockColumn("email"), createMockColumn("age")];
|
|
148
|
+
const {
|
|
149
|
+
result
|
|
150
|
+
} = renderHook(() => useColumnVisibility({
|
|
151
|
+
allColumns
|
|
152
|
+
}));
|
|
153
|
+
expect(result.current.columnOrder).toEqual(["name", "email", "age"]);
|
|
154
|
+
});
|
|
155
|
+
it("includes selection column first when hasSelectionColumn is true", () => {
|
|
156
|
+
const allColumns = [createMockColumn(SELECTION_COLUMN_ID), createMockColumn("name"), createMockColumn("email")];
|
|
157
|
+
const {
|
|
158
|
+
result
|
|
159
|
+
} = renderHook(() => useColumnVisibility({
|
|
160
|
+
allColumns
|
|
161
|
+
}));
|
|
162
|
+
expect(result.current.columnOrder).toEqual([SELECTION_COLUMN_ID, "name", "email"]);
|
|
163
|
+
});
|
|
164
|
+
it("updates column order when onColumnOrderChange is called", () => {
|
|
165
|
+
const allColumns = [createMockColumn("name"), createMockColumn("email"), createMockColumn("age")];
|
|
166
|
+
const {
|
|
167
|
+
result
|
|
168
|
+
} = renderHook(() => useColumnVisibility({
|
|
169
|
+
allColumns
|
|
170
|
+
}));
|
|
171
|
+
expect(result.current.columnOrder).toEqual(["name", "email", "age"]);
|
|
172
|
+
act(() => {
|
|
173
|
+
result.current.onColumnOrderChange(["email", "age", "name"]);
|
|
174
|
+
});
|
|
175
|
+
expect(result.current.columnOrder).toEqual(["email", "age", "name"]);
|
|
176
|
+
});
|
|
177
|
+
it("updates column order when columnDefinitions change", () => {
|
|
178
|
+
const initialColumns = [createMockColumn("name"), createMockColumn("email")];
|
|
179
|
+
const {
|
|
180
|
+
result,
|
|
181
|
+
rerender
|
|
182
|
+
} = renderHook(({
|
|
183
|
+
allColumns
|
|
184
|
+
}) => useColumnVisibility({
|
|
185
|
+
allColumns
|
|
186
|
+
}), {
|
|
187
|
+
initialProps: {
|
|
188
|
+
allColumns: initialColumns
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
expect(result.current.columnOrder).toEqual(["name", "email"]);
|
|
192
|
+
const updatedColumns = [createMockColumn("age"), createMockColumn("name"), createMockColumn("email")];
|
|
193
|
+
rerender({
|
|
194
|
+
allColumns: updatedColumns
|
|
195
|
+
});
|
|
196
|
+
expect(result.current.columnOrder).toEqual(["age", "name", "email"]);
|
|
197
|
+
});
|
|
176
198
|
});
|
|
177
199
|
});
|
|
178
200
|
//# sourceMappingURL=useColumnVisibility.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnVisibility.test.js","names":["renderHook","waitFor","describe","expect","it","useColumnVisibility","TestObjectType","type","apiName","result","columnDefinitions","undefined","current","toBeUndefined","locator","id","toEqual","isVisible","creator","name","myFunction","myRdp","rerender","initialProps","email","age","not","toHaveProperty"],"sources":["useColumnVisibility.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DerivedProperty,\n ObjectTypeDefinition,\n PropertyKeys,\n QueryDefinition,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport { renderHook, waitFor } from \"@testing-library/react\";\nimport { describe, expect, it } from \"vitest\";\nimport type { ColumnDefinition } from \"../../ObjectTableApi.js\";\nimport { useColumnVisibility } from \"../useColumnVisibility.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\ntype TestObjectKeys = PropertyKeys<TestObject>;\n\ndescribe(useColumnVisibility, () => {\n it(\"returns undefined columnVisibility when no columnDefinitions provided\", () => {\n const { result } = renderHook(() =>\n useColumnVisibility({\n columnDefinitions: undefined,\n })\n );\n\n expect(result.current).toBeUndefined();\n });\n\n it(\"returns empty columnVisibility when columnDefinitions have no isVisible properties\", () => {\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility({\n columnDefinitions,\n })\n );\n\n expect(result.current).toEqual({});\n });\n\n it(\"handles mixed column types with different visibility states\", async () => {\n const mockRdpCreator = (() => ({})) as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const columnDefinitions: Array<\n ColumnDefinition<\n TestObject,\n { myRdp: SimplePropertyDef },\n { myFunction: QueryDefinition<{}> }\n >\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n isVisible: true,\n },\n {\n locator: { type: \"function\", id: \"myFunction\" },\n isVisible: false,\n },\n {\n locator: { type: \"rdp\", id: \"myRdp\", creator: mockRdpCreator },\n isVisible: true,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility({\n columnDefinitions,\n })\n );\n\n await waitFor(() => {\n expect(result.current).toEqual({\n name: true,\n myFunction: false,\n myRdp: true,\n });\n });\n });\n\n it(\"updates columnVisibility when columnDefinitions change\", async () => {\n const initialColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n isVisible: true,\n },\n ];\n\n const { result, rerender } = renderHook(\n ({ columnDefinitions }) =>\n useColumnVisibility({\n columnDefinitions,\n }),\n {\n initialProps: { columnDefinitions: initialColumnDefinitions },\n },\n );\n\n await waitFor(() => {\n expect(result.current).toEqual({\n name: true,\n });\n });\n\n const updatedColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n isVisible: false,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n isVisible: true,\n },\n ];\n\n rerender({ columnDefinitions: updatedColumnDefinitions });\n\n await waitFor(() => {\n expect(result.current).toEqual({\n name: false,\n email: true,\n });\n });\n });\n\n it(\"only includes columns with explicit isVisible in the visibility state\", async () => {\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n isVisible: true,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n {\n locator: { type: \"property\", id: \"age\" as TestObjectKeys },\n isVisible: false,\n },\n {\n locator: { type: \"property\", id: \"id\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility({\n columnDefinitions,\n })\n );\n\n await waitFor(() => {\n expect(result.current).toEqual({\n name: true,\n age: false,\n });\n });\n\n // Verify that columns without isVisible are not in the state\n expect(result.current).not.toHaveProperty(\"email\");\n expect(result.current).not.toHaveProperty(\"id\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useColumnVisibility.test.js","names":["act","renderHook","describe","expect","it","vi","SELECTION_COLUMN_ID","useColumnVisibility","TestObjectType","type","apiName","createMockColumn","id","isVisible","meta","undefined","allColumns","result","current","columnVisibility","toEqual","name","email","myFunction","myRdp","initialColumns","rerender","initialProps","updatedColumns","onColumnVisibilityChanged","fn","onColumnVisibilityChange","prev","toHaveBeenCalledWith","columnId","columnOrder","onColumnOrderChange"],"sources":["useColumnVisibility.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport type { ColumnDef } from \"@tanstack/react-table\";\nimport { act, renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { SELECTION_COLUMN_ID } from \"../../utils/constants.js\";\nimport { useColumnVisibility } from \"../useColumnVisibility.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\n// Helper to create mock ColumnDef objects that mirror what useColumnDefs would produce\nfunction createMockColumn<T>(\n id: string,\n isVisible?: boolean,\n): ColumnDef<T> {\n return {\n id,\n meta: isVisible !== undefined ? { isVisible } : undefined,\n } as ColumnDef<T>;\n}\n\ndescribe(useColumnVisibility, () => {\n describe(\"column visibility\", () => {\n it(\"returns empty columnVisibility when no columnDefinitions provided\", () => {\n const allColumns: ColumnDef<unknown>[] = [];\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnVisibility).toEqual({});\n });\n\n it(\"initializes all columns as visible by default\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnVisibility).toEqual({\n name: true,\n email: true,\n });\n });\n\n it(\"handles mixed column types with different visibility states\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\", true),\n createMockColumn(\"myFunction\", false),\n createMockColumn(\"myRdp\", true),\n createMockColumn(\"email\"),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnVisibility).toEqual({\n name: true,\n myFunction: false,\n myRdp: true,\n email: true,\n });\n });\n\n it(\"updates columnVisibility when columnDefinitions change\", () => {\n const initialColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\", true),\n ];\n\n const { result, rerender } = renderHook(\n ({ allColumns }) =>\n useColumnVisibility<TestObject>({\n allColumns,\n }),\n {\n initialProps: { allColumns: initialColumns },\n },\n );\n\n expect(result.current.columnVisibility).toEqual({\n name: true,\n });\n\n const updatedColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\", false),\n createMockColumn(\"email\", true),\n ];\n\n rerender({ allColumns: updatedColumns });\n\n expect(result.current.columnVisibility).toEqual({\n name: false,\n email: true,\n });\n });\n });\n\n describe(\"onColumnVisibilityChanged callback\", () => {\n it(\"calls onColumnVisibilityChanged when visibility changed\", () => {\n const onColumnVisibilityChanged = vi.fn();\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\", true),\n createMockColumn(\"email\", true),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n onColumnVisibilityChanged,\n })\n );\n\n act(() => {\n result.current.onColumnVisibilityChange((prev) => ({\n ...prev,\n email: false,\n }));\n });\n\n expect(result.current.columnVisibility).toEqual({\n name: true,\n email: false,\n });\n\n expect(onColumnVisibilityChanged).toHaveBeenCalledWith([\n { columnId: \"name\", isVisible: true },\n { columnId: \"email\", isVisible: false },\n ]);\n });\n\n it(\"does not call callback when callback is not provided\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\", true),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n // Should not throw\n act(() => {\n result.current.onColumnVisibilityChange({\n name: false,\n });\n });\n\n expect(result.current.columnVisibility).toEqual({\n name: false,\n });\n });\n });\n\n describe(\"column ordering\", () => {\n it(\"initializes column order from column definitions\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n createMockColumn(\"age\"),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnOrder).toEqual([\"name\", \"email\", \"age\"]);\n });\n\n it(\"includes selection column first when hasSelectionColumn is true\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(SELECTION_COLUMN_ID),\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnOrder).toEqual([\n SELECTION_COLUMN_ID,\n \"name\",\n \"email\",\n ]);\n });\n\n it(\"updates column order when onColumnOrderChange is called\", () => {\n const allColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n createMockColumn(\"age\"),\n ];\n\n const { result } = renderHook(() =>\n useColumnVisibility<TestObject>({\n allColumns,\n })\n );\n\n expect(result.current.columnOrder).toEqual([\"name\", \"email\", \"age\"]);\n\n act(() => {\n result.current.onColumnOrderChange([\"email\", \"age\", \"name\"]);\n });\n\n expect(result.current.columnOrder).toEqual([\"email\", \"age\", \"name\"]);\n });\n\n it(\"updates column order when columnDefinitions change\", () => {\n const initialColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n ];\n\n const { result, rerender } = renderHook(\n ({ allColumns }) =>\n useColumnVisibility<TestObject>({\n allColumns,\n }),\n {\n initialProps: { allColumns: initialColumns },\n },\n );\n\n expect(result.current.columnOrder).toEqual([\"name\", \"email\"]);\n\n const updatedColumns: ColumnDef<unknown>[] = [\n createMockColumn(\"age\"),\n createMockColumn(\"name\"),\n createMockColumn(\"email\"),\n ];\n\n rerender({ allColumns: updatedColumns });\n\n expect(result.current.columnOrder).toEqual([\"age\", \"name\", \"email\"]);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ describe("useRowSelection", () => {
|
|
|
45
45
|
expect(result.current.rowSelection).toEqual({});
|
|
46
46
|
expect(result.current.isAllSelected).toBe(false);
|
|
47
47
|
expect(result.current.hasSelection).toBe(false);
|
|
48
|
+
expect(result.current.enableRowSelection).toBe(false);
|
|
48
49
|
});
|
|
49
50
|
it("does not respond to toggle operations", () => {
|
|
50
51
|
const data = createMockData(5);
|
|
@@ -81,6 +82,7 @@ describe("useRowSelection", () => {
|
|
|
81
82
|
act(() => {
|
|
82
83
|
result.current.onToggleRow("item-0", 0);
|
|
83
84
|
});
|
|
85
|
+
expect(result.current.enableRowSelection).toBe(true);
|
|
84
86
|
expect(result.current.rowSelection).toEqual({
|
|
85
87
|
"item-0": true
|
|
86
88
|
});
|
|
@@ -178,6 +180,7 @@ describe("useRowSelection", () => {
|
|
|
178
180
|
act(() => {
|
|
179
181
|
result.current.onToggleRow("item-2", 2);
|
|
180
182
|
});
|
|
183
|
+
expect(result.current.enableRowSelection).toBe(true);
|
|
181
184
|
expect(result.current.rowSelection).toEqual({
|
|
182
185
|
"item-0": true,
|
|
183
186
|
"item-2": true
|