@osdk/react-components 0.1.0 → 0.2.0-beta.10
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 +98 -19
- package/README.md +56 -23
- 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__/LinkedPropertyInput.test.js +202 -0
- package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
- package/build/browser/filter-list/__tests__/dateUtils.test.js +55 -0
- package/build/browser/filter-list/__tests__/dateUtils.test.js.map +1 -0
- 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 +203 -0
- package/build/browser/filter-list/__tests__/testUtils.js.map +1 -0
- package/build/browser/filter-list/base/FilterInput.js +542 -0
- package/build/browser/filter-list/base/FilterInput.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.js +77 -0
- package/build/browser/filter-list/base/FilterList.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.module.css +67 -0
- package/build/browser/filter-list/base/FilterList.module.css.js +8 -0
- package/build/browser/filter-list/base/FilterListContent.js +57 -0
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -0
- package/build/browser/filter-list/base/FilterListContent.module.css +27 -0
- package/build/browser/filter-list/base/FilterListContent.module.css.js +7 -0
- package/build/browser/filter-list/base/FilterListHeader.js +58 -0
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -0
- package/build/browser/filter-list/base/FilterListHeader.module.css +127 -0
- package/build/browser/filter-list/base/FilterListHeader.module.css.js +13 -0
- package/build/browser/filter-list/base/FilterListItem.js +75 -0
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -0
- package/build/browser/filter-list/base/FilterListItem.module.css +38 -0
- package/build/browser/filter-list/base/FilterListItem.module.css.js +9 -0
- package/build/browser/filter-list/base/index.js +22 -0
- package/build/browser/filter-list/base/index.js.map +1 -0
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js +75 -0
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
- package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +9 -0
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +85 -0
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
- package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js +98 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +88 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +12 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.js +82 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +54 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.module.css.js +9 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +100 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +9 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js +76 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js +187 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css +81 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.js +61 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +63 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.module.css.js +9 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +95 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js +141 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css +73 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/ToggleInput.js +43 -0
- package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ToggleInput.module.css +34 -0
- package/build/browser/filter-list/base/inputs/ToggleInput.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/browser/filter-list/base/inputs/dateUtils.js +57 -0
- package/build/browser/filter-list/base/inputs/dateUtils.js.map +1 -0
- package/build/browser/filter-list/base/inputs/index.js +25 -0
- package/build/browser/filter-list/base/inputs/index.js.map +1 -0
- package/build/browser/filter-list/base/inputs/shared.module.css +79 -0
- package/build/browser/filter-list/base/inputs/shared.module.css.js +11 -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/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/FilterPanelTypes.js +2 -0
- package/build/browser/filter-list/types/FilterPanelTypes.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 +22 -0
- package/build/browser/filter-list/types/index.js.map +1 -0
- package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/browser/filter-list/utils/aggregationHelpers.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/DefaultCellRenderer.js +43 -0
- package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
- package/build/browser/object-table/EditableCell.js +91 -0
- package/build/browser/object-table/EditableCell.js.map +1 -0
- package/build/browser/object-table/EditableCell.module.css +3 -0
- package/build/browser/object-table/EditableCell.module.css.js +6 -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 +74 -15
- 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/SelectionCells.js +15 -4
- package/build/browser/object-table/SelectionCells.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 +70 -935
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/Table.module.css +45 -0
- package/build/browser/object-table/Table.module.css.js +8 -0
- package/build/browser/object-table/TableBody.js +36 -260
- package/build/browser/object-table/TableBody.module.css +22 -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 +83 -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 +108 -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 +62 -0
- package/build/browser/object-table/TableRow.module.css.js +6 -0
- package/build/browser/object-table/__tests__/useEditableTable.test.js +197 -0
- package/build/browser/object-table/__tests__/useEditableTable.test.js.map +1 -0
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
- 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__/useObjectTableData.test.js +113 -25
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +48 -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 +16 -3
- 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/useEditableTable.js +57 -0
- package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
- package/build/browser/object-table/hooks/useObjectTableData.js +42 -7
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js +31 -10
- 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/getCellId.js +27 -0
- package/build/browser/object-table/utils/getCellId.js.map +1 -0
- 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 +2 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/shared/ErrorBoundary.js +62 -0
- package/build/browser/shared/ErrorBoundary.js.map +1 -0
- package/build/browser/shared/ErrorBoundary.module.css +55 -0
- package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
- package/build/browser/styles.css +3073 -0
- package/build/cjs/public/experimental.cjs +4026 -240
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +1834 -154
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +453 -50
- 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__/LinkedPropertyInput.test.js +202 -0
- package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
- package/build/esm/filter-list/__tests__/dateUtils.test.js +55 -0
- package/build/esm/filter-list/__tests__/dateUtils.test.js.map +1 -0
- 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 +203 -0
- package/build/esm/filter-list/__tests__/testUtils.js.map +1 -0
- package/build/esm/filter-list/base/FilterInput.js +542 -0
- package/build/esm/filter-list/base/FilterInput.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.js +77 -0
- package/build/esm/filter-list/base/FilterList.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.module.css +67 -0
- package/build/esm/filter-list/base/FilterListContent.js +57 -0
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
- package/build/esm/filter-list/base/FilterListContent.module.css +27 -0
- package/build/esm/filter-list/base/FilterListHeader.js +58 -0
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
- package/build/esm/filter-list/base/FilterListHeader.module.css +127 -0
- package/build/esm/filter-list/base/FilterListItem.js +75 -0
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
- package/build/esm/filter-list/base/FilterListItem.module.css +38 -0
- package/build/esm/filter-list/base/index.js +22 -0
- package/build/esm/filter-list/base/index.js.map +1 -0
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js +75 -0
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
- package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js +98 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +88 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +54 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +100 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js +76 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js +187 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.module.css +81 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +63 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +95 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js +141 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.module.css +73 -0
- package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
- package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
- package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
- package/build/esm/filter-list/base/inputs/index.js +25 -0
- package/build/esm/filter-list/base/inputs/index.js.map +1 -0
- package/build/esm/filter-list/base/inputs/shared.module.css +79 -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/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/FilterPanelTypes.js +2 -0
- package/build/esm/filter-list/types/FilterPanelTypes.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 +22 -0
- package/build/esm/filter-list/types/index.js.map +1 -0
- package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/esm/filter-list/utils/aggregationHelpers.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/DefaultCellRenderer.js +43 -0
- package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
- package/build/esm/object-table/EditableCell.js +91 -0
- package/build/esm/object-table/EditableCell.js.map +1 -0
- package/build/esm/object-table/EditableCell.module.css +3 -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 +74 -15
- 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/SelectionCells.js +15 -4
- package/build/esm/object-table/SelectionCells.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 +25 -8
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +26 -3
- package/build/esm/object-table/TableBody.module.css +2 -0
- package/build/esm/object-table/TableCell.module.css +22 -1
- 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 +9 -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 +56 -25
- package/build/esm/object-table/TableRow.module.css +2 -0
- package/build/esm/object-table/__tests__/useEditableTable.test.js +197 -0
- package/build/esm/object-table/__tests__/useEditableTable.test.js.map +1 -0
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
- 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__/useObjectTableData.test.js +113 -25
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +48 -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 +16 -3
- 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/useEditableTable.js +57 -0
- package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
- package/build/esm/object-table/hooks/useObjectTableData.js +42 -7
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js +31 -10
- 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/getCellId.js +27 -0
- package/build/esm/object-table/utils/getCellId.js.map +1 -0
- 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 +2 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/esm/shared/ErrorBoundary.js +62 -0
- package/build/esm/shared/ErrorBoundary.js.map +1 -0
- package/build/esm/shared/ErrorBoundary.module.css +55 -0
- 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 +62 -17
- 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__/LinkedPropertyInput.test.d.ts +1 -0
- package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +1 -0
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts +1 -0
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +1 -0
- 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 +65 -0
- package/build/types/filter-list/__tests__/testUtils.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterInput.d.ts +15 -0
- package/build/types/filter-list/base/FilterInput.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterList.d.ts +4 -0
- package/build/types/filter-list/base/FilterList.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListContent.d.ts +16 -0
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
- package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListItem.d.ts +18 -0
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
- package/build/types/filter-list/base/index.d.ts +5 -0
- package/build/types/filter-list/base/index.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +21 -0
- package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
- package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +22 -0
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts +21 -0
- package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts +22 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
- package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +24 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +21 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +22 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts +37 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +24 -0
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +24 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
- package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
- package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/index.d.ts +8 -0
- package/build/types/filter-list/base/inputs/index.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/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 +56 -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/FilterPanelTypes.d.ts +18 -0
- package/build/types/filter-list/types/FilterPanelTypes.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 +89 -0
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/index.d.ts +5 -0
- package/build/types/filter-list/types/index.d.ts.map +1 -0
- package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
- package/build/types/filter-list/utils/aggregationHelpers.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/DefaultCellRenderer.d.ts +3 -0
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
- package/build/types/object-table/EditableCell.d.ts +10 -0
- package/build/types/object-table/EditableCell.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 +79 -8
- 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 +26 -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/__tests__/useEditableTable.test.d.ts +1 -0
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +1 -0
- package/build/types/object-table/hooks/useColumnDefs.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/useEditableTable.d.ts +22 -0
- package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
- package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -5
- package/build/types/object-table/hooks/useObjectTableData.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/getCellId.d.ts +3 -0
- package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
- package/build/types/object-table/utils/types.d.ts +14 -0
- package/build/types/object-table/utils/types.d.ts.map +1 -0
- package/build/types/public/experimental.d.ts +6 -2
- package/build/types/public/experimental.d.ts.map +1 -1
- package/build/types/shared/ErrorBoundary.d.ts +19 -0
- package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
- package/package.json +17 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterStateToWhereClause.js","names":["assertUnreachable","getFilterKey","isDate","value","Date","filterStateToPropertyFilter","state","type","undefined","filter","$containsAnyTerm","isExcluding","$not","enabled","conditions","minValue","push","$gte","toISOString","maxValue","$lte","length","includeNull","rangeFilter","$and","$or","$isNull","values","$in","selectedValues","isDateValue","map","v","startDate","endDate","buildWhereClause","definitions","filterStates","operator","objectType","clauses","definition","get","key","process","env","NODE_ENV","console","warn","linkName","hasLink","$isNotNull","searchTerm","trim","properties","propertiesToSearch","__DefinitionMetadata","Object","entries","prop","multiplicity","containsOp","propertySearches","customClause","toWhereClause","keys"],"sources":["filterStateToWhereClause.ts"],"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, WhereClause } from \"@osdk/api\";\nimport type { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { assertUnreachable } from \"./assertUnreachable.js\";\nimport { getFilterKey } from \"./getFilterKey.js\";\n\ntype PropertyFilter = Record<string, unknown> | boolean | string | number;\n\nfunction isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nfunction filterStateToPropertyFilter(\n state: FilterState,\n): PropertyFilter | undefined {\n switch (state.type) {\n case \"CONTAINS_TEXT\": {\n if (!state.value) {\n return undefined;\n }\n const filter = { $containsAnyTerm: state.value };\n if (state.isExcluding) {\n return { $not: filter };\n }\n return filter;\n }\n\n case \"TOGGLE\": {\n return state.enabled;\n }\n\n case \"DATE_RANGE\": {\n const conditions: PropertyFilter[] = [];\n\n if (state.minValue !== undefined) {\n conditions.push({ $gte: state.minValue.toISOString() });\n }\n if (state.maxValue !== undefined) {\n conditions.push({ $lte: state.maxValue.toISOString() });\n }\n\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n\n let rangeFilter: PropertyFilter | undefined;\n if (conditions.length === 1) {\n rangeFilter = conditions[0];\n } else if (conditions.length > 1) {\n rangeFilter = { $and: conditions };\n }\n\n if (state.includeNull) {\n if (rangeFilter) {\n return { $or: [rangeFilter, { $isNull: true }] };\n }\n return { $isNull: true };\n }\n\n return rangeFilter;\n }\n\n case \"NUMBER_RANGE\": {\n const conditions: PropertyFilter[] = [];\n\n if (state.minValue !== undefined) {\n conditions.push({ $gte: state.minValue });\n }\n if (state.maxValue !== undefined) {\n conditions.push({ $lte: state.maxValue });\n }\n\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n\n let rangeFilter: PropertyFilter | undefined;\n if (conditions.length === 1) {\n rangeFilter = conditions[0];\n } else if (conditions.length > 1) {\n rangeFilter = { $and: conditions };\n }\n\n if (state.includeNull) {\n if (rangeFilter) {\n return { $or: [rangeFilter, { $isNull: true }] };\n }\n return { $isNull: true };\n }\n\n return rangeFilter;\n }\n\n case \"EXACT_MATCH\": {\n if (state.values.length === 0) {\n return undefined;\n }\n const filter = state.values.length === 1\n ? state.values[0]\n : { $in: state.values };\n if (state.isExcluding) {\n return { $not: filter };\n }\n return filter;\n }\n\n case \"SELECT\": {\n if (state.selectedValues.length === 0) {\n return undefined;\n }\n const isDateValue = state.selectedValues[0] instanceof Date;\n const values: (string | number | boolean)[] = isDateValue\n ? state.selectedValues.map((v) => (v as Date).toISOString())\n : state.selectedValues as (string | number | boolean)[];\n const filter = values.length === 1 ? values[0] : { $in: values };\n if (state.isExcluding) {\n return { $not: filter };\n }\n return filter;\n }\n\n case \"TIMELINE\": {\n const conditions: PropertyFilter[] = [];\n if (state.startDate !== undefined) {\n conditions.push({ $gte: state.startDate.toISOString() });\n }\n if (state.endDate !== undefined) {\n conditions.push({ $lte: state.endDate.toISOString() });\n }\n if (conditions.length === 0) {\n return undefined;\n }\n if (conditions.length === 1) {\n return conditions[0];\n }\n return { $and: conditions };\n }\n\n // These filter types are handled separately in buildWhereClause\n // since they need access to the full definition, not just state\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"custom\":\n return undefined;\n\n default:\n return assertUnreachable(state);\n }\n}\n\n/**\n * Builds a WhereClause from filter definitions and their current states.\n *\n * The filterStates map uses string keys derived from filter definitions via\n * getFilterKey(). This ensures stable state lookups even when filters are\n * reordered or definition object references change.\n *\n * Note: The `as WhereClause<Q>` casts are necessary because we're building\n * clauses dynamically from property keys determined at runtime. TypeScript\n * cannot verify that the constructed clause structure matches the generic Q's\n * expected shape, but the structure is guaranteed to be valid by construction.\n */\nexport function buildWhereClause<Q extends ObjectTypeDefinition>(\n definitions: Array<FilterDefinitionUnion<Q>> | undefined,\n filterStates: Map<string, FilterState>,\n operator: \"and\" | \"or\",\n objectType?: Q,\n): WhereClause<Q> {\n if (!definitions || definitions.length === 0) {\n return {} as WhereClause<Q>;\n }\n\n const clauses: Array<Record<string, unknown>> = [];\n\n for (const definition of definitions) {\n const state = filterStates.get(getFilterKey(definition));\n\n if (!state) {\n continue;\n }\n\n switch (definition.type) {\n case \"PROPERTY\": {\n const filter = filterStateToPropertyFilter(state);\n if (filter !== undefined) {\n clauses.push({ [definition.key]: filter });\n }\n break;\n }\n\n case \"HAS_LINK\": {\n if (state.type !== \"hasLink\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n `[FilterList] State type mismatch for hasLink filter \"${definition.linkName}\": expected hasLink, got ${state.type}`,\n );\n }\n break;\n }\n if (!state.hasLink) {\n break;\n }\n clauses.push({ [definition.linkName]: { $isNotNull: true } });\n break;\n }\n\n case \"LINKED_PROPERTY\": {\n // OSDK WhereClause does not support filtering through links.\n // Link-based filtering requires ObjectSet operations (pivotTo/intersect).\n // LinkedProperty filters render UI for selection but cannot be included\n // in the where clause. Consumers needing linked property filtering must\n // implement it using ObjectSet.pivotTo() and intersect().\n break;\n }\n\n case \"KEYWORD_SEARCH\": {\n if (state.type !== \"keywordSearch\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n `[FilterList] State type mismatch for keywordSearch filter: expected keywordSearch, got ${state.type}`,\n );\n }\n break;\n }\n if (!state.searchTerm) {\n break;\n }\n // TypeScript narrows state to KeywordSearchFilterState\n const searchTerm = state.searchTerm.trim();\n if (!searchTerm) {\n break;\n }\n\n const properties = definition.properties;\n let propertiesToSearch: string[];\n\n if (properties === \"all\") {\n if (objectType?.__DefinitionMetadata?.properties) {\n propertiesToSearch = Object.entries(\n objectType.__DefinitionMetadata.properties,\n )\n .filter(([, prop]) =>\n prop.type === \"string\" && !prop.multiplicity\n )\n .map(([key]) => key);\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"[FilterList] Keyword search with properties: 'all' requires objectType to be provided. Filter will be skipped.\",\n );\n }\n break;\n }\n } else {\n propertiesToSearch = properties;\n }\n\n if (propertiesToSearch.length === 0) {\n break;\n }\n\n const containsOp = state.operator === \"AND\"\n ? \"$containsAllTerms\"\n : \"$containsAnyTerm\";\n\n const propertySearches = propertiesToSearch.map((prop) => ({\n [prop]: state.isExcluding\n ? { $not: { [containsOp]: searchTerm } }\n : { [containsOp]: searchTerm },\n }));\n\n if (propertySearches.length === 1) {\n clauses.push(propertySearches[0]);\n } else {\n clauses.push({ $or: propertySearches });\n }\n break;\n }\n\n case \"CUSTOM\": {\n if (state.type !== \"custom\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n `[FilterList] State type mismatch for custom filter \"${definition.key}\": expected custom, got ${state.type}`,\n );\n }\n break;\n }\n // TypeScript narrows state to CustomFilterState\n const customClause = definition.toWhereClause(state);\n if (customClause && Object.keys(customClause).length > 0) {\n clauses.push(customClause as Record<string, unknown>);\n }\n break;\n }\n\n default:\n assertUnreachable(definition);\n }\n }\n\n if (clauses.length === 0) {\n return {} as WhereClause<Q>;\n }\n\n if (clauses.length === 1) {\n return clauses[0] as WhereClause<Q>;\n }\n\n if (operator === \"and\") {\n return { $and: clauses } as WhereClause<Q>;\n }\n\n return { $or: clauses } as WhereClause<Q>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/** Case-insensitive substring filter for search functionality. */
|
|
18
|
+
export function filterValuesBySearch(values, searchValue, getValue) {
|
|
19
|
+
const trimmed = searchValue.trim();
|
|
20
|
+
if (!trimmed) return values;
|
|
21
|
+
const lowerSearch = trimmed.toLowerCase();
|
|
22
|
+
return values.filter(v => getValue(v).toLowerCase().includes(lowerSearch));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Check if a filter state has an active (non-empty) value. */
|
|
26
|
+
export function filterHasActiveState(state) {
|
|
27
|
+
if (!state) return false;
|
|
28
|
+
switch (state.type) {
|
|
29
|
+
case "SELECT":
|
|
30
|
+
return state.selectedValues.length > 0;
|
|
31
|
+
case "EXACT_MATCH":
|
|
32
|
+
return state.values.length > 0;
|
|
33
|
+
case "CONTAINS_TEXT":
|
|
34
|
+
return state.value !== undefined && state.value !== "";
|
|
35
|
+
case "NUMBER_RANGE":
|
|
36
|
+
return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;
|
|
37
|
+
case "DATE_RANGE":
|
|
38
|
+
return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;
|
|
39
|
+
case "TOGGLE":
|
|
40
|
+
return state.enabled;
|
|
41
|
+
case "hasLink":
|
|
42
|
+
return state.hasLink;
|
|
43
|
+
case "linkedProperty":
|
|
44
|
+
return filterHasActiveState(state.linkedFilterState);
|
|
45
|
+
case "keywordSearch":
|
|
46
|
+
return state.searchTerm !== undefined && state.searchTerm !== "";
|
|
47
|
+
case "TIMELINE":
|
|
48
|
+
return state.startDate !== undefined || state.endDate !== undefined;
|
|
49
|
+
case "custom":
|
|
50
|
+
return true;
|
|
51
|
+
default:
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=filterValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterValues.js","names":["filterValuesBySearch","values","searchValue","getValue","trimmed","trim","lowerSearch","toLowerCase","filter","v","includes","filterHasActiveState","state","type","selectedValues","length","value","undefined","minValue","maxValue","includeNull","enabled","hasLink","linkedFilterState","searchTerm","startDate","endDate"],"sources":["filterValues.ts"],"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 { FilterState } from \"../FilterListItemApi.js\";\n\n/** Case-insensitive substring filter for search functionality. */\nexport function filterValuesBySearch<T>(\n values: T[],\n searchValue: string,\n getValue: (item: T) => string,\n): T[] {\n const trimmed = searchValue.trim();\n if (!trimmed) return values;\n const lowerSearch = trimmed.toLowerCase();\n return values.filter((v) => getValue(v).toLowerCase().includes(lowerSearch));\n}\n\n/** Check if a filter state has an active (non-empty) value. */\nexport function filterHasActiveState(state: FilterState | undefined): boolean {\n if (!state) return false;\n\n switch (state.type) {\n case \"SELECT\":\n return state.selectedValues.length > 0;\n case \"EXACT_MATCH\":\n return state.values.length > 0;\n case \"CONTAINS_TEXT\":\n return state.value !== undefined && state.value !== \"\";\n case \"NUMBER_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined\n || state.includeNull === true;\n case \"DATE_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined\n || state.includeNull === true;\n case \"TOGGLE\":\n return state.enabled;\n case \"hasLink\":\n return state.hasLink;\n case \"linkedProperty\":\n return filterHasActiveState(state.linkedFilterState);\n case \"keywordSearch\":\n return state.searchTerm !== undefined && state.searchTerm !== \"\";\n case \"TIMELINE\":\n return state.startDate !== undefined || state.endDate !== undefined;\n case \"custom\":\n return true;\n default:\n return false;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,OAAO,SAASA,oBAAoBA,CAClCC,MAAW,EACXC,WAAmB,EACnBC,QAA6B,EACxB;EACL,MAAMC,OAAO,GAAGF,WAAW,CAACG,IAAI,CAAC,CAAC;EAClC,IAAI,CAACD,OAAO,EAAE,OAAOH,MAAM;EAC3B,MAAMK,WAAW,GAAGF,OAAO,CAACG,WAAW,CAAC,CAAC;EACzC,OAAON,MAAM,CAACO,MAAM,CAAEC,CAAC,IAAKN,QAAQ,CAACM,CAAC,CAAC,CAACF,WAAW,CAAC,CAAC,CAACG,QAAQ,CAACJ,WAAW,CAAC,CAAC;AAC9E;;AAEA;AACA,OAAO,SAASK,oBAAoBA,CAACC,KAA8B,EAAW;EAC5E,IAAI,CAACA,KAAK,EAAE,OAAO,KAAK;EAExB,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAK,QAAQ;MACX,OAAOD,KAAK,CAACE,cAAc,CAACC,MAAM,GAAG,CAAC;IACxC,KAAK,aAAa;MAChB,OAAOH,KAAK,CAACX,MAAM,CAACc,MAAM,GAAG,CAAC;IAChC,KAAK,eAAe;MAClB,OAAOH,KAAK,CAACI,KAAK,KAAKC,SAAS,IAAIL,KAAK,CAACI,KAAK,KAAK,EAAE;IACxD,KAAK,cAAc;MACjB,OAAOJ,KAAK,CAACM,QAAQ,KAAKD,SAAS,IAAIL,KAAK,CAACO,QAAQ,KAAKF,SAAS,IAC9DL,KAAK,CAACQ,WAAW,KAAK,IAAI;IACjC,KAAK,YAAY;MACf,OAAOR,KAAK,CAACM,QAAQ,KAAKD,SAAS,IAAIL,KAAK,CAACO,QAAQ,KAAKF,SAAS,IAC9DL,KAAK,CAACQ,WAAW,KAAK,IAAI;IACjC,KAAK,QAAQ;MACX,OAAOR,KAAK,CAACS,OAAO;IACtB,KAAK,SAAS;MACZ,OAAOT,KAAK,CAACU,OAAO;IACtB,KAAK,gBAAgB;MACnB,OAAOX,oBAAoB,CAACC,KAAK,CAACW,iBAAiB,CAAC;IACtD,KAAK,eAAe;MAClB,OAAOX,KAAK,CAACY,UAAU,KAAKP,SAAS,IAAIL,KAAK,CAACY,UAAU,KAAK,EAAE;IAClE,KAAK,UAAU;MACb,OAAOZ,KAAK,CAACa,SAAS,KAAKR,SAAS,IAAIL,KAAK,CAACc,OAAO,KAAKT,SAAS;IACrE,KAAK,QAAQ;MACX,OAAO,IAAI;IACb;MACE,OAAO,KAAK;EAChB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { assertUnreachable } from "./assertUnreachable.js";
|
|
18
|
+
export function getFilterKey(definition) {
|
|
19
|
+
switch (definition.type) {
|
|
20
|
+
case "PROPERTY":
|
|
21
|
+
return definition.id ?? definition.key;
|
|
22
|
+
case "HAS_LINK":
|
|
23
|
+
return definition.id ?? `hasLink:${definition.linkName}`;
|
|
24
|
+
case "LINKED_PROPERTY":
|
|
25
|
+
return definition.id ?? `linkedProperty:${definition.linkName}:${definition.linkedPropertyKey}`;
|
|
26
|
+
case "KEYWORD_SEARCH":
|
|
27
|
+
return definition.id ?? `keywordSearch-${Array.isArray(definition.properties) ? definition.properties.join("-") : "all"}`;
|
|
28
|
+
case "CUSTOM":
|
|
29
|
+
return definition.id ?? definition.key;
|
|
30
|
+
default:
|
|
31
|
+
return assertUnreachable(definition);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=getFilterKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFilterKey.js","names":["assertUnreachable","getFilterKey","definition","type","id","key","linkName","linkedPropertyKey","Array","isArray","properties","join"],"sources":["getFilterKey.ts"],"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 { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport { assertUnreachable } from \"./assertUnreachable.js\";\n\nexport function getFilterKey<Q extends ObjectTypeDefinition>(\n definition: FilterDefinitionUnion<Q>,\n): string {\n switch (definition.type) {\n case \"PROPERTY\":\n return definition.id ?? definition.key;\n case \"HAS_LINK\":\n return definition.id ?? `hasLink:${definition.linkName}`;\n case \"LINKED_PROPERTY\":\n return definition.id\n ?? `linkedProperty:${definition.linkName}:${definition.linkedPropertyKey}`;\n case \"KEYWORD_SEARCH\":\n return definition.id\n ?? `keywordSearch-${\n Array.isArray(definition.properties)\n ? definition.properties.join(\"-\")\n : \"all\"\n }`;\n case \"CUSTOM\":\n return definition.id ?? definition.key;\n default:\n return assertUnreachable(definition);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,iBAAiB,QAAQ,wBAAwB;AAE1D,OAAO,SAASC,YAAYA,CAC1BC,UAAoC,EAC5B;EACR,QAAQA,UAAU,CAACC,IAAI;IACrB,KAAK,UAAU;MACb,OAAOD,UAAU,CAACE,EAAE,IAAIF,UAAU,CAACG,GAAG;IACxC,KAAK,UAAU;MACb,OAAOH,UAAU,CAACE,EAAE,IAAI,WAAWF,UAAU,CAACI,QAAQ,EAAE;IAC1D,KAAK,iBAAiB;MACpB,OAAOJ,UAAU,CAACE,EAAE,IACf,kBAAkBF,UAAU,CAACI,QAAQ,IAAIJ,UAAU,CAACK,iBAAiB,EAAE;IAC9E,KAAK,gBAAgB;MACnB,OAAOL,UAAU,CAACE,EAAE,IACf,iBACDI,KAAK,CAACC,OAAO,CAACP,UAAU,CAACQ,UAAU,CAAC,GAChCR,UAAU,CAACQ,UAAU,CAACC,IAAI,CAAC,GAAG,CAAC,GAC/B,KAAK,EACT;IACN,KAAK,QAAQ;MACX,OAAOT,UAAU,CAACE,EAAE,IAAIF,UAAU,CAACG,GAAG;IACxC;MACE,OAAOL,iBAAiB,CAACE,UAAU,CAAC;EACxC;AACF","ignoreList":[]}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
2
17
|
import React, { useEffect, useRef } from "react";
|
|
3
18
|
import { createPortal } from "react-dom";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var css = '/*\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\n.osdkCellContextMenu {\n position: fixed;\n z-index: var(--osdk-surface-z-index-2);\n}\n';
|
|
7
|
-
if (typeof document !== "undefined") {
|
|
8
|
-
const style = document.createElement("style");
|
|
9
|
-
style.textContent = css;
|
|
10
|
-
document.head.appendChild(style);
|
|
11
|
-
}
|
|
12
|
-
var CellContextMenu_default = { "osdkCellContextMenu": "osdkCellContextMenu" };
|
|
13
|
-
|
|
14
|
-
// build/browser/object-table/CellContextMenu.js
|
|
15
|
-
function CellContextMenu({
|
|
19
|
+
import styles from "./CellContextMenu.module.css.js";
|
|
20
|
+
export function CellContextMenu({
|
|
16
21
|
cell,
|
|
17
22
|
position,
|
|
18
23
|
onClose,
|
|
@@ -20,7 +25,7 @@ function CellContextMenu({
|
|
|
20
25
|
}) {
|
|
21
26
|
const ref = useRef(null);
|
|
22
27
|
useEffect(() => {
|
|
23
|
-
const handleClickOutside =
|
|
28
|
+
const handleClickOutside = event => {
|
|
24
29
|
if (ref.current && !ref.current.contains(event.target)) {
|
|
25
30
|
onClose();
|
|
26
31
|
}
|
|
@@ -30,9 +35,9 @@ function CellContextMenu({
|
|
|
30
35
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
31
36
|
};
|
|
32
37
|
}, [onClose]);
|
|
33
|
-
return
|
|
34
|
-
ref,
|
|
35
|
-
className:
|
|
38
|
+
return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement("div", {
|
|
39
|
+
ref: ref,
|
|
40
|
+
className: styles.osdkCellContextMenu,
|
|
36
41
|
style: {
|
|
37
42
|
left: position.left,
|
|
38
43
|
top: position.top,
|
|
@@ -40,6 +45,4 @@ function CellContextMenu({
|
|
|
40
45
|
}
|
|
41
46
|
}, renderContent(cell.row.original, cell)), document.body);
|
|
42
47
|
}
|
|
43
|
-
|
|
44
|
-
CellContextMenu
|
|
45
|
-
};
|
|
48
|
+
//# sourceMappingURL=CellContextMenu.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
.osdkCellContextMenu {
|
|
18
|
+
position: fixed;
|
|
19
|
+
z-index: var(--osdk-surface-z-index-2);
|
|
20
|
+
}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Button } from "@base-ui/react/button";
|
|
18
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
19
|
+
import { CaretDown, Cog, SmallInfoSign } from "@blueprintjs/icons";
|
|
20
|
+
import { arrayMove } from "@dnd-kit/sortable";
|
|
21
|
+
import classNames from "classnames";
|
|
22
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
23
|
+
import { ActionButton } from "../base-components/action-button/ActionButton.js";
|
|
24
|
+
import { Checkbox } from "../base-components/checkbox/Checkbox.js";
|
|
25
|
+
import { Dialog } from "../base-components/dialog/Dialog.js";
|
|
26
|
+
import { DraggableList } from "../base-components/draggable-list/DraggableList.js";
|
|
27
|
+
import { SearchBar } from "../base-components/search-bar/SearchBar.js";
|
|
28
|
+
import styles from "./ColumnConfigDialog.module.css.js";
|
|
29
|
+
export function ColumnConfigDialog({
|
|
30
|
+
isOpen,
|
|
31
|
+
onClose,
|
|
32
|
+
columnOptions,
|
|
33
|
+
currentVisibility,
|
|
34
|
+
currentColumnOrder,
|
|
35
|
+
onApply,
|
|
36
|
+
isValidConfig
|
|
37
|
+
}) {
|
|
38
|
+
const [visibleColumns, setVisibleColumns] = useState([]);
|
|
39
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
40
|
+
const allColumns = useMemo(() => {
|
|
41
|
+
return columnOptions.map(opt => {
|
|
42
|
+
const isVisible = currentVisibility ? currentVisibility[opt.id] : false;
|
|
43
|
+
return {
|
|
44
|
+
id: opt.id,
|
|
45
|
+
label: opt.name,
|
|
46
|
+
isVisible
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}, [columnOptions, currentVisibility]);
|
|
50
|
+
|
|
51
|
+
// Sync local state with prop when dialog is opened
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (isOpen) {
|
|
54
|
+
const visibleCols = allColumns.filter(col => col.isVisible);
|
|
55
|
+
|
|
56
|
+
// Sort by current column order if available
|
|
57
|
+
if (!!currentColumnOrder?.length) {
|
|
58
|
+
visibleCols.sort((a, b) => {
|
|
59
|
+
const indexA = currentColumnOrder.indexOf(a.id);
|
|
60
|
+
const indexB = currentColumnOrder.indexOf(b.id);
|
|
61
|
+
// If not in order array, put at end
|
|
62
|
+
const orderA = indexA === -1 ? Infinity : indexA;
|
|
63
|
+
const orderB = indexB === -1 ? Infinity : indexB;
|
|
64
|
+
return orderA - orderB;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
setVisibleColumns(visibleCols);
|
|
68
|
+
setSearchQuery("");
|
|
69
|
+
}
|
|
70
|
+
}, [isOpen, allColumns, currentColumnOrder]);
|
|
71
|
+
const handleApply = useCallback(() => {
|
|
72
|
+
onApply(getColumnConfig(allColumns, visibleColumns));
|
|
73
|
+
onClose();
|
|
74
|
+
}, [allColumns, visibleColumns, onApply, onClose]);
|
|
75
|
+
|
|
76
|
+
// If no condition provided, default to valid
|
|
77
|
+
const isValid = isValidConfig ? isValidConfig(getColumnConfig(allColumns, visibleColumns)) : true;
|
|
78
|
+
const isApplyDisabled = visibleColumns.length === 0 || !isValid;
|
|
79
|
+
const handleReorderColumns = useCallback((fromIndex, toIndex) => {
|
|
80
|
+
setVisibleColumns(items => arrayMove(items, fromIndex, toIndex));
|
|
81
|
+
}, []);
|
|
82
|
+
const handleRemoveColumn = useCallback(columnId => {
|
|
83
|
+
setVisibleColumns(prev => prev.filter(col => col.id !== columnId));
|
|
84
|
+
}, []);
|
|
85
|
+
const handleToggleColumn = useCallback(column => {
|
|
86
|
+
setVisibleColumns(prev => {
|
|
87
|
+
const isCurrentlyVisible = prev.some(col => col.id === column.id);
|
|
88
|
+
if (isCurrentlyVisible) {
|
|
89
|
+
return prev.filter(col => col.id !== column.id);
|
|
90
|
+
} else {
|
|
91
|
+
return [...prev, column];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}, []);
|
|
95
|
+
const handleSearchChange = useCallback(event => {
|
|
96
|
+
setSearchQuery(event.target.value);
|
|
97
|
+
}, []);
|
|
98
|
+
const handleSelectAll = useCallback(columns => {
|
|
99
|
+
setVisibleColumns(prev => {
|
|
100
|
+
const allSelected = columns.every(col => prev.some(v => v.id === col.id));
|
|
101
|
+
if (allSelected) {
|
|
102
|
+
// Deselect all filtered columns
|
|
103
|
+
return prev.filter(v => !columns.some(col => col.id === v.id));
|
|
104
|
+
} else {
|
|
105
|
+
// Select all filtered columns that aren't already selected
|
|
106
|
+
const newColumns = columns.filter(col => !prev.some(v => v.id === col.id));
|
|
107
|
+
return [...prev, ...newColumns];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}, []);
|
|
111
|
+
const filteredAvailableColumns = useMemo(() => {
|
|
112
|
+
const query = searchQuery.toLowerCase().trim();
|
|
113
|
+
if (!query) {
|
|
114
|
+
return allColumns;
|
|
115
|
+
}
|
|
116
|
+
return allColumns.filter(col => (col.label?.toLowerCase().includes(query) ?? false) || col.id.toLowerCase().includes(query));
|
|
117
|
+
}, [allColumns, searchQuery]);
|
|
118
|
+
const footer = useMemo(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ActionButton, {
|
|
119
|
+
onClick: onClose
|
|
120
|
+
}, "Cancel"), /*#__PURE__*/React.createElement(ActionButton, {
|
|
121
|
+
variant: "primary",
|
|
122
|
+
onClick: handleApply,
|
|
123
|
+
disabled: isApplyDisabled
|
|
124
|
+
}, "Apply")), [onClose, handleApply, isApplyDisabled]);
|
|
125
|
+
return /*#__PURE__*/React.createElement(Dialog, {
|
|
126
|
+
isOpen: isOpen,
|
|
127
|
+
onOpenChange: onClose,
|
|
128
|
+
title: DialogTitle,
|
|
129
|
+
footer: footer,
|
|
130
|
+
className: styles.columnConfigDialog
|
|
131
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
132
|
+
className: styles.dialogLayout
|
|
133
|
+
}, /*#__PURE__*/React.createElement(VisibleColumnsList, {
|
|
134
|
+
columns: visibleColumns,
|
|
135
|
+
onReorder: handleReorderColumns,
|
|
136
|
+
onRemove: handleRemoveColumn
|
|
137
|
+
}), /*#__PURE__*/React.createElement(AvailableColumnsList, {
|
|
138
|
+
visibleColumns: visibleColumns,
|
|
139
|
+
searchQuery: searchQuery,
|
|
140
|
+
onSearchChange: handleSearchChange,
|
|
141
|
+
onToggleColumn: handleToggleColumn,
|
|
142
|
+
onSelectAll: handleSelectAll,
|
|
143
|
+
filteredColumns: filteredAvailableColumns
|
|
144
|
+
})));
|
|
145
|
+
}
|
|
146
|
+
const DialogTitle = /*#__PURE__*/React.createElement("div", {
|
|
147
|
+
className: styles.title
|
|
148
|
+
}, /*#__PURE__*/React.createElement(Cog, null), "Configure Table Columns");
|
|
149
|
+
const getColumnConfig = (allColumns, visibleColumns) => {
|
|
150
|
+
const hiddenColumns = allColumns.filter(col => !visibleColumns.some(v => v.id === col.id));
|
|
151
|
+
return [...visibleColumns.map(col => ({
|
|
152
|
+
columnId: col.id,
|
|
153
|
+
isVisible: true
|
|
154
|
+
})), ...hiddenColumns.map(col => ({
|
|
155
|
+
columnId: col.id,
|
|
156
|
+
isVisible: false
|
|
157
|
+
}))];
|
|
158
|
+
};
|
|
159
|
+
function VisibleColumnsList({
|
|
160
|
+
columns,
|
|
161
|
+
onReorder,
|
|
162
|
+
onRemove
|
|
163
|
+
}) {
|
|
164
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
165
|
+
className: styles.visibleColumnsContainer
|
|
166
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
167
|
+
className: styles.sectionHeader
|
|
168
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
169
|
+
className: styles.sectionTitle
|
|
170
|
+
}, /*#__PURE__*/React.createElement("span", null, "Visible Columns"), /*#__PURE__*/React.createElement("span", {
|
|
171
|
+
className: styles.countTag
|
|
172
|
+
}, columns.length)), /*#__PURE__*/React.createElement("div", {
|
|
173
|
+
className: styles.sectionHint
|
|
174
|
+
}, "Drag to reorder")), /*#__PURE__*/React.createElement(DraggableList, {
|
|
175
|
+
items: columns,
|
|
176
|
+
onReorder: onReorder,
|
|
177
|
+
onRemove: onRemove,
|
|
178
|
+
removeIconVariant: "trash",
|
|
179
|
+
emptyMessage: "No visible columns",
|
|
180
|
+
className: styles.columnList
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
function AvailableColumnsList({
|
|
184
|
+
visibleColumns,
|
|
185
|
+
searchQuery,
|
|
186
|
+
onSearchChange,
|
|
187
|
+
onToggleColumn,
|
|
188
|
+
onSelectAll,
|
|
189
|
+
filteredColumns
|
|
190
|
+
}) {
|
|
191
|
+
const selectedCount = visibleColumns.length;
|
|
192
|
+
const totalCount = filteredColumns.length;
|
|
193
|
+
const allFilteredSelected = filteredColumns.every(col => visibleColumns.some(v => v.id === col.id));
|
|
194
|
+
const someFilteredSelected = filteredColumns.some(col => visibleColumns.some(v => v.id === col.id));
|
|
195
|
+
const handleSelectAllClick = useCallback(() => {
|
|
196
|
+
onSelectAll(filteredColumns);
|
|
197
|
+
}, [filteredColumns, onSelectAll]);
|
|
198
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
199
|
+
className: styles.availableColumnsContainer
|
|
200
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
201
|
+
className: classNames(styles.sectionHeader, styles.sectionTitle)
|
|
202
|
+
}, "Add or Remove Columns"), /*#__PURE__*/React.createElement(SearchBar, {
|
|
203
|
+
value: searchQuery,
|
|
204
|
+
onChange: onSearchChange,
|
|
205
|
+
placeholder: "Search...",
|
|
206
|
+
"aria-label": "Search available columns",
|
|
207
|
+
className: styles.searchContainer
|
|
208
|
+
}), /*#__PURE__*/React.createElement(Collapsible.Root, {
|
|
209
|
+
defaultOpen: true,
|
|
210
|
+
className: styles.propertiesList
|
|
211
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
212
|
+
className: styles.categoryHeader
|
|
213
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
214
|
+
checked: allFilteredSelected,
|
|
215
|
+
indeterminate: someFilteredSelected && !allFilteredSelected,
|
|
216
|
+
onCheckedChange: handleSelectAllClick,
|
|
217
|
+
className: styles.checkbox
|
|
218
|
+
}), /*#__PURE__*/React.createElement(Collapsible.Trigger, {
|
|
219
|
+
className: styles.categoryTrigger
|
|
220
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
221
|
+
className: styles.categoryTitle
|
|
222
|
+
}, "All Columns"), /*#__PURE__*/React.createElement("span", {
|
|
223
|
+
className: styles.categoryCount
|
|
224
|
+
}, selectedCount, "/", totalCount), /*#__PURE__*/React.createElement(CaretDown, {
|
|
225
|
+
className: styles.caretIcon
|
|
226
|
+
}))), /*#__PURE__*/React.createElement(Collapsible.Panel, {
|
|
227
|
+
className: styles.propertyList
|
|
228
|
+
}, filteredColumns.length === 0 ? /*#__PURE__*/React.createElement("div", {
|
|
229
|
+
className: styles.emptyState
|
|
230
|
+
}, "No matching columns found") : filteredColumns.map(column => /*#__PURE__*/React.createElement(PropertyItem, {
|
|
231
|
+
key: column.id,
|
|
232
|
+
column: column,
|
|
233
|
+
isSelected: visibleColumns.some(v => v.id === column.id),
|
|
234
|
+
onToggle: onToggleColumn
|
|
235
|
+
})))));
|
|
236
|
+
}
|
|
237
|
+
function PropertyItem({
|
|
238
|
+
column,
|
|
239
|
+
isSelected,
|
|
240
|
+
onToggle,
|
|
241
|
+
showInfoIcon = false
|
|
242
|
+
}) {
|
|
243
|
+
const handleClick = useCallback(() => {
|
|
244
|
+
onToggle(column);
|
|
245
|
+
}, [onToggle, column]);
|
|
246
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
247
|
+
className: styles.propertyItem
|
|
248
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
249
|
+
checked: isSelected,
|
|
250
|
+
onCheckedChange: handleClick,
|
|
251
|
+
className: styles.checkbox
|
|
252
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
253
|
+
onClick: handleClick,
|
|
254
|
+
className: styles.propertyName
|
|
255
|
+
}, column.label), showInfoIcon && /*#__PURE__*/React.createElement(SmallInfoSign, {
|
|
256
|
+
className: styles.infoIcon
|
|
257
|
+
}));
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=ColumnConfigDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnConfigDialog.js","names":["Button","Collapsible","CaretDown","Cog","SmallInfoSign","arrayMove","classNames","React","useCallback","useEffect","useMemo","useState","ActionButton","Checkbox","Dialog","DraggableList","SearchBar","styles","ColumnConfigDialog","isOpen","onClose","columnOptions","currentVisibility","currentColumnOrder","onApply","isValidConfig","visibleColumns","setVisibleColumns","searchQuery","setSearchQuery","allColumns","map","opt","isVisible","id","label","name","visibleCols","filter","col","length","sort","a","b","indexA","indexOf","indexB","orderA","Infinity","orderB","handleApply","getColumnConfig","isValid","isApplyDisabled","handleReorderColumns","fromIndex","toIndex","items","handleRemoveColumn","columnId","prev","handleToggleColumn","column","isCurrentlyVisible","some","handleSearchChange","event","target","value","handleSelectAll","columns","allSelected","every","v","newColumns","filteredAvailableColumns","query","toLowerCase","trim","includes","footer","createElement","Fragment","onClick","variant","disabled","onOpenChange","title","DialogTitle","className","columnConfigDialog","dialogLayout","VisibleColumnsList","onReorder","onRemove","AvailableColumnsList","onSearchChange","onToggleColumn","onSelectAll","filteredColumns","hiddenColumns","visibleColumnsContainer","sectionHeader","sectionTitle","countTag","sectionHint","removeIconVariant","emptyMessage","columnList","selectedCount","totalCount","allFilteredSelected","someFilteredSelected","handleSelectAllClick","availableColumnsContainer","onChange","placeholder","searchContainer","Root","defaultOpen","propertiesList","categoryHeader","checked","indeterminate","onCheckedChange","checkbox","Trigger","categoryTrigger","categoryTitle","categoryCount","caretIcon","Panel","propertyList","emptyState","PropertyItem","key","isSelected","onToggle","showInfoIcon","handleClick","propertyItem","propertyName","infoIcon"],"sources":["ColumnConfigDialog.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 { Button } from \"@base-ui/react/button\";\nimport { Collapsible } from \"@base-ui/react/collapsible\";\nimport { CaretDown, Cog, SmallInfoSign } from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport type { ColumnOrderState, VisibilityState } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { DraggableList } from \"../base-components/draggable-list/DraggableList.js\";\nimport { SearchBar } from \"../base-components/search-bar/SearchBar.js\";\nimport styles from \"./ColumnConfigDialog.module.css\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nexport interface ColumnConfig {\n columnId: string;\n isVisible: boolean;\n}\n\nexport type ColumnConfigOptions = Array<Pick<ColumnOption, \"id\" | \"name\">>;\n\nexport interface ColumnConfigDialogProps {\n isOpen: boolean;\n onClose: () => void;\n columnOptions: ColumnConfigOptions;\n currentVisibility?: VisibilityState;\n currentColumnOrder?: ColumnOrderState;\n onApply: (\n columns: ColumnConfig[],\n ) => void;\n isValidConfig?: (columns: ColumnConfig[]) => boolean;\n}\n\ninterface ColumnItem {\n id: string;\n label: string;\n isVisible: boolean;\n}\n\nexport function ColumnConfigDialog({\n isOpen,\n onClose,\n columnOptions,\n currentVisibility,\n currentColumnOrder,\n onApply,\n isValidConfig,\n}: ColumnConfigDialogProps):\n | React.ReactElement\n | null\n{\n const [visibleColumns, setVisibleColumns] = useState<ColumnItem[]>([]);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const allColumns: ColumnItem[] = useMemo(() => {\n return columnOptions.map((opt) => {\n const isVisible = currentVisibility\n ? currentVisibility[opt.id]\n : false;\n\n return {\n id: opt.id,\n label: opt.name,\n isVisible,\n };\n });\n }, [columnOptions, currentVisibility]);\n\n // Sync local state with prop when dialog is opened\n useEffect(() => {\n if (isOpen) {\n const visibleCols = allColumns.filter((col) => col.isVisible);\n\n // Sort by current column order if available\n if (!!currentColumnOrder?.length) {\n visibleCols.sort((a, b) => {\n const indexA = currentColumnOrder.indexOf(a.id);\n const indexB = currentColumnOrder.indexOf(b.id);\n // If not in order array, put at end\n const orderA = indexA === -1 ? Infinity : indexA;\n const orderB = indexB === -1 ? Infinity : indexB;\n return orderA - orderB;\n });\n }\n\n setVisibleColumns(visibleCols);\n setSearchQuery(\"\");\n }\n }, [isOpen, allColumns, currentColumnOrder]);\n\n const handleApply = useCallback(() => {\n onApply(getColumnConfig(allColumns, visibleColumns));\n onClose();\n }, [allColumns, visibleColumns, onApply, onClose]);\n\n // If no condition provided, default to valid\n const isValid = isValidConfig\n ? isValidConfig(getColumnConfig(allColumns, visibleColumns))\n : true;\n\n const isApplyDisabled = visibleColumns.length === 0 || !isValid;\n\n const handleReorderColumns = useCallback(\n (fromIndex: number, toIndex: number) => {\n setVisibleColumns((items) => arrayMove(items, fromIndex, toIndex));\n },\n [],\n );\n\n const handleRemoveColumn = useCallback((columnId: string) => {\n setVisibleColumns((prev) => prev.filter((col) => col.id !== columnId));\n }, []);\n\n const handleToggleColumn = useCallback((column: ColumnItem) => {\n setVisibleColumns((prev) => {\n const isCurrentlyVisible = prev.some((col) => col.id === column.id);\n if (isCurrentlyVisible) {\n return prev.filter((col) => col.id !== column.id);\n } else {\n return [...prev, column];\n }\n });\n }, []);\n\n const handleSearchChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(event.target.value);\n },\n [],\n );\n\n const handleSelectAll = useCallback((columns: ColumnItem[]) => {\n setVisibleColumns((prev) => {\n const allSelected = columns.every((col) =>\n prev.some((v) => v.id === col.id)\n );\n if (allSelected) {\n // Deselect all filtered columns\n return prev.filter(\n (v) => !columns.some((col) => col.id === v.id),\n );\n } else {\n // Select all filtered columns that aren't already selected\n const newColumns = columns.filter(\n (col) => !prev.some((v) => v.id === col.id),\n );\n return [...prev, ...newColumns];\n }\n });\n }, []);\n\n const filteredAvailableColumns = useMemo(() => {\n const query = searchQuery.toLowerCase().trim();\n if (!query) {\n return allColumns;\n }\n return allColumns.filter(\n (col) =>\n (col.label?.toLowerCase().includes(query) ?? false)\n || col.id.toLowerCase().includes(query),\n );\n }, [allColumns, searchQuery]);\n\n const footer = useMemo(() => (\n <>\n <ActionButton onClick={onClose}>Cancel</ActionButton>\n <ActionButton\n variant=\"primary\"\n onClick={handleApply}\n disabled={isApplyDisabled}\n >\n Apply\n </ActionButton>\n </>\n ), [onClose, handleApply, isApplyDisabled]);\n\n return (\n <Dialog\n isOpen={isOpen}\n onOpenChange={onClose}\n title={DialogTitle}\n footer={footer}\n className={styles.columnConfigDialog}\n >\n <div className={styles.dialogLayout}>\n <VisibleColumnsList\n columns={visibleColumns}\n onReorder={handleReorderColumns}\n onRemove={handleRemoveColumn}\n />\n <AvailableColumnsList\n visibleColumns={visibleColumns}\n searchQuery={searchQuery}\n onSearchChange={handleSearchChange}\n onToggleColumn={handleToggleColumn}\n onSelectAll={handleSelectAll}\n filteredColumns={filteredAvailableColumns}\n />\n </div>\n </Dialog>\n );\n}\n\nconst DialogTitle = (\n <div className={styles.title}>\n <Cog />Configure Table Columns\n </div>\n);\n\nconst getColumnConfig = (\n allColumns: ColumnItem[],\n visibleColumns: ColumnItem[],\n): ColumnConfig[] => {\n const hiddenColumns = allColumns.filter(\n (col) => !visibleColumns.some((v) => v.id === col.id),\n );\n\n return [\n ...visibleColumns.map((col) => ({ columnId: col.id, isVisible: true })),\n ...hiddenColumns.map((col) => ({ columnId: col.id, isVisible: false })),\n ];\n};\n\ninterface VisibleColumnsListProps {\n columns: ColumnItem[];\n onReorder: (fromIndex: number, toIndex: number) => void;\n onRemove: (columnId: string) => void;\n}\n\nfunction VisibleColumnsList({\n columns,\n onReorder,\n onRemove,\n}: VisibleColumnsListProps): React.ReactElement {\n return (\n <div className={styles.visibleColumnsContainer}>\n <div className={styles.sectionHeader}>\n <div className={styles.sectionTitle}>\n <span>Visible Columns</span>\n <span className={styles.countTag}>{columns.length}</span>\n </div>\n <div className={styles.sectionHint}>Drag to reorder</div>\n </div>\n <DraggableList\n items={columns}\n onReorder={onReorder}\n onRemove={onRemove}\n removeIconVariant=\"trash\"\n emptyMessage=\"No visible columns\"\n className={styles.columnList}\n />\n </div>\n );\n}\n\ninterface AvailableColumnsListProps {\n visibleColumns: ColumnItem[];\n searchQuery: string;\n onSearchChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onToggleColumn: (column: ColumnItem) => void;\n onSelectAll: (columns: ColumnItem[]) => void;\n filteredColumns: ColumnItem[];\n}\n\nfunction AvailableColumnsList({\n visibleColumns,\n searchQuery,\n onSearchChange,\n onToggleColumn,\n onSelectAll,\n filteredColumns,\n}: AvailableColumnsListProps): React.ReactElement {\n const selectedCount = visibleColumns.length;\n const totalCount = filteredColumns.length;\n const allFilteredSelected = filteredColumns.every((col) =>\n visibleColumns.some((v) => v.id === col.id)\n );\n const someFilteredSelected = filteredColumns.some((col) =>\n visibleColumns.some((v) => v.id === col.id)\n );\n\n const handleSelectAllClick = useCallback(() => {\n onSelectAll(filteredColumns);\n }, [filteredColumns, onSelectAll]);\n\n return (\n <div className={styles.availableColumnsContainer}>\n <div className={classNames(styles.sectionHeader, styles.sectionTitle)}>\n Add or Remove Columns\n </div>\n <SearchBar\n value={searchQuery}\n onChange={onSearchChange}\n placeholder=\"Search...\"\n aria-label=\"Search available columns\"\n className={styles.searchContainer}\n />\n <Collapsible.Root defaultOpen className={styles.propertiesList}>\n <div className={styles.categoryHeader}>\n <Checkbox\n checked={allFilteredSelected}\n indeterminate={someFilteredSelected && !allFilteredSelected}\n onCheckedChange={handleSelectAllClick}\n className={styles.checkbox}\n />\n <Collapsible.Trigger className={styles.categoryTrigger}>\n <span className={styles.categoryTitle}>All Columns</span>\n <span className={styles.categoryCount}>\n {selectedCount}/{totalCount}\n </span>\n <CaretDown className={styles.caretIcon} />\n </Collapsible.Trigger>\n </div>\n <Collapsible.Panel className={styles.propertyList}>\n {filteredColumns.length === 0\n ? (\n <div className={styles.emptyState}>\n No matching columns found\n </div>\n )\n : (\n filteredColumns.map((column) => (\n <PropertyItem\n key={column.id}\n column={column}\n isSelected={visibleColumns.some((v) => v.id === column.id)}\n onToggle={onToggleColumn}\n />\n ))\n )}\n </Collapsible.Panel>\n </Collapsible.Root>\n </div>\n );\n}\n\ninterface PropertyItemProps {\n column: ColumnItem;\n isSelected: boolean;\n onToggle: (column: ColumnItem) => void;\n showInfoIcon?: boolean;\n}\n\nfunction PropertyItem({\n column,\n isSelected,\n onToggle,\n showInfoIcon = false,\n}: PropertyItemProps): React.ReactElement {\n const handleClick = useCallback(() => {\n onToggle(column);\n }, [onToggle, column]);\n\n return (\n <div className={styles.propertyItem}>\n <Checkbox\n checked={isSelected}\n onCheckedChange={handleClick}\n className={styles.checkbox}\n />\n <Button\n onClick={handleClick}\n className={styles.propertyName}\n >\n {column.label}\n </Button>\n {showInfoIcon && <SmallInfoSign className={styles.infoIcon} />}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|