@economic/taco 2.45.0-alpha.2 → 2.45.0-alpha.20
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/charts/components/Area/AreaChart.d.ts +19 -0
- package/dist/charts/components/Bar/BarChart.d.ts +20 -0
- package/dist/charts/components/Donut/ActiveShape.d.ts +8 -0
- package/dist/charts/components/Donut/CenteredLabel.d.ts +11 -0
- package/dist/charts/components/Donut/DonutChart.d.ts +21 -0
- package/dist/charts/components/Donut/Legend.d.ts +13 -0
- package/dist/charts/components/Donut/util.d.ts +2 -0
- package/dist/charts/components/Legend.d.ts +16 -0
- package/dist/charts/components/Line/LineChart.d.ts +18 -0
- package/dist/charts/components/ResponsiveContainer.d.ts +5 -0
- package/dist/charts/components/Tooltip.d.ts +10 -0
- package/dist/charts/components/types.d.ts +5 -0
- package/dist/charts/utils/color.d.ts +3 -0
- package/dist/charts/utils/common.d.ts +37 -0
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Banner/util.d.ts +0 -1
- package/dist/components/Combobox/Combobox.d.ts +1 -1
- package/dist/components/Hanger/Hanger.d.ts +1 -0
- package/dist/components/Icon/components/Autopay.d.ts +3 -0
- package/dist/components/Icon/components/AutopayPaused.d.ts +3 -0
- package/dist/components/Icon/components/Experiment.d.ts +3 -0
- package/dist/components/Icon/components/Person.d.ts +3 -0
- package/dist/components/Icon/components/PersonSolid.d.ts +3 -0
- package/dist/components/Icon/components/Wallet.d.ts +3 -0
- package/dist/components/Icon/components/index.d.ts +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Listbox/util.d.ts +1 -1
- package/dist/components/Menu/components/Item.d.ts +1 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Navigation2/components/Link.d.ts +1 -1
- package/dist/components/Pagination/PageNumbers.d.ts +0 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +3 -3
- package/dist/components/Report/Report.d.ts +4 -2
- package/dist/components/SearchInput2/SearchInput2.d.ts +2 -0
- package/dist/components/Select/Select.d.ts +5 -19
- package/dist/components/Select2/components/Option.d.ts +4 -4
- package/dist/components/Select2/components/Search.d.ts +1 -1
- package/dist/components/Table3/Table3.d.ts +4 -5
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +0 -1
- package/dist/components/Table3/components/Columns/Internal/EditingActionsMenu.d.ts +2 -2
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +1 -3
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -0
- package/dist/components/Table3/features/useEditingState.d.ts +23 -18
- package/dist/components/Table3/features/useTableEditing.d.ts +24 -19
- package/dist/components/Table3/types.d.ts +2 -0
- package/dist/components/Table3/util/editing.d.ts +3 -0
- package/dist/components/Tag/Tag.d.ts +1 -1
- package/dist/esm/index.css +74 -12
- package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js +67 -0
- package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js +120 -0
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js +47 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js +27 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js +170 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js +165 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/util.js +5 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/util.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Legend.js +146 -0
- package/dist/esm/packages/taco/src/charts/components/Legend.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js +65 -0
- package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js +10 -0
- package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/components/Tooltip.js +44 -0
- package/dist/esm/packages/taco/src/charts/components/Tooltip.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/utils/color.js +24 -0
- package/dist/esm/packages/taco/src/charts/utils/color.js.map +1 -0
- package/dist/esm/packages/taco/src/charts/utils/common.js +34 -0
- package/dist/esm/packages/taco/src/charts/utils/common.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js +6 -14
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Alert/Alert.js +2 -0
- package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js +1 -1
- package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Badge/Badge.js +9 -6
- package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Banner/util.js +5 -0
- package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Button/Button.js +2 -1
- package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Button/util.js +1 -1
- package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Card/Card.js +2 -2
- package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +3 -2
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +18 -17
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +13 -0
- package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +10 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +4 -2
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +2 -2
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +4 -2
- package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +2 -4
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js +20 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Person.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Person.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js +12 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Input/util.js +1 -1
- package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/util.js +1 -7
- package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +5 -0
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/Report.js +2 -3
- package/dist/esm/packages/taco/src/components/Report/Report.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +6 -3
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select/Select.js +0 -9
- package/dist/esm/packages/taco/src/components/Select/Select.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js +10 -11
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +7 -5
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +56 -19
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +15 -11
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +25 -9
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js +4 -3
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +18 -10
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js +0 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +6 -37
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +7 -6
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +81 -81
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +70 -14
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +24 -22
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js +15 -4
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js +9 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tag/Tag.js +6 -4
- package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js +2 -2
- package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +6 -1
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +1 -1
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +5 -3
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +7 -5
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +15 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +23 -16
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js +4 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js +7 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +11 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +10 -7
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +7 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +7 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +5 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +24 -22
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +44 -5
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js +3 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js +6 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +5 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +0 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +26 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +43 -12
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +13 -12
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +224 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js +3 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +18 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js +3 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +4 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +14 -13
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +7 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +5 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +4 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +6 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +7 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +7 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +16 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -1
- package/dist/esm/packages/taco/src/types.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/dom.js +12 -1
- package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/tailwind.js +2 -0
- package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
- package/dist/esm/packages/taco/tailwind.colors.js +122 -0
- package/dist/esm/packages/taco/tailwind.colors.js.map +1 -0
- package/dist/hooks/useLazyDebouncedEffect.d.ts +2 -0
- package/dist/index.css +74 -12
- package/dist/index.d.ts +6 -0
- package/dist/primitives/Table/Core/Table.d.ts +1 -0
- package/dist/primitives/Table/Core/components/Body/EmptyStateBody.d.ts +1 -0
- package/dist/primitives/Table/Core/components/Body/util.d.ts +4 -4
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.d.ts +2 -2
- package/dist/primitives/Table/Core/components/Row/Row.d.ts +2 -0
- package/dist/primitives/Table/Core/components/Row/RowContext.d.ts +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.d.ts +3 -0
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.d.ts +0 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +0 -3
- package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
- package/dist/primitives/Table/Core/types.d.ts +1 -0
- package/dist/primitives/Table/types.d.ts +12 -12
- package/dist/primitives/Table/useTableDataLoader.d.ts +2 -2
- package/dist/primitives/Table/useTableDataLoader2.d.ts +23 -0
- package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +2 -1
- package/dist/primitives/Table/useTableManager/features/useTableSearch.d.ts +4 -2
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +6 -3
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.d.ts +1 -2
- package/dist/primitives/Table/useTableManager/types.d.ts +0 -1
- package/dist/primitives/Table/useTableManager/util/columns.d.ts +2 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
- package/dist/taco.cjs.development.js +1963 -508
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/dom.d.ts +2 -2
- package/package.json +9 -8
- package/tailwind.colors.js +121 -0
- package/tailwind.config.js +3 -2
- package/dist/components/Table3/components/Row/Editing/CreateRowButton.d.ts +0 -11
@@ -18,6 +18,7 @@ function reducer(state, action) {
|
|
18
18
|
{
|
19
19
|
const {
|
20
20
|
columnId,
|
21
|
+
index,
|
21
22
|
row,
|
22
23
|
value
|
23
24
|
} = payload;
|
@@ -27,7 +28,8 @@ function reducer(state, action) {
|
|
27
28
|
...state.changes,
|
28
29
|
rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),
|
29
30
|
originals: setWith(state.changes.originals, rowId, row, Object)
|
30
|
-
}
|
31
|
+
},
|
32
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
31
33
|
};
|
32
34
|
}
|
33
35
|
case 'removeCellValue':
|
@@ -61,6 +63,7 @@ function reducer(state, action) {
|
|
61
63
|
{
|
62
64
|
const {
|
63
65
|
cellErrors,
|
66
|
+
index,
|
64
67
|
moveReasons,
|
65
68
|
original,
|
66
69
|
value
|
@@ -70,12 +73,13 @@ function reducer(state, action) {
|
|
70
73
|
changes: {
|
71
74
|
...state.changes,
|
72
75
|
rows: setWith(state.changes.rows, rowId, value, Object),
|
73
|
-
errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors !== null && cellErrors !== void 0 ? cellErrors : state.changes.errors
|
76
|
+
errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors !== null && cellErrors !== void 0 ? cellErrors : state.changes.errors[rowId], Object),
|
74
77
|
originals: setWith(state.changes.originals, rowId, original !== null && original !== void 0 ? original : state.changes.originals[rowId], Object),
|
75
78
|
moveReasons: setWith(state.changes.moveReasons, rowId, moveReasons !== null && moveReasons !== void 0 ? moveReasons : state.changes.moveReasons[rowId], Object),
|
76
79
|
// status can be undefined, so don't use ??
|
77
80
|
status: setWith(state.changes.status, rowId, undefined, Object)
|
78
|
-
}
|
81
|
+
},
|
82
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
79
83
|
};
|
80
84
|
}
|
81
85
|
case 'removeRow':
|
@@ -93,6 +97,7 @@ function reducer(state, action) {
|
|
93
97
|
originals: omit(state.changes.originals, rowId),
|
94
98
|
status: omit(state.changes.status, rowId)
|
95
99
|
},
|
100
|
+
indexes: omit(state.indexes, rowId),
|
96
101
|
temporaryRows: state.temporaryRows.filter(row => row[rowIdentityAccessor] !== rowId)
|
97
102
|
};
|
98
103
|
}
|
@@ -122,9 +127,10 @@ function reducer(state, action) {
|
|
122
127
|
}
|
123
128
|
};
|
124
129
|
}
|
125
|
-
case '
|
130
|
+
case 'insertTemporaryRow':
|
126
131
|
{
|
127
132
|
const {
|
133
|
+
index,
|
128
134
|
value
|
129
135
|
} = payload;
|
130
136
|
return {
|
@@ -134,14 +140,36 @@ function reducer(state, action) {
|
|
134
140
|
...state.changes,
|
135
141
|
rows: setWith(state.changes.rows, rowId, value, Object),
|
136
142
|
originals: setWith(state.changes.originals, rowId, value, Object)
|
137
|
-
}
|
143
|
+
},
|
144
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
138
145
|
};
|
139
146
|
}
|
140
147
|
default:
|
141
148
|
return state;
|
142
149
|
}
|
143
150
|
}
|
144
|
-
function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator) {
|
151
|
+
function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator) {
|
152
|
+
const discardChanges = function (rowId, table) {
|
153
|
+
try {
|
154
|
+
// remove any new rows from pinned state before discarding them
|
155
|
+
table.resetRowPinning(true);
|
156
|
+
dispatch({
|
157
|
+
type: 'removeRow',
|
158
|
+
rowId,
|
159
|
+
payload: {
|
160
|
+
rowIdentityAccessor
|
161
|
+
}
|
162
|
+
});
|
163
|
+
const _temp8 = function () {
|
164
|
+
if (typeof handleDiscard === 'function') {
|
165
|
+
return Promise.resolve(handleDiscard()).then(function () {});
|
166
|
+
}
|
167
|
+
}();
|
168
|
+
return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
|
169
|
+
} catch (e) {
|
170
|
+
return Promise.reject(e);
|
171
|
+
}
|
172
|
+
};
|
145
173
|
const saveChanges = function (table, rowId = undefined) {
|
146
174
|
try {
|
147
175
|
let _exit = false;
|
@@ -154,35 +182,38 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
154
182
|
[rowId]: state.changes.rows[rowId]
|
155
183
|
} : state.changes.rows;
|
156
184
|
let completed = true;
|
157
|
-
const
|
185
|
+
const _temp7 = _forOf(Object.keys(changes), function (rowId) {
|
158
186
|
const status = getRowStatus(rowId);
|
159
187
|
return _catch(function () {
|
160
|
-
|
188
|
+
var _changes$rowId;
|
189
|
+
function _temp6(_result) {
|
161
190
|
return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
|
162
191
|
// cleanup changes, we don't need them after saving
|
163
|
-
discardChanges(rowId, table)
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
192
|
+
return Promise.resolve(discardChanges(rowId, table)).then(function () {
|
193
|
+
// show the saved status, then remove it after a delay
|
194
|
+
setRowStatus(rowId, 'saved');
|
195
|
+
setTimeout(() => {
|
196
|
+
setRowStatus(rowId, undefined);
|
197
|
+
}, DELAY_BEFORE_REMOVING_SAVE_STATUS);
|
198
|
+
});
|
169
199
|
});
|
170
200
|
}
|
201
|
+
const rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
|
171
202
|
// don't try to save if - already saving, or there are known errors
|
172
|
-
if (status === 'saving' || status === 'errored') {
|
203
|
+
if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {
|
173
204
|
return;
|
174
205
|
}
|
175
206
|
setRowStatus(rowId, 'saving');
|
176
207
|
const changeSet = {
|
177
208
|
...state.changes.originals[rowId],
|
178
|
-
...
|
209
|
+
...rowChanges
|
179
210
|
};
|
180
211
|
// if we had to create a temporary id, delete it first - it's our data, not theirs
|
181
212
|
if (isTemporaryRow(changeSet[rowIdentityAccessor])) {
|
182
213
|
delete changeSet[rowIdentityAccessor];
|
183
214
|
}
|
184
215
|
// re-run validation, maybe a cell is already invalid but has never been blurred
|
185
|
-
const
|
216
|
+
const _temp5 = function () {
|
186
217
|
if (validator) {
|
187
218
|
return Promise.resolve(validator(changeSet)).then(function (errors) {
|
188
219
|
if (errors && Object.keys(errors).length) {
|
@@ -191,7 +222,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
191
222
|
});
|
192
223
|
}
|
193
224
|
}();
|
194
|
-
return
|
225
|
+
return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5); // send new data to the server
|
195
226
|
}, function (error) {
|
196
227
|
var _error$response;
|
197
228
|
if (error instanceof ReferenceError || error instanceof TypeError || (error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) >= 500) {
|
@@ -231,18 +262,18 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
231
262
|
}, function () {
|
232
263
|
return _exit;
|
233
264
|
});
|
234
|
-
return Promise.resolve(
|
265
|
+
return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function (_result3) {
|
235
266
|
return _exit ? _result3 : completed;
|
236
|
-
}) : _exit ?
|
267
|
+
}) : _exit ? _temp7 : completed);
|
237
268
|
} catch (e) {
|
238
269
|
return Promise.reject(e);
|
239
270
|
}
|
240
271
|
};
|
241
|
-
const onCellChanged = function (cell, rowIndex, shouldRunUpdaters = true) {
|
272
|
+
const onCellChanged = function (cell, rowIndex, nextValue, shouldRunUpdaters = true) {
|
242
273
|
try {
|
243
|
-
function
|
274
|
+
function _temp4() {
|
244
275
|
var _state$changes$errors11;
|
245
|
-
function
|
276
|
+
function _temp2() {
|
246
277
|
// only set errors and move reasons for the cells we're currently acting on
|
247
278
|
// why? because the UX is not good if we set them for cells the user hasn't touched yet
|
248
279
|
const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];
|
@@ -273,6 +304,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
273
304
|
rowId: cell.row.id,
|
274
305
|
payload: {
|
275
306
|
cellErrors: nextCellErrors,
|
307
|
+
index: rowIndex,
|
276
308
|
moveReasons: nextMoveReasons,
|
277
309
|
value: nextChanges
|
278
310
|
}
|
@@ -280,7 +312,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
280
312
|
}
|
281
313
|
// create a projection of the next state, so we can act against it
|
282
314
|
const nextChanges = {
|
283
|
-
...
|
315
|
+
...changes,
|
284
316
|
...updatesForOtherCells
|
285
317
|
};
|
286
318
|
const nextMoveReasons = {
|
@@ -289,29 +321,35 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
289
321
|
const nextCellErrors = {
|
290
322
|
...((_state$changes$errors11 = state.changes.errors[cell.row.id]) === null || _state$changes$errors11 === void 0 ? void 0 : _state$changes$errors11.cells)
|
291
323
|
};
|
292
|
-
// run validation
|
324
|
+
// run validation - if there are changes, and if there is an original stored
|
293
325
|
let validationErrors = {};
|
294
|
-
const
|
295
|
-
if (validator) {
|
326
|
+
const _temp = function () {
|
327
|
+
if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {
|
328
|
+
// merge with the original so we get a full row
|
296
329
|
const nextRowValue = {
|
297
330
|
...state.changes.originals[cell.row.id],
|
298
331
|
...changes,
|
299
332
|
...updatesForOtherCells
|
300
333
|
};
|
301
|
-
return Promise.resolve(validator(nextRowValue)).then(function (
|
302
|
-
validationErrors =
|
334
|
+
return Promise.resolve(validator(nextRowValue)).then(function (_validator) {
|
335
|
+
validationErrors = _validator !== null && _validator !== void 0 ? _validator : {};
|
303
336
|
});
|
304
337
|
}
|
305
338
|
}();
|
306
|
-
return
|
339
|
+
return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
|
307
340
|
}
|
308
|
-
const changes =
|
309
|
-
|
341
|
+
const changes = nextValue !== undefined ? {
|
342
|
+
...state.changes.rows[cell.row.id],
|
343
|
+
[cell.column.id]: nextValue
|
344
|
+
} : {
|
345
|
+
...state.changes.rows[cell.row.id]
|
346
|
+
};
|
347
|
+
if (!Object.keys(changes).length) {
|
310
348
|
return Promise.resolve();
|
311
349
|
}
|
312
350
|
let updatesForOtherCells = {};
|
313
351
|
// run the updater handler if there is one, to see if there are any other cells to update
|
314
|
-
const
|
352
|
+
const _temp3 = function () {
|
315
353
|
if (typeof handleChange === 'function' && shouldRunUpdaters) {
|
316
354
|
const previousRowValue = {
|
317
355
|
...state.changes.originals[cell.row.id]
|
@@ -325,42 +363,11 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
325
363
|
});
|
326
364
|
}
|
327
365
|
}();
|
328
|
-
return Promise.resolve(
|
366
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
329
367
|
} catch (e) {
|
330
368
|
return Promise.reject(e);
|
331
369
|
}
|
332
370
|
}; // general
|
333
|
-
// rows
|
334
|
-
const setRowValue = function (rowId, original, value) {
|
335
|
-
try {
|
336
|
-
function _temp2() {
|
337
|
-
dispatch({
|
338
|
-
type: 'updateRow',
|
339
|
-
rowId,
|
340
|
-
payload: {
|
341
|
-
cellErrors,
|
342
|
-
original,
|
343
|
-
value
|
344
|
-
}
|
345
|
-
});
|
346
|
-
}
|
347
|
-
let cellErrors;
|
348
|
-
const _temp = function () {
|
349
|
-
if (validator) {
|
350
|
-
const row = {
|
351
|
-
...original,
|
352
|
-
...value
|
353
|
-
};
|
354
|
-
return Promise.resolve(validator(row)).then(function (_validator) {
|
355
|
-
cellErrors = _validator !== null && _validator !== void 0 ? _validator : {};
|
356
|
-
});
|
357
|
-
}
|
358
|
-
}();
|
359
|
-
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
360
|
-
} catch (e) {
|
361
|
-
return Promise.reject(e);
|
362
|
-
}
|
363
|
-
};
|
364
371
|
const localization = useLocalization();
|
365
372
|
const [state, dispatch] = React__default.useReducer(reducer, {
|
366
373
|
changes: {
|
@@ -370,8 +377,10 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
370
377
|
originals: {},
|
371
378
|
status: {}
|
372
379
|
},
|
380
|
+
indexes: {},
|
373
381
|
temporaryRows: []
|
374
382
|
});
|
383
|
+
// rows
|
375
384
|
function getRowValue(rowId) {
|
376
385
|
var _state$changes$rows$r, _state$changes$rows;
|
377
386
|
return (_state$changes$rows$r = (_state$changes$rows = state.changes.rows) === null || _state$changes$rows === void 0 ? void 0 : _state$changes$rows[rowId]) !== null && _state$changes$rows$r !== void 0 ? _state$changes$rows$r : undefined;
|
@@ -409,23 +418,24 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
409
418
|
}
|
410
419
|
});
|
411
420
|
}
|
412
|
-
function
|
421
|
+
function insertTemporaryRow(data, rowIndex) {
|
413
422
|
const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${v4()}`;
|
414
423
|
const value = {
|
415
424
|
...data,
|
416
425
|
[rowIdentityAccessor]: newRowId
|
417
426
|
};
|
418
427
|
dispatch({
|
419
|
-
type: '
|
428
|
+
type: 'insertTemporaryRow',
|
420
429
|
rowId: newRowId,
|
421
430
|
payload: {
|
431
|
+
index: rowIndex,
|
422
432
|
value
|
423
433
|
}
|
424
434
|
});
|
425
435
|
return newRowId;
|
426
436
|
}
|
427
437
|
// cells
|
428
|
-
function setCellValue(cell, value) {
|
438
|
+
function setCellValue(cell, rowIndex, value) {
|
429
439
|
const rowId = cell.row.id;
|
430
440
|
const columnId = cell.column.id;
|
431
441
|
// update if the change is different to the original value
|
@@ -435,6 +445,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
435
445
|
rowId,
|
436
446
|
payload: {
|
437
447
|
columnId,
|
448
|
+
index: rowIndex,
|
438
449
|
row: cell.row.original,
|
439
450
|
value
|
440
451
|
}
|
@@ -467,6 +478,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
467
478
|
}
|
468
479
|
return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({
|
469
480
|
rowId,
|
481
|
+
index: state.indexes[rowId],
|
470
482
|
changes: state.changes.rows[rowId],
|
471
483
|
errors: state.changes.errors[rowId]
|
472
484
|
}));
|
@@ -477,20 +489,8 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
477
489
|
function hasChanges(rowId) {
|
478
490
|
return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
|
479
491
|
}
|
480
|
-
function discardChanges(rowId, table) {
|
481
|
-
// remove any new rows from pinned state before discarding them
|
482
|
-
table.resetRowPinning(true);
|
483
|
-
dispatch({
|
484
|
-
type: 'removeRow',
|
485
|
-
rowId,
|
486
|
-
payload: {
|
487
|
-
rowIdentityAccessor
|
488
|
-
}
|
489
|
-
});
|
490
|
-
}
|
491
492
|
return {
|
492
493
|
// row
|
493
|
-
setRowValue,
|
494
494
|
getRowValue,
|
495
495
|
getRowMoveReason,
|
496
496
|
hasRowErrors,
|
@@ -510,7 +510,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
510
510
|
discardChanges,
|
511
511
|
hasSaved,
|
512
512
|
// new rows
|
513
|
-
|
513
|
+
insertTemporaryRow,
|
514
514
|
temporaryRows: state.temporaryRows
|
515
515
|
};
|
516
516
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useEditingState.js","sources":["../../../../../../../../src/components/Table3/features/useEditingState.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, Cell as ReactTableCell } from '@tanstack/react-table';\nimport { v4 as uuid } from 'uuid';\nimport omit from 'lodash/omit';\nimport setWith from 'lodash/setWith';\nimport { Table3EditingChangeHandler, Table3EditingSaveHandler, Table3EditingValidatorFn } from '../types';\nimport { isTemporaryRow, TEMPORARY_ROW_ID_PREFIX, willRowMove } from '../util/editing';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst DELAY_BEFORE_REMOVING_SAVE_STATUS = 3000;\n\ntype EditingError = {\n row: string;\n cells: Record<string, string>;\n shouldShowErrorAlert: boolean;\n};\ntype EditingRowMoveReason = Record<string, 'search' | 'sorting' | 'filter'>;\ntype EditingSaveState = 'saving' | 'saved' | 'errored';\ntype EditingChangeset<TType = unknown> = Partial<TType>;\ntype EditingState<TType = unknown> = {\n changes: {\n rows: Record<string, EditingChangeset<TType>>;\n errors: Record<string, EditingError>;\n moveReasons: Record<string, EditingRowMoveReason>;\n originals: Record<string, TType>;\n status: Record<string, EditingSaveState>;\n };\n temporaryRows: TType[];\n};\ntype EditingStateAction = {\n type:\n | 'setCellValue'\n | 'removeCellValue'\n | 'updateRow'\n | 'mergeRowValue'\n | 'removeRow'\n | 'setRowStatus'\n | 'setRowErrors'\n | 'createRow';\n rowId: string;\n payload?: any;\n};\n\nfunction reducer<TType = unknown>(state: EditingState<TType>, action: EditingStateAction) {\n const { type, rowId, payload } = action;\n\n switch (type) {\n case 'setCellValue': {\n const { columnId, row, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),\n originals: setWith(state.changes.originals, rowId, row, Object),\n },\n };\n }\n\n case 'removeCellValue': {\n const { columnId, rowIdentityAccessor } = payload;\n const changes = omit(state.changes.rows, `${rowId}.${columnId}`);\n\n // if there are no changes left, remove the row\n if (!Object.keys(changes[rowId]).length) {\n return reducer(state, { type: 'removeRow', rowId, payload: { rowIdentityAccessor } });\n }\n\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, `${rowId}.${columnId}`),\n errors: omit(state.changes.errors, `${rowId}.cells.${columnId}`),\n moveReasons: omit(state.changes.moveReasons, `${rowId}.${columnId}`),\n },\n };\n }\n\n case 'updateRow': {\n const { cellErrors, moveReasons, original, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n errors: setWith(\n state.changes.errors,\n `${rowId}.cells`,\n cellErrors ?? state.changes.errors.cells[rowId],\n Object\n ),\n originals: setWith(state.changes.originals, rowId, original ?? state.changes.originals[rowId], Object),\n moveReasons: setWith(\n state.changes.moveReasons,\n rowId,\n moveReasons ?? state.changes.moveReasons[rowId],\n Object\n ),\n // status can be undefined, so don't use ??\n status: setWith(state.changes.status, rowId, undefined, Object),\n },\n };\n }\n\n case 'removeRow': {\n const { rowIdentityAccessor } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, rowId),\n errors: omit(state.changes.errors, rowId),\n moveReasons: omit(state.changes.moveReasons, rowId),\n originals: omit(state.changes.originals, rowId),\n status: omit(state.changes.status, rowId),\n },\n temporaryRows: state.temporaryRows.filter(row => row[rowIdentityAccessor] !== rowId),\n };\n }\n\n case 'setRowStatus': {\n const { status } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n status: status ? setWith(state.changes.status, rowId, status, Object) : omit(state.changes.status, rowId),\n },\n };\n }\n\n case 'setRowErrors': {\n const { ...errors } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n errors: setWith(state.changes.errors, rowId, errors, Object),\n },\n };\n }\n\n case 'createRow': {\n const { value } = payload;\n return {\n ...state,\n temporaryRows: state.temporaryRows.concat(value),\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n originals: setWith(state.changes.originals, rowId, value, Object),\n },\n };\n }\n\n default:\n return state;\n }\n}\n\nexport function usePendingChangesState<TType = unknown>(\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n rowIdentityAccessor: keyof TType,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n const localization = useLocalization();\n const [state, dispatch] = React.useReducer(reducer, {\n changes: { rows: {}, errors: {}, moveReasons: {}, originals: {}, status: {} },\n temporaryRows: [],\n });\n\n // rows\n async function setRowValue<T extends TType>(rowId: string, original: T, value: Partial<T>) {\n let cellErrors;\n\n if (validator) {\n const row = { ...original, ...value } as T;\n cellErrors = ((await validator(row)) ?? {}) as Record<string, string>;\n }\n\n dispatch({\n type: 'updateRow',\n rowId,\n payload: { cellErrors, original, value },\n });\n }\n\n function getRowValue(rowId: string) {\n return state.changes.rows?.[rowId] ?? undefined;\n }\n\n function getRowMoveReason(rowId: string) {\n return Object.values(state.changes.moveReasons?.[rowId] ?? {})[0] ?? undefined;\n }\n\n function hasRowErrors(rowId: string) {\n return !!state.changes.errors[rowId]?.row || !!Object.keys(state.changes.errors[rowId]?.cells ?? {}).length;\n }\n\n function hasRowErrorsShownInAlert(rowId: string) {\n return hasRowErrors(rowId) && !!state.changes.errors[rowId]?.shouldShowErrorAlert;\n }\n\n function hasTemporaryRowErrors<T extends TType>() {\n const newRow = state.temporaryRows?.[0] as T | undefined;\n\n if (!newRow) {\n return false;\n }\n\n const rowId = newRow[rowIdentityAccessor as string];\n return !!state.changes.errors[rowId]?.row || !!Object.keys(state.changes.errors[rowId]?.cells ?? {}).length;\n }\n\n function getRowStatus(rowId: string) {\n return state.changes.status[rowId];\n }\n\n function setRowStatus(rowId: string, status: EditingSaveState | undefined) {\n dispatch({\n type: 'setRowStatus',\n rowId,\n payload: {\n status,\n },\n });\n }\n\n function createRow<T extends TType>(data: Partial<T>) {\n const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${uuid()}`;\n const value: Partial<TType> = {\n ...data,\n [rowIdentityAccessor]: newRowId,\n };\n\n dispatch({\n type: 'createRow',\n rowId: newRowId,\n payload: { value },\n });\n\n return newRowId;\n }\n\n // cells\n function setCellValue<T extends TType>(cell: ReactTableCell<T, unknown>, value: unknown) {\n const rowId = cell.row.id;\n const columnId = cell.column.id;\n\n // update if the change is different to the original value\n if (value !== cell.row.original[columnId]) {\n dispatch({\n type: 'setCellValue',\n rowId,\n payload: {\n columnId,\n row: cell.row.original,\n value,\n },\n });\n }\n // otherwise remove any previous change - no point saving the same value\n else if (cell.row.id in state.changes.rows) {\n dispatch({\n type: 'removeCellValue',\n rowId,\n payload: {\n columnId,\n rowIdentityAccessor,\n },\n });\n }\n }\n\n function getCellValue<T extends TType>(cell: ReactTableCell<T, unknown>): unknown | undefined {\n return state.changes.rows?.[cell.row.id]?.[cell.column.id];\n }\n\n function getCellError<T extends TType>(cell: ReactTableCell<T, unknown>): string | undefined {\n return state.changes.errors?.[cell.row.id]?.cells?.[cell.column.id];\n }\n\n async function onCellChanged<T extends TType>(cell: ReactTableCell<T, unknown>, rowIndex: number, shouldRunUpdaters = true) {\n const changes = state.changes.rows[cell.row.id];\n\n if (!changes) {\n return;\n }\n\n let updatesForOtherCells: Partial<T> = {};\n\n // run the updater handler if there is one, to see if there are any other cells to update\n if (typeof handleChange === 'function' && shouldRunUpdaters) {\n const previousRowValue = {\n ...state.changes.originals[cell.row.id],\n //...getRowChangeset(updatersRef.current[cell.row.id], rowIdentityAccessor),\n };\n const nextRowValue = {\n ...state.changes.originals[cell.row.id],\n ...changes,\n };\n updatesForOtherCells = ((await handleChange(\n cell.column.id,\n changes[cell.column.id],\n nextRowValue,\n previousRowValue\n )) ?? {}) as Partial<T>;\n }\n\n // create a projection of the next state, so we can act against it\n const nextChanges = { ...state.changes.rows[cell.row.id], ...updatesForOtherCells };\n const nextMoveReasons: EditingRowMoveReason = { ...state.changes.moveReasons[cell.row.id] };\n const nextCellErrors: Record<string, string> = { ...state.changes.errors[cell.row.id]?.cells };\n\n // run validation\n let validationErrors: Record<string, string> = {};\n\n if (validator) {\n const nextRowValue = { ...state.changes.originals[cell.row.id], ...changes, ...updatesForOtherCells };\n validationErrors = ((await validator(nextRowValue)) ?? {}) as Record<string, string>;\n }\n\n // only set errors and move reasons for the cells we're currently acting on\n // why? because the UX is not good if we set them for cells the user hasn't touched yet\n const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];\n const allCells = cell.row._getAllCellsByColumnId();\n\n cellsToActOn.forEach(accessor => {\n if (validationErrors[accessor]) {\n nextCellErrors[accessor] = validationErrors[accessor];\n // don't show move indicator for cells with errors, they aren't valid and can't be saved\n delete nextMoveReasons[accessor];\n } else {\n // there isn't any error in this run, remove any error set in state\n delete nextCellErrors[accessor];\n\n if (allCells[accessor]?.column.getIsSorted()) {\n // run row move determination\n const reason = willRowMove(cell, nextChanges[accessor], rowIndex, localization);\n\n // if the row will move based on this change save why, otherwise delete any existing state\n if (reason) {\n nextMoveReasons[accessor] = reason;\n } else {\n delete nextMoveReasons[accessor];\n }\n }\n }\n });\n\n dispatch({\n type: 'updateRow',\n rowId: cell.row.id,\n payload: {\n cellErrors: nextCellErrors,\n moveReasons: nextMoveReasons,\n value: nextChanges,\n },\n });\n }\n\n // general\n function getErrorsShownInAlert<T extends TType>() {\n const rowsWithErrors = Object.keys(state.changes.errors);\n\n if (!rowsWithErrors.length) {\n return [];\n }\n\n return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({\n rowId,\n changes: state.changes.rows[rowId] as EditingChangeset<T>,\n errors: state.changes.errors[rowId],\n }));\n }\n\n function hasSaved() {\n return !!Object.values(state.changes.status).filter(value => value === 'saved').length;\n }\n\n function hasChanges(rowId?: string) {\n return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;\n }\n\n async function saveChanges<T extends TType>(table: ReactTable<T>, rowId: string | undefined = undefined): Promise<boolean> {\n if (!handleSave) {\n console.warn('Tried to save, but Table has no onEditingSave handler');\n return false;\n }\n\n // sometimes we only want to save one row\n const changes = rowId ? { [rowId]: state.changes.rows[rowId] } : state.changes.rows;\n\n let completed = true;\n\n for (const rowId of Object.keys(changes)) {\n const status = getRowStatus(rowId);\n\n try {\n // don't try to save if - already saving, or there are known errors\n if (status === 'saving' || status === 'errored') {\n continue;\n }\n\n setRowStatus(rowId, 'saving');\n\n const changeSet = { ...state.changes.originals[rowId], ...changes[rowId] };\n\n // if we had to create a temporary id, delete it first - it's our data, not theirs\n if (isTemporaryRow(changeSet[rowIdentityAccessor as string])) {\n delete changeSet[rowIdentityAccessor];\n }\n\n // re-run validation, maybe a cell is already invalid but has never been blurred\n if (validator) {\n const errors = await validator(changeSet);\n\n if (errors && Object.keys(errors).length) {\n throw errors;\n }\n }\n\n // send new data to the server\n await handleSave(changeSet);\n\n // cleanup changes, we don't need them after saving\n discardChanges(rowId, table);\n\n // show the saved status, then remove it after a delay\n setRowStatus(rowId, 'saved');\n setTimeout(() => {\n setRowStatus(rowId, undefined);\n }, DELAY_BEFORE_REMOVING_SAVE_STATUS);\n } catch (error) {\n if (error instanceof ReferenceError || error instanceof TypeError || (error as any)?.response?.status >= 500) {\n console.error(error);\n }\n\n // the onEditingSave handler should throw errors when something fails, e.g. validation, network errors etc\n // this code handles those errors and maps them either to row errors or cell specific errors\n let rowError: string | undefined;\n let cellErrors;\n\n if (typeof error === 'string') {\n rowError = error;\n } else if (error instanceof Error) {\n rowError = error.message;\n\n // most of our apis return error objects within this shape\n if (typeof (error as any).response?.data === 'object') {\n cellErrors = (error as any).response?.data;\n }\n } else if (typeof error === 'object') {\n cellErrors = error;\n }\n\n if (rowError || cellErrors) {\n dispatch({\n type: 'setRowErrors',\n rowId,\n payload: {\n row: rowError,\n cells: cellErrors,\n shouldShowErrorAlert: true,\n },\n });\n }\n\n setRowStatus(rowId, 'errored');\n completed = false;\n }\n }\n\n return completed;\n }\n\n function discardChanges<T extends TType>(rowId: string, table: ReactTable<T>) {\n // remove any new rows from pinned state before discarding them\n table.resetRowPinning(true);\n\n dispatch({\n type: 'removeRow',\n rowId,\n payload: { rowIdentityAccessor },\n });\n }\n\n return {\n // row\n setRowValue,\n getRowValue,\n getRowMoveReason,\n hasRowErrors,\n hasRowErrorsShownInAlert,\n hasTemporaryRowErrors,\n getRowStatus,\n setRowStatus,\n // cells\n setCellValue,\n getCellValue,\n getCellError,\n onCellChanged,\n // general\n getErrorsShownInAlert,\n hasChanges,\n saveChanges,\n discardChanges,\n hasSaved,\n // new rows\n createRow,\n temporaryRows: state.temporaryRows,\n };\n}\n"],"names":["DELAY_BEFORE_REMOVING_SAVE_STATUS","reducer","state","action","type","rowId","payload","columnId","row","value","changes","rows","setWith","Object","originals","rowIdentityAccessor","omit","keys","length","errors","moveReasons","cellErrors","original","cells","status","undefined","temporaryRows","filter","concat","usePendingChangesState","handleSave","handleChange","validator","saveChanges","table","console","warn","Promise","resolve","completed","_temp9","_forOf","getRowStatus","_catch","_temp8","_result","_exit","changeSet","then","discardChanges","setRowStatus","setTimeout","isTemporaryRow","_temp7","error","_error$response","ReferenceError","TypeError","response","rowError","Error","_error$response2","message","data","_error$response3","dispatch","shouldShowErrorAlert","_result3","e","reject","onCellChanged","cell","rowIndex","shouldRunUpdaters","cellsToActOn","column","id","updatesForOtherCells","allCells","_getAllCellsByColumnId","forEach","accessor","validationErrors","nextCellErrors","nextMoveReasons","_allCells$accessor","getIsSorted","reason","willRowMove","nextChanges","localization","_state$changes$errors11","_temp3","nextRowValue","_validator2","_temp4","_temp5","previousRowValue","_handleChange","_temp6","setRowValue","_temp","_validator","_temp2","useLocalization","React","useReducer","getRowValue","_state$changes$rows$r","_state$changes$rows","getRowMoveReason","_Object$values$","values","_state$changes$moveRe","_state$changes$moveRe2","hasRowErrors","_state$changes$errors","_state$changes$errors2","_state$changes$errors3","hasRowErrorsShownInAlert","_state$changes$errors4","hasTemporaryRowErrors","newRow","_state$temporaryRows","_state$changes$errors5","_state$changes$errors6","_state$changes$errors7","createRow","newRowId","TEMPORARY_ROW_ID_PREFIX","uuid","setCellValue","getCellValue","_state$changes$rows2","_state$changes$rows2$","getCellError","_state$changes$errors8","_state$changes$errors9","_state$changes$errors10","getErrorsShownInAlert","rowsWithErrors","map","hasSaved","hasChanges","resetRowPinning"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useEditingState.js","sources":["../../../../../../../../src/components/Table3/features/useEditingState.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, Cell as ReactTableCell } from '@tanstack/react-table';\nimport { v4 as uuid } from 'uuid';\nimport omit from 'lodash/omit';\nimport setWith from 'lodash/setWith';\nimport {\n Table3EditingChangeHandler,\n Table3EditingDiscardHandler,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n} from '../types';\nimport { isTemporaryRow, TEMPORARY_ROW_ID_PREFIX, willRowMove } from '../util/editing';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst DELAY_BEFORE_REMOVING_SAVE_STATUS = 3000;\n\ntype EditingError = {\n row: string;\n cells: Record<string, string>;\n shouldShowErrorAlert: boolean;\n};\ntype EditingRowMoveReason = Record<string, 'search' | 'sorting' | 'filter'>;\ntype EditingSaveState = 'saving' | 'saved' | 'errored';\ntype EditingChangeset<TType = unknown> = Partial<TType>;\ntype EditingState<TType = unknown> = {\n changes: {\n rows: Record<string, EditingChangeset<TType>>;\n errors: Record<string, EditingError>;\n moveReasons: Record<string, EditingRowMoveReason>;\n originals: Record<string, TType>;\n status: Record<string, EditingSaveState>;\n };\n // we store row indexes because due to server loading, we don't always have all data available\n // so we can't determine an index from a row id\n // note: if the row click button in the error Alert is removed, indexes can be removed here\n indexes: Record<string, number>;\n temporaryRows: TType[];\n};\ntype EditingStateAction = {\n type:\n | 'setCellValue'\n | 'removeCellValue'\n | 'updateRow'\n | 'mergeRowValue'\n | 'removeRow'\n | 'setRowStatus'\n | 'setRowErrors'\n | 'insertTemporaryRow';\n rowId: string;\n payload?: any;\n};\n\nfunction reducer<TType = unknown>(state: EditingState<TType>, action: EditingStateAction): EditingState {\n const { type, rowId, payload } = action;\n\n switch (type) {\n case 'setCellValue': {\n const { columnId, index, row, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),\n originals: setWith(state.changes.originals, rowId, row, Object),\n },\n indexes: setWith(state.indexes, rowId, index, Object),\n };\n }\n\n case 'removeCellValue': {\n const { columnId, rowIdentityAccessor } = payload;\n const changes = omit(state.changes.rows, `${rowId}.${columnId}`);\n\n // if there are no changes left, remove the row\n if (!Object.keys(changes[rowId]).length) {\n return reducer(state, { type: 'removeRow', rowId, payload: { rowIdentityAccessor } });\n }\n\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, `${rowId}.${columnId}`),\n errors: omit(state.changes.errors, `${rowId}.cells.${columnId}`),\n moveReasons: omit(state.changes.moveReasons, `${rowId}.${columnId}`),\n },\n };\n }\n\n case 'updateRow': {\n const { cellErrors, index, moveReasons, original, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors ?? state.changes.errors[rowId], Object),\n originals: setWith(state.changes.originals, rowId, original ?? state.changes.originals[rowId], Object),\n moveReasons: setWith(\n state.changes.moveReasons,\n rowId,\n moveReasons ?? state.changes.moveReasons[rowId],\n Object\n ),\n // status can be undefined, so don't use ??\n status: setWith(state.changes.status, rowId, undefined, Object),\n },\n indexes: setWith(state.indexes, rowId, index, Object),\n };\n }\n\n case 'removeRow': {\n const { rowIdentityAccessor } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, rowId),\n errors: omit(state.changes.errors, rowId),\n moveReasons: omit(state.changes.moveReasons, rowId),\n originals: omit(state.changes.originals, rowId),\n status: omit(state.changes.status, rowId),\n },\n indexes: omit(state.indexes, rowId),\n temporaryRows: state.temporaryRows.filter(row => (row as any)[rowIdentityAccessor] !== rowId),\n };\n }\n\n case 'setRowStatus': {\n const { status } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n status: status ? setWith(state.changes.status, rowId, status, Object) : omit(state.changes.status, rowId),\n },\n };\n }\n\n case 'setRowErrors': {\n const { ...errors } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n errors: setWith(state.changes.errors, rowId, errors, Object),\n },\n };\n }\n\n case 'insertTemporaryRow': {\n const { index, value } = payload;\n return {\n ...state,\n temporaryRows: state.temporaryRows.concat(value),\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n originals: setWith(state.changes.originals, rowId, value, Object),\n },\n indexes: setWith(state.indexes, rowId, index, Object),\n };\n }\n\n default:\n return state;\n }\n}\n\nexport function usePendingChangesState<TType = unknown>(\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n handleDiscard: Table3EditingDiscardHandler | undefined,\n rowIdentityAccessor: keyof TType,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n const localization = useLocalization();\n const [state, dispatch] = React.useReducer(reducer, {\n changes: { rows: {}, errors: {}, moveReasons: {}, originals: {}, status: {} },\n indexes: {},\n temporaryRows: [],\n });\n\n // rows\n function getRowValue(rowId: string) {\n return state.changes.rows?.[rowId] ?? undefined;\n }\n\n function getRowMoveReason(rowId: string) {\n return Object.values(state.changes.moveReasons?.[rowId] ?? {})[0] ?? undefined;\n }\n\n function hasRowErrors(rowId: string) {\n return !!state.changes.errors[rowId]?.row || !!Object.keys(state.changes.errors[rowId]?.cells ?? {}).length;\n }\n\n function hasRowErrorsShownInAlert(rowId: string) {\n return hasRowErrors(rowId) && !!state.changes.errors[rowId]?.shouldShowErrorAlert;\n }\n\n function hasTemporaryRowErrors<T extends TType>() {\n const newRow = state.temporaryRows?.[0] as T | undefined;\n\n if (!newRow) {\n return false;\n }\n\n const rowId = newRow[rowIdentityAccessor as keyof TType];\n return (\n !!state.changes.errors[rowId as unknown as string]?.row ||\n !!Object.keys(state.changes.errors[rowId as unknown as string]?.cells ?? {}).length\n );\n }\n\n function getRowStatus(rowId: string) {\n return state.changes.status[rowId];\n }\n\n function setRowStatus(rowId: string, status: EditingSaveState | undefined) {\n dispatch({\n type: 'setRowStatus',\n rowId,\n payload: {\n status,\n },\n });\n }\n\n function insertTemporaryRow<T extends TType>(data: Partial<T>, rowIndex: number) {\n const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${uuid()}`;\n const value: Partial<TType> = {\n ...data,\n [rowIdentityAccessor]: newRowId,\n };\n\n dispatch({\n type: 'insertTemporaryRow',\n rowId: newRowId,\n payload: { index: rowIndex, value },\n });\n\n return newRowId;\n }\n\n // cells\n function setCellValue<T extends TType>(cell: ReactTableCell<T, unknown>, rowIndex: number, value: unknown) {\n const rowId = cell.row.id;\n const columnId = cell.column.id;\n\n // update if the change is different to the original value\n if (value !== cell.row.original[columnId as keyof TType]) {\n dispatch({\n type: 'setCellValue',\n rowId,\n payload: {\n columnId,\n index: rowIndex,\n row: cell.row.original,\n value,\n },\n });\n }\n // otherwise remove any previous change - no point saving the same value\n else if (cell.row.id in state.changes.rows) {\n dispatch({\n type: 'removeCellValue',\n rowId,\n payload: {\n columnId,\n rowIdentityAccessor,\n },\n });\n }\n }\n\n function getCellValue<T extends TType>(cell: ReactTableCell<T, unknown>): unknown | undefined {\n return (state.changes.rows?.[cell.row.id] as Partial<TType>)?.[cell.column.id as keyof TType];\n }\n\n function getCellError<T extends TType>(cell: ReactTableCell<T, unknown>): string | undefined {\n return state.changes.errors?.[cell.row.id]?.cells?.[cell.column.id];\n }\n\n async function onCellChanged<T extends TType>(\n cell: ReactTableCell<T, unknown>,\n rowIndex: number,\n nextValue: any,\n shouldRunUpdaters = true\n ) {\n const changes: Partial<TType> =\n nextValue !== undefined\n ? { ...state.changes.rows[cell.row.id], [cell.column.id]: nextValue }\n : { ...state.changes.rows[cell.row.id] };\n\n if (!Object.keys(changes).length) {\n return;\n }\n\n let updatesForOtherCells: Partial<T> = {};\n\n // run the updater handler if there is one, to see if there are any other cells to update\n if (typeof handleChange === 'function' && shouldRunUpdaters) {\n const previousRowValue = {\n ...(state.changes.originals[cell.row.id] as TType),\n //...getRowChangeset(updatersRef.current[cell.row.id], rowIdentityAccessor),\n };\n const nextRowValue = {\n ...(state.changes.originals[cell.row.id] as TType),\n ...changes,\n };\n updatesForOtherCells = ((await handleChange(\n cell.column.id,\n changes[cell.column.id as keyof TType],\n nextRowValue,\n previousRowValue\n )) ?? {}) as Partial<T>;\n }\n\n // create a projection of the next state, so we can act against it\n const nextChanges = { ...changes, ...updatesForOtherCells };\n const nextMoveReasons: EditingRowMoveReason = { ...state.changes.moveReasons[cell.row.id] };\n const nextCellErrors: Record<string, string> = { ...state.changes.errors[cell.row.id]?.cells };\n\n // run validation - if there are changes, and if there is an original stored\n let validationErrors: Record<string, string> = {};\n\n if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {\n // merge with the original so we get a full row\n const nextRowValue = { ...(state.changes.originals[cell.row.id] as TType), ...changes, ...updatesForOtherCells };\n validationErrors = ((await validator(nextRowValue)) ?? {}) as Record<string, string>;\n }\n\n // only set errors and move reasons for the cells we're currently acting on\n // why? because the UX is not good if we set them for cells the user hasn't touched yet\n const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];\n const allCells = cell.row._getAllCellsByColumnId();\n\n cellsToActOn.forEach(accessor => {\n if (validationErrors[accessor]) {\n nextCellErrors[accessor] = validationErrors[accessor];\n // don't show move indicator for cells with errors, they aren't valid and can't be saved\n delete nextMoveReasons[accessor];\n } else {\n // there isn't any error in this run, remove any error set in state\n delete nextCellErrors[accessor];\n\n if (allCells[accessor]?.column.getIsSorted()) {\n // run row move determination\n const reason = willRowMove(cell, nextChanges[accessor as keyof TType], rowIndex, localization);\n\n // if the row will move based on this change save why, otherwise delete any existing state\n if (reason) {\n nextMoveReasons[accessor] = reason;\n } else {\n delete nextMoveReasons[accessor];\n }\n }\n }\n });\n\n dispatch({\n type: 'updateRow',\n rowId: cell.row.id,\n payload: {\n cellErrors: nextCellErrors,\n index: rowIndex,\n moveReasons: nextMoveReasons,\n value: nextChanges,\n },\n });\n }\n\n // general\n function getErrorsShownInAlert<T extends TType>() {\n const rowsWithErrors = Object.keys(state.changes.errors);\n\n if (!rowsWithErrors.length) {\n return [];\n }\n\n return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({\n rowId,\n index: state.indexes[rowId],\n changes: state.changes.rows[rowId] as EditingChangeset<T>,\n errors: state.changes.errors[rowId],\n }));\n }\n\n function hasSaved() {\n return !!Object.values(state.changes.status).filter(value => value === 'saved').length;\n }\n\n function hasChanges(rowId?: string) {\n return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;\n }\n\n async function saveChanges<T extends TType>(table: ReactTable<T>, rowId: string | undefined = undefined): Promise<boolean> {\n if (!handleSave) {\n console.warn('Tried to save, but Table has no onEditingSave handler');\n return false;\n }\n\n // sometimes we only want to save one row\n const changes = rowId ? { [rowId]: state.changes.rows[rowId] } : state.changes.rows;\n\n let completed = true;\n\n for (const rowId of Object.keys(changes)) {\n const status = getRowStatus(rowId);\n\n try {\n const rowChanges = changes[rowId] ?? {};\n\n // don't try to save if - already saving, or there are known errors\n if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {\n continue;\n }\n\n setRowStatus(rowId, 'saving');\n\n const changeSet = { ...(state.changes.originals[rowId] as TType), ...rowChanges };\n\n // if we had to create a temporary id, delete it first - it's our data, not theirs\n if (isTemporaryRow(changeSet[rowIdentityAccessor] as unknown as string)) {\n delete changeSet[rowIdentityAccessor];\n }\n\n // re-run validation, maybe a cell is already invalid but has never been blurred\n if (validator) {\n const errors = await validator(changeSet);\n\n if (errors && Object.keys(errors).length) {\n throw errors;\n }\n }\n\n // send new data to the server\n await handleSave(changeSet);\n\n // cleanup changes, we don't need them after saving\n await discardChanges(rowId, table);\n\n // show the saved status, then remove it after a delay\n setRowStatus(rowId, 'saved');\n setTimeout(() => {\n setRowStatus(rowId, undefined);\n }, DELAY_BEFORE_REMOVING_SAVE_STATUS);\n } catch (error) {\n if (error instanceof ReferenceError || error instanceof TypeError || (error as any)?.response?.status >= 500) {\n console.error(error);\n }\n\n // the onEditingSave handler should throw errors when something fails, e.g. validation, network errors etc\n // this code handles those errors and maps them either to row errors or cell specific errors\n let rowError: string | undefined;\n let cellErrors;\n\n if (typeof error === 'string') {\n rowError = error;\n } else if (error instanceof Error) {\n rowError = error.message;\n\n // most of our apis return error objects within this shape\n if (typeof (error as any).response?.data === 'object') {\n cellErrors = (error as any).response?.data;\n }\n } else if (typeof error === 'object') {\n cellErrors = error;\n }\n\n if (rowError || cellErrors) {\n dispatch({\n type: 'setRowErrors',\n rowId,\n payload: {\n row: rowError,\n cells: cellErrors,\n shouldShowErrorAlert: true,\n },\n });\n }\n\n setRowStatus(rowId, 'errored');\n completed = false;\n }\n }\n\n return completed;\n }\n\n async function discardChanges<T extends TType>(rowId: string, table: ReactTable<T>) {\n // remove any new rows from pinned state before discarding them\n table.resetRowPinning(true);\n\n dispatch({\n type: 'removeRow',\n rowId,\n payload: { rowIdentityAccessor },\n });\n\n if (typeof handleDiscard === 'function') {\n await handleDiscard();\n }\n }\n\n return {\n // row\n getRowValue,\n getRowMoveReason,\n hasRowErrors,\n hasRowErrorsShownInAlert,\n hasTemporaryRowErrors,\n getRowStatus,\n setRowStatus,\n // cells\n setCellValue,\n getCellValue,\n getCellError,\n onCellChanged,\n // general\n getErrorsShownInAlert,\n hasChanges,\n saveChanges,\n discardChanges,\n hasSaved,\n // new rows\n insertTemporaryRow,\n temporaryRows: state.temporaryRows,\n };\n}\n"],"names":["DELAY_BEFORE_REMOVING_SAVE_STATUS","reducer","state","action","type","rowId","payload","columnId","index","row","value","changes","rows","setWith","Object","originals","indexes","rowIdentityAccessor","omit","keys","length","errors","moveReasons","cellErrors","original","status","undefined","temporaryRows","filter","concat","usePendingChangesState","handleSave","handleChange","handleDiscard","validator","discardChanges","table","resetRowPinning","dispatch","_temp8","Promise","resolve","then","e","reject","saveChanges","console","warn","completed","_temp7","_forOf","getRowStatus","_catch","_changes$rowId","_temp6","_result","_exit","changeSet","setRowStatus","setTimeout","rowChanges","isTemporaryRow","_temp5","error","_error$response","ReferenceError","TypeError","response","rowError","Error","_error$response2","message","data","_error$response3","cells","shouldShowErrorAlert","_result3","onCellChanged","cell","rowIndex","nextValue","shouldRunUpdaters","cellsToActOn","column","id","updatesForOtherCells","allCells","_getAllCellsByColumnId","forEach","accessor","validationErrors","nextCellErrors","nextMoveReasons","_allCells$accessor","getIsSorted","reason","willRowMove","nextChanges","localization","_state$changes$errors11","_temp","nextRowValue","_validator","_temp2","_temp3","previousRowValue","_handleChange","_temp4","useLocalization","React","useReducer","getRowValue","_state$changes$rows$r","_state$changes$rows","getRowMoveReason","_Object$values$","values","_state$changes$moveRe","_state$changes$moveRe2","hasRowErrors","_state$changes$errors","_state$changes$errors2","_state$changes$errors3","hasRowErrorsShownInAlert","_state$changes$errors4","hasTemporaryRowErrors","newRow","_state$temporaryRows","_state$changes$errors5","_state$changes$errors6","_state$changes$errors7","insertTemporaryRow","newRowId","TEMPORARY_ROW_ID_PREFIX","uuid","setCellValue","getCellValue","_state$changes$rows2","_state$changes$rows2$","getCellError","_state$changes$errors8","_state$changes$errors9","_state$changes$errors10","getErrorsShownInAlert","rowsWithErrors","map","hasSaved","hasChanges"],"mappings":";;;;;;;;AAcA,MAAMA,iCAAiC,GAAG,IAAI;AAsC9C,SAASC,OAAOA,CAAkBC,KAA0B,EAAEC,MAA0B;EACpF,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;GAAS,GAAGH,MAAM;EAEvC,QAAQC,IAAI;IACR,KAAK,cAAc;MAAE;QACjB,MAAM;UAAEG,QAAQ;UAAEC,KAAK;UAAEC,GAAG;UAAEC;SAAO,GAAGJ,OAAO;QAC/C,OAAO;UACH,GAAGJ,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBC,IAAI,EAAEC,OAAO,CAACX,KAAK,CAACS,OAAO,CAACC,IAAI,EAAE,GAAGP,KAAK,IAAIE,QAAQ,EAAE,EAAEG,KAAK,EAAEI,MAAM,CAAC;YACxEC,SAAS,EAAEF,OAAO,CAACX,KAAK,CAACS,OAAO,CAACI,SAAS,EAAEV,KAAK,EAAEI,GAAG,EAAEK,MAAM;WACjE;UACDE,OAAO,EAAEH,OAAO,CAACX,KAAK,CAACc,OAAO,EAAEX,KAAK,EAAEG,KAAK,EAAEM,MAAM;SACvD;;IAGL,KAAK,iBAAiB;MAAE;QACpB,MAAM;UAAEP,QAAQ;UAAEU;SAAqB,GAAGX,OAAO;QACjD,MAAMK,OAAO,GAAGO,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACC,IAAI,EAAE,GAAGP,KAAK,IAAIE,QAAQ,EAAE,CAAC;;QAGhE,IAAI,CAACO,MAAM,CAACK,IAAI,CAACR,OAAO,CAACN,KAAK,CAAC,CAAC,CAACe,MAAM,EAAE;UACrC,OAAOnB,OAAO,CAACC,KAAK,EAAE;YAAEE,IAAI,EAAE,WAAW;YAAEC,KAAK;YAAEC,OAAO,EAAE;cAAEW;;WAAuB,CAAC;;QAGzF,OAAO;UACH,GAAGf,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBC,IAAI,EAAEM,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACC,IAAI,EAAE,GAAGP,KAAK,IAAIE,QAAQ,EAAE,CAAC;YACtDc,MAAM,EAAEH,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACU,MAAM,EAAE,GAAGhB,KAAK,UAAUE,QAAQ,EAAE,CAAC;YAChEe,WAAW,EAAEJ,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACW,WAAW,EAAE,GAAGjB,KAAK,IAAIE,QAAQ,EAAE;;SAE1E;;IAGL,KAAK,WAAW;MAAE;QACd,MAAM;UAAEgB,UAAU;UAAEf,KAAK;UAAEc,WAAW;UAAEE,QAAQ;UAAEd;SAAO,GAAGJ,OAAO;QACnE,OAAO;UACH,GAAGJ,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBC,IAAI,EAAEC,OAAO,CAACX,KAAK,CAACS,OAAO,CAACC,IAAI,EAAEP,KAAK,EAAEK,KAAK,EAAEI,MAAM,CAAC;YACvDO,MAAM,EAAER,OAAO,CAACX,KAAK,CAACS,OAAO,CAACU,MAAM,EAAE,GAAGhB,KAAK,QAAQ,EAAEkB,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAIrB,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAAK,CAAC,EAAES,MAAM,CAAC;YAC1GC,SAAS,EAAEF,OAAO,CAACX,KAAK,CAACS,OAAO,CAACI,SAAS,EAAEV,KAAK,EAAEmB,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAItB,KAAK,CAACS,OAAO,CAACI,SAAS,CAACV,KAAK,CAAC,EAAES,MAAM,CAAC;YACtGQ,WAAW,EAAET,OAAO,CAChBX,KAAK,CAACS,OAAO,CAACW,WAAW,EACzBjB,KAAK,EACLiB,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAIpB,KAAK,CAACS,OAAO,CAACW,WAAW,CAACjB,KAAK,CAAC,EAC/CS,MAAM,CACT;;YAEDW,MAAM,EAAEZ,OAAO,CAACX,KAAK,CAACS,OAAO,CAACc,MAAM,EAAEpB,KAAK,EAAEqB,SAAS,EAAEZ,MAAM;WACjE;UACDE,OAAO,EAAEH,OAAO,CAACX,KAAK,CAACc,OAAO,EAAEX,KAAK,EAAEG,KAAK,EAAEM,MAAM;SACvD;;IAGL,KAAK,WAAW;MAAE;QACd,MAAM;UAAEG;SAAqB,GAAGX,OAAO;QACvC,OAAO;UACH,GAAGJ,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBC,IAAI,EAAEM,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACC,IAAI,EAAEP,KAAK,CAAC;YACrCgB,MAAM,EAAEH,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACU,MAAM,EAAEhB,KAAK,CAAC;YACzCiB,WAAW,EAAEJ,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACW,WAAW,EAAEjB,KAAK,CAAC;YACnDU,SAAS,EAAEG,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACI,SAAS,EAAEV,KAAK,CAAC;YAC/CoB,MAAM,EAAEP,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACc,MAAM,EAAEpB,KAAK;WAC3C;UACDW,OAAO,EAAEE,IAAI,CAAChB,KAAK,CAACc,OAAO,EAAEX,KAAK,CAAC;UACnCsB,aAAa,EAAEzB,KAAK,CAACyB,aAAa,CAACC,MAAM,CAACnB,GAAG,IAAKA,GAAW,CAACQ,mBAAmB,CAAC,KAAKZ,KAAK;SAC/F;;IAGL,KAAK,cAAc;MAAE;QACjB,MAAM;UAAEoB;SAAQ,GAAGnB,OAAO;QAC1B,OAAO;UACH,GAAGJ,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBc,MAAM,EAAEA,MAAM,GAAGZ,OAAO,CAACX,KAAK,CAACS,OAAO,CAACc,MAAM,EAAEpB,KAAK,EAAEoB,MAAM,EAAEX,MAAM,CAAC,GAAGI,IAAI,CAAChB,KAAK,CAACS,OAAO,CAACc,MAAM,EAAEpB,KAAK;;SAE/G;;IAGL,KAAK,cAAc;MAAE;QACjB,MAAM;UAAE,GAAGgB;SAAQ,GAAGf,OAAO;QAC7B,OAAO;UACH,GAAGJ,KAAK;UACRS,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBU,MAAM,EAAER,OAAO,CAACX,KAAK,CAACS,OAAO,CAACU,MAAM,EAAEhB,KAAK,EAAEgB,MAAM,EAAEP,MAAM;;SAElE;;IAGL,KAAK,oBAAoB;MAAE;QACvB,MAAM;UAAEN,KAAK;UAAEE;SAAO,GAAGJ,OAAO;QAChC,OAAO;UACH,GAAGJ,KAAK;UACRyB,aAAa,EAAEzB,KAAK,CAACyB,aAAa,CAACE,MAAM,CAACnB,KAAK,CAAC;UAChDC,OAAO,EAAE;YACL,GAAGT,KAAK,CAACS,OAAO;YAChBC,IAAI,EAAEC,OAAO,CAACX,KAAK,CAACS,OAAO,CAACC,IAAI,EAAEP,KAAK,EAAEK,KAAK,EAAEI,MAAM,CAAC;YACvDC,SAAS,EAAEF,OAAO,CAACX,KAAK,CAACS,OAAO,CAACI,SAAS,EAAEV,KAAK,EAAEK,KAAK,EAAEI,MAAM;WACnE;UACDE,OAAO,EAAEH,OAAO,CAACX,KAAK,CAACc,OAAO,EAAEX,KAAK,EAAEG,KAAK,EAAEM,MAAM;SACvD;;IAGL;MACI,OAAOZ,KAAK;;AAExB;SAEgB4B,sBAAsBA,CAClCC,UAAuD,EACvDC,YAA2D,EAC3DC,aAAsD,EACtDhB,mBAAgC,EAChCiB,SAAsD;QA4TvCC,cAAc,aAAkB9B,KAAa,EAAE+B,KAAoB;IAAA;;MAE9EA,KAAK,CAACC,eAAe,CAAC,IAAI,CAAC;MAE3BC,QAAQ,CAAC;QACLlC,IAAI,EAAE,WAAW;QACjBC,KAAK;QACLC,OAAO,EAAE;UAAEW;;OACd,CAAC;MAAC,MAAAsB,MAAA;QAAA,IAEC,OAAON,aAAa,KAAK,UAAU;UAAA,OAAAO,OAAA,CAAAC,OAAA,CAC7BR,aAAa,EAAE,EAAAS,IAAA;;;MAAA,OAAAF,OAAA,CAAAC,OAAA,CAAAF,MAAA,IAAAA,MAAA,CAAAG,IAAA,GAAAH,MAAA,CAAAG,IAAA;KAE5B,QAAAC,CAAA;MAAA,OAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA;;;EAAA,MA3GcE,WAAW,aAAkBT,KAAoB,EAAE/B,QAA4BqB,SAAS;IAAA;;MACnG,IAAI,CAACK,UAAU,EAAE;QACbe,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;QACrE,OAAAP,OAAA,CAAAC,OAAA,CAAO,KAAK;;;MAIhB,MAAM9B,OAAO,GAAGN,KAAK,GAAG;QAAE,CAACA,KAAK,GAAGH,KAAK,CAACS,OAAO,CAACC,IAAI,CAACP,KAAK;OAAG,GAAGH,KAAK,CAACS,OAAO,CAACC,IAAI;MAEnF,IAAIoC,SAAS,GAAG,IAAI;MAAC,MAAAC,MAAA,GAAAC,MAAA,CAEDpC,MAAM,CAACK,IAAI,CAACR,OAAO,CAAC,YAA7BN,KAAK,EAA0B;QACtC,MAAMoB,MAAM,GAAG0B,YAAY,CAAC9C,KAAK,CAAC;QAAC,OAAA+C,MAAA,aAE/B;UAAA,IAAAC,cAAA;UAAA,SAAAC,OAAAC,OAAA;YAAA,OAAAC,KAAA,GAAAD,OAAA,GAAAf,OAAA,CAAAC,OAAA,CA2BMV,UAAU,CAAC0B,SAAS,CAAC,EAAAf,IAAA;;cAE3B,OAAAF,OAAA,CAAAC,OAAA,CACMN,cAAc,CAAC9B,KAAK,EAAE+B,KAAK,CAAC,EAAAM,IAAA;;gBAGlCgB,YAAY,CAACrD,KAAK,EAAE,OAAO,CAAC;gBAC5BsD,UAAU,CAAC;kBACPD,YAAY,CAACrD,KAAK,EAAEqB,SAAS,CAAC;iBACjC,EAAE1B,iCAAiC,CAAC;;;;UAnCrC,MAAM4D,UAAU,IAAAP,cAAA,GAAG1C,OAAO,CAACN,KAAK,CAAC,cAAAgD,cAAA,cAAAA,cAAA,GAAI,EAAE;;UAGvC,IAAI,CAACvC,MAAM,CAACK,IAAI,CAACyC,UAAU,CAAC,CAACxC,MAAM,IAAIK,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,SAAS,EAAE;YAAA;;UAIpFiC,YAAY,CAACrD,KAAK,EAAE,QAAQ,CAAC;UAE7B,MAAMoD,SAAS,GAAG;YAAE,GAAIvD,KAAK,CAACS,OAAO,CAACI,SAAS,CAACV,KAAK,CAAW;YAAE,GAAGuD;WAAY;;UAGjF,IAAIC,cAAc,CAACJ,SAAS,CAACxC,mBAAmB,CAAsB,CAAC,EAAE;YACrE,OAAOwC,SAAS,CAACxC,mBAAmB,CAAC;;;UAGzC,MAAA6C,MAAA;YAAA,IACI5B,SAAS;cAAA,OAAAM,OAAA,CAAAC,OAAA,CACYP,SAAS,CAACuB,SAAS,CAAC,EAAAf,IAAA,WAAnCrB,MAAM;gBAAA,IAERA,MAAM,IAAIP,MAAM,CAACK,IAAI,CAACE,MAAM,CAAC,CAACD,MAAM;kBACpC,MAAMC,MAAM;;;;;UAAC,OAAAyC,MAAA,IAAAA,MAAA,CAAApB,IAAA,GAAAoB,MAAA,CAAApB,IAAA,CAAAY,MAAA,IAAAA,MAAA,CAAAQ,MAAA;SAexB,YAAQC,KAAK,EAAE;UAAA,IAAAC,eAAA;UACZ,IAAID,KAAK,YAAYE,cAAc,IAAIF,KAAK,YAAYG,SAAS,IAAK,CAAAH,KAAa,aAAbA,KAAa,wBAAAC,eAAA,GAAbD,KAAa,CAAEI,QAAQ,cAAAH,eAAA,uBAAvBA,eAAA,CAAyBvC,MAAM,KAAI,GAAG,EAAE;YAC1GqB,OAAO,CAACiB,KAAK,CAACA,KAAK,CAAC;;;;UAKxB,IAAIK,QAA4B;UAChC,IAAI7C,UAAU;UAEd,IAAI,OAAOwC,KAAK,KAAK,QAAQ,EAAE;YAC3BK,QAAQ,GAAGL,KAAK;WACnB,MAAM,IAAIA,KAAK,YAAYM,KAAK,EAAE;YAAA,IAAAC,gBAAA;YAC/BF,QAAQ,GAAGL,KAAK,CAACQ,OAAO;;YAGxB,IAAI,SAAAD,gBAAA,GAAQP,KAAa,CAACI,QAAQ,cAAAG,gBAAA,uBAAtBA,gBAAA,CAAwBE,IAAI,MAAK,QAAQ,EAAE;cAAA,IAAAC,gBAAA;cACnDlD,UAAU,IAAAkD,gBAAA,GAAIV,KAAa,CAACI,QAAQ,cAAAM,gBAAA,uBAAtBA,gBAAA,CAAwBD,IAAI;;WAEjD,MAAM,IAAI,OAAOT,KAAK,KAAK,QAAQ,EAAE;YAClCxC,UAAU,GAAGwC,KAAK;;UAGtB,IAAIK,QAAQ,IAAI7C,UAAU,EAAE;YACxBe,QAAQ,CAAC;cACLlC,IAAI,EAAE,cAAc;cACpBC,KAAK;cACLC,OAAO,EAAE;gBACLG,GAAG,EAAE2D,QAAQ;gBACbM,KAAK,EAAEnD,UAAU;gBACjBoD,oBAAoB,EAAE;;aAE7B,CAAC;;UAGNjB,YAAY,CAACrD,KAAK,EAAE,SAAS,CAAC;UAC9B2C,SAAS,GAAG,KAAK;SACpB;OACJ;QAAA,OAAAQ,KAAA;;MAAA,OAAAhB,OAAA,CAAAC,OAAA,CAAAQ,MAAA,IAAAA,MAAA,CAAAP,IAAA,GAAAO,MAAA,CAAAP,IAAA,WAAAkC,QAAA;QAAA,OAAApB,KAAA,GAAAoB,QAAA,GAEM5B,SAAS;WAAAQ,KAAA,GAAAP,MAAA,GAATD,SAAS;KACnB,QAAAL,CAAA;MAAA,OAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA;;;EAAA,MA7MckC,aAAa,aACxBC,IAAgC,EAChCC,QAAgB,EAChBC,SAAc,EACdC,iBAAiB,GAAG,IAAI;IAAA;;;;;;UA+CxB,MAAMC,YAAY,GAAG,CAACJ,IAAI,CAACK,MAAM,CAACC,EAAE,EAAE,GAAGtE,MAAM,CAACK,IAAI,CAACkE,oBAAoB,CAAC,CAAC;UAC3E,MAAMC,QAAQ,GAAGR,IAAI,CAACrE,GAAG,CAAC8E,sBAAsB,EAAE;UAElDL,YAAY,CAACM,OAAO,CAACC,QAAQ;YACzB,IAAIC,gBAAgB,CAACD,QAAQ,CAAC,EAAE;cAC5BE,cAAc,CAACF,QAAQ,CAAC,GAAGC,gBAAgB,CAACD,QAAQ,CAAC;;cAErD,OAAOG,eAAe,CAACH,QAAQ,CAAC;aACnC,MAAM;cAAA,IAAAI,kBAAA;;cAEH,OAAOF,cAAc,CAACF,QAAQ,CAAC;cAE/B,KAAAI,kBAAA,GAAIP,QAAQ,CAACG,QAAQ,CAAC,cAAAI,kBAAA,eAAlBA,kBAAA,CAAoBV,MAAM,CAACW,WAAW,EAAE,EAAE;;gBAE1C,MAAMC,MAAM,GAAGC,WAAW,CAAClB,IAAI,EAAEmB,WAAW,CAACR,QAAuB,CAAC,EAAEV,QAAQ,EAAEmB,YAAY,CAAC;;gBAG9F,IAAIH,MAAM,EAAE;kBACRH,eAAe,CAACH,QAAQ,CAAC,GAAGM,MAAM;iBACrC,MAAM;kBACH,OAAOH,eAAe,CAACH,QAAQ,CAAC;;;;WAI/C,CAAC;UAEFnD,QAAQ,CAAC;YACLlC,IAAI,EAAE,WAAW;YACjBC,KAAK,EAAEyE,IAAI,CAACrE,GAAG,CAAC2E,EAAE;YAClB9E,OAAO,EAAE;cACLiB,UAAU,EAAEoE,cAAc;cAC1BnF,KAAK,EAAEuE,QAAQ;cACfzD,WAAW,EAAEsE,eAAe;cAC5BlF,KAAK,EAAEuF;;WAEd,CAAC;;;QAlDF,MAAMA,WAAW,GAAG;UAAE,GAAGtF,OAAO;UAAE,GAAG0E;SAAsB;QAC3D,MAAMO,eAAe,GAAyB;UAAE,GAAG1F,KAAK,CAACS,OAAO,CAACW,WAAW,CAACwD,IAAI,CAACrE,GAAG,CAAC2E,EAAE;SAAG;QAC3F,MAAMO,cAAc,GAA2B;UAAE,KAAAQ,uBAAA,GAAGjG,KAAK,CAACS,OAAO,CAACU,MAAM,CAACyD,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAC,cAAAe,uBAAA,uBAAjCA,uBAAA,CAAmCzB,KAAK;SAAE;;QAG9F,IAAIgB,gBAAgB,GAA2B,EAAE;QAAC,MAAAU,KAAA;UAAA,IAE9ClE,SAAS,IAAIpB,MAAM,CAACK,IAAI,CAAC8E,WAAW,CAAC,CAAC7E,MAAM,IAAIlB,KAAK,CAACS,OAAO,CAACI,SAAS,CAAC+D,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAC;;YAEpF,MAAMiB,YAAY,GAAG;cAAE,GAAInG,KAAK,CAACS,OAAO,CAACI,SAAS,CAAC+D,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAW;cAAE,GAAGzE,OAAO;cAAE,GAAG0E;aAAsB;YAAC,OAAA7C,OAAA,CAAAC,OAAA,CACtFP,SAAS,CAACmE,YAAY,CAAC,EAAA3D,IAAA,WAAA4D,UAAA;cAAlDZ,gBAAgB,GAAAY,UAAA,aAAAA,UAAA,cAAAA,UAAA,GAAuC,EAA6B;;;;QAAC,OAAAF,KAAA,IAAAA,KAAA,CAAA1D,IAAA,GAAA0D,KAAA,CAAA1D,IAAA,CAAA6D,MAAA,IAAAA,MAAA,CAAAH,KAAA;;MAxCzF,MAAMzF,OAAO,GACTqE,SAAS,KAAKtD,SAAS,GACjB;QAAE,GAAGxB,KAAK,CAACS,OAAO,CAACC,IAAI,CAACkE,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAC;QAAE,CAACN,IAAI,CAACK,MAAM,CAACC,EAAE,GAAGJ;OAAW,GACnE;QAAE,GAAG9E,KAAK,CAACS,OAAO,CAACC,IAAI,CAACkE,IAAI,CAACrE,GAAG,CAAC2E,EAAE;OAAG;MAEhD,IAAI,CAACtE,MAAM,CAACK,IAAI,CAACR,OAAO,CAAC,CAACS,MAAM,EAAE;QAC9B,OAAAoB,OAAA,CAAAC,OAAA;;MAGJ,IAAI4C,oBAAoB,GAAe,EAAE;;MAEzC,MAAAmB,MAAA;QAAA,IACI,OAAOxE,YAAY,KAAK,UAAU,IAAIiD,iBAAiB;UACvD,MAAMwB,gBAAgB,GAAG;YACrB,GAAIvG,KAAK,CAACS,OAAO,CAACI,SAAS,CAAC+D,IAAI,CAACrE,GAAG,CAAC2E,EAAE;WAE1C;UACD,MAAMiB,YAAY,GAAG;YACjB,GAAInG,KAAK,CAACS,OAAO,CAACI,SAAS,CAAC+D,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAW;YAClD,GAAGzE;WACN;UAAC,OAAA6B,OAAA,CAAAC,OAAA,CAC6BT,YAAY,CACvC8C,IAAI,CAACK,MAAM,CAACC,EAAE,EACdzE,OAAO,CAACmE,IAAI,CAACK,MAAM,CAACC,EAAiB,CAAC,EACtCiB,YAAY,EACZI,gBAAgB,CACnB,EAAA/D,IAAA,WAAAgE,aAAA;YALDrB,oBAAoB,GAAAqB,aAAA,aAAAA,aAAA,cAAAA,aAAA,GAKd,EAAiB;;;;MAAC,OAAAlE,OAAA,CAAAC,OAAA,CAAA+D,MAAA,IAAAA,MAAA,CAAA9D,IAAA,GAAA8D,MAAA,CAAA9D,IAAA,CAAAiE,MAAA,IAAAA,MAAA,CAAAH,MAAA;KAuD/B,QAAA7D,CAAA;MAAA,OAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA;;;EAlMD,MAAMuD,YAAY,GAAGU,eAAe,EAAE;EACtC,MAAM,CAAC1G,KAAK,EAAEoC,QAAQ,CAAC,GAAGuE,cAAK,CAACC,UAAU,CAAC7G,OAAO,EAAE;IAChDU,OAAO,EAAE;MAAEC,IAAI,EAAE,EAAE;MAAES,MAAM,EAAE,EAAE;MAAEC,WAAW,EAAE,EAAE;MAAEP,SAAS,EAAE,EAAE;MAAEU,MAAM,EAAE;KAAI;IAC7ET,OAAO,EAAE,EAAE;IACXW,aAAa,EAAE;GAClB,CAAC;;EAGF,SAASoF,WAAWA,CAAC1G,KAAa;;IAC9B,QAAA2G,qBAAA,IAAAC,mBAAA,GAAO/G,KAAK,CAACS,OAAO,CAACC,IAAI,cAAAqG,mBAAA,uBAAlBA,mBAAA,CAAqB5G,KAAK,CAAC,cAAA2G,qBAAA,cAAAA,qBAAA,GAAItF,SAAS;;EAGnD,SAASwF,gBAAgBA,CAAC7G,KAAa;;IACnC,QAAA8G,eAAA,GAAOrG,MAAM,CAACsG,MAAM,EAAAC,qBAAA,IAAAC,sBAAA,GAACpH,KAAK,CAACS,OAAO,CAACW,WAAW,cAAAgG,sBAAA,uBAAzBA,sBAAA,CAA4BjH,KAAK,CAAC,cAAAgH,qBAAA,cAAAA,qBAAA,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,cAAAF,eAAA,cAAAA,eAAA,GAAIzF,SAAS;;EAGlF,SAAS6F,YAAYA,CAAClH,KAAa;;IAC/B,OAAO,CAAC,GAAAmH,qBAAA,GAACtH,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAAK,CAAC,cAAAmH,qBAAA,eAA3BA,qBAAA,CAA6B/G,GAAG,KAAI,CAAC,CAACK,MAAM,CAACK,IAAI,EAAAsG,sBAAA,IAAAC,sBAAA,GAACxH,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAAK,CAAC,cAAAqH,sBAAA,uBAA3BA,sBAAA,CAA6BhD,KAAK,cAAA+C,sBAAA,cAAAA,sBAAA,GAAI,EAAE,CAAC,CAACrG,MAAM;;EAG/G,SAASuG,wBAAwBA,CAACtH,KAAa;;IAC3C,OAAOkH,YAAY,CAAClH,KAAK,CAAC,IAAI,CAAC,GAAAuH,sBAAA,GAAC1H,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAAK,CAAC,cAAAuH,sBAAA,eAA3BA,sBAAA,CAA6BjD,oBAAoB;;EAGrF,SAASkD,qBAAqBA;;IAC1B,MAAMC,MAAM,IAAAC,oBAAA,GAAG7H,KAAK,CAACyB,aAAa,cAAAoG,oBAAA,uBAAnBA,oBAAA,CAAsB,CAAC,CAAkB;IAExD,IAAI,CAACD,MAAM,EAAE;MACT,OAAO,KAAK;;IAGhB,MAAMzH,KAAK,GAAGyH,MAAM,CAAC7G,mBAAkC,CAAC;IACxD,OACI,CAAC,GAAA+G,sBAAA,GAAC9H,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAA0B,CAAC,cAAA2H,sBAAA,eAAhDA,sBAAA,CAAkDvH,GAAG,KACvD,CAAC,CAACK,MAAM,CAACK,IAAI,EAAA8G,sBAAA,IAAAC,sBAAA,GAAChI,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAA0B,CAAC,cAAA6H,sBAAA,uBAAhDA,sBAAA,CAAkDxD,KAAK,cAAAuD,sBAAA,cAAAA,sBAAA,GAAI,EAAE,CAAC,CAAC7G,MAAM;;EAI3F,SAAS+B,YAAYA,CAAC9C,KAAa;IAC/B,OAAOH,KAAK,CAACS,OAAO,CAACc,MAAM,CAACpB,KAAK,CAAC;;EAGtC,SAASqD,YAAYA,CAACrD,KAAa,EAAEoB,MAAoC;IACrEa,QAAQ,CAAC;MACLlC,IAAI,EAAE,cAAc;MACpBC,KAAK;MACLC,OAAO,EAAE;QACLmB;;KAEP,CAAC;;EAGN,SAAS0G,kBAAkBA,CAAkB3D,IAAgB,EAAEO,QAAgB;IAC3E,MAAMqD,QAAQ,GAAG,GAAGC,uBAAuB,GAAGC,EAAI,EAAE,EAAE;IACtD,MAAM5H,KAAK,GAAmB;MAC1B,GAAG8D,IAAI;MACP,CAACvD,mBAAmB,GAAGmH;KAC1B;IAED9F,QAAQ,CAAC;MACLlC,IAAI,EAAE,oBAAoB;MAC1BC,KAAK,EAAE+H,QAAQ;MACf9H,OAAO,EAAE;QAAEE,KAAK,EAAEuE,QAAQ;QAAErE;;KAC/B,CAAC;IAEF,OAAO0H,QAAQ;;;EAInB,SAASG,YAAYA,CAAkBzD,IAAgC,EAAEC,QAAgB,EAAErE,KAAc;IACrG,MAAML,KAAK,GAAGyE,IAAI,CAACrE,GAAG,CAAC2E,EAAE;IACzB,MAAM7E,QAAQ,GAAGuE,IAAI,CAACK,MAAM,CAACC,EAAE;;IAG/B,IAAI1E,KAAK,KAAKoE,IAAI,CAACrE,GAAG,CAACe,QAAQ,CAACjB,QAAuB,CAAC,EAAE;MACtD+B,QAAQ,CAAC;QACLlC,IAAI,EAAE,cAAc;QACpBC,KAAK;QACLC,OAAO,EAAE;UACLC,QAAQ;UACRC,KAAK,EAAEuE,QAAQ;UACftE,GAAG,EAAEqE,IAAI,CAACrE,GAAG,CAACe,QAAQ;UACtBd;;OAEP,CAAC;;;SAGD,IAAIoE,IAAI,CAACrE,GAAG,CAAC2E,EAAE,IAAIlF,KAAK,CAACS,OAAO,CAACC,IAAI,EAAE;MACxC0B,QAAQ,CAAC;QACLlC,IAAI,EAAE,iBAAiB;QACvBC,KAAK;QACLC,OAAO,EAAE;UACLC,QAAQ;UACRU;;OAEP,CAAC;;;EAIV,SAASuH,YAAYA,CAAkB1D,IAAgC;;IACnE,QAAA2D,oBAAA,GAAQvI,KAAK,CAACS,OAAO,CAACC,IAAI,cAAA6H,oBAAA,wBAAAC,qBAAA,GAAlBD,oBAAA,CAAqB3D,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAoB,cAAAsD,qBAAA,uBAApDA,qBAAA,CAAuD5D,IAAI,CAACK,MAAM,CAACC,EAAiB,CAAC;;EAGjG,SAASuD,YAAYA,CAAkB7D,IAAgC;;IACnE,QAAA8D,sBAAA,GAAO1I,KAAK,CAACS,OAAO,CAACU,MAAM,cAAAuH,sBAAA,wBAAAC,sBAAA,GAApBD,sBAAA,CAAuB9D,IAAI,CAACrE,GAAG,CAAC2E,EAAE,CAAC,cAAAyD,sBAAA,wBAAAC,uBAAA,GAAnCD,sBAAA,CAAqCnE,KAAK,cAAAoE,uBAAA,uBAA1CA,uBAAA,CAA6ChE,IAAI,CAACK,MAAM,CAACC,EAAE,CAAC;;EA6FvE,SAAS2D,qBAAqBA;IAC1B,MAAMC,cAAc,GAAGlI,MAAM,CAACK,IAAI,CAACjB,KAAK,CAACS,OAAO,CAACU,MAAM,CAAC;IAExD,IAAI,CAAC2H,cAAc,CAAC5H,MAAM,EAAE;MACxB,OAAO,EAAE;;IAGb,OAAO4H,cAAc,CAACpH,MAAM,CAAC+F,wBAAwB,CAAC,CAACsB,GAAG,CAAC5I,KAAK,KAAK;MACjEA,KAAK;MACLG,KAAK,EAAEN,KAAK,CAACc,OAAO,CAACX,KAAK,CAAC;MAC3BM,OAAO,EAAET,KAAK,CAACS,OAAO,CAACC,IAAI,CAACP,KAAK,CAAwB;MACzDgB,MAAM,EAAEnB,KAAK,CAACS,OAAO,CAACU,MAAM,CAAChB,KAAK;KACrC,CAAC,CAAC;;EAGP,SAAS6I,QAAQA;IACb,OAAO,CAAC,CAACpI,MAAM,CAACsG,MAAM,CAAClH,KAAK,CAACS,OAAO,CAACc,MAAM,CAAC,CAACG,MAAM,CAAClB,KAAK,IAAIA,KAAK,KAAK,OAAO,CAAC,CAACU,MAAM;;EAG1F,SAAS+H,UAAUA,CAAC9I,KAAc;IAC9B,OAAOA,KAAK,GAAG,CAAC,CAACH,KAAK,CAACS,OAAO,CAACC,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAACS,MAAM,CAACK,IAAI,CAACjB,KAAK,CAACS,OAAO,CAACC,IAAI,CAAC,CAACQ,MAAM;;EAgHzF,OAAO;;IAEH2F,WAAW;IACXG,gBAAgB;IAChBK,YAAY;IACZI,wBAAwB;IACxBE,qBAAqB;IACrB1E,YAAY;IACZO,YAAY;;IAEZ6E,YAAY;IACZC,YAAY;IACZG,YAAY;IACZ9D,aAAa;;IAEbkE,qBAAqB;IACrBI,UAAU;IACVtG,WAAW;IACXV,cAAc;IACd+G,QAAQ;;IAERf,kBAAkB;IAClBxG,aAAa,EAAEzB,KAAK,CAACyB;GACxB;AACL;;;;"}
|