@osdk/react-components 0.2.0-beta.14 → 0.2.0-beta.16
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 +27 -0
- package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
- package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/browser/base-components/dialog/Dialog.module.css +0 -8
- package/build/browser/base-components/draggable-list/DraggableList.js +4 -2
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/browser/base-components/draggable-list/DraggableList.module.css +0 -8
- package/build/browser/filter-list/FilterInput.js +132 -0
- package/build/browser/filter-list/FilterInput.js.map +1 -0
- package/build/browser/filter-list/FilterList.js +91 -0
- package/build/browser/filter-list/FilterList.js.map +1 -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/base/{FilterList.js → BaseFilterList.js} +30 -31
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/browser/filter-list/base/FilterIcons.js +63 -0
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.module.css +22 -1
- package/build/browser/filter-list/base/FilterList.module.css.js +2 -0
- package/build/browser/filter-list/base/FilterListContent.js +21 -20
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListHeader.js +8 -3
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/browser/filter-list/base/FilterListHeader.module.css +25 -1
- package/build/browser/filter-list/base/FilterListHeader.module.css.js +3 -0
- package/build/browser/filter-list/base/FilterListItem.js +36 -17
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +58 -2
- package/build/browser/filter-list/base/FilterListItem.module.css.js +2 -0
- package/build/browser/filter-list/base/SortableFilterListItem.js +6 -6
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/index.js +1 -2
- package/build/browser/filter-list/base/index.js.map +1 -1
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js +34 -15
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +13 -0
- package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +2 -1
- package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +17 -21
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +25 -19
- package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -4
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +7 -14
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +4 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +1 -1
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js +4 -23
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +3 -2
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js +2 -32
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.module.css +16 -14
- package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -1
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +6 -13
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TextTagsInput.js +6 -14
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TimelineInput.js +2 -2
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css +14 -12
- package/build/browser/filter-list/base/inputs/shared.module.css +5 -4
- package/build/browser/filter-list/hooks/useFilterListState.js +24 -3
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +56 -0
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +105 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +508 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +62 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +55 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +105 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +129 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +55 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +54 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/browser/filter-list/types/AggregationTypes.js +2 -0
- package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/browser/filter-list/types/index.js +0 -2
- package/build/browser/filter-list/types/index.js.map +1 -1
- package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +19 -11
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +26 -0
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/object-table/ColumnConfigDialog.module.css +0 -9
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -4
- package/build/browser/object-table/ObjectTable.js +2 -0
- 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/TableHeaderWithPopover.module.css +0 -12
- package/build/browser/object-table/hooks/useRowSelection.js +11 -8
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/public/experimental.js +4 -1
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/shared/ErrorBoundary.module.css +14 -14
- package/build/browser/styles.css +207 -124
- package/build/cjs/public/experimental.cjs +3156 -2559
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +591 -513
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +70 -4
- package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
- package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/esm/base-components/dialog/Dialog.module.css +0 -8
- package/build/esm/base-components/draggable-list/DraggableList.js +4 -2
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/esm/base-components/draggable-list/DraggableList.module.css +0 -8
- package/build/esm/filter-list/FilterInput.js +132 -0
- package/build/esm/filter-list/FilterInput.js.map +1 -0
- package/build/esm/filter-list/FilterList.js +91 -0
- package/build/esm/filter-list/FilterList.js.map +1 -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/base/{FilterList.js → BaseFilterList.js} +30 -31
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/esm/filter-list/base/FilterIcons.js +63 -0
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.module.css +22 -1
- package/build/esm/filter-list/base/FilterListContent.js +21 -20
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListHeader.js +8 -3
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/esm/filter-list/base/FilterListHeader.module.css +25 -1
- package/build/esm/filter-list/base/FilterListItem.js +36 -17
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +58 -2
- package/build/esm/filter-list/base/SortableFilterListItem.js +6 -6
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/index.js +1 -2
- package/build/esm/filter-list/base/index.js.map +1 -1
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js +34 -15
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +13 -0
- package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +17 -21
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +25 -19
- package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -4
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +7 -14
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +4 -1
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js +4 -23
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
- package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +3 -2
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js +2 -32
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.module.css +16 -14
- package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -1
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +6 -13
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TextTagsInput.js +6 -14
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TimelineInput.js +2 -2
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TimelineInput.module.css +14 -12
- package/build/esm/filter-list/base/inputs/shared.module.css +5 -4
- package/build/esm/filter-list/hooks/useFilterListState.js +24 -3
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +56 -0
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +105 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +508 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +62 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +55 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +105 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +129 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +55 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +54 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/esm/filter-list/types/AggregationTypes.js +2 -0
- package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/esm/filter-list/types/index.js +0 -2
- package/build/esm/filter-list/types/index.js.map +1 -1
- package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +19 -11
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +26 -0
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/object-table/ColumnConfigDialog.module.css +0 -9
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -4
- package/build/esm/object-table/ObjectTable.js +2 -0
- 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/TableHeaderWithPopover.module.css +0 -12
- package/build/esm/object-table/hooks/useRowSelection.js +11 -8
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/public/experimental.js +4 -1
- package/build/esm/public/experimental.js.map +1 -1
- package/build/esm/shared/ErrorBoundary.module.css +14 -14
- package/build/types/filter-list/{base/FilterInput.d.ts → FilterInput.d.ts} +2 -2
- package/build/types/filter-list/FilterInput.d.ts.map +1 -0
- package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
- package/build/types/filter-list/FilterList.d.ts.map +1 -0
- package/build/types/filter-list/FilterListApi.d.ts +14 -0
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts +13 -0
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +29 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterIcons.d.ts +4 -0
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListContent.d.ts +8 -8
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts +7 -8
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts +7 -8
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/index.d.ts +2 -2
- package/build/types/filter-list/base/index.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +7 -13
- package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +7 -12
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts +10 -13
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +7 -13
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +5 -11
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +7 -12
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/RangeInput.d.ts +7 -14
- package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +7 -13
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +7 -13
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterListState.d.ts +1 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -5
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +14 -0
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +12 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/{base/inputs → inputs}/LinkedPropertyInput.d.ts +2 -2
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +16 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +12 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +17 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/index.d.ts +0 -2
- package/build/types/filter-list/types/index.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
- package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +1 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +2 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- 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 +7 -1
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/public/experimental.d.ts +4 -1
- package/build/types/public/experimental.d.ts.map +1 -1
- package/package.json +4 -4
- package/build/browser/filter-list/base/FilterInput.js +0 -542
- package/build/browser/filter-list/base/FilterInput.js.map +0 -1
- package/build/browser/filter-list/base/FilterList.js.map +0 -1
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js +0 -237
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js.map +0 -1
- package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/esm/filter-list/base/FilterInput.js +0 -542
- package/build/esm/filter-list/base/FilterInput.js.map +0 -1
- package/build/esm/filter-list/base/FilterList.js.map +0 -1
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +0 -237
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +0 -1
- package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
- package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
- package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +0 -1
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -56
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
- package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
- package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
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 React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { MultiDateInput } from "../base/inputs/MultiDateInput.js";
|
|
19
|
+
function MultiDateFilterInputInner({
|
|
20
|
+
filterState,
|
|
21
|
+
onFilterStateChanged
|
|
22
|
+
}) {
|
|
23
|
+
const selectedDates = useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues.filter(v => v instanceof Date) : [], [filterState]);
|
|
24
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
25
|
+
const handleChange = useCallback(selectedDates => {
|
|
26
|
+
onFilterStateChanged({
|
|
27
|
+
type: "SELECT",
|
|
28
|
+
selectedValues: selectedDates,
|
|
29
|
+
isExcluding
|
|
30
|
+
});
|
|
31
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
32
|
+
return /*#__PURE__*/React.createElement(MultiDateInput, {
|
|
33
|
+
selectedDates: selectedDates,
|
|
34
|
+
onChange: handleChange
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export const MultiDateFilterInput = /*#__PURE__*/memo(MultiDateFilterInputInner);
|
|
38
|
+
//# sourceMappingURL=MultiDateFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiDateFilterInput.js","names":["React","memo","useCallback","useMemo","MultiDateInput","MultiDateFilterInputInner","filterState","onFilterStateChanged","selectedDates","type","selectedValues","filter","v","Date","isExcluding","handleChange","createElement","onChange","MultiDateFilterInput"],"sources":["MultiDateFilterInput.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 React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface MultiDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction MultiDateFilterInputInner({\n filterState,\n onFilterStateChanged,\n}: MultiDateFilterInputProps): React.ReactElement {\n const selectedDates = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? filterState.selectedValues.filter((v): v is Date => v instanceof Date)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedDates: Date[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDates,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <MultiDateInput selectedDates={selectedDates} onChange={handleChange} />\n );\n}\n\nexport const MultiDateFilterInput: React.MemoExoticComponent<\n typeof MultiDateFilterInputInner\n> = memo(MultiDateFilterInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,cAAc,QAAQ,kCAAkC;AAQjE,SAASC,yBAAyBA,CAAC;EACjCC,WAAW;EACXC;AACyB,CAAC,EAAsB;EAChD,MAAMC,aAAa,GAAGL,OAAO,CAC3B,MACEG,WAAW,EAAEG,IAAI,KAAK,QAAQ,GAC1BH,WAAW,CAACI,cAAc,CAACC,MAAM,CAAEC,CAAC,IAAgBA,CAAC,YAAYC,IAAI,CAAC,GACtE,EAAE,EACR,CAACP,WAAW,CACd,CAAC;EACD,MAAMQ,WAAW,GAAGR,WAAW,EAAEQ,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGb,WAAW,CAC7BM,aAAqB,IAAK;IACzBD,oBAAoB,CAAC;MACnBE,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEF,aAAa;MAC7BM;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACP,oBAAoB,EAAEO,WAAW,CACpC,CAAC;EAED,oBACEd,KAAA,CAAAgB,aAAA,CAACZ,cAAc;IAACI,aAAa,EAAEA,aAAc;IAACS,QAAQ,EAAEF;EAAa,CAAE,CAAC;AAE5E;AAEA,OAAO,MAAMG,oBAEZ,gBAAGjB,IAAI,CAACI,yBAAyB,CAAC","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
|
+
import React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { MultiSelectInput } from "../base/inputs/MultiSelectInput.js";
|
|
19
|
+
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
20
|
+
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
21
|
+
function MultiSelectFilterInputInner({
|
|
22
|
+
objectType,
|
|
23
|
+
propertyKey,
|
|
24
|
+
filterState,
|
|
25
|
+
onFilterStateChanged,
|
|
26
|
+
whereClause
|
|
27
|
+
}) {
|
|
28
|
+
const selectedValues = useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
|
|
29
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
30
|
+
const handleChange = useCallback(selectedValues => {
|
|
31
|
+
onFilterStateChanged({
|
|
32
|
+
type: "SELECT",
|
|
33
|
+
selectedValues,
|
|
34
|
+
isExcluding
|
|
35
|
+
});
|
|
36
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
37
|
+
const aggregationOptions = useMemo(() => ({
|
|
38
|
+
where: whereClause
|
|
39
|
+
}), [whereClause]);
|
|
40
|
+
const {
|
|
41
|
+
data,
|
|
42
|
+
isLoading,
|
|
43
|
+
error
|
|
44
|
+
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
45
|
+
return /*#__PURE__*/React.createElement(MultiSelectInput, {
|
|
46
|
+
values: data,
|
|
47
|
+
isLoading: isLoading,
|
|
48
|
+
error: error,
|
|
49
|
+
selectedValues: selectedValues,
|
|
50
|
+
onChange: handleChange,
|
|
51
|
+
ariaLabel: `Search ${propertyKey} values`
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export const MultiSelectFilterInput = /*#__PURE__*/memo(MultiSelectFilterInputInner);
|
|
55
|
+
//# sourceMappingURL=MultiSelectFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","MultiSelectInput","usePropertyAggregation","coerceToStringArray","MultiSelectFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","whereClause","selectedValues","type","isExcluding","handleChange","aggregationOptions","where","data","isLoading","error","createElement","values","onChange","ariaLabel","MultiSelectFilterInput"],"sources":["MultiSelectFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface MultiSelectFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: MultiSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n aggregationOptions,\n );\n\n return (\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n ariaLabel={`Search ${propertyKey} values`}\n />\n );\n}\n\nexport const MultiSelectFilterInput: typeof MultiSelectFilterInputInner = memo(\n MultiSelectFilterInputInner,\n) as typeof MultiSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,gBAAgB,QAAQ,oCAAoC;AAErE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,mBAAmB,QAAQ,+BAA+B;AAUnE,SAASC,2BAA2BA,CAAiC;EACnEC,UAAU;EACVC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,cAAc,GAAGV,OAAO,CAC5B,MACEO,WAAW,EAAEI,IAAI,KAAK,QAAQ,GAC1BR,mBAAmB,CAACI,WAAW,CAACG,cAAc,CAAC,GAC/C,EAAE,EACR,CAACH,WAAW,CACd,CAAC;EACD,MAAMK,WAAW,GAAGL,WAAW,EAAEK,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGd,WAAW,CAC7BW,cAAwB,IAAK;IAC5BF,oBAAoB,CAAC;MACnBG,IAAI,EAAE,QAAQ;MACdD,cAAc;MACdE;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACJ,oBAAoB,EAAEI,WAAW,CACpC,CAAC;EAED,MAAME,kBAAkB,GAAGd,OAAO,CAChC,OAAO;IAAEe,KAAK,EAAEN;EAAY,CAAC,CAAC,EAC9B,CAACA,WAAW,CACd,CAAC;EAED,MAAM;IAAEO,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGhB,sBAAsB,CACvDG,UAAU,EACVC,WAAW,EACXQ,kBACF,CAAC;EAED,oBACEjB,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB;IACfmB,MAAM,EAAEJ,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbR,cAAc,EAAEA,cAAe;IAC/BW,QAAQ,EAAER,YAAa;IACvBS,SAAS,EAAE,UAAUhB,WAAW;EAAU,CAC3C,CAAC;AAEN;AAEA,OAAO,MAAMiB,sBAA0D,gBAAGzB,IAAI,CAC5EM,2BACF,CAAuC","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
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 { useOsdkAggregation } from "@osdk/react/experimental";
|
|
18
|
+
import React, { memo, useCallback, useMemo } from "react";
|
|
19
|
+
import { NullValueWrapper } from "../base/inputs/NullValueWrapper.js";
|
|
20
|
+
import { NumberRangeInput } from "../base/inputs/NumberRangeInput.js";
|
|
21
|
+
import { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from "../utils/aggregationHelpers.js";
|
|
22
|
+
function NumberRangeFilterInputInner({
|
|
23
|
+
objectType,
|
|
24
|
+
propertyKey,
|
|
25
|
+
filterState,
|
|
26
|
+
onFilterStateChanged
|
|
27
|
+
}) {
|
|
28
|
+
const numberRangeState = filterState?.type === "NUMBER_RANGE" ? filterState : undefined;
|
|
29
|
+
const includeNull = filterState?.includeNull;
|
|
30
|
+
const handleNullChange = useCallback(includeNull => {
|
|
31
|
+
onFilterStateChanged({
|
|
32
|
+
type: "NUMBER_RANGE",
|
|
33
|
+
minValue: numberRangeState?.minValue,
|
|
34
|
+
maxValue: numberRangeState?.maxValue,
|
|
35
|
+
includeNull
|
|
36
|
+
});
|
|
37
|
+
}, [onFilterStateChanged, numberRangeState?.minValue, numberRangeState?.maxValue]);
|
|
38
|
+
const handleRangeChange = useCallback((minValue, maxValue) => {
|
|
39
|
+
onFilterStateChanged({
|
|
40
|
+
type: "NUMBER_RANGE",
|
|
41
|
+
minValue,
|
|
42
|
+
maxValue,
|
|
43
|
+
includeNull
|
|
44
|
+
});
|
|
45
|
+
}, [onFilterStateChanged, includeNull]);
|
|
46
|
+
const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);
|
|
47
|
+
const histogramArgs = useMemo(() => ({
|
|
48
|
+
aggregate: aggregateOptions
|
|
49
|
+
}), [aggregateOptions]);
|
|
50
|
+
const {
|
|
51
|
+
data: aggregateData,
|
|
52
|
+
isLoading: histLoading
|
|
53
|
+
} = useOsdkAggregation(objectType, histogramArgs);
|
|
54
|
+
const valueCountPairs = useMemo(() => {
|
|
55
|
+
if (!aggregateData) return [];
|
|
56
|
+
const pairs = [];
|
|
57
|
+
for (const item of aggregateData) {
|
|
58
|
+
const rawValue = item.$group[propertyKey];
|
|
59
|
+
if (rawValue != null) {
|
|
60
|
+
const parsed = parseFloat(String(rawValue));
|
|
61
|
+
if (!isNaN(parsed)) {
|
|
62
|
+
pairs.push({
|
|
63
|
+
value: parsed,
|
|
64
|
+
count: item.$count ?? 0
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return pairs;
|
|
70
|
+
}, [aggregateData, propertyKey]);
|
|
71
|
+
const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);
|
|
72
|
+
const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);
|
|
73
|
+
const nullCountArgs = useMemo(() => ({
|
|
74
|
+
where: nullWhereClause,
|
|
75
|
+
aggregate: nullCountAggregateOptions
|
|
76
|
+
}), [nullWhereClause, nullCountAggregateOptions]);
|
|
77
|
+
const {
|
|
78
|
+
data: nullCountData,
|
|
79
|
+
isLoading: nullLoading,
|
|
80
|
+
error: nullError
|
|
81
|
+
} = useOsdkAggregation(objectType, nullCountArgs);
|
|
82
|
+
const nullCount = useMemo(() => {
|
|
83
|
+
if (!nullCountData) return 0;
|
|
84
|
+
const result = nullCountData;
|
|
85
|
+
if ("$count" in result && typeof result.$count === "number") {
|
|
86
|
+
return result.$count;
|
|
87
|
+
}
|
|
88
|
+
return 0;
|
|
89
|
+
}, [nullCountData]);
|
|
90
|
+
return /*#__PURE__*/React.createElement(NullValueWrapper, {
|
|
91
|
+
nullCount: nullCount,
|
|
92
|
+
isLoading: nullLoading,
|
|
93
|
+
error: nullError,
|
|
94
|
+
includeNull: includeNull,
|
|
95
|
+
onIncludeNullChange: handleNullChange
|
|
96
|
+
}, /*#__PURE__*/React.createElement(NumberRangeInput, {
|
|
97
|
+
valueCountPairs: valueCountPairs,
|
|
98
|
+
isLoading: histLoading,
|
|
99
|
+
minValue: numberRangeState?.minValue,
|
|
100
|
+
maxValue: numberRangeState?.maxValue,
|
|
101
|
+
onChange: handleRangeChange
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
export const NumberRangeFilterInput = /*#__PURE__*/memo(NumberRangeFilterInputInner);
|
|
105
|
+
//# sourceMappingURL=NumberRangeFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberRangeFilterInput.js","names":["useOsdkAggregation","React","memo","useCallback","useMemo","NullValueWrapper","NumberRangeInput","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","NumberRangeFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","numberRangeState","type","undefined","includeNull","handleNullChange","minValue","maxValue","handleRangeChange","aggregateOptions","histogramArgs","aggregate","data","aggregateData","isLoading","histLoading","valueCountPairs","pairs","item","rawValue","$group","parsed","parseFloat","String","isNaN","push","value","count","$count","nullCountAggregateOptions","nullWhereClause","nullCountArgs","where","nullCountData","nullLoading","error","nullError","nullCount","result","createElement","onIncludeNullChange","onChange","NumberRangeFilterInput"],"sources":["NumberRangeFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullWhereClause,\n} from \"../utils/aggregationHelpers.js\";\n\ninterface NumberRangeFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction NumberRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: NumberRangeFilterInputProps<Q>): React.ReactElement {\n const numberRangeState = filterState?.type === \"NUMBER_RANGE\"\n ? filterState\n : undefined;\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull,\n });\n },\n [\n onFilterStateChanged,\n numberRangeState?.minValue,\n numberRangeState?.maxValue,\n ],\n );\n\n const handleRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull],\n );\n\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions }),\n [aggregateOptions],\n );\n\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const valueCountPairs = useMemo<Array<{ value: number; count: number }>>(\n () => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: number; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({ value: parsed, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n },\n [aggregateData, propertyKey],\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n const nullWhereClause = useMemo(\n () => createNullWhereClause<Q>(propertyKey),\n [propertyKey],\n );\n\n const nullCountArgs = useMemo(\n () => ({ where: nullWhereClause, aggregate: nullCountAggregateOptions }),\n [nullWhereClause, nullCountAggregateOptions],\n );\n\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError,\n } = useOsdkAggregation(\n objectType,\n nullCountArgs,\n );\n\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData as { $count?: number } | Iterable<unknown>;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={nullLoading}\n error={nullError}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <NumberRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={numberRangeState?.minValue}\n maxValue={numberRangeState?.maxValue}\n onChange={handleRangeChange}\n />\n </NullValueWrapper>\n );\n}\n\nexport const NumberRangeFilterInput: typeof NumberRangeFilterInputInner = memo(\n NumberRangeFilterInputInner,\n) as typeof NumberRangeFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,129 @@
|
|
|
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 React, { memo } from "react";
|
|
18
|
+
import { CheckboxListFilterInput } from "./CheckboxListFilterInput.js";
|
|
19
|
+
import { ContainsTextFilterInput } from "./ContainsTextFilterInput.js";
|
|
20
|
+
import { DateRangeFilterInput } from "./DateRangeFilterInput.js";
|
|
21
|
+
import { ListogramFilterInput } from "./ListogramFilterInput.js";
|
|
22
|
+
import { MultiDateFilterInput } from "./MultiDateFilterInput.js";
|
|
23
|
+
import { MultiSelectFilterInput } from "./MultiSelectFilterInput.js";
|
|
24
|
+
import { NumberRangeFilterInput } from "./NumberRangeFilterInput.js";
|
|
25
|
+
import { SingleDateFilterInput } from "./SingleDateFilterInput.js";
|
|
26
|
+
import { SingleSelectFilterInput } from "./SingleSelectFilterInput.js";
|
|
27
|
+
import { TextTagsFilterInput } from "./TextTagsFilterInput.js";
|
|
28
|
+
import { TimelineFilterInput } from "./TimelineFilterInput.js";
|
|
29
|
+
import { ToggleFilterInput } from "./ToggleFilterInput.js";
|
|
30
|
+
function PropertyFilterInputInner({
|
|
31
|
+
objectType,
|
|
32
|
+
definition,
|
|
33
|
+
filterState,
|
|
34
|
+
onFilterStateChanged,
|
|
35
|
+
whereClause
|
|
36
|
+
}) {
|
|
37
|
+
switch (definition.filterComponent) {
|
|
38
|
+
case "CHECKBOX_LIST":
|
|
39
|
+
return /*#__PURE__*/React.createElement(CheckboxListFilterInput, {
|
|
40
|
+
objectType: objectType,
|
|
41
|
+
propertyKey: definition.key,
|
|
42
|
+
filterState: filterState,
|
|
43
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
44
|
+
whereClause: whereClause,
|
|
45
|
+
colorMap: definition.colorMap
|
|
46
|
+
});
|
|
47
|
+
case "CONTAINS_TEXT":
|
|
48
|
+
return /*#__PURE__*/React.createElement(ContainsTextFilterInput, {
|
|
49
|
+
propertyKey: definition.key,
|
|
50
|
+
filterState: filterState,
|
|
51
|
+
onFilterStateChanged: onFilterStateChanged
|
|
52
|
+
});
|
|
53
|
+
case "TOGGLE":
|
|
54
|
+
return /*#__PURE__*/React.createElement(ToggleFilterInput, {
|
|
55
|
+
filterState: filterState,
|
|
56
|
+
onFilterStateChanged: onFilterStateChanged
|
|
57
|
+
});
|
|
58
|
+
case "NUMBER_RANGE":
|
|
59
|
+
return /*#__PURE__*/React.createElement(NumberRangeFilterInput, {
|
|
60
|
+
objectType: objectType,
|
|
61
|
+
propertyKey: definition.key,
|
|
62
|
+
filterState: filterState,
|
|
63
|
+
onFilterStateChanged: onFilterStateChanged
|
|
64
|
+
});
|
|
65
|
+
case "DATE_RANGE":
|
|
66
|
+
return /*#__PURE__*/React.createElement(DateRangeFilterInput, {
|
|
67
|
+
objectType: objectType,
|
|
68
|
+
propertyKey: definition.key,
|
|
69
|
+
filterState: filterState,
|
|
70
|
+
onFilterStateChanged: onFilterStateChanged
|
|
71
|
+
});
|
|
72
|
+
case "SINGLE_SELECT":
|
|
73
|
+
return /*#__PURE__*/React.createElement(SingleSelectFilterInput, {
|
|
74
|
+
objectType: objectType,
|
|
75
|
+
propertyKey: definition.key,
|
|
76
|
+
filterState: filterState,
|
|
77
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
78
|
+
whereClause: whereClause
|
|
79
|
+
});
|
|
80
|
+
case "MULTI_SELECT":
|
|
81
|
+
return /*#__PURE__*/React.createElement(MultiSelectFilterInput, {
|
|
82
|
+
objectType: objectType,
|
|
83
|
+
propertyKey: definition.key,
|
|
84
|
+
filterState: filterState,
|
|
85
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
86
|
+
whereClause: whereClause
|
|
87
|
+
});
|
|
88
|
+
case "SINGLE_DATE":
|
|
89
|
+
return /*#__PURE__*/React.createElement(SingleDateFilterInput, {
|
|
90
|
+
filterState: filterState,
|
|
91
|
+
onFilterStateChanged: onFilterStateChanged
|
|
92
|
+
});
|
|
93
|
+
case "MULTI_DATE":
|
|
94
|
+
return /*#__PURE__*/React.createElement(MultiDateFilterInput, {
|
|
95
|
+
filterState: filterState,
|
|
96
|
+
onFilterStateChanged: onFilterStateChanged
|
|
97
|
+
});
|
|
98
|
+
case "LISTOGRAM":
|
|
99
|
+
return /*#__PURE__*/React.createElement(ListogramFilterInput, {
|
|
100
|
+
objectType: objectType,
|
|
101
|
+
propertyKey: definition.key,
|
|
102
|
+
filterState: filterState,
|
|
103
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
104
|
+
whereClause: whereClause,
|
|
105
|
+
colorMap: definition.colorMap,
|
|
106
|
+
displayMode: definition.listogramConfig?.displayMode,
|
|
107
|
+
maxVisibleItems: definition.listogramConfig?.maxVisibleItems
|
|
108
|
+
});
|
|
109
|
+
case "TEXT_TAGS":
|
|
110
|
+
return /*#__PURE__*/React.createElement(TextTagsFilterInput, {
|
|
111
|
+
objectType: objectType,
|
|
112
|
+
propertyKey: definition.key,
|
|
113
|
+
filterState: filterState,
|
|
114
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
115
|
+
whereClause: whereClause
|
|
116
|
+
});
|
|
117
|
+
case "TIMELINE":
|
|
118
|
+
return /*#__PURE__*/React.createElement(TimelineFilterInput, {
|
|
119
|
+
filterState: filterState,
|
|
120
|
+
onFilterStateChanged: onFilterStateChanged
|
|
121
|
+
});
|
|
122
|
+
default:
|
|
123
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
"data-unsupported": "true"
|
|
125
|
+
}, "Unsupported filter component: ", definition.filterComponent);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export const PropertyFilterInput = /*#__PURE__*/memo(PropertyFilterInputInner);
|
|
129
|
+
//# sourceMappingURL=PropertyFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyFilterInput.js","names":["React","memo","CheckboxListFilterInput","ContainsTextFilterInput","DateRangeFilterInput","ListogramFilterInput","MultiDateFilterInput","MultiSelectFilterInput","NumberRangeFilterInput","SingleDateFilterInput","SingleSelectFilterInput","TextTagsFilterInput","TimelineFilterInput","ToggleFilterInput","PropertyFilterInputInner","objectType","definition","filterState","onFilterStateChanged","whereClause","filterComponent","createElement","propertyKey","key","colorMap","displayMode","listogramConfig","maxVisibleItems","PropertyFilterInput"],"sources":["PropertyFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo } from \"react\";\nimport type { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { CheckboxListFilterInput } from \"./CheckboxListFilterInput.js\";\nimport { ContainsTextFilterInput } from \"./ContainsTextFilterInput.js\";\nimport { DateRangeFilterInput } from \"./DateRangeFilterInput.js\";\nimport { ListogramFilterInput } from \"./ListogramFilterInput.js\";\nimport { MultiDateFilterInput } from \"./MultiDateFilterInput.js\";\nimport { MultiSelectFilterInput } from \"./MultiSelectFilterInput.js\";\nimport { NumberRangeFilterInput } from \"./NumberRangeFilterInput.js\";\nimport { SingleDateFilterInput } from \"./SingleDateFilterInput.js\";\nimport { SingleSelectFilterInput } from \"./SingleSelectFilterInput.js\";\nimport { TextTagsFilterInput } from \"./TextTagsFilterInput.js\";\nimport { TimelineFilterInput } from \"./TimelineFilterInput.js\";\nimport { ToggleFilterInput } from \"./ToggleFilterInput.js\";\n\ninterface PropertyFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: Extract<FilterDefinitionUnion<Q>, { type: \"PROPERTY\" }>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction PropertyFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: PropertyFilterInputProps<Q>): React.ReactElement {\n switch (definition.filterComponent) {\n case \"CHECKBOX_LIST\":\n return (\n <CheckboxListFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n colorMap={definition.colorMap}\n />\n );\n\n case \"CONTAINS_TEXT\":\n return (\n <ContainsTextFilterInput\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"TOGGLE\":\n return (\n <ToggleFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"NUMBER_RANGE\":\n return (\n <NumberRangeFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"DATE_RANGE\":\n return (\n <DateRangeFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"SINGLE_SELECT\":\n return (\n <SingleSelectFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"MULTI_SELECT\":\n return (\n <MultiSelectFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"SINGLE_DATE\":\n return (\n <SingleDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"MULTI_DATE\":\n return (\n <MultiDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LISTOGRAM\":\n return (\n <ListogramFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n colorMap={definition.colorMap}\n displayMode={definition.listogramConfig?.displayMode}\n maxVisibleItems={definition.listogramConfig?.maxVisibleItems}\n />\n );\n\n case \"TEXT_TAGS\":\n return (\n <TextTagsFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"TIMELINE\":\n return (\n <TimelineFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n default:\n return (\n <div data-unsupported=\"true\">\n Unsupported filter component: {definition.filterComponent}\n </div>\n );\n }\n}\n\nexport const PropertyFilterInput: typeof PropertyFilterInputInner = memo(\n PropertyFilterInputInner,\n) as typeof PropertyFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAGnC,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,sBAAsB,QAAQ,6BAA6B;AACpE,SAASC,sBAAsB,QAAQ,6BAA6B;AACpE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,iBAAiB,QAAQ,wBAAwB;AAW1D,SAASC,wBAAwBA,CAAiC;EAChEC,UAAU;EACVC,UAAU;EACVC,WAAW;EACXC,oBAAoB;EACpBC;AAC2B,CAAC,EAAsB;EAClD,QAAQH,UAAU,CAACI,eAAe;IAChC,KAAK,eAAe;MAClB,oBACEpB,KAAA,CAAAqB,aAAA,CAACnB,uBAAuB;QACtBa,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA,oBAAqB;QAC3CC,WAAW,EAAEA,WAAY;QACzBK,QAAQ,EAAER,UAAU,CAACQ;MAAS,CAC/B,CAAC;IAGN,KAAK,eAAe;MAClB,oBACExB,KAAA,CAAAqB,aAAA,CAAClB,uBAAuB;QACtBmB,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,QAAQ;MACX,oBACElB,KAAA,CAAAqB,aAAA,CAACR,iBAAiB;QAChBI,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,cAAc;MACjB,oBACElB,KAAA,CAAAqB,aAAA,CAACb,sBAAsB;QACrBO,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,YAAY;MACf,oBACElB,KAAA,CAAAqB,aAAA,CAACjB,oBAAoB;QACnBW,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,eAAe;MAClB,oBACElB,KAAA,CAAAqB,aAAA,CAACX,uBAAuB;QACtBK,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA,oBAAqB;QAC3CC,WAAW,EAAEA;MAAY,CAC1B,CAAC;IAGN,KAAK,cAAc;MACjB,oBACEnB,KAAA,CAAAqB,aAAA,CAACd,sBAAsB;QACrBQ,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA,oBAAqB;QAC3CC,WAAW,EAAEA;MAAY,CAC1B,CAAC;IAGN,KAAK,aAAa;MAChB,oBACEnB,KAAA,CAAAqB,aAAA,CAACZ,qBAAqB;QACpBQ,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,YAAY;MACf,oBACElB,KAAA,CAAAqB,aAAA,CAACf,oBAAoB;QACnBW,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN,KAAK,WAAW;MACd,oBACElB,KAAA,CAAAqB,aAAA,CAAChB,oBAAoB;QACnBU,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA,oBAAqB;QAC3CC,WAAW,EAAEA,WAAY;QACzBK,QAAQ,EAAER,UAAU,CAACQ,QAAS;QAC9BC,WAAW,EAAET,UAAU,CAACU,eAAe,EAAED,WAAY;QACrDE,eAAe,EAAEX,UAAU,CAACU,eAAe,EAAEC;MAAgB,CAC9D,CAAC;IAGN,KAAK,WAAW;MACd,oBACE3B,KAAA,CAAAqB,aAAA,CAACV,mBAAmB;QAClBI,UAAU,EAAEA,UAAW;QACvBO,WAAW,EAAEN,UAAU,CAACO,GAAI;QAC5BN,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA,oBAAqB;QAC3CC,WAAW,EAAEA;MAAY,CAC1B,CAAC;IAGN,KAAK,UAAU;MACb,oBACEnB,KAAA,CAAAqB,aAAA,CAACT,mBAAmB;QAClBK,WAAW,EAAEA,WAAY;QACzBC,oBAAoB,EAAEA;MAAqB,CAC5C,CAAC;IAGN;MACE,oBACElB,KAAA,CAAAqB,aAAA;QAAK,oBAAiB;MAAM,GAAC,gCACG,EAACL,UAAU,CAACI,eACvC,CAAC;EAEZ;AACF;AAEA,OAAO,MAAMQ,mBAAoD,gBAAG3B,IAAI,CACtEa,wBACF,CAAoC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { SingleDateInput } from "../base/inputs/SingleDateInput.js";
|
|
19
|
+
function SingleDateFilterInputInner({
|
|
20
|
+
filterState,
|
|
21
|
+
onFilterStateChanged
|
|
22
|
+
}) {
|
|
23
|
+
const selectedDate = useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : undefined : undefined, [filterState]);
|
|
24
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
25
|
+
const handleChange = useCallback(selectedDate => {
|
|
26
|
+
onFilterStateChanged({
|
|
27
|
+
type: "SELECT",
|
|
28
|
+
selectedValues: selectedDate !== undefined ? [selectedDate] : [],
|
|
29
|
+
isExcluding
|
|
30
|
+
});
|
|
31
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
32
|
+
return /*#__PURE__*/React.createElement(SingleDateInput, {
|
|
33
|
+
selectedDate: selectedDate,
|
|
34
|
+
onChange: handleChange
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export const SingleDateFilterInput = /*#__PURE__*/memo(SingleDateFilterInputInner);
|
|
38
|
+
//# sourceMappingURL=SingleDateFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleDateFilterInput.js","names":["React","memo","useCallback","useMemo","SingleDateInput","SingleDateFilterInputInner","filterState","onFilterStateChanged","selectedDate","type","selectedValues","Date","undefined","isExcluding","handleChange","createElement","onChange","SingleDateFilterInput"],"sources":["SingleDateFilterInput.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 React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface SingleDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction SingleDateFilterInputInner({\n filterState,\n onFilterStateChanged,\n}: SingleDateFilterInputProps): React.ReactElement {\n const selectedDate = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? (filterState.selectedValues[0] instanceof Date\n ? filterState.selectedValues[0]\n : undefined)\n : undefined,\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedDate: Date | undefined) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDate !== undefined ? [selectedDate] : [],\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <SingleDateInput\n selectedDate={selectedDate}\n onChange={handleChange}\n />\n );\n}\n\nexport const SingleDateFilterInput: React.MemoExoticComponent<\n typeof SingleDateFilterInputInner\n> = memo(SingleDateFilterInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,eAAe,QAAQ,mCAAmC;AAQnE,SAASC,0BAA0BA,CAAC;EAClCC,WAAW;EACXC;AAC0B,CAAC,EAAsB;EACjD,MAAMC,YAAY,GAAGL,OAAO,CAC1B,MACEG,WAAW,EAAEG,IAAI,KAAK,QAAQ,GACzBH,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,YAAYC,IAAI,GAC5CL,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,GAC7BE,SAAS,GACXA,SAAS,EACf,CAACN,WAAW,CACd,CAAC;EACD,MAAMO,WAAW,GAAGP,WAAW,EAAEO,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGZ,WAAW,CAC7BM,YAA8B,IAAK;IAClCD,oBAAoB,CAAC;MACnBE,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEF,YAAY,KAAKI,SAAS,GAAG,CAACJ,YAAY,CAAC,GAAG,EAAE;MAChEK;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACN,oBAAoB,EAAEM,WAAW,CACpC,CAAC;EAED,oBACEb,KAAA,CAAAe,aAAA,CAACX,eAAe;IACdI,YAAY,EAAEA,YAAa;IAC3BQ,QAAQ,EAAEF;EAAa,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMG,qBAEZ,gBAAGhB,IAAI,CAACI,0BAA0B,CAAC","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
|
+
import React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { SingleSelectInput } from "../base/inputs/SingleSelectInput.js";
|
|
19
|
+
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
20
|
+
import { coerceToString } from "../utils/coerceFilterValue.js";
|
|
21
|
+
function SingleSelectFilterInputInner({
|
|
22
|
+
objectType,
|
|
23
|
+
propertyKey,
|
|
24
|
+
filterState,
|
|
25
|
+
onFilterStateChanged,
|
|
26
|
+
whereClause
|
|
27
|
+
}) {
|
|
28
|
+
const selectedValue = useMemo(() => filterState?.type === "SELECT" ? coerceToString(filterState.selectedValues[0]) : undefined, [filterState]);
|
|
29
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
30
|
+
const handleChange = useCallback(value => {
|
|
31
|
+
onFilterStateChanged({
|
|
32
|
+
type: "SELECT",
|
|
33
|
+
selectedValues: value !== undefined ? [value] : [],
|
|
34
|
+
isExcluding
|
|
35
|
+
});
|
|
36
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
37
|
+
const aggregationOptions = useMemo(() => ({
|
|
38
|
+
where: whereClause
|
|
39
|
+
}), [whereClause]);
|
|
40
|
+
const {
|
|
41
|
+
data,
|
|
42
|
+
isLoading,
|
|
43
|
+
error
|
|
44
|
+
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
45
|
+
return /*#__PURE__*/React.createElement(SingleSelectInput, {
|
|
46
|
+
values: data,
|
|
47
|
+
isLoading: isLoading,
|
|
48
|
+
error: error,
|
|
49
|
+
selectedValue: selectedValue,
|
|
50
|
+
onChange: handleChange,
|
|
51
|
+
ariaLabel: `Select ${propertyKey}`
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export const SingleSelectFilterInput = /*#__PURE__*/memo(SingleSelectFilterInputInner);
|
|
55
|
+
//# sourceMappingURL=SingleSelectFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleSelectFilterInput.js","names":["React","memo","useCallback","useMemo","SingleSelectInput","usePropertyAggregation","coerceToString","SingleSelectFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","whereClause","selectedValue","type","selectedValues","undefined","isExcluding","handleChange","value","aggregationOptions","where","data","isLoading","error","createElement","values","onChange","ariaLabel","SingleSelectFilterInput"],"sources":["SingleSelectFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToString } from \"../utils/coerceFilterValue.js\";\n\ninterface SingleSelectFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction SingleSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: SingleSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValue = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToString(filterState.selectedValues[0])\n : undefined,\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (value: string | undefined) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: value !== undefined ? [value] : [],\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n aggregationOptions,\n );\n\n return (\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={handleChange}\n ariaLabel={`Select ${propertyKey}`}\n />\n );\n}\n\nexport const SingleSelectFilterInput: typeof SingleSelectFilterInputInner =\n memo(\n SingleSelectFilterInputInner,\n ) as typeof SingleSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,cAAc,QAAQ,+BAA+B;AAU9D,SAASC,4BAA4BA,CAAiC;EACpEC,UAAU;EACVC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC;AAC+B,CAAC,EAAsB;EACtD,MAAMC,aAAa,GAAGV,OAAO,CAC3B,MACEO,WAAW,EAAEI,IAAI,KAAK,QAAQ,GAC1BR,cAAc,CAACI,WAAW,CAACK,cAAc,CAAC,CAAC,CAAC,CAAC,GAC7CC,SAAS,EACf,CAACN,WAAW,CACd,CAAC;EACD,MAAMO,WAAW,GAAGP,WAAW,EAAEO,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGhB,WAAW,CAC7BiB,KAAyB,IAAK;IAC7BR,oBAAoB,CAAC;MACnBG,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEI,KAAK,KAAKH,SAAS,GAAG,CAACG,KAAK,CAAC,GAAG,EAAE;MAClDF;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACN,oBAAoB,EAAEM,WAAW,CACpC,CAAC;EAED,MAAMG,kBAAkB,GAAGjB,OAAO,CAChC,OAAO;IAAEkB,KAAK,EAAET;EAAY,CAAC,CAAC,EAC9B,CAACA,WAAW,CACd,CAAC;EAED,MAAM;IAAEU,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGnB,sBAAsB,CACvDG,UAAU,EACVC,WAAW,EACXW,kBACF,CAAC;EAED,oBACEpB,KAAA,CAAAyB,aAAA,CAACrB,iBAAiB;IAChBsB,MAAM,EAAEJ,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbX,aAAa,EAAEA,aAAc;IAC7Bc,QAAQ,EAAET,YAAa;IACvBU,SAAS,EAAE,UAAUnB,WAAW;EAAG,CACpC,CAAC;AAEN;AAEA,OAAO,MAAMoB,uBAA4D,gBACvE5B,IAAI,CACFM,4BACF,CAAwC","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { TextTagsInput } from "../base/inputs/TextTagsInput.js";
|
|
19
|
+
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
20
|
+
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
21
|
+
function TextTagsFilterInputInner({
|
|
22
|
+
objectType,
|
|
23
|
+
propertyKey,
|
|
24
|
+
filterState,
|
|
25
|
+
onFilterStateChanged,
|
|
26
|
+
whereClause
|
|
27
|
+
}) {
|
|
28
|
+
const tags = useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
|
|
29
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
30
|
+
const handleChange = useCallback(values => {
|
|
31
|
+
onFilterStateChanged({
|
|
32
|
+
type: "EXACT_MATCH",
|
|
33
|
+
values,
|
|
34
|
+
isExcluding
|
|
35
|
+
});
|
|
36
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
37
|
+
const aggregationOptions = useMemo(() => ({
|
|
38
|
+
where: whereClause
|
|
39
|
+
}), [whereClause]);
|
|
40
|
+
const {
|
|
41
|
+
data,
|
|
42
|
+
isLoading,
|
|
43
|
+
error
|
|
44
|
+
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
45
|
+
return /*#__PURE__*/React.createElement(TextTagsInput, {
|
|
46
|
+
suggestions: data,
|
|
47
|
+
isLoading: isLoading,
|
|
48
|
+
error: error,
|
|
49
|
+
tags: tags,
|
|
50
|
+
onChange: handleChange
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export const TextTagsFilterInput = /*#__PURE__*/memo(TextTagsFilterInputInner);
|
|
54
|
+
//# sourceMappingURL=TextTagsFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextTagsFilterInput.js","names":["React","memo","useCallback","useMemo","TextTagsInput","usePropertyAggregation","coerceToStringArray","TextTagsFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","whereClause","tags","type","values","isExcluding","handleChange","aggregationOptions","where","data","isLoading","error","createElement","suggestions","onChange","TextTagsFilterInput"],"sources":["TextTagsFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface TextTagsFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction TextTagsFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: TextTagsFilterInputProps<Q>): React.ReactElement {\n const tags = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (values: string[]) => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n aggregationOptions,\n );\n\n return (\n <TextTagsInput\n suggestions={data}\n isLoading={isLoading}\n error={error}\n tags={tags}\n onChange={handleChange}\n />\n );\n}\n\nexport const TextTagsFilterInput: typeof TextTagsFilterInputInner = memo(\n TextTagsFilterInputInner,\n) as typeof TextTagsFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,aAAa,QAAQ,iCAAiC;AAE/D,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,mBAAmB,QAAQ,+BAA+B;AAUnE,SAASC,wBAAwBA,CAAiC;EAChEC,UAAU;EACVC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC;AAC2B,CAAC,EAAsB;EAClD,MAAMC,IAAI,GAAGV,OAAO,CAClB,MACEO,WAAW,EAAEI,IAAI,KAAK,aAAa,GAC/BR,mBAAmB,CAACI,WAAW,CAACK,MAAM,CAAC,GACvC,EAAE,EACR,CAACL,WAAW,CACd,CAAC;EACD,MAAMM,WAAW,GAAGN,WAAW,EAAEM,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGf,WAAW,CAC7Ba,MAAgB,IAAK;IACpBJ,oBAAoB,CAAC;MACnBG,IAAI,EAAE,aAAa;MACnBC,MAAM;MACNC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACL,oBAAoB,EAAEK,WAAW,CACpC,CAAC;EAED,MAAME,kBAAkB,GAAGf,OAAO,CAChC,OAAO;IAAEgB,KAAK,EAAEP;EAAY,CAAC,CAAC,EAC9B,CAACA,WAAW,CACd,CAAC;EAED,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGjB,sBAAsB,CACvDG,UAAU,EACVC,WAAW,EACXS,kBACF,CAAC;EAED,oBACElB,KAAA,CAAAuB,aAAA,CAACnB,aAAa;IACZoB,WAAW,EAAEJ,IAAK;IAClBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbT,IAAI,EAAEA,IAAK;IACXY,QAAQ,EAAER;EAAa,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMS,mBAAoD,gBAAGzB,IAAI,CACtEM,wBACF,CAAoC","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { TimelineInput } from "../base/inputs/TimelineInput.js";
|
|
19
|
+
function TimelineFilterInputInner({
|
|
20
|
+
filterState,
|
|
21
|
+
onFilterStateChanged
|
|
22
|
+
}) {
|
|
23
|
+
const {
|
|
24
|
+
startDate,
|
|
25
|
+
endDate
|
|
26
|
+
} = useMemo(() => filterState?.type === "TIMELINE" ? {
|
|
27
|
+
startDate: filterState.startDate,
|
|
28
|
+
endDate: filterState.endDate
|
|
29
|
+
} : {
|
|
30
|
+
startDate: undefined,
|
|
31
|
+
endDate: undefined
|
|
32
|
+
}, [filterState]);
|
|
33
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
34
|
+
const handleChange = useCallback((startDate, endDate) => {
|
|
35
|
+
onFilterStateChanged({
|
|
36
|
+
type: "TIMELINE",
|
|
37
|
+
startDate,
|
|
38
|
+
endDate,
|
|
39
|
+
isExcluding
|
|
40
|
+
});
|
|
41
|
+
}, [onFilterStateChanged, isExcluding]);
|
|
42
|
+
return /*#__PURE__*/React.createElement(TimelineInput, {
|
|
43
|
+
startDate: startDate,
|
|
44
|
+
endDate: endDate,
|
|
45
|
+
onChange: handleChange
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export const TimelineFilterInput = /*#__PURE__*/memo(TimelineFilterInputInner);
|
|
49
|
+
//# sourceMappingURL=TimelineFilterInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelineFilterInput.js","names":["React","memo","useCallback","useMemo","TimelineInput","TimelineFilterInputInner","filterState","onFilterStateChanged","startDate","endDate","type","undefined","isExcluding","handleChange","createElement","onChange","TimelineFilterInput"],"sources":["TimelineFilterInput.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 React, { memo, useCallback, useMemo } from \"react\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface TimelineFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction TimelineFilterInputInner({\n filterState,\n onFilterStateChanged,\n}: TimelineFilterInputProps): React.ReactElement {\n const { startDate, endDate } = useMemo(\n () =>\n filterState?.type === \"TIMELINE\"\n ? { startDate: filterState.startDate, endDate: filterState.endDate }\n : { startDate: undefined, endDate: undefined },\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (startDate: Date | undefined, endDate: Date | undefined) => {\n onFilterStateChanged({\n type: \"TIMELINE\",\n startDate,\n endDate,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <TimelineInput\n startDate={startDate}\n endDate={endDate}\n onChange={handleChange}\n />\n );\n}\n\nexport const TimelineFilterInput: React.MemoExoticComponent<\n typeof TimelineFilterInputInner\n> = memo(TimelineFilterInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,aAAa,QAAQ,iCAAiC;AAQ/D,SAASC,wBAAwBA,CAAC;EAChCC,WAAW;EACXC;AACwB,CAAC,EAAsB;EAC/C,MAAM;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGN,OAAO,CACpC,MACEG,WAAW,EAAEI,IAAI,KAAK,UAAU,GAC5B;IAAEF,SAAS,EAAEF,WAAW,CAACE,SAAS;IAAEC,OAAO,EAAEH,WAAW,CAACG;EAAQ,CAAC,GAClE;IAAED,SAAS,EAAEG,SAAS;IAAEF,OAAO,EAAEE;EAAU,CAAC,EAClD,CAACL,WAAW,CACd,CAAC;EACD,MAAMM,WAAW,GAAGN,WAAW,EAAEM,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGX,WAAW,CAC9B,CAACM,SAA2B,EAAEC,OAAyB,KAAK;IAC1DF,oBAAoB,CAAC;MACnBG,IAAI,EAAE,UAAU;MAChBF,SAAS;MACTC,OAAO;MACPG;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACL,oBAAoB,EAAEK,WAAW,CACpC,CAAC;EAED,oBACEZ,KAAA,CAAAc,aAAA,CAACV,aAAa;IACZI,SAAS,EAAEA,SAAU;IACrBC,OAAO,EAAEA,OAAQ;IACjBM,QAAQ,EAAEF;EAAa,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMG,mBAEZ,gBAAGf,IAAI,CAACI,wBAAwB,CAAC","ignoreList":[]}
|