@servicetitan/anvil2 3.0.6 → 3.0.7
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 +30 -0
- package/dist/Combobox.js +1 -2
- package/dist/Combobox.js.map +1 -1
- package/dist/{DataTable-0kOuVgSB.js → DataTable-E8z0H8c7.js} +140 -13
- package/dist/{DataTable-0kOuVgSB.js.map → DataTable-E8z0H8c7.js.map} +1 -1
- package/dist/DataTable.css +47 -5
- package/dist/{DateFieldRange-Be_I9GTp.js → DateFieldRange-BN_uIvHI.js} +24 -12
- package/dist/DateFieldRange-BN_uIvHI.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CsrsY9i8.js → DateFieldSingle-h3YkdwPo.js} +2 -2
- package/dist/{DateFieldSingle-CsrsY9i8.js.map → DateFieldSingle-h3YkdwPo.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{Dialog-CD-SDfPT.js → Dialog-CvYSMvfD.js} +2 -2
- package/dist/{Dialog-CD-SDfPT.js.map → Dialog-CvYSMvfD.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/FilterBar-B4ZAs73g.js +412 -0
- package/dist/FilterBar-B4ZAs73g.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{ListView-CcRRh1ap.js → ListView-DO5psxd4.js} +5 -5
- package/dist/{ListView-CcRRh1ap.js.map → ListView-DO5psxd4.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{ListView.module-CKUQP3kf.js → ListView.module-DfqtCL3Q.js} +3 -3
- package/dist/ListView.module-DfqtCL3Q.js.map +1 -0
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-BMVROOjy.js → MultiSelectFieldSync-CXX2F0ru.js} +59 -29
- package/dist/MultiSelectFieldSync-CXX2F0ru.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +72 -69
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-BNPp_2Bm.js → MultiSelectMenuSync-EKtvlL62.js} +218 -47
- package/dist/MultiSelectMenuSync-EKtvlL62.js.map +1 -0
- package/dist/{Page-SBy27-Wv.js → Page-C2_Hm27h.js} +2 -2
- package/dist/{Page-SBy27-Wv.js.map → Page-C2_Hm27h.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Cm8-K6VH.js → Pagination-Bmd4JORe.js} +2 -2
- package/dist/{Pagination-Cm8-K6VH.js.map → Pagination-Bmd4JORe.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/SavedFiltersButton-2qba2Cgu.js +650 -0
- package/dist/SavedFiltersButton-2qba2Cgu.js.map +1 -0
- package/dist/SavedFiltersButton.css +8 -0
- package/dist/SavedFiltersButton.d.ts +1 -0
- package/dist/SavedFiltersButton.js +2 -0
- package/dist/SavedFiltersButton.js.map +1 -0
- package/dist/{SearchField-3tUPU8hH.js → SearchField-BMHJCVFu.js} +2 -2
- package/dist/{SearchField-3tUPU8hH.js.map → SearchField-BMHJCVFu.js.map} +1 -1
- package/dist/{SearchField-BcQZ5e0x.js → SearchField-fXc_vWEr.js} +2 -2
- package/dist/{SearchField-BcQZ5e0x.js.map → SearchField-fXc_vWEr.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldSync-BeDYbJ2M.js → SelectFieldSync-DykGkR_w.js} +3 -3
- package/dist/{SelectFieldSync-BeDYbJ2M.js.map → SelectFieldSync-DykGkR_w.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-C-PFemsQ.js → SelectMenuSync-DTQ8Ofoz.js} +21 -9
- package/dist/SelectMenuSync-DTQ8Ofoz.js.map +1 -0
- package/dist/{SelectOptions-Tr11Ckqw.js → SelectOptions-DVSOJwRy.js} +2 -2
- package/dist/{SelectOptions-Tr11Ckqw.js.map → SelectOptions-DVSOJwRy.js.map} +1 -1
- package/dist/{SelectTrigger-DTz7V-Xx.js → SelectTrigger-CHk0KO-P.js} +2 -2
- package/dist/{SelectTrigger-DTz7V-Xx.js.map → SelectTrigger-CHk0KO-P.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Ds6I7Qbr.js → SelectTriggerBase-B2S5SOZr.js} +134 -38
- package/dist/SelectTriggerBase-B2S5SOZr.js.map +1 -0
- package/dist/Table.js +1 -1
- package/dist/{Toolbar-BUd9eNkq.js → Toolbar-DaUKbbsL.js} +3 -3
- package/dist/{Toolbar-BUd9eNkq.js.map → Toolbar-DaUKbbsL.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-C06cqJ6F.js → ToolbarButtonToggle-BPu81Wuv.js} +4 -3
- package/dist/ToolbarButtonToggle-BPu81Wuv.js.map +1 -0
- package/dist/beta.js +10 -9
- package/dist/beta.js.map +1 -1
- package/dist/filter-state-Bx3aYS1r.js +1627 -0
- package/dist/filter-state-Bx3aYS1r.js.map +1 -0
- package/dist/{FilterBar.css → filter-state.css} +19 -33
- package/dist/index.js +9 -10
- package/dist/index.js.map +1 -1
- package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -10
- package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +15 -5
- package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +34 -29
- package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +31 -22
- package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +4 -12
- package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +29 -0
- package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +86 -0
- package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +2 -2
- package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +50 -0
- package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +5 -9
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/boolean.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/custom.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/date.d.ts +5 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/dateList.d.ts +5 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/dateRange.d.ts +8 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +15 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/numericRange.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +78 -0
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +166 -61
- package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +2 -2
- package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +2 -40
- package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +13 -28
- package/dist/src/beta/components/FilterBar/internal/utils/value-compare.d.ts +14 -0
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +4 -2
- package/dist/src/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +7 -5
- package/dist/src/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +5 -2
- package/dist/src/beta/components/MultiSelectField/types.d.ts +21 -36
- package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectMenu/types.d.ts +52 -12
- package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +40 -0
- package/dist/src/beta/components/SavedFiltersButton/index.d.ts +2 -0
- package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +27 -0
- package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +38 -0
- package/dist/src/beta/components/SavedFiltersButton/types.d.ts +147 -0
- package/dist/src/beta/components/SelectField/types.d.ts +7 -11
- package/dist/src/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +8 -1
- package/dist/src/beta/components/SelectMenu/types.d.ts +21 -1
- package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +6 -0
- package/dist/src/beta/components/Table/DataTable/types.d.ts +43 -10
- package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +3 -2
- package/dist/src/beta/components/index.d.ts +1 -0
- package/dist/src/internal/components/MenuFooter/MenuFooter.d.ts +43 -0
- package/dist/src/internal/components/OptionCheckbox.d.ts +6 -0
- package/dist/src/internal/components/OptionContentArea.d.ts +8 -0
- package/dist/src/internal/components/OptionRow.d.ts +10 -0
- package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +4 -4
- package/dist/src/internal/hooks/index.d.ts +2 -0
- package/dist/src/internal/hooks/useBulkActionRunner.d.ts +41 -0
- package/dist/src/internal/hooks/useConfirmationDraft.d.ts +21 -0
- package/dist/src/internal/types/bulkActionTypes.d.ts +39 -0
- package/dist/src/internal/types/confirmationTypes.d.ts +19 -0
- package/dist/src/internal/types/optionContent.d.ts +19 -0
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -0
- package/dist/{syncFilterUtils-COxBIkt6.js → syncFilterUtils-BEKek64h.js} +163 -124
- package/dist/syncFilterUtils-BEKek64h.js.map +1 -0
- package/dist/syncFilterUtils.css +96 -59
- package/dist/{Combobox-Cp7M4-4r.js → useInfiniteCombobox-CknXmqlQ.js} +185 -10
- package/dist/useInfiniteCombobox-CknXmqlQ.js.map +1 -0
- package/dist/{useMenuInteraction-C4RU5Fdq.js → useMenuInteraction-CpAOHSJu.js} +118 -5
- package/dist/useMenuInteraction-CpAOHSJu.js.map +1 -0
- package/dist/useMenuInteraction.css +28 -0
- package/dist/{useToggleSelection-B5PnTuT2.js → useToggleSelection-B-Z80gy2.js} +53 -4
- package/dist/useToggleSelection-B-Z80gy2.js.map +1 -0
- package/package.json +3 -3
- package/dist/Combobox-Cp7M4-4r.js.map +0 -1
- package/dist/DateFieldRange-Be_I9GTp.js.map +0 -1
- package/dist/FilterBar-yysyZ-t1.js +0 -1797
- package/dist/FilterBar-yysyZ-t1.js.map +0 -1
- package/dist/ListView.module-CKUQP3kf.js.map +0 -1
- package/dist/MultiSelectFieldSync-BMVROOjy.js.map +0 -1
- package/dist/MultiSelectMenuSync-BNPp_2Bm.js.map +0 -1
- package/dist/SelectMenuSync-C-PFemsQ.js.map +0 -1
- package/dist/SelectTriggerBase-Ds6I7Qbr.js.map +0 -1
- package/dist/ToolbarButtonToggle-C06cqJ6F.js.map +0 -1
- package/dist/src/beta/components/FilterBar/FilterButton.d.ts +0 -33
- package/dist/src/beta/components/FilterBar/FilterSelect.d.ts +0 -29
- package/dist/syncFilterUtils-COxBIkt6.js.map +0 -1
- package/dist/useInfiniteCombobox-WcRgC9p6.js +0 -179
- package/dist/useInfiniteCombobox-WcRgC9p6.js.map +0 -1
- package/dist/useMenuInteraction-C4RU5Fdq.js.map +0 -1
- package/dist/useToggleSelection-B5PnTuT2.js.map +0 -1
- /package/dist/{Combobox.css → useInfiniteCombobox.css} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @servicetitan/anvil2
|
|
2
2
|
|
|
3
|
+
## 3.0.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2365](https://github.com/servicetitan/hammer/pull/2365) [`0d8b5ac`](https://github.com/servicetitan/hammer/commit/0d8b5ac22dc335c623c5bcd38da5deb9a86c02d1) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [MultiSelectMenu, MultiSelectMenuSync, SelectMenu, SelectMenuSync] Add `clear` config prop that renders a Clear button in the menu footer; presence of the prop enables the button, omit to suppress
|
|
8
|
+
|
|
9
|
+
- [#2365](https://github.com/servicetitan/hammer/pull/2365) [`0d8b5ac`](https://github.com/servicetitan/hammer/commit/0d8b5ac22dc335c623c5bcd38da5deb9a86c02d1) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [FilterBar] Add a Clear button to filter popover footers. Always on for `singleSelect`, `asyncSelect`, `multiSelect`, `asyncMultiSelect`, `date`, `dateRange`, and `dateList`. Clear commits an empty value immediately and closes the menu.
|
|
10
|
+
|
|
11
|
+
- [#2370](https://github.com/servicetitan/hammer/pull/2370) [`7b75a84`](https://github.com/servicetitan/hammer/commit/7b75a841d284678d31d3f24ae5c1c358bbe0bd6a) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [FilterBar] Align the `custom`, `date`, `dateRange`, and `dateList` filter popover shell with the menu-based filter types. Popover sizing rules, padding, and the footer actions now match selection filters, eliminating visual drift.
|
|
12
|
+
|
|
13
|
+
- [#2350](https://github.com/servicetitan/hammer/pull/2350) [`ebd6b58`](https://github.com/servicetitan/hammer/commit/ebd6b58f3a22d8f7f19f75d90e4360b1ef97df44) Thanks [@ericag1985](https://github.com/ericag1985)! - **BETA** [FilterBar] Add `drawerOnly` flag to keep a filter exclusively in the drawer; the "All Filters" button now only appears when a filter is unreachable from the toolbar
|
|
14
|
+
|
|
15
|
+
- [#2367](https://github.com/servicetitan/hammer/pull/2367) [`4719b63`](https://github.com/servicetitan/hammer/commit/4719b633b8f937bb24f9caa2d7794bc85529ff71) Thanks [@hbartlett-st](https://github.com/hbartlett-st)! - **BETA** [FilterBar/FilterDrawer] Add `numericRange` filter type with min/max `NumberField` inputs, optional `currency`/`percentage` decorator `mode`, `minValue`/`maxValue` clamping, and `inclusiveBounds` for toggling between `≥`/`≤` and `>`/`<` bound semantics.
|
|
16
|
+
|
|
17
|
+
- [#2364](https://github.com/servicetitan/hammer/pull/2364) [`f2f294d`](https://github.com/servicetitan/hammer/commit/f2f294d68b8b05aaa84c9ed3336439ecd5c2ecd0) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [FilterBar] Add `asyncSelect` and `asyncMultiSelect` filter types, supporting the full feature set of the `SelectMenu` and `MultiSelectMenu` components, respectively.
|
|
18
|
+
|
|
19
|
+
- [#2364](https://github.com/servicetitan/hammer/pull/2364) [`f2f294d`](https://github.com/servicetitan/hammer/commit/f2f294d68b8b05aaa84c9ed3336439ecd5c2ecd0) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [FilterBar]: **Breaking** rework of `singleSelect` / `multiSelect` filter types to align with `SelectMenuSync` and `MultiSelectMenuSync` APIs. Field renames (`items` → `options`, `selectedItem` → `selectedOption`, `selectedItems` → `selectedOptions`); the `Item` generic is removed (use the `SelectMenuOption` shape with `extra` for custom metadata); `hasSearch` / `onSearch` / `onSearchClear` / `searchValue` are removed — client-side filtering is automatic via match-sorter, override with the new `filter` prop. See the [migration guide](/docs/web/components/filter-bar/beta-changes/select-filters-to-sync).
|
|
20
|
+
|
|
21
|
+
- [#2352](https://github.com/servicetitan/hammer/pull/2352) [`ef51a6e`](https://github.com/servicetitan/hammer/commit/ef51a6eb45281f1226019f53697c50ff56b2c9a1) Thanks [@ericag1985](https://github.com/ericag1985)! - **BETA** [FilterBar] Remove the `overflow` prop; FilterBar always wraps. Shift the drawer-only collapse breakpoint from 768px to 640px. Add `disableCollapse` prop to keep filters inline at every container width. The `id` prop on `FilterToggleButton` now lands on the rendered `<button>` element.
|
|
22
|
+
|
|
23
|
+
- [#2317](https://github.com/servicetitan/hammer/pull/2317) [`28f1bf2`](https://github.com/servicetitan/hammer/commit/28f1bf27cbf5ed070865cef818ef8bc06f922081) Thanks [@rgdelato](https://github.com/rgdelato)! - **BETA** [DataTable] Add cursor-style pagination support
|
|
24
|
+
|
|
25
|
+
- [#2366](https://github.com/servicetitan/hammer/pull/2366) [`4a60780`](https://github.com/servicetitan/hammer/commit/4a6078075c9d55272ed116010c37f4e67e41e8ec) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [SavedFiltersButton] Add new standalone beta component for managing saved filter presets. Designed to compose with `FilterBar`.
|
|
26
|
+
|
|
27
|
+
- [#2363](https://github.com/servicetitan/hammer/pull/2363) [`b2cc770`](https://github.com/servicetitan/hammer/commit/b2cc7708acefe12035a821175e104abf01b889b1) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [MultiSelectMenu, MultiSelectMenuSync] Add opt-in `confirmation` prop. When enabled, the menu buffers selection as a draft and only commits on Apply. `MultiSelectMenu` and `MultiSelectField` also accept a new `compute` variant of `selectAll` / `selectFiltered` that integrates bulk actions with the confirmation draft and supports async resolution (the menu shows a loading state while the returned promise is pending); the existing `onClick` shape still works for the non-confirmation case.
|
|
28
|
+
|
|
29
|
+
- [#2353](https://github.com/servicetitan/hammer/pull/2353) [`e5e7ae3`](https://github.com/servicetitan/hammer/commit/e5e7ae3c8400fc610d2d9e15384bcc8944df8d99) Thanks [@rgdelato](https://github.com/rgdelato)! - [Combobox, ComboboxSelect] Bugfix for performance issues with a large number of selected items
|
|
30
|
+
|
|
31
|
+
- [#2358](https://github.com/servicetitan/hammer/pull/2358) [`1d17553`](https://github.com/servicetitan/hammer/commit/1d17553958fa84e1b2190f63d19307d2ea47c577) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [MultiSelectField] Fix incorrect box-shadow appearing above input field
|
|
32
|
+
|
|
3
33
|
## 3.0.6
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/dist/Combobox.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect, C as default } from './
|
|
2
|
-
export { u as useInfiniteCombobox } from './useInfiniteCombobox-WcRgC9p6.js';
|
|
1
|
+
export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect, C as default, u as useInfiniteCombobox } from './useInfiniteCombobox-CknXmqlQ.js';
|
|
3
2
|
//# sourceMappingURL=Combobox.js.map
|
package/dist/Combobox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Combobox.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -13,8 +13,8 @@ import { I as Icon } from './Icon-feeG7gXA.js';
|
|
|
13
13
|
import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
|
|
14
14
|
import { u as useNumberField } from './useNumberField-D_ic9i2q.js';
|
|
15
15
|
import { u as useMergeRefs, m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
16
|
-
import { a as SelectMenuSync, S as SelectMenu } from './SelectMenuSync-
|
|
17
|
-
import { a as MultiSelectMenuSync, M as MultiSelectMenu } from './MultiSelectMenuSync-
|
|
16
|
+
import { a as SelectMenuSync, S as SelectMenu } from './SelectMenuSync-DTQ8Ofoz.js';
|
|
17
|
+
import { a as MultiSelectMenuSync, M as MultiSelectMenu } from './MultiSelectMenuSync-EKtvlL62.js';
|
|
18
18
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
19
19
|
import { a as useOnClickOutside, r as registerLayer, u as unregisterLayer } from './useOnClickOutside-Zw5vzxSq.js';
|
|
20
20
|
import { c as computePosition, o as offset, v as autoPlacement, d as shift, g as size, a as autoUpdate, s as safeShowPopover, b as safeHidePopover } from './floating-ui.react-dom-CHrYz13o.js';
|
|
@@ -24,7 +24,9 @@ import { S as SvgWarning } from './warning-c4Wj1rI4.js';
|
|
|
24
24
|
import { T as Tooltip } from './Tooltip-yr1D06BE.js';
|
|
25
25
|
import { flushSync } from 'react-dom';
|
|
26
26
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
|
|
27
|
-
import {
|
|
27
|
+
import { S as SvgKeyboardArrowLeft, a as SvgKeyboardArrowRight } from './keyboard_arrow_right-DZWNVytH.js';
|
|
28
|
+
import { a as Pagination, P as Pagination$1 } from './Pagination-Bmd4JORe.js';
|
|
29
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
28
30
|
import { T as ThemeProviderContext } from './ThemeProviderContext-l52GohYT.js';
|
|
29
31
|
import { u as useVirtualizer } from './index-DXeGMe23.js';
|
|
30
32
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
@@ -8078,8 +8080,10 @@ const TableContainer = forwardRef(
|
|
|
8078
8080
|
);
|
|
8079
8081
|
TableContainer.displayName = "TableContainer";
|
|
8080
8082
|
|
|
8081
|
-
const pagination = "
|
|
8083
|
+
const pagination = "_pagination_12wyu_4";
|
|
8082
8084
|
const styles$1 = {
|
|
8085
|
+
"cursor-pagination-list": "_cursor-pagination-list_12wyu_43",
|
|
8086
|
+
"cursor-pagination-item": "_cursor-pagination-item_12wyu_60",
|
|
8083
8087
|
pagination: pagination
|
|
8084
8088
|
};
|
|
8085
8089
|
|
|
@@ -8088,7 +8092,7 @@ const DataTablePagination = ({
|
|
|
8088
8092
|
...props
|
|
8089
8093
|
}) => {
|
|
8090
8094
|
return /* @__PURE__ */ jsx(
|
|
8091
|
-
Pagination,
|
|
8095
|
+
Pagination$1,
|
|
8092
8096
|
{
|
|
8093
8097
|
className: styles$1["pagination"],
|
|
8094
8098
|
...props,
|
|
@@ -8096,6 +8100,88 @@ const DataTablePagination = ({
|
|
|
8096
8100
|
}
|
|
8097
8101
|
);
|
|
8098
8102
|
};
|
|
8103
|
+
const DataTableCursorPagination = ({
|
|
8104
|
+
page,
|
|
8105
|
+
itemsPerPage,
|
|
8106
|
+
itemsPerPageOptions,
|
|
8107
|
+
hasNextPage,
|
|
8108
|
+
hasPrevPage,
|
|
8109
|
+
onPageChange,
|
|
8110
|
+
onItemsPerPageChange
|
|
8111
|
+
}) => {
|
|
8112
|
+
const canGoToPreviousPage = hasPrevPage === true && page > 1;
|
|
8113
|
+
const canGoToNextPage = hasNextPage === true;
|
|
8114
|
+
const trackingId = useTrackingId({
|
|
8115
|
+
name: "Pagination",
|
|
8116
|
+
data: {
|
|
8117
|
+
"aria-label": "Pagination navigation"
|
|
8118
|
+
}
|
|
8119
|
+
});
|
|
8120
|
+
const previousPageAvailability = canGoToPreviousPage ? "available" : "unavailable";
|
|
8121
|
+
const nextPageAvailability = canGoToNextPage ? "available" : "unavailable";
|
|
8122
|
+
return /* @__PURE__ */ jsxs(
|
|
8123
|
+
"nav",
|
|
8124
|
+
{
|
|
8125
|
+
className: styles$1["pagination"],
|
|
8126
|
+
"aria-label": "Pagination navigation",
|
|
8127
|
+
"data-tracking-id": trackingId,
|
|
8128
|
+
children: [
|
|
8129
|
+
/* @__PURE__ */ jsxs("ul", { className: styles$1["cursor-pagination-list"], children: [
|
|
8130
|
+
/* @__PURE__ */ jsx("li", { className: styles$1["cursor-pagination-item"], children: /* @__PURE__ */ jsx(
|
|
8131
|
+
Button,
|
|
8132
|
+
{
|
|
8133
|
+
appearance: "ghost",
|
|
8134
|
+
icon: SvgKeyboardArrowLeft,
|
|
8135
|
+
size: "small",
|
|
8136
|
+
"aria-label": "Previous page",
|
|
8137
|
+
disabled: !canGoToPreviousPage,
|
|
8138
|
+
onClick: () => {
|
|
8139
|
+
if (canGoToPreviousPage) {
|
|
8140
|
+
onPageChange?.(Math.max(1, page - 1));
|
|
8141
|
+
}
|
|
8142
|
+
}
|
|
8143
|
+
}
|
|
8144
|
+
) }),
|
|
8145
|
+
/* @__PURE__ */ jsx("li", { className: styles$1["cursor-pagination-item"], children: /* @__PURE__ */ jsx(
|
|
8146
|
+
Button,
|
|
8147
|
+
{
|
|
8148
|
+
appearance: "ghost",
|
|
8149
|
+
icon: SvgKeyboardArrowRight,
|
|
8150
|
+
size: "small",
|
|
8151
|
+
"aria-label": "Next page",
|
|
8152
|
+
disabled: !canGoToNextPage,
|
|
8153
|
+
onClick: () => {
|
|
8154
|
+
if (canGoToNextPage) {
|
|
8155
|
+
onPageChange?.(page + 1);
|
|
8156
|
+
}
|
|
8157
|
+
}
|
|
8158
|
+
}
|
|
8159
|
+
) })
|
|
8160
|
+
] }),
|
|
8161
|
+
itemsPerPageOptions && /* @__PURE__ */ jsx(
|
|
8162
|
+
Pagination.ItemsPerPageMenu,
|
|
8163
|
+
{
|
|
8164
|
+
itemsPerPage,
|
|
8165
|
+
itemsPerPageOptions,
|
|
8166
|
+
onItemsPerPageChange: (itemsPerPage2) => {
|
|
8167
|
+
onItemsPerPageChange?.(itemsPerPage2);
|
|
8168
|
+
}
|
|
8169
|
+
}
|
|
8170
|
+
),
|
|
8171
|
+
/* @__PURE__ */ jsxs(SrOnly, { "aria-live": "polite", "aria-atomic": "true", children: [
|
|
8172
|
+
"Page ",
|
|
8173
|
+
page,
|
|
8174
|
+
". Previous page ",
|
|
8175
|
+
previousPageAvailability,
|
|
8176
|
+
". Next page",
|
|
8177
|
+
" ",
|
|
8178
|
+
nextPageAvailability,
|
|
8179
|
+
"."
|
|
8180
|
+
] })
|
|
8181
|
+
]
|
|
8182
|
+
}
|
|
8183
|
+
);
|
|
8184
|
+
};
|
|
8099
8185
|
|
|
8100
8186
|
const expanded = "_expanded_1pd1e_27";
|
|
8101
8187
|
const styles = {
|
|
@@ -8110,26 +8196,43 @@ const useAsyncData = (dataOrPromise) => {
|
|
|
8110
8196
|
const [resolvedData, setResolvedData] = useState(null);
|
|
8111
8197
|
const [error, setError] = useState(false);
|
|
8112
8198
|
const [isLoading, setIsLoading] = useState(true);
|
|
8199
|
+
const latestRequestRef = useRef({ dataOrPromise, id: 0 });
|
|
8200
|
+
if (latestRequestRef.current.dataOrPromise !== dataOrPromise) {
|
|
8201
|
+
latestRequestRef.current = {
|
|
8202
|
+
dataOrPromise,
|
|
8203
|
+
id: latestRequestRef.current.id + 1
|
|
8204
|
+
};
|
|
8205
|
+
}
|
|
8206
|
+
const requestId = latestRequestRef.current.id;
|
|
8113
8207
|
useEffect(() => {
|
|
8114
8208
|
async function resolveData() {
|
|
8115
8209
|
if (dataOrPromise instanceof Promise) {
|
|
8116
8210
|
setIsLoading(true);
|
|
8211
|
+
setError(false);
|
|
8117
8212
|
try {
|
|
8118
8213
|
const data = await dataOrPromise;
|
|
8214
|
+
if (latestRequestRef.current.id !== requestId) {
|
|
8215
|
+
return;
|
|
8216
|
+
}
|
|
8119
8217
|
setResolvedData(data);
|
|
8218
|
+
setError(false);
|
|
8120
8219
|
setIsLoading(false);
|
|
8121
8220
|
} catch (_error) {
|
|
8221
|
+
if (latestRequestRef.current.id !== requestId) {
|
|
8222
|
+
return;
|
|
8223
|
+
}
|
|
8122
8224
|
setError(true);
|
|
8123
8225
|
setIsLoading(false);
|
|
8124
8226
|
setResolvedData(null);
|
|
8125
8227
|
}
|
|
8126
8228
|
} else {
|
|
8127
8229
|
setResolvedData(dataOrPromise);
|
|
8230
|
+
setError(false);
|
|
8128
8231
|
setIsLoading(false);
|
|
8129
8232
|
}
|
|
8130
8233
|
}
|
|
8131
8234
|
resolveData();
|
|
8132
|
-
}, [dataOrPromise]);
|
|
8235
|
+
}, [dataOrPromise, requestId]);
|
|
8133
8236
|
if (!(dataOrPromise instanceof Promise)) {
|
|
8134
8237
|
return { data: dataOrPromise, error: false, isLoading: false };
|
|
8135
8238
|
}
|
|
@@ -8608,6 +8711,7 @@ function DataTableInner(props, ref) {
|
|
|
8608
8711
|
const paginationObject = typeof pagination === "object" ? pagination : void 0;
|
|
8609
8712
|
const rowsPerPage = paginationObject?.rowsPerPage ?? 25;
|
|
8610
8713
|
const refreshKey = paginationObject?.refreshKey;
|
|
8714
|
+
const isCursorPagination = paginationObject?.mode === "cursor";
|
|
8611
8715
|
const [currentPageIndex, setCurrentPageIndex] = useOptionallyControlledState({
|
|
8612
8716
|
controlledValue: paginationObject?.currentPageIndex,
|
|
8613
8717
|
defaultValue: paginationObject?.defaultPageIndex ?? 0,
|
|
@@ -8618,9 +8722,15 @@ function DataTableInner(props, ref) {
|
|
|
8618
8722
|
const [refreshCounter, setRefreshCounter] = useState(0);
|
|
8619
8723
|
const pageLoader = paginationObject?.loadPageData;
|
|
8620
8724
|
const isAsyncPaginated = !!pageLoader && typeof pageLoader === "function";
|
|
8725
|
+
const effectiveCacheConfig = useMemo(() => {
|
|
8726
|
+
if (isCursorPagination && paginationObject?.cache === void 0) {
|
|
8727
|
+
return { enabled: false };
|
|
8728
|
+
}
|
|
8729
|
+
return paginationObject?.cache;
|
|
8730
|
+
}, [isCursorPagination, paginationObject?.cache]);
|
|
8621
8731
|
const { getOrLoad, clearCache } = usePageDataCache({
|
|
8622
8732
|
loadPageData: pageLoader,
|
|
8623
|
-
cache:
|
|
8733
|
+
cache: effectiveCacheConfig,
|
|
8624
8734
|
refreshKey,
|
|
8625
8735
|
refreshCounter,
|
|
8626
8736
|
rowsPerPage,
|
|
@@ -8668,7 +8778,7 @@ function DataTableInner(props, ref) {
|
|
|
8668
8778
|
error: _error,
|
|
8669
8779
|
isLoading
|
|
8670
8780
|
} = useAsyncData(dataSource);
|
|
8671
|
-
const totalItemCount = paginationObject?.totalRowCount ?? resolvedData?.length ?? 0;
|
|
8781
|
+
const totalItemCount = isCursorPagination ? void 0 : paginationObject?.totalRowCount ?? resolvedData?.length ?? 0;
|
|
8672
8782
|
const hasSubRows = useMemo(
|
|
8673
8783
|
() => !!resolvedData?.some((row) => (row?.subRows?.length ?? 0) > 0),
|
|
8674
8784
|
[resolvedData]
|
|
@@ -8851,7 +8961,9 @@ function DataTableInner(props, ref) {
|
|
|
8851
8961
|
columns,
|
|
8852
8962
|
getCoreRowModel: getCoreRowModel(),
|
|
8853
8963
|
getSortedRowModel: getSortedRowModel(),
|
|
8854
|
-
...isPaginated &&
|
|
8964
|
+
...isPaginated && !isCursorPagination && {
|
|
8965
|
+
getPaginationRowModel: getPaginationRowModel()
|
|
8966
|
+
},
|
|
8855
8967
|
...isExpandable && { getExpandedRowModel: getExpandedRowModel() },
|
|
8856
8968
|
// Grouping row model is retained for future use; cheap to exclude now.
|
|
8857
8969
|
getRowId: (row) => row.id.toString(),
|
|
@@ -8872,7 +8984,7 @@ function DataTableInner(props, ref) {
|
|
|
8872
8984
|
}
|
|
8873
8985
|
}
|
|
8874
8986
|
},
|
|
8875
|
-
manualPagination: !isPaginated || isAsyncPaginated,
|
|
8987
|
+
manualPagination: !isPaginated || isAsyncPaginated || isCursorPagination,
|
|
8876
8988
|
// Server provides sorted data via loadPageData; disable client-side sort.
|
|
8877
8989
|
manualSorting: isAsyncPaginated,
|
|
8878
8990
|
autoResetPageIndex: false,
|
|
@@ -9078,7 +9190,22 @@ function DataTableInner(props, ref) {
|
|
|
9078
9190
|
]
|
|
9079
9191
|
}
|
|
9080
9192
|
),
|
|
9081
|
-
pagination && /* @__PURE__ */ jsx(
|
|
9193
|
+
pagination && (isCursorPagination ? /* @__PURE__ */ jsx(
|
|
9194
|
+
DataTableCursorPagination,
|
|
9195
|
+
{
|
|
9196
|
+
itemsPerPage: rowsPerPage,
|
|
9197
|
+
page: (currentPageIndex ?? 0) + 1,
|
|
9198
|
+
hasNextPage: paginationObject?.hasNextPage,
|
|
9199
|
+
hasPrevPage: paginationObject?.hasPrevPage,
|
|
9200
|
+
onPageChange: (page) => {
|
|
9201
|
+
setCurrentPageIndex(page - 1);
|
|
9202
|
+
},
|
|
9203
|
+
onItemsPerPageChange: (itemsPerPage) => {
|
|
9204
|
+
paginationObject?.onRowsPerPageChange?.(itemsPerPage);
|
|
9205
|
+
},
|
|
9206
|
+
itemsPerPageOptions: paginationObject?.onRowsPerPageChange ? paginationObject.rowsPerPageOptions : void 0
|
|
9207
|
+
}
|
|
9208
|
+
) : /* @__PURE__ */ jsx(
|
|
9082
9209
|
DataTablePagination,
|
|
9083
9210
|
{
|
|
9084
9211
|
itemsPerPage: rowsPerPage,
|
|
@@ -9093,7 +9220,7 @@ function DataTableInner(props, ref) {
|
|
|
9093
9220
|
},
|
|
9094
9221
|
itemsPerPageOptions: paginationObject?.rowsPerPageOptions
|
|
9095
9222
|
}
|
|
9096
|
-
)
|
|
9223
|
+
))
|
|
9097
9224
|
]
|
|
9098
9225
|
}
|
|
9099
9226
|
)
|
|
@@ -9103,4 +9230,4 @@ function DataTableInner(props, ref) {
|
|
|
9103
9230
|
const DataTable = forwardRef(DataTableInner);
|
|
9104
9231
|
|
|
9105
9232
|
export { COLUMN_TYPE_DEFAULTS as C, DataTable as D, chipsFormatter as a, booleanFormatter as b, createColumnHelper$1 as c, currencyFormatter as d, dateFormatter as e, dateTimeFormatter as f, getColumnTypeDefaults as g, htmlFormatter as h, dateFormatPresets as i, timeFormatter as j, markdownFormatter as m, numberFormatter as n, percentFormatter as p, resolveColumnTypeConfig as r, timeFormatPresets as t, yearlessDateFormatter as y };
|
|
9106
|
-
//# sourceMappingURL=DataTable-
|
|
9233
|
+
//# sourceMappingURL=DataTable-E8z0H8c7.js.map
|