@sectile/vue 0.18.1 → 0.18.2
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/dist/accordion.d.ts +1 -1
- package/dist/accordion.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +1 -1
- package/dist/cascade-list.js +1 -1
- package/dist/cascade-list.js.map +1 -1
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +1 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/disclosure.d.ts +1 -1
- package/dist/disclosure.js +1 -1
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/{internal/form-context.d.ts → form/context.d.ts} +3 -2
- package/dist/{internal/form-context.js → form/context.js} +2 -2
- package/dist/form/context.js.map +1 -0
- package/dist/form/contracts.d.ts +219 -0
- package/dist/form/contracts.js +2 -0
- package/dist/form/contracts.js.map +1 -0
- package/dist/{internal/form-control-inventory.js → form/control-inventory.js} +1 -1
- package/dist/form/control-inventory.js.map +1 -0
- package/dist/{internal/form-control.js → form/control.js} +1 -1
- package/dist/form/control.js.map +1 -0
- package/dist/form/field.d.ts +81 -0
- package/dist/form/field.js +2 -0
- package/dist/form/field.js.map +1 -0
- package/dist/form/native.d.ts +15 -0
- package/dist/form/native.js +2 -0
- package/dist/form/native.js.map +1 -0
- package/dist/form/part.d.ts +16 -0
- package/dist/form/part.js +2 -0
- package/dist/form/part.js.map +1 -0
- package/dist/form/parts.d.ts +93 -0
- package/dist/form/parts.js +2 -0
- package/dist/form/parts.js.map +1 -0
- package/dist/{internal/form-presence-parts.d.ts → form/presence-parts.d.ts} +1 -1
- package/dist/form/presence-parts.js +2 -0
- package/dist/form/presence-parts.js.map +1 -0
- package/dist/form/root.d.ts +2 -0
- package/dist/form/root.js +2 -0
- package/dist/form/root.js.map +1 -0
- package/dist/form/selectors.d.ts +7 -0
- package/dist/form/selectors.js +2 -0
- package/dist/form/selectors.js.map +1 -0
- package/dist/form.d.ts +8 -398
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/decimal-input.js.map +1 -0
- package/dist/input/native-field.js +2 -0
- package/dist/input/native-field.js.map +1 -0
- package/dist/input/native-input.js.map +1 -0
- package/dist/input/native-text-state.d.ts +2 -0
- package/dist/input/native-text-state.js +2 -0
- package/dist/input/native-text-state.js.map +1 -0
- package/dist/internal/cascade-choice.d.ts +1 -1
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/listbox.d.ts +1 -1
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/meter.js +1 -1
- package/dist/meter.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +1 -1
- package/dist/navigation-menu.js +1 -1
- package/dist/number-field.d.ts +1 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +1 -1
- package/dist/overlay/alert-dialog.js +2 -0
- package/dist/overlay/alert-dialog.js.map +1 -0
- package/dist/{dialog.d.ts → overlay/dialog.d.ts} +1 -1
- package/dist/overlay/dialog.js +2 -0
- package/dist/overlay/dialog.js.map +1 -0
- package/dist/{drawer.d.ts → overlay/drawer.d.ts} +1 -1
- package/dist/overlay/drawer.js +2 -0
- package/dist/overlay/drawer.js.map +1 -0
- package/dist/{popover.d.ts → overlay/popover.d.ts} +1 -1
- package/dist/overlay/popover.js +2 -0
- package/dist/overlay/popover.js.map +1 -0
- package/dist/overlay/popup.js +2 -0
- package/dist/overlay/popup.js.map +1 -0
- package/dist/{tooltip.d.ts → overlay/tooltip.d.ts} +1 -1
- package/dist/overlay/tooltip.js +2 -0
- package/dist/overlay/tooltip.js.map +1 -0
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/{internal → presence}/conditional-presence.js.map +1 -1
- package/dist/{internal → presence}/presence.js.map +1 -1
- package/dist/progress.js +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js +1 -1
- package/dist/select.js.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{internal/tabular-components.d.ts → tabular/components.d.ts} +1 -1
- package/dist/{internal/tabular-components.js → tabular/components.js} +1 -1
- package/dist/tabular/components.js.map +1 -0
- package/dist/tabular/context.d.ts +16 -0
- package/dist/tabular/context.js +2 -0
- package/dist/tabular/context.js.map +1 -0
- package/dist/{internal/tabular-profile.d.ts → tabular/controller.d.ts} +2 -32
- package/dist/tabular/controller.js +2 -0
- package/dist/tabular/controller.js.map +1 -0
- package/dist/{data-grid.d.ts → tabular/data-grid.d.ts} +7 -5
- package/dist/tabular/data-grid.js +2 -0
- package/dist/tabular/data-grid.js.map +1 -0
- package/dist/{data-table.d.ts → tabular/data-table.d.ts} +9 -36
- package/dist/tabular/data-table.js +2 -0
- package/dist/tabular/data-table.js.map +1 -0
- package/dist/{data-tree-grid.d.ts → tabular/data-tree-grid.d.ts} +7 -5
- package/dist/tabular/data-tree-grid.js +2 -0
- package/dist/tabular/data-tree-grid.js.map +1 -0
- package/dist/{internal/tabular-parts.d.ts → tabular/parts.d.ts} +2 -1
- package/dist/tabular/parts.js +2 -0
- package/dist/tabular/parts.js.map +1 -0
- package/dist/tabular/schema.d.ts +35 -0
- package/dist/tabular/schema.js +2 -0
- package/dist/tabular/schema.js.map +1 -0
- package/dist/tabular/source.d.ts +20 -0
- package/dist/tabular/source.js +2 -0
- package/dist/tabular/source.js.map +1 -0
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/{calendar.d.ts → temporal/calendar.d.ts} +21 -21
- package/dist/temporal/calendar.js +2 -0
- package/dist/temporal/calendar.js.map +1 -0
- package/dist/temporal/capabilities/calendar.d.ts +1 -0
- package/dist/temporal/capabilities/calendar.js +2 -0
- package/dist/temporal/capabilities/calendar.js.map +1 -0
- package/dist/temporal/capabilities/date-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-picker.js +2 -0
- package/dist/temporal/capabilities/date-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-picker.js +2 -0
- package/dist/temporal/capabilities/month-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-range-picker.js +2 -0
- package/dist/temporal/capabilities/month-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/range-calendar.d.ts +1 -0
- package/dist/temporal/capabilities/range-calendar.js +2 -0
- package/dist/temporal/capabilities/range-calendar.js.map +1 -0
- package/dist/temporal/capabilities/year-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-picker.js +2 -0
- package/dist/temporal/capabilities/year-picker.js.map +1 -0
- package/dist/temporal/capabilities/year-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-range-picker.js +2 -0
- package/dist/temporal/capabilities/year-range-picker.js.map +1 -0
- package/dist/{internal/picker-capability.js → temporal/capability.js} +1 -1
- package/dist/temporal/capability.js.map +1 -0
- package/dist/{date-field.d.ts → temporal/date-field.d.ts} +1 -1
- package/dist/temporal/date-field.js +2 -0
- package/dist/temporal/date-field.js.map +1 -0
- package/dist/{date-picker.d.ts → temporal/date-picker.d.ts} +24 -24
- package/dist/temporal/date-picker.js +2 -0
- package/dist/temporal/date-picker.js.map +1 -0
- package/dist/{date-range-field.d.ts → temporal/date-range-field.d.ts} +1 -1
- package/dist/temporal/date-range-field.js +2 -0
- package/dist/temporal/date-range-field.js.map +1 -0
- package/dist/{date-range-picker.d.ts → temporal/date-range-picker.d.ts} +27 -27
- package/dist/temporal/date-range-picker.js +2 -0
- package/dist/temporal/date-range-picker.js.map +1 -0
- package/dist/{date-time-field.d.ts → temporal/date-time-field.d.ts} +1 -1
- package/dist/temporal/date-time-field.js +2 -0
- package/dist/temporal/date-time-field.js.map +1 -0
- package/dist/{date-time-picker.d.ts → temporal/date-time-picker.d.ts} +30 -30
- package/dist/temporal/date-time-picker.js +2 -0
- package/dist/temporal/date-time-picker.js.map +1 -0
- package/dist/{date-time-range-picker.d.ts → temporal/date-time-range-picker.d.ts} +39 -39
- package/dist/temporal/date-time-range-picker.js +2 -0
- package/dist/temporal/date-time-range-picker.js.map +1 -0
- package/dist/{month-picker.d.ts → temporal/month-picker.d.ts} +14 -14
- package/dist/temporal/month-picker.js +2 -0
- package/dist/temporal/month-picker.js.map +1 -0
- package/dist/{month-range-picker.d.ts → temporal/month-range-picker.d.ts} +17 -17
- package/dist/temporal/month-range-picker.js +2 -0
- package/dist/temporal/month-range-picker.js.map +1 -0
- package/dist/{internal/date-picker.d.ts → temporal/picker.d.ts} +1 -1
- package/dist/temporal/picker.js +2 -0
- package/dist/temporal/picker.js.map +1 -0
- package/dist/{range-calendar.d.ts → temporal/range-calendar.d.ts} +11 -11
- package/dist/temporal/range-calendar.js +2 -0
- package/dist/temporal/range-calendar.js.map +1 -0
- package/dist/temporal/temporal-provider.js.map +1 -0
- package/dist/{time-field.d.ts → temporal/time-field.d.ts} +1 -1
- package/dist/temporal/time-field.js +2 -0
- package/dist/temporal/time-field.js.map +1 -0
- package/dist/{time-range-field.d.ts → temporal/time-range-field.d.ts} +1 -1
- package/dist/temporal/time-range-field.js +2 -0
- package/dist/temporal/time-range-field.js.map +1 -0
- package/dist/{year-picker.d.ts → temporal/year-picker.d.ts} +16 -16
- package/dist/temporal/year-picker.js +2 -0
- package/dist/temporal/year-picker.js.map +1 -0
- package/dist/{year-range-picker.d.ts → temporal/year-range-picker.d.ts} +19 -19
- package/dist/temporal/year-range-picker.js +2 -0
- package/dist/temporal/year-range-picker.js.map +1 -0
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/tree-grid.d.ts +1 -1
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +1 -1
- package/dist/tree-view.js +1 -1
- package/dist/virtual/virtual-collection.js.map +1 -0
- package/dist/virtual/virtual-core.js.map +1 -0
- package/dist/{virtual-grid.d.ts → virtual/virtual-grid.d.ts} +1 -1
- package/dist/virtual/virtual-grid.js +2 -0
- package/dist/virtual/virtual-grid.js.map +1 -0
- package/dist/virtual/virtual-list.js.map +1 -0
- package/dist/{virtual-masonry.d.ts → virtual/virtual-masonry.d.ts} +1 -1
- package/dist/virtual/virtual-masonry.js +2 -0
- package/dist/virtual/virtual-masonry.js.map +1 -0
- package/dist/{virtual-spatial.d.ts → virtual/virtual-spatial.d.ts} +1 -1
- package/dist/virtual/virtual-spatial.js +2 -0
- package/dist/virtual/virtual-spatial.js.map +1 -0
- package/dist/virtual-core.d.ts +1 -1
- package/dist/virtual-core.js +1 -1
- package/dist/virtual-list.d.ts +2 -2
- package/dist/virtual-list.js +1 -1
- package/package.json +93 -93
- package/dist/alert-dialog.js +0 -2
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.js +0 -2
- package/dist/calendar.js.map +0 -1
- package/dist/data-grid.js +0 -2
- package/dist/data-grid.js.map +0 -1
- package/dist/data-table.js +0 -2
- package/dist/data-table.js.map +0 -1
- package/dist/data-tree-grid.js +0 -2
- package/dist/data-tree-grid.js.map +0 -1
- package/dist/date-field.js +0 -2
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.js +0 -2
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-field.js +0 -2
- package/dist/date-range-field.js.map +0 -1
- package/dist/date-range-picker.js +0 -2
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.js +0 -2
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.js +0 -2
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.js +0 -2
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.js +0 -2
- package/dist/dialog.js.map +0 -1
- package/dist/drawer.js +0 -2
- package/dist/drawer.js.map +0 -1
- package/dist/internal/calendar-capability.d.ts +0 -1
- package/dist/internal/calendar-capability.js +0 -2
- package/dist/internal/calendar-capability.js.map +0 -1
- package/dist/internal/date-picker-capability.d.ts +0 -1
- package/dist/internal/date-picker-capability.js +0 -2
- package/dist/internal/date-picker-capability.js.map +0 -1
- package/dist/internal/date-picker.js +0 -2
- package/dist/internal/date-picker.js.map +0 -1
- package/dist/internal/date-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-range-picker-capability.js +0 -2
- package/dist/internal/date-range-picker-capability.js.map +0 -1
- package/dist/internal/date-time-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-picker-capability.js +0 -2
- package/dist/internal/date-time-picker-capability.js.map +0 -1
- package/dist/internal/date-time-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-range-picker-capability.js +0 -2
- package/dist/internal/date-time-range-picker-capability.js.map +0 -1
- package/dist/internal/decimal-input.js.map +0 -1
- package/dist/internal/form-context.js.map +0 -1
- package/dist/internal/form-control-inventory.js.map +0 -1
- package/dist/internal/form-control.js.map +0 -1
- package/dist/internal/form-presence-parts.js +0 -2
- package/dist/internal/form-presence-parts.js.map +0 -1
- package/dist/internal/month-picker-capability.d.ts +0 -1
- package/dist/internal/month-picker-capability.js +0 -2
- package/dist/internal/month-picker-capability.js.map +0 -1
- package/dist/internal/month-range-picker-capability.d.ts +0 -1
- package/dist/internal/month-range-picker-capability.js +0 -2
- package/dist/internal/month-range-picker-capability.js.map +0 -1
- package/dist/internal/native-field.js +0 -2
- package/dist/internal/native-field.js.map +0 -1
- package/dist/internal/native-input.js.map +0 -1
- package/dist/internal/picker-capability.js.map +0 -1
- package/dist/internal/popup.js +0 -2
- package/dist/internal/popup.js.map +0 -1
- package/dist/internal/range-calendar-capability.d.ts +0 -1
- package/dist/internal/range-calendar-capability.js +0 -2
- package/dist/internal/range-calendar-capability.js.map +0 -1
- package/dist/internal/tabular-components.js.map +0 -1
- package/dist/internal/tabular-parts.js +0 -2
- package/dist/internal/tabular-parts.js.map +0 -1
- package/dist/internal/tabular-profile.js +0 -2
- package/dist/internal/tabular-profile.js.map +0 -1
- package/dist/internal/virtual-collection.js.map +0 -1
- package/dist/internal/virtual-core.js.map +0 -1
- package/dist/internal/virtual-list.js.map +0 -1
- package/dist/internal/year-picker-capability.d.ts +0 -1
- package/dist/internal/year-picker-capability.js +0 -2
- package/dist/internal/year-picker-capability.js.map +0 -1
- package/dist/internal/year-range-picker-capability.d.ts +0 -1
- package/dist/internal/year-range-picker-capability.js +0 -2
- package/dist/internal/year-range-picker-capability.js.map +0 -1
- package/dist/month-picker.js +0 -2
- package/dist/month-picker.js.map +0 -1
- package/dist/month-range-picker.js +0 -2
- package/dist/month-range-picker.js.map +0 -1
- package/dist/popover.js +0 -2
- package/dist/popover.js.map +0 -1
- package/dist/range-calendar.js +0 -2
- package/dist/range-calendar.js.map +0 -1
- package/dist/temporal-provider.js.map +0 -1
- package/dist/time-field.js +0 -2
- package/dist/time-field.js.map +0 -1
- package/dist/time-range-field.js +0 -2
- package/dist/time-range-field.js.map +0 -1
- package/dist/tooltip.js +0 -2
- package/dist/tooltip.js.map +0 -1
- package/dist/virtual-grid.js +0 -2
- package/dist/virtual-grid.js.map +0 -1
- package/dist/virtual-masonry.js +0 -2
- package/dist/virtual-masonry.js.map +0 -1
- package/dist/virtual-spatial.js +0 -2
- package/dist/virtual-spatial.js.map +0 -1
- package/dist/year-picker.js +0 -2
- package/dist/year-picker.js.map +0 -1
- package/dist/year-range-picker.js +0 -2
- package/dist/year-range-picker.js.map +0 -1
- /package/dist/{internal/form-control-inventory.d.ts → form/control-inventory.d.ts} +0 -0
- /package/dist/{internal/form-control.d.ts → form/control.d.ts} +0 -0
- /package/dist/{internal → input}/decimal-input.d.ts +0 -0
- /package/dist/{internal → input}/decimal-input.js +0 -0
- /package/dist/{internal → input}/native-field.d.ts +0 -0
- /package/dist/{internal → input}/native-input.d.ts +0 -0
- /package/dist/{internal → input}/native-input.js +0 -0
- /package/dist/{internal → overlay}/popup.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.js +0 -0
- /package/dist/{internal → presence}/presence.d.ts +0 -0
- /package/dist/{internal → presence}/presence.js +0 -0
- /package/dist/{internal/picker-capability.d.ts → temporal/capability.d.ts} +0 -0
- /package/dist/{temporal-provider.d.ts → temporal/temporal-provider.d.ts} +0 -0
- /package/dist/{temporal-provider.js → temporal/temporal-provider.js} +0 -0
- /package/dist/{internal → virtual}/virtual-collection.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-collection.js +0 -0
- /package/dist/{internal → virtual}/virtual-core.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-core.js +0 -0
- /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-list.js +0 -0
|
@@ -1,31 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef, DataTableSourceResponse } from './schema.js';
|
|
2
|
+
export type { DataTableFieldPath, DataTableColumnID, DataTableCellValue, DataTableReactiveInput, DataTableWritableRef, DataTableLeafCellsFromSource, DataTableGroupCellsFromSource } from './schema.js';
|
|
3
|
+
import { type ComputedRef } from 'vue';
|
|
2
4
|
import { type DataTableColumnSizeState as DOMDataTableColumnSizeState, type DataTableDOMCommand as DOMDataTableCommand } from '@sectile/dom/tabular';
|
|
3
5
|
import { type DataTableCommand as SemanticDataTableCommand, type DataTableController as SemanticDataTableController, type DataTableEvent, type DataTableProjection, type DataTableUpdate } from '@sectile/tabular/data-table';
|
|
4
6
|
import type { TabularAcceptedViewState, TabularAccessState, TabularCellRecord, TabularColumnState, TabularError, TabularGroupID, TabularHeaderNodeID, TabularLimits, TabularQuery, TabularRequest, TabularRequestState, TabularResult, TabularRow, TabularRowID, TabularRowSelection, TabularSnapshot, TabularView, TabularViewResponse, TabularWireValue } from '@sectile/tabular';
|
|
5
|
-
import type { PrimitiveAs } from '
|
|
6
|
-
import { type HostConnection } from './
|
|
7
|
-
import { type TabularBodyComponent, type TabularComponent } from './
|
|
8
|
-
import { type
|
|
9
|
-
type
|
|
10
|
-
type
|
|
11
|
-
type DataTableNestedPath<Value, Depth extends DataTablePathDepth> = Value extends readonly unknown[] ? DataTableArrayPath<Value, Depth> : Value extends object ? `.${DataTableObjectPath<Value, Depth>}` : never;
|
|
12
|
-
type DataTableTupleIndexes<Value extends readonly unknown[]> = Exclude<keyof Value, keyof readonly unknown[]> & `${number}`;
|
|
13
|
-
type DataTableArrayPath<Value extends readonly unknown[], Depth extends DataTablePathDepth> = Depth['length'] extends 8 ? never : number extends Value['length'] ? `[${number}]` | `[${number}]${DataTableNestedPath<Value[number], DataTableNextDepth<Depth>>}` : {
|
|
14
|
-
[Index in DataTableTupleIndexes<Value>]: `[${Index}]` | `[${Index}]${DataTableNestedPath<Value[Index & keyof Value], DataTableNextDepth<Depth>>}`;
|
|
15
|
-
}[DataTableTupleIndexes<Value>];
|
|
16
|
-
type DataTableObjectPath<Value extends object, Depth extends DataTablePathDepth> = Depth['length'] extends 8 ? never : string extends keyof Value ? string : {
|
|
17
|
-
[Key in Extract<keyof Value, string>]: Key | `${Key}${DataTableNestedPath<Value[Key], DataTableNextDepth<Depth>>}`;
|
|
18
|
-
}[Extract<keyof Value, string>];
|
|
19
|
-
type DataTableResolveArrayRest<Value, Rest extends string> = Rest extends `[${number}]${infer Tail}` ? Value extends readonly (infer Item)[] ? Tail extends '' ? Item : DataTableResolveArrayRest<Item, Tail> : never : never;
|
|
20
|
-
type DataTableResolveSegment<Value, Segment extends string> = Segment extends `${infer Key}[${infer Index}]${infer Rest}` ? Key extends keyof Value ? Index extends `${number}` ? DataTableResolveArrayRest<Value[Key], `[${Index}]${Rest}`> : never : never : Segment extends keyof Value ? Value[Segment] : never;
|
|
21
|
-
type DataTableResolvePath<Value, Path extends string> = Path extends keyof Value ? Value[Path] : Path extends `${infer Segment}.${infer Rest}` ? DataTableResolvePath<DataTableResolveSegment<Value, Segment>, Rest> : DataTableResolveSegment<Value, Path>;
|
|
22
|
-
export type DataTableFieldPath<Cells extends object> = DataTableObjectPath<Cells, readonly []>;
|
|
23
|
-
export type DataTableColumnID<LeafCells extends object, GroupCells extends object = LeafCells> = DataTableFieldPath<LeafCells> | DataTableFieldPath<GroupCells>;
|
|
24
|
-
export type DataTableCellValue<Cells extends object, Column extends string> = Extract<DataTableResolvePath<Cells, Column>, TabularWireValue> extends never ? TabularWireValue : Extract<DataTableResolvePath<Cells, Column>, TabularWireValue>;
|
|
25
|
-
export type DataTableReactiveInput<T> = T | Ref<T> | (() => T);
|
|
26
|
-
export interface DataTableWritableRef<T> {
|
|
27
|
-
value: T;
|
|
28
|
-
}
|
|
7
|
+
import type { PrimitiveAs } from '../primitive.js';
|
|
8
|
+
import { type HostConnection } from './parts.js';
|
|
9
|
+
import { type TabularBodyComponent, type TabularComponent } from './components.js';
|
|
10
|
+
import { type VueProfileController } from './controller.js';
|
|
11
|
+
import { type ProfileContext } from './context.js';
|
|
12
|
+
import { type SourceResolver, type SourceReturn, type SourceStatus } from './source.js';
|
|
29
13
|
export type DataTableQuery = TabularQuery;
|
|
30
14
|
export type DataTableViewRow<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = TabularRow<LeafCells, GroupCells>;
|
|
31
15
|
export type DataTableView<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = TabularView<DataTableViewRow<LeafCells, GroupCells>>;
|
|
@@ -55,17 +39,6 @@ export type DataTableColumnSizeChangeHandler = (state: DataTableColumnSizeState)
|
|
|
55
39
|
export type DataTableSourceResolver<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = (request: TabularRequest, context: {
|
|
56
40
|
readonly signal: AbortSignal;
|
|
57
41
|
}) => DataTableViewResponse<LeafCells, GroupCells> | Promise<DataTableViewResponse<LeafCells, GroupCells>>;
|
|
58
|
-
type DataTableSourceResponse<Source extends SourceResolver> = Awaited<ReturnType<Source>>;
|
|
59
|
-
type DataTableSourceRows<Source extends SourceResolver> = DataTableSourceResponse<Source> extends {
|
|
60
|
-
readonly rows: readonly (infer Row)[];
|
|
61
|
-
} ? Row : never;
|
|
62
|
-
type DataTableSourceCells<Source extends SourceResolver, Kind extends 'leaf' | 'group'> = Extract<DataTableSourceRows<Source>, {
|
|
63
|
-
readonly kind: Kind;
|
|
64
|
-
}> extends infer Row ? Row extends {
|
|
65
|
-
readonly cells: infer Cells extends object;
|
|
66
|
-
} ? Cells : never : never;
|
|
67
|
-
export type DataTableLeafCellsFromSource<Source extends SourceResolver> = [DataTableSourceCells<Source, 'leaf'>] extends [never] ? TabularCellRecord : DataTableSourceCells<Source, 'leaf'>;
|
|
68
|
-
export type DataTableGroupCellsFromSource<Source extends SourceResolver> = [DataTableSourceCells<Source, 'group'>] extends [never] ? DataTableLeafCellsFromSource<Source> : DataTableSourceCells<Source, 'group'>;
|
|
69
42
|
export interface UseDataTableOptions<Source extends SourceResolver = DataTableSourceResolver> {
|
|
70
43
|
readonly source: Source;
|
|
71
44
|
readonly sourceKey?: DataTableReactiveInput<string>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTable}from"@sectile/dom/tabular";import{createDataTable}from"@sectile/tabular/data-table";import{createTabularParts}from"./parts.js";import{createTabularComponentSuite}from"./components.js";import{controlledValues,aliasVueProfileController,createVueProfileController,semanticController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;const activeConnections=new WeakMap;function useDataTable(options){assertExclusive(options,"query");assertExclusive(options,"rowSelection");assertExclusive(options,"columnState");assertExclusive(options,"accessState");assertExclusive(options,"expansion");assertExclusive(options,"columnSizeState");const initialValues=Object.freeze({...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion}});const semanticOptions={columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0},initialValues,...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange}};const semantic=createDataTable(semanticOptions);const base=createVueProfileController(semantic);const controller=Object.freeze({...base,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));if(options.initialView!==void 0)unwrapResult(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>{unwrapResult(controller.syncControlledValues(controlledValues(options)))};for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion])if(source2!==void 0)stops.push(watch(()=>source2.value,sync,{deep:false}));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrapResult(controller.dispatch({type:"replace-source"}))}));const dispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();dispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,hosts.get(controller)??{});if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{hosts.set(wrapped,Object.freeze({...hosts.get(wrapped),columnSizes:value}));const result=activeConnections.get(wrapped)?.syncControlledValues?.({...controlledValues(options),columnSizes:value});if(result!==void 0&&!result.ok)throw new TypeError("Controlled DataTable column sizes failed to synchronize.")},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTable");const privateKey=Symbol("SectileDataTableHost");function useDataTableContext(){return useProfile(publicKey,"useDataTableContext")}const parts=createTabularParts({profile:"data-table",prefix:"DataTable",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTable({controller:semanticController(controller),table:element,...hosts.get(controller),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>{if(connection===null)activeConnections.delete(controller);else activeConnections.set(controller,connection)}});const componentSuites=new WeakMap;function createDataTableComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTable",{Root:"Root",Caption:"Caption",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",SelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Disclosure:"Disclosure",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrapResult(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTableComponents,useDataTable,useDataTableContext};
|
|
2
|
+
//# sourceMappingURL=data-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/data-table.ts"],"mappings":"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","names":["source"],"file":"data-table.js"}
|
|
@@ -2,11 +2,13 @@ import { type ComputedRef } from 'vue';
|
|
|
2
2
|
import { type DataTreeGridColumnSizeState as DOMDataTreeGridColumnSizeState, type DataTreeGridDOMCommand } from '@sectile/dom/tabular';
|
|
3
3
|
import { type DataTreeGridCommand as SemanticDataTreeGridCommand, type DataTreeGridControlledValues, type DataTreeGridController as SemanticDataTreeGridController, type DataTreeGridCursorState, type DataTreeGridEditState, type DataTreeGridEvent, type DataTreeGridExpansionState, type DataTreeGridOptions as SemanticDataTreeGridOptions, type DataTreeGridProjection, type DataTreeGridState, type DataTreeGridUpdate } from '@sectile/tabular/data-tree-grid';
|
|
4
4
|
import type { TabularAcceptedViewState, TabularAccessState, TabularCellRecord, TabularColumnState, TabularError, TabularGroupID, TabularHeaderNodeID, TabularLimits, TabularQuery, TabularRequest, TabularRequestState, TabularResult, TabularRow, TabularRowID, TabularRowSelection, TabularView, TabularViewResponse, TabularWireValue } from '@sectile/tabular';
|
|
5
|
-
import type { PrimitiveAs } from '
|
|
6
|
-
import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef } from './
|
|
7
|
-
import { type TabularBodyComponent, type TabularComponent } from './
|
|
8
|
-
import { type HostConnection } from './
|
|
9
|
-
import { type
|
|
5
|
+
import type { PrimitiveAs } from '../primitive.js';
|
|
6
|
+
import type { DataTableColumnID, DataTableGroupCellsFromSource, DataTableLeafCellsFromSource, DataTableReactiveInput, DataTableWritableRef } from './schema.js';
|
|
7
|
+
import { type TabularBodyComponent, type TabularComponent } from './components.js';
|
|
8
|
+
import { type HostConnection } from './parts.js';
|
|
9
|
+
import { type VueProfileController } from './controller.js';
|
|
10
|
+
import { type ProfileContext } from './context.js';
|
|
11
|
+
import { type SourceResolver, type SourceReturn, type SourceStatus } from './source.js';
|
|
10
12
|
export type DataTreeGridQuery = TabularQuery;
|
|
11
13
|
export type DataTreeGridViewRow<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = TabularRow<LeafCells, GroupCells>;
|
|
12
14
|
export type DataTreeGridView<LeafCells extends object = TabularCellRecord, GroupCells extends object = LeafCells> = TabularView<DataTreeGridViewRow<LeafCells, GroupCells>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getCurrentScope,onScopeDispose,toValue,watch}from"vue";import{connectDataTreeGrid}from"@sectile/dom/tabular";import{createDataTreeGrid}from"@sectile/tabular/data-tree-grid";import{createTabularComponentSuite}from"./components.js";import{createTabularParts}from"./parts.js";import{aliasVueProfileController,controlledValues,createVueProfileController}from"./controller.js";import{useProfile}from"./context.js";import{useProfileSource}from"./source.js";const hosts=new WeakMap;const activeConnections=new WeakMap;function useDataTreeGrid(options){for(const property of["query","rowSelection","columnState","accessState","expansion","cursor","editState","columnSizeState"])assertExclusive(options,property);const semantic=createDataTreeGrid({columns:options.initialView?.columnSchema.columns??[],headers:options.initialView?.columnSchema.headers??[],...options.limits===void 0?{}:{limits:options.limits},...options.isCellDisabled===void 0?{}:{isCellDisabled:options.isCellDisabled},controlled:{query:options.query!==void 0,rowSelection:options.rowSelection!==void 0,columnState:options.columnState!==void 0,accessState:options.accessState!==void 0,expansion:options.expansion!==void 0,cursor:options.cursor!==void 0,edit:options.editState!==void 0},initialValues:{...options.query===void 0&&options.defaultQuery===void 0?{}:{query:options.query?.value??options.defaultQuery},...options.rowSelection===void 0&&options.defaultRowSelection===void 0?{}:{rowSelection:options.rowSelection?.value??options.defaultRowSelection},...options.columnState===void 0&&options.defaultColumnState===void 0?{}:{columnState:options.columnState?.value??options.defaultColumnState},...options.accessState===void 0&&options.defaultAccessState===void 0?{}:{accessState:options.accessState?.value??options.defaultAccessState},...options.expansion===void 0&&options.defaultExpansion===void 0?{}:{expansion:options.expansion?.value??options.defaultExpansion},...options.cursor===void 0&&options.defaultCursor===void 0?{}:{cursor:options.cursor?.value??options.defaultCursor},...options.editState===void 0&&options.defaultEditState===void 0?{}:{edit:options.editState?.value??options.defaultEditState}},...options.onQueryChange===void 0?{}:{onQueryChange:options.onQueryChange},...options.onRowSelectionChange===void 0?{}:{onRowSelectionChange:options.onRowSelectionChange},...options.onColumnStateChange===void 0?{}:{onColumnStateChange:options.onColumnStateChange},...options.onAccessStateChange===void 0?{}:{onAccessStateChange:options.onAccessStateChange},...options.onExpansionChange===void 0?{}:{onExpansionChange:options.onExpansionChange},...options.onCursorChange===void 0?{}:{onCursorChange:options.onCursorChange},...options.onEditStateChange===void 0?{}:{onEditStateChange:options.onEditStateChange}});const base=createVueProfileController(semantic);const controller=Object.freeze({...base,getProjection:()=>semantic.getProjection()});aliasVueProfileController(controller,base);hosts.set(controller,Object.freeze({...options.columnSizeState===void 0?{}:{columnSizes:options.columnSizeState.value},...options.defaultColumnSizeState===void 0?{}:{defaultColumnSizes:options.defaultColumnSizeState},...options.onColumnSizeStateChange===void 0?{}:{onColumnSizesChange:options.onColumnSizeStateChange}}));if(options.initialView!==void 0)unwrap(controller.synchronizeView(options.initialView));const source=useProfileSource(controller,options.source,{...options.onSourceError===void 0?{}:{onError:options.onSourceError},...options.onSourceStatusChange===void 0?{}:{onStatusChange:options.onSourceStatusChange}});const stops=[];const sync=()=>unwrap(controller.syncControlledValues(treeGridControlledValues(options)));for(const source2 of[options.query,options.rowSelection,options.columnState,options.accessState,options.expansion,options.cursor,options.editState])if(source2!==void 0)stops.push(watch(()=>source2.value,sync));if(options.sourceKey!==void 0)stops.push(watch(()=>toValue(options.sourceKey),()=>{unwrap(controller.dispatch({type:"replace-source"}))}));const rawDispose=controller.dispose;const wrapped=Object.freeze({...controller,status:source.status,error:source.error,reload:source.reload,cancel:source.cancel,replaceResolver:resolver=>source.replaceResolver(resolver),dispose:()=>{for(const stop of stops.splice(0))stop();source.dispose();rawDispose()}});aliasVueProfileController(wrapped,controller);hosts.set(wrapped,hosts.get(controller)??{});if(options.columnSizeState!==void 0)stops.push(watch(()=>options.columnSizeState.value,value=>{hosts.set(wrapped,Object.freeze({...hosts.get(wrapped),columnSizes:value}));const result=activeConnections.get(wrapped)?.syncControlledValues?.({...treeGridControlledValues(options),columnSizes:value});if(result!==void 0&&!result.ok)throw new TypeError("Controlled DataTreeGrid column sizes failed to synchronize.")},{deep:false}));if(getCurrentScope()!==void 0)onScopeDispose(wrapped.dispose);return wrapped}const publicKey=Symbol("SectileDataTreeGrid");const privateKey=Symbol("SectileDataTreeGridHost");function useDataTreeGridContext(){return useProfile(publicKey,"useDataTreeGridContext")}const parts=createTabularParts({profile:"data-tree-grid",prefix:"DataTreeGrid",publicKey,privateKey,connect:(element,controller,callbacks)=>connectDataTreeGrid({controller,root:element,...hosts.get(controller),...callbacks.onCommand===void 0?{}:{onCommand:callbacks.onCommand},onSnapshotChange:callbacks.onSnapshotChange}),connectionChanged:(controller,connection)=>{if(connection===null)activeConnections.delete(controller);else activeConnections.set(controller,connection)}});function treeGridControlledValues(options){return Object.freeze({...controlledValues(options),...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.editState===void 0?{}:{edit:options.editState.value}})}const componentSuites=new WeakMap;function createDataTreeGridComponents(controller){return createTabularComponentSuite(parts,controller,componentSuites,"DataTreeGrid",{Root:"Root",Header:"Header",HeaderRow:"HeaderRow",ColumnHeader:"ColumnHeader",SortTrigger:"SortTrigger",FilterControl:"FilterControl",ColumnResizeHandle:"ColumnResizeHandle",Body:"Body",Row:"Row",RowDisclosure:"Disclosure",RowSelectionControl:"SelectionControl",BulkSelectionControl:"BulkSelectionControl",Cell:"Cell",Editor:"Editor"})}function assertExclusive(options,property){const values=options;const fallback=`default${property[0].toUpperCase()}${property.slice(1)}`;if(values[property]!==void 0&&values[fallback]!==void 0)throw new TypeError(`${property} and ${fallback} are mutually exclusive.`)}function unwrap(result){if(!result.ok)throw new TypeError(result.error.message);return result.value}export{createDataTreeGridComponents,useDataTreeGrid,useDataTreeGridContext};
|
|
2
|
+
//# sourceMappingURL=data-tree-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/data-tree-grid.ts"],"mappings":"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","names":["source"],"file":"data-tree-grid.js"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Component, type InjectionKey } from 'vue';
|
|
2
2
|
import type { TabularCellAddress, TabularColumnID, TabularGroupID, TabularHeaderNodeID, TabularRowID } from '@sectile/tabular';
|
|
3
|
-
import { type ProfileContext
|
|
3
|
+
import { type ProfileContext } from './context.js';
|
|
4
|
+
import { type VueProfileController } from './controller.js';
|
|
4
5
|
export interface HostConnection {
|
|
5
6
|
disconnect(): void;
|
|
6
7
|
refresh(): void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide}from"vue";import{Primitive}from"../primitive.js";import{provideProfile,useProfile}from"./context.js";import{refreshVueProfileController,stateOf}from"./controller.js";const asProp={type:[String,Object,Function],default:"div"};const asChildProp={type:Boolean,default:false};const identityProps={rowID:{type:String,default:void 0},column:{type:String,required:true}};function createTabularParts(config){const rowKey=Symbol(`Sectile${config.prefix}Row`);const usePublic=name=>useProfile(config.publicKey,`${config.prefix}${name}`);const usePrivate=name=>useProfile(config.privateKey,`${config.prefix}${name}`);const structural=(suffix,part,tag)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{as:{...asProp,default:tag},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic(suffix);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="header"||part==="body"?"rowgroup":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const boundPart=(suffix,part,tag,props,bind,rowAware=false)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{...props,as:{...asProp,default:tag},asChild:asChildProp},setup(runtimeProps,{attrs,slots}){const context=usePrivate(suffix);const inheritedRow=rowAware?inject(rowKey,null):null;const values=()=>{const resolved=runtimeProps;if(!rowAware||resolved["rowID"]!==void 0)return resolved;const row=inheritedRow?.value;if(row===void 0)throw new TypeError(`${config.prefix}${suffix} requires rowID outside automatic ${config.prefix}Body.`);return Object.freeze({...resolved,rowID:row.id})};let release;onBeforeUnmount(()=>release?.());const elementRef=value=>{release?.();release=void 0;if(!(value instanceof HTMLElement)||context.connection.value===null)return;release=bind(context.connection.value,value,values())};return()=>h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="row"?"row":part==="column-header"?"columnheader":part==="cell"?"gridcell":void 0}),{default:()=>slots["default"]?.(partSlot(context,inheritedRow))})}});const Provider=defineComponent({name:`Sectile${config.prefix}Provider`,props:{controller:{type:Object,required:true}},setup(props,{slots}){const context=provideProfile(config.publicKey,config.privateKey,props.controller);return()=>slots["default"]?.(rootSlot(context))}});const rootTag=config.profile==="data-table"?"table":"div";const Root=defineComponent({name:`Sectile${config.prefix}Root`,inheritAttrs:false,props:{onCommand:{type:Function,default:void 0},onError:{type:Function,default:void 0},as:{...asProp,default:rootTag},asChild:asChildProp},setup(props,{attrs,expose,slots}){const context=usePrivate("Root");let element=null;const connect=()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null;if(element===null)return;try{context.connection.value=config.connect(element,context.controller,{...props.onCommand===void 0?{}:{onCommand:props.onCommand},onSnapshotChange:()=>refreshVueProfileController(context.controller)});config.connectionChanged?.(context.controller,context.connection.value)}catch(error){props.onError?.(error);if(props.onError===void 0)throw error}};onMounted(connect);onBeforeUnmount(()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null});expose({controller:context.controller,refresh:()=>context.connection.value?.refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:value=>{element=value instanceof HTMLElement?value:null},"data-scope":config.profile,"data-part":"root",role:config.profile==="data-grid"?"grid":config.profile==="data-tree-grid"?"treegrid":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const table=config.profile==="data-table";const Caption=structural("Caption","caption","caption");const Header=structural("Header","header",table?"thead":"div");const HeaderRow=defineComponent({name:`Sectile${config.prefix}HeaderRow`,inheritAttrs:false,props:{as:{...asProp,default:table?"tr":"div"},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic("HeaderRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:table?void 0:"row","data-scope":config.profile,"data-part":"header-row"}),{default:()=>slots["default"]?.(rootSlot(context))})}});const ColumnHeader=boundPart("ColumnHeader","column-header",table?"th":"div",{column:{type:String,default:void 0},header:{type:String,default:void 0}},(connection,element,props)=>{const column=props["column"];const header=props["header"];if(column===void 0===(header===void 0)){throw new TypeError(`${config.prefix}ColumnHeader requires exactly one of column or header.`)}const reference=column===void 0?{headerNodeID:String(header)}:{columnID:String(column)};if(table&&element instanceof HTMLTableCellElement)connection.setHeaderCellAttributes?.(element,reference);else connection.setColumnHeaderAttributes?.(element,reference);return void 0});const Row=boundPart("Row","row",table?"tr":"div",{rowID:{type:String,required:true}},(connection,element,props)=>{const result=connection.registerRow(element,{rowID:String(props["rowID"]),expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0});const AutomaticRow=defineComponent({name:`Sectile${config.prefix}AutomaticRow`,props:{row:{type:Object,required:true}},setup(props,{slots}){provide(rowKey,computed(()=>props.row));return()=>h(Row,{rowID:props.row.id,"data-row-id":props.row.id,"data-row-kind":props.row.kind,...props.row.kind==="group"&&props.row.contextOnly===true?{"data-context-only":""}:{}},{default:()=>slots["default"]?.()})}});const Body=defineComponent({name:`Sectile${config.prefix}Body`,inheritAttrs:false,props:{manual:{type:Boolean,default:false},as:{...asProp,default:table?"tbody":"div"},asChild:asChildProp},slots:Object,setup(props,{attrs,slots}){const context=usePublic("Body");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":"body",role:table?void 0:"rowgroup"}),{default:()=>{const root=rootSlot(context);if(props.manual)return slots["default"]?.(root);const rows=root["rows"];if(rows.length===0)return slots["empty"]?.(root);return rows.map((row,rowIndex)=>h(AutomaticRow,{key:row.id,row},{default:()=>slots["default"]?.(Object.freeze({...root,row,rowIndex,isGroup:row.kind==="group"}))}))}})}});const Cell=boundPart("Cell","cell",table?"td":"div",identityProps,(connection,element,props)=>{const result=connection.registerCell(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0},true);const SortTrigger=boundPart("SortTrigger","sort-trigger","button",{column:{type:String,required:true},comparator:{type:String,default:"default"}},(connection,element,props)=>connection.bindSortTrigger(element,{columnID:String(props["column"]),comparator:String(props["comparator"])}));const FilterControl=boundPart("FilterControl","filter-control","input",{scope:{type:String,required:true},column:{type:String,default:void 0},id:{type:String,required:true},predicate:{type:String,required:true}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLSelectElement?connection.bindFilterControl(element,props["scope"]==="column"?{scope:"column",columnID:String(props["column"]),id:String(props["id"]),predicate:String(props["predicate"])}:{scope:"global",id:String(props["id"]),predicate:String(props["predicate"])}):void 0);const ColumnResizeHandle=boundPart("ColumnResizeHandle","column-resize-handle","button",{column:{type:String,required:true},minSize:{type:Number,default:void 0},maxSize:{type:Number,default:void 0}},(connection,element,props)=>connection.bindColumnResizeHandle(element,{columnID:String(props["column"]),...typeof props["minSize"]==="number"?{minSize:props["minSize"]}:{},...typeof props["maxSize"]==="number"?{maxSize:props["maxSize"]}:{}}));const SelectionControl=boundPart(table?"SelectionControl":"RowSelectionControl","selection-control","input",{rowID:{type:String,default:void 0},name:{type:String,required:true},value:{type:String,default:void 0},form:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>{const rowID=String(props["rowID"]);const options={rowID,name:String(props["name"]),value:props["value"]===void 0?rowID:String(props["value"]),...typeof props["form"]==="string"?{form:props["form"]}:{},disabled:props["disabled"]===true};return table?connection.bindSelectionControl?.(element,options):connection.bindRowSelectionControl?.(element,options)},true);const BulkSelectionControl=boundPart("BulkSelectionControl","bulk-selection-control","button",{target:{type:Object,required:true},disabled:{type:Boolean,default:false}},(connection,element,props)=>connection.bindBulkSelectionControl(element,{target:props["target"],disabled:props["disabled"]===true}));const Disclosure=boundPart(config.profile==="data-tree-grid"?"RowDisclosure":"Disclosure","disclosure","button",{rowID:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>config.profile==="data-tree-grid"?connection.bindRowDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}):connection.bindDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}),true);const Editor=boundPart("Editor","editor","input",{...identityProps,parseValue:{type:Function,default:void 0},commitOnChange:{type:Boolean,default:false}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLTextAreaElement||element instanceof HTMLSelectElement?connection.bindEditor(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},...typeof props["parseValue"]==="function"?{parseValue:props["parseValue"]}:{},commitOnChange:props["commitOnChange"]===true}):void 0,true);return Object.freeze({Provider,Root,Caption,Header,HeaderRow,ColumnHeader,SortTrigger,FilterControl,ColumnResizeHandle,Body,Row,SelectionControl,BulkSelectionControl,Disclosure,Cell,Editor})}function rootSlot(context){const state=stateOf(context.snapshot.value);const profile=context.snapshot.value;return Object.freeze({controller:context.controller,snapshot:context.snapshot.value,acceptedViewState:state.acceptedViewState,requestState:state.requestState,query:state.query,rowSelection:state.rowSelection,columnState:state.columnState,accessState:state.accessState,expansion:state.expansion,rows:state.acceptedViewState.kind==="none"?Object.freeze([]):state.acceptedViewState.view.rows,...profile.cursor===void 0?{}:{cursor:profile.cursor},...profile.edit===void 0?{}:{editState:profile.edit}})}function partSlot(context,row){const root=rootSlot(context);return row===null?root:Object.freeze({...root,row:row.value,isGroup:row.value.kind==="group"})}export{createTabularParts};
|
|
2
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/parts.ts"],"mappings":"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","names":[],"file":"parts.js"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { TabularCellRecord, TabularWireValue } from '@sectile/tabular';
|
|
3
|
+
import type { SourceResolver } from './source.js';
|
|
4
|
+
type DataTablePathDepth = readonly unknown[];
|
|
5
|
+
type DataTableNextDepth<Depth extends DataTablePathDepth> = readonly [...Depth, unknown];
|
|
6
|
+
type DataTableNestedPath<Value, Depth extends DataTablePathDepth> = Value extends readonly unknown[] ? DataTableArrayPath<Value, Depth> : Value extends object ? `.${DataTableObjectPath<Value, Depth>}` : never;
|
|
7
|
+
type DataTableTupleIndexes<Value extends readonly unknown[]> = Exclude<keyof Value, keyof readonly unknown[]> & `${number}`;
|
|
8
|
+
type DataTableArrayPath<Value extends readonly unknown[], Depth extends DataTablePathDepth> = Depth['length'] extends 8 ? never : number extends Value['length'] ? `[${number}]` | `[${number}]${DataTableNestedPath<Value[number], DataTableNextDepth<Depth>>}` : {
|
|
9
|
+
[Index in DataTableTupleIndexes<Value>]: `[${Index}]` | `[${Index}]${DataTableNestedPath<Value[Index & keyof Value], DataTableNextDepth<Depth>>}`;
|
|
10
|
+
}[DataTableTupleIndexes<Value>];
|
|
11
|
+
type DataTableObjectPath<Value extends object, Depth extends DataTablePathDepth> = Depth['length'] extends 8 ? never : string extends keyof Value ? string : {
|
|
12
|
+
[Key in Extract<keyof Value, string>]: Key | `${Key}${DataTableNestedPath<Value[Key], DataTableNextDepth<Depth>>}`;
|
|
13
|
+
}[Extract<keyof Value, string>];
|
|
14
|
+
type DataTableResolveArrayRest<Value, Rest extends string> = Rest extends `[${number}]${infer Tail}` ? Value extends readonly (infer Item)[] ? Tail extends '' ? Item : DataTableResolveArrayRest<Item, Tail> : never : never;
|
|
15
|
+
type DataTableResolveSegment<Value, Segment extends string> = Segment extends `${infer Key}[${infer Index}]${infer Rest}` ? Key extends keyof Value ? Index extends `${number}` ? DataTableResolveArrayRest<Value[Key], `[${Index}]${Rest}`> : never : never : Segment extends keyof Value ? Value[Segment] : never;
|
|
16
|
+
type DataTableResolvePath<Value, Path extends string> = Path extends keyof Value ? Value[Path] : Path extends `${infer Segment}.${infer Rest}` ? DataTableResolvePath<DataTableResolveSegment<Value, Segment>, Rest> : DataTableResolveSegment<Value, Path>;
|
|
17
|
+
export type DataTableFieldPath<Cells extends object> = DataTableObjectPath<Cells, readonly []>;
|
|
18
|
+
export type DataTableColumnID<LeafCells extends object, GroupCells extends object = LeafCells> = DataTableFieldPath<LeafCells> | DataTableFieldPath<GroupCells>;
|
|
19
|
+
export type DataTableCellValue<Cells extends object, Column extends string> = Extract<DataTableResolvePath<Cells, Column>, TabularWireValue> extends never ? TabularWireValue : Extract<DataTableResolvePath<Cells, Column>, TabularWireValue>;
|
|
20
|
+
export type DataTableReactiveInput<T> = T | Ref<T> | (() => T);
|
|
21
|
+
export interface DataTableWritableRef<T> {
|
|
22
|
+
value: T;
|
|
23
|
+
}
|
|
24
|
+
export type DataTableSourceResponse<Source extends SourceResolver> = Awaited<ReturnType<Source>>;
|
|
25
|
+
type DataTableSourceRows<Source extends SourceResolver> = DataTableSourceResponse<Source> extends {
|
|
26
|
+
readonly rows: readonly (infer Row)[];
|
|
27
|
+
} ? Row : never;
|
|
28
|
+
type DataTableSourceCells<Source extends SourceResolver, Kind extends 'leaf' | 'group'> = Extract<DataTableSourceRows<Source>, {
|
|
29
|
+
readonly kind: Kind;
|
|
30
|
+
}> extends infer Row ? Row extends {
|
|
31
|
+
readonly cells: infer Cells extends object;
|
|
32
|
+
} ? Cells : never : never;
|
|
33
|
+
export type DataTableLeafCellsFromSource<Source extends SourceResolver> = [DataTableSourceCells<Source, 'leaf'>] extends [never] ? TabularCellRecord : DataTableSourceCells<Source, 'leaf'>;
|
|
34
|
+
export type DataTableGroupCellsFromSource<Source extends SourceResolver> = [DataTableSourceCells<Source, 'group'>] extends [never] ? DataTableLeafCellsFromSource<Source> : DataTableSourceCells<Source, 'group'>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tabular/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ShallowRef } from 'vue';
|
|
2
|
+
import type { TabularRequest, TabularViewResponse } from '@sectile/tabular';
|
|
3
|
+
import type { VueProfileController } from './controller.js';
|
|
4
|
+
export type SourceStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
5
|
+
export type SourceResolver = (request: TabularRequest, context: {
|
|
6
|
+
readonly signal: AbortSignal;
|
|
7
|
+
}) => TabularViewResponse | Promise<TabularViewResponse>;
|
|
8
|
+
export interface SourceOptions {
|
|
9
|
+
readonly onError?: (error: unknown) => void;
|
|
10
|
+
readonly onStatusChange?: (status: SourceStatus) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface SourceReturn<Resolver extends SourceResolver = SourceResolver> {
|
|
13
|
+
readonly status: Readonly<ShallowRef<SourceStatus>>;
|
|
14
|
+
readonly error: Readonly<ShallowRef<unknown | null>>;
|
|
15
|
+
reload(): void;
|
|
16
|
+
cancel(): void;
|
|
17
|
+
replaceResolver(resolver: Resolver): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
export declare function useProfileSource<State, Event, Command>(controller: VueProfileController<State, Event, Command>, initialResolver: SourceResolver, options?: SourceOptions): SourceReturn;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getCurrentInstance,onBeforeUnmount,onMounted,readonly,shallowRef}from"vue";function useProfileSource(controller,initialResolver,options={}){const status=shallowRef("idle");const error=shallowRef(null);let resolver=initialResolver;let active=null;let mounted=false;let disposed=false;let queued=null;const setStatus=next=>{status.value=next;options.onStatusChange?.(next)};const abandon=requestID=>{controller.abandonRequest(requestID)};const cancel=()=>{const current=active;const pending=queued;active=null;queued=null;if(current!==null){current.abort.abort();abandon(current.requestID)}if(pending!==null&&pending.requestID!==current?.requestID)abandon(pending.requestID);if(!disposed)setStatus("idle")};const execute=request=>{if(!mounted||disposed){queued=request;return}if(active!==null){active.abort.abort();abandon(active.requestID)}const abort=new AbortController;active={requestID:request.requestID,abort};error.value=null;setStatus("loading");Promise.resolve().then(()=>resolver(request,{signal:abort.signal})).then(response=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;const synchronized=controller.synchronizeView(response);if(!synchronized.ok){active=null;error.value=synchronized.error;setStatus("error");options.onError?.(synchronized.error);return}active=null;setStatus("success")},reason=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;active=null;abandon(request.requestID);error.value=reason;setStatus("error");options.onError?.(reason)})};const attached=controller.attachRequestExecutor(command=>execute(command.request));if(!attached.ok)throw new TypeError(attached.error.message);const releaseExecutor=attached.value;const reload=()=>{const requested=controller.requestView();if(!requested.ok)throw new TypeError(requested.error.message)};const replaceResolver=next=>{cancel();resolver=next;const replaced=controller.dispatch({type:"replace-source"});if(!replaced.ok)throw new TypeError(replaced.error.message)};const dispose=()=>{if(disposed)return;disposed=true;cancel();releaseExecutor()};if(getCurrentInstance()!==null){onMounted(()=>{mounted=true;const pending=queued??controller.requestState.value.pendingRequest;queued=null;if(pending!==null)execute(pending)});onBeforeUnmount(dispose)}return Object.freeze({status:readonly(status),error:readonly(error),reload,cancel,replaceResolver,dispose})}export{useProfileSource};
|
|
2
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/source.ts"],"mappings":"AAAA,OAAS,mBAAoB,gBAAiB,UAAW,SAAU,eAAmC,MAsBhG,SAAU,iBACd,WACA,gBACA,QAAyB,CAAA,EAAE,CAE3B,MAAM,OAAS,WAAyB,MAAM,EAC9C,MAAM,MAAQ,WAA2B,IAAI,EAC7C,IAAI,SAAW,gBACf,IAAI,OAAiF,KACrF,IAAI,QAAU,MACd,IAAI,SAAW,MACf,IAAI,OAAgC,KAEpC,MAAM,UAAa,MAA4B,CAC7C,OAAO,MAAQ,KACf,QAAQ,iBAAiB,IAAI,CAC/B,EACA,MAAM,QAAW,WAA2B,CAAG,WAAW,eAAe,SAAS,CAAG,EACrF,MAAM,OAAS,IAAW,CACxB,MAAM,QAAU,OAChB,MAAM,QAAU,OAChB,OAAS,KACT,OAAS,KACT,GAAI,UAAY,KAAM,CACpB,QAAQ,MAAM,MAAK,EACnB,QAAQ,QAAQ,SAAS,CAC3B,CACA,GAAI,UAAY,MAAQ,QAAQ,YAAc,SAAS,UAAW,QAAQ,QAAQ,SAAS,EAC3F,GAAI,CAAC,SAAU,UAAU,MAAM,CACjC,EACA,MAAM,QAAW,SAAiC,CAChD,GAAI,CAAC,SAAW,SAAU,CAAE,OAAS,QAAS,MAAQ,CACtD,GAAI,SAAW,KAAM,CACnB,OAAO,MAAM,MAAK,EAClB,QAAQ,OAAO,SAAS,CAC1B,CACA,MAAM,MAAQ,IAAI,gBAClB,OAAS,CAAE,UAAW,QAAQ,UAAW,KAAK,EAC9C,MAAM,MAAQ,KACd,UAAU,SAAS,EACnB,QAAQ,QAAO,EAAG,KAAK,IAAM,SAAS,QAAS,CAAE,OAAQ,MAAM,MAAM,CAAE,CAAC,EAAE,KAAM,UAAY,CAC1F,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,MAAM,aAAe,WAAW,gBAAgB,QAAQ,EACxD,GAAI,CAAC,aAAa,GAAI,CACpB,OAAS,KACT,MAAM,MAAQ,aAAa,MAC3B,UAAU,OAAO,EACjB,QAAQ,UAAU,aAAa,KAAK,EACpC,MACF,CACA,OAAS,KACT,UAAU,SAAS,CACrB,EAAI,QAAmB,CACrB,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,OAAS,KACT,QAAQ,QAAQ,SAAS,EACzB,MAAM,MAAQ,OACd,UAAU,OAAO,EACjB,QAAQ,UAAU,MAAM,CAC1B,CAAC,CACH,EACA,MAAM,SAAW,WAAW,sBAAuB,SAAY,QAAS,QAA4D,OAAO,CAAC,EAC5I,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,EAC5D,MAAM,gBAAkB,SAAS,MACjC,MAAM,OAAS,IAAW,CACxB,MAAM,UAAY,WAAW,YAAW,EACxC,GAAI,CAAC,UAAU,GAAI,MAAM,IAAI,UAAU,UAAU,MAAM,OAAO,CAChE,EACA,MAAM,gBAAmB,MAA8B,CACrD,OAAM,EACN,SAAW,KACX,MAAM,SAAW,WAAW,SAAS,CAAE,KAAM,gBAAgB,CAAW,EACxE,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,CAC9D,EACA,MAAM,QAAU,IAAW,CACzB,GAAI,SAAU,OACd,SAAW,KACX,OAAM,EACN,gBAAe,CACjB,EAEA,GAAI,mBAAkB,IAAO,KAAM,CACjC,UAAU,IAAK,CACb,QAAU,KACV,MAAM,QAAU,QAAU,WAAW,aAAa,MAAM,eACxD,OAAS,KACT,GAAI,UAAY,KAAM,QAAQ,OAAO,CACvC,CAAC,EACD,gBAAgB,OAAO,CACzB,CACA,OAAO,OAAO,OAAO,CAAE,OAAQ,SAAS,MAAM,EAAG,MAAO,SAAS,KAAK,EAAG,OAAQ,OAAQ,gBAAiB,OAAO,CAAE,CACrH","names":[],"file":"source.js"}
|
package/dist/tags-input.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTagsInput}from"@sectile/dom/tags-input";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTagsInput}from"@sectile/dom/tags-input";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection}from"./host-provider.js";const rootKey=Symbol("SectileTagsInputRoot");const itemKey=Symbol("SectileTagsInputItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const TagsInputRoot=defineComponent({name:"SectileTagsInputRoot",inheritAttrs:false,props:{modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:"Tags"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const root=shallowRef(null);const input=shallowRef(null);const submissionElements=[];const initialTags=Object.freeze([...props.defaultValue]);const initialInput=props.defaultInputValue;const participation=useCompositeFormControl({root,focusTarget:input,submissions:()=>state.value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities})),reset:()=>{queueMicrotask(()=>{if(!valueControlled)localTags.value=initialTags;if(!inputControlled)localInput.value=initialInput;connect()})}});provideFormControlOwner();const connection=shallowRef();const localTags=shallowRef(props.modelValue??initialTags);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const valueControlled=props.modelValue!==void 0;const inputControlled=props.inputValue!==void 0;let proposedInputValue=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;const state=computed(()=>Object.freeze({value:props.modelValue??localTags.value,inputValue:props.inputValue??localInput.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localTags.value=snapshot.tags;localInput.value=snapshot.draft;refreshDeletes()};const refreshDeletes=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-tags-delete]").forEach(element=>{connection.value?.setTagAttributes(element,Number(element.dataset["sectileTagsDelete"]))})};const syncControlledValues=()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...inputControlled?{inputValue:props.inputValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};const connect=()=>{connection.value?.disconnect();connection.value=void 0;if(!mounted||root.value===null||input.value===null)return;connection.value=createTagsInput({root:root.value,input:input.value,direction:direction.value,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value:props.modelValue}:{defaultValue:localTags.value},...inputControlled?{inputValue:proposedInputValue??props.inputValue}:{defaultInputValue:localInput.value},disabled:props.disabled,readOnly:props.readonly,label:props.label,onValueChange:next=>{localTags.value=next;emit("update:modelValue",next)},onInputValueChange:next=>{localInput.value=next;emit("update:inputValue",next);if(!inputControlled)return;proposedInputValue=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedInputValue!==proposal)return;proposedInputValue=null;syncControlledValues()})},onUpdate:refresh});refresh()};const requestConnect=()=>{if(inputComposing||reconnectPending){reconnectPending=true;return}connect()};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;connect()},0)};provide(rootKey,{state,label:computed(()=>props.label),registerRoot:element=>{root.value=element??null},registerInput:element=>{input.value=element??null},registerDelete:(element,index)=>connection.value?.setTagAttributes(element,index),setInputComposing,clear:()=>{for(let index=state.value.value.length-1;index>=0;index-=1)connection.value?.handleEvent({type:"remove",index})}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;proposedInputValue=null;connection.value?.disconnect();connection.value=void 0});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies,direction],requestConnect);watch([()=>props.modelValue,()=>props.inputValue],()=>{proposedInputValue=null;syncControlledValues()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group","aria-label":props.label,dir:direction.value,"data-scope":"tags-input","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return visual;return[visual,...state.value.value.map((tag,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value:tag,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const TagsInputItem=defineComponent({name:"SectileTagsInputItem",inheritAttrs:false,props:{index:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItem");const state=computed(()=>({index:props.index,value:root.state.value.value[props.index]??"",disabled:root.state.value.disabled,readonly:root.state.value.readonly}));provide(itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item","data-index":props.index}),{default:()=>slots["default"]?.(state.value)})}});const TagsInputItemText=defineComponent({name:"SectileTagsInputItemText",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const item=useItem("TagsInputItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"tags-input","data-part":"item-text"}),{default:()=>slots["default"]?.(item.state.value)??item.state.value.value})}});const TagsInputItemDelete=defineComponent({name:"SectileTagsInputItemDelete",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputItemDelete");const item=useItem("TagsInputItemDelete");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDelete(node,item.state.value.index)},"data-sectile-tags-delete":item.state.value.index,"data-scope":"tags-input","data-part":"item-delete",disabled:item.state.value.disabled||item.state.value.readonly}),{default:()=>slots["default"]?.(item.state.value)})}});const TagsInputInput=defineComponent({name:"SectileTagsInputInput",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("TagsInputInput");const renderServerValue=typeof window==="undefined";return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerInput(node instanceof HTMLInputElement?node:void 0),type:"text",...renderServerValue?{value:root.state.value.inputValue}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"data-scope":"tags-input","data-part":"input"}))}});const TagsInputClear=defineComponent({name:"SectileTagsInputClear",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TagsInputClear");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly||root.state.value.value.length===0,onClick:root.clear,"data-scope":"tags-input","data-part":"clear"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside TagsInputRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside TagsInputItem.`);return item}export{TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot};
|
|
2
2
|
//# sourceMappingURL=tags-input.js.map
|
package/dist/tags-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tags-input.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,gBAAiB,UAAW,
|
|
1
|
+
{"version":3,"sources":["../src/tags-input.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,gBAAiB,UAAW,QACxF,WAAY,UACP,MACP,OAAS,oBAAyE,0BAClF,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,0BACzC,OAAS,4BAA+B,oBACxC,OACE,kCACA,4BACK,oBACP,OAAS,qBAAwB,qBAgCjC,MAAM,QAAU,OAAO,sBAAsB,EAC7C,MAAM,QAAU,OAAO,sBAAsB,EAC7C,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,MAAM,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGvH,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CACL,WAAY,CAAE,KAAM,MAAsC,QAAS,MAAS,EAC5E,aAAc,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC7E,WAAY,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,kBAAmB,CAAE,KAAM,OAAQ,QAAS,EAAE,EAChG,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACtF,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAM,EAAI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAClF,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACrF,SAAU,CAAE,KAAM,OAAuC,QAAS,MAAS,EAC3E,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE7H,MAAO,CACL,oBAAsB,QAAuC,KAC7D,oBAAsB,QAA4B,MAEpD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,UAAY,iBAAgB,EAClC,MAAM,KAAO,WAA+B,IAAI,EAAG,MAAM,MAAQ,WAAoC,IAAI,EACzG,MAAM,mBAAqD,CAAA,EAC3D,MAAM,YAAc,OAAO,OAAO,CAAC,GAAG,MAAM,YAAY,CAAC,EACzD,MAAM,aAAe,MAAM,kBAC3B,MAAM,cAAgB,wBAAwB,CAC5C,KACA,YAAa,MACb,YAAa,IAAM,MAAM,MAAM,MAAM,IAAI,CAAC,EAAG,SAAW,CACtD,QAAS,IAAM,mBAAmB,KAAK,GAAK,KAC5C,aAAc,mCACd,EACF,MAAO,IAAK,CACV,eAAe,IAAK,CAClB,GAAI,CAAC,gBAAiB,UAAU,MAAQ,YACxC,GAAI,CAAC,gBAAiB,WAAW,MAAQ,aACzC,QAAO,CACT,CAAC,CACH,EACD,EACD,wBAAuB,EACvB,MAAM,WAAa,WAAU,EAC7B,MAAM,UAAY,WAA8B,MAAM,YAAc,WAAW,EAC/E,MAAM,WAAa,WAAW,MAAM,YAAc,MAAM,iBAAiB,EACzE,MAAM,gBAAkB,MAAM,aAAe,OAAW,MAAM,gBAAkB,MAAM,aAAe,OACrG,IAAI,mBAAoC,KACxC,IAAI,eAAiB,MACrB,IAAI,iBAAmB,MACvB,IAAI,eAAuD,KAC3D,IAAI,QAAU,MACd,MAAM,MAAQ,SAAiC,IAAM,OAAO,OAAO,CACjE,MAAO,MAAM,YAAc,UAAU,MAAO,WAAY,MAAM,YAAc,WAAW,MACvF,SAAU,MAAM,SAAU,SAAU,MAAM,SAC3C,CAAC,EACF,MAAM,QAAU,IAAW,CACzB,MAAM,SAAW,WAAW,OAAO,YAAW,EAAG,MACjD,GAAI,WAAa,OAAW,OAC5B,UAAU,MAAQ,SAAS,KAAM,WAAW,MAAQ,SAAS,MAC7D,eAAc,CAChB,EACA,MAAM,eAAiB,IAAW,CAChC,GAAI,KAAK,QAAU,MAAQ,WAAW,QAAU,OAAW,OAC3D,KAAK,MAAM,iBAA8B,4BAA4B,EAAE,QAAS,SAAW,CACzF,WAAW,OAAO,iBAAiB,QAAS,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC,CAC1F,CAAC,CACH,EACA,MAAM,qBAAuB,IAAW,CACtC,GAAI,WAAW,QAAU,OAAW,OACpC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CACnD,GAAI,gBAAkB,CAAE,MAAO,MAAM,UAA+B,EAAK,CAAA,EACzE,GAAI,gBAAkB,CAAE,WAAY,MAAM,UAAoB,EAAK,CAAA,EACpE,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,QAAO,CACT,EACA,MAAM,QAAU,IAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,OACnB,GAAI,CAAC,SAAW,KAAK,QAAU,MAAQ,MAAM,QAAU,KAAM,OAC7D,WAAW,MAAQ,gBAAgB,CACjC,KAAM,KAAK,MAAO,MAAO,MAAM,MAAO,UAAW,UAAU,MAC3D,GAAI,MAAM,WAAa,OAAY,CAAA,EAAK,CAAE,SAAU,MAAM,QAAQ,EAClE,GAAI,gBAAkB,CAAE,MAAO,MAAM,UAA+B,EAAK,CAAE,aAAc,UAAU,KAAK,EACxG,GAAI,gBACA,CAAE,WAAY,oBAAsB,MAAM,UAAoB,EAC9D,CAAE,kBAAmB,WAAW,KAAK,EACzC,SAAU,MAAM,SAAU,SAAU,MAAM,SAAU,MAAO,MAAM,MACjE,cAAgB,MAAQ,CAAG,UAAU,MAAQ,KAAM,KAAK,oBAAqB,IAAI,CAAG,EACpF,mBAAqB,MAAQ,CAC3B,WAAW,MAAQ,KACnB,KAAK,oBAAqB,IAAI,EAC9B,GAAI,CAAC,gBAAiB,OACtB,mBAAqB,KACrB,MAAM,SAAW,KACjB,KAAK,SAAS,IAAK,CACjB,GAAI,WAAW,QAAU,QAAa,qBAAuB,SAAU,OACvE,mBAAqB,KACrB,qBAAoB,CACtB,CAAC,CACH,EACA,SAAU,QACX,EACD,QAAO,CACT,EACA,MAAM,eAAiB,IAAW,CAChC,GAAI,gBAAkB,iBAAkB,CACtC,iBAAmB,KACnB,MACF,CACA,QAAO,CACT,EACA,MAAM,kBAAqB,WAA4B,CACrD,eAAiB,UACjB,GAAI,WAAa,CAAC,kBAAoB,iBAAmB,KAAM,OAC/D,eAAiB,WAAW,IAAK,CAC/B,eAAiB,KACjB,GAAI,CAAC,SAAW,eAAgB,OAChC,iBAAmB,MACnB,QAAO,CACT,EAAG,CAAC,CACN,EACA,QAAqB,QAAS,CAC5B,MAAO,MAAO,SAAS,IAAM,MAAM,KAAK,EACxC,aAAe,SAAW,CAAG,KAAK,MAAQ,SAAW,IAAM,EAAG,cAAgB,SAAW,CAAG,MAAM,MAAQ,SAAW,IAAM,EAC3H,eAAgB,CAAC,QAAS,QAAU,WAAW,OAAO,iBAAiB,QAAS,KAAK,EACrF,kBACA,MAAO,IAAK,CAAG,QAAS,MAAQ,MAAM,MAAM,MAAM,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,WAAW,OAAO,YAAY,CAAE,KAAM,SAAU,KAAK,CAAE,CAAG,EACjJ,EACD,UAAU,IAAK,CAAG,QAAU,KAAM,QAAO,CAAI,CAAC,EAC9C,gBAAgB,IAAK,CACnB,QAAU,MACV,GAAI,iBAAmB,KAAM,aAAa,cAAc,EACxD,eAAiB,KACjB,iBAAmB,MACnB,mBAAqB,KACrB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,MACrB,CAAC,EACD,MAAM,CAAC,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,MAAO,IAAM,MAAM,SAAU,SAAS,EAAG,cAAc,EACtH,MAAM,CAAC,IAAM,MAAM,WAAY,IAAM,MAAM,UAAU,EAAG,IAAK,CAC3D,mBAAqB,KACrB,qBAAoB,CACtB,CAAC,EACD,MAAO,IAAiB,CACtB,MAAM,OAAS,EAAE,UAAW,WAAW,MAAO,CAC5C,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAiB,CAAG,KAAK,MAAQ,gBAAgB,YAAc,KAAO,IAAM,EAC/H,KAAM,QAAS,aAAc,MAAM,MAAO,IAAK,UAAU,MAAO,aAAc,aAAc,YAAa,OACzG,gBAAiB,MAAM,SAAW,GAAK,OAAW,gBAAiB,MAAM,SAAW,GAAK,QACxF,cAAc,aAAa,KAAK,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,EACxF,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,OAAW,OAAO,OACjG,MAAO,CAAC,OAAQ,GAAG,MAAM,MAAM,MAAM,IAAI,CAAC,IAAK,QAAU,EAAE,QAAS,CAClE,IAAM,SAAoB,CACxB,mBAAmB,KAAK,EAAI,mBAAmB,iBAAmB,QAAU,IAC9E,EACA,KAAM,SAAU,KAAM,MAAM,KAAM,KAAM,MAAM,KAAM,MAAO,IAAK,SAAU,MAAM,SAChF,MAAO,yBACR,CAAC,CAAC,CACL,CACF,EACD,EAKM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CAAE,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EAAI,GAAG,SAAS,EAC9D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,eAAe,EACpC,MAAM,MAAQ,SAAiC,KAAO,CACpD,MAAO,MAAM,MAAO,MAAO,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,GAAK,GAClE,SAAU,KAAK,MAAM,MAAM,SAAU,SAAU,KAAK,MAAM,MAAM,UAChE,EACF,QAAqB,QAAS,CAAE,KAAK,CAAE,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,aAAc,YAAa,OAAQ,aAAc,MAAM,MAC5G,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,CACxD,EACD,EAEM,MAAM,kBAAoB,gBAAgB,CAC/C,KAAM,2BAA4B,aAAc,MAAO,MAAO,UAC9D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,mBAAmB,EACxC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,aAAc,YAAa,YAChF,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,GAAK,KAAK,MAAM,MAAM,KAAK,CAAE,CACvF,EACD,EAEM,MAAM,oBAAsB,gBAAgB,CACjD,KAAM,6BAA8B,aAAc,MAClD,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACzI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,qBAAqB,EAAG,MAAM,KAAO,QAAQ,qBAAqB,EACvF,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,KAAM,MAAM,KAAO,SAAW,SAAW,OAC/E,WAAa,MAAiB,CAAG,GAAI,gBAAgB,YAAa,KAAK,eAAe,KAAM,KAAK,MAAM,MAAM,KAAK,CAAG,EACrH,2BAA4B,KAAK,MAAM,MAAM,MAAO,aAAc,aAAc,YAAa,cAC7F,SAAU,KAAK,MAAM,MAAM,UAAY,KAAK,MAAM,MAAM,SACzD,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAC7D,EACD,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAC7C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,OAAO,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACxI,MAAM,MAAO,CAAE,KAAK,EAAE,CACpB,MAAM,KAAO,QAAQ,gBAAgB,EACrC,MAAM,kBAAoB,OAAO,SAAW,YAC5C,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAC7B,WAAa,MAAkB,KAAK,cAAc,gBAAgB,iBAAmB,KAAO,MAAS,EACrG,KAAM,OACN,GAAI,kBAAoB,CAAE,MAAO,KAAK,MAAM,MAAM,UAAU,EAAK,CAAA,EACjE,SAAU,KAAK,MAAM,MAAM,SAC3B,SAAU,KAAK,MAAM,MAAM,SAAU,aAAc,KAAK,MAAM,MAC9D,mBAAoB,IAAM,KAAK,kBAAkB,IAAI,EACrD,iBAAkB,IAAM,KAAK,kBAAkB,KAAK,EACpD,aAAc,aAAc,YAAa,QAC1C,CAAC,CACJ,EACD,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAC7C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACzI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,gBAAgB,EACrC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,KAAM,MAAM,KAAO,SAAW,SAAW,OAC/E,SAAU,KAAK,MAAM,MAAM,UAAY,KAAK,MAAM,MAAM,UAAY,KAAK,MAAM,MAAM,MAAM,SAAW,EACtG,QAAS,KAAK,MAAO,aAAc,aAAc,YAAa,QAC/D,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAC7D,EACD,EAED,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,qCAAqC,EAAG,OAAO,IAAM,CACjM,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,qCAAqC,EAAG,OAAO,IAAM","names":[],"file":"tags-input.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CalendarMonthValue, CalendarPolicies, CalendarViewMode } from '@sectile/dom/temporal/calendar';
|
|
2
2
|
import type { DateValue } from '@sectile/dom/temporal/calendar';
|
|
3
3
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
4
|
-
import { type PickerCellSlotProps, type PickerMonthCellSlotProps, type PickerPartProps, type PickerRootSlotProps } from './
|
|
4
|
+
import { type PickerCellSlotProps, type PickerMonthCellSlotProps, type PickerPartProps, type PickerRootSlotProps } from './picker.js';
|
|
5
5
|
export interface CalendarRootProps {
|
|
6
6
|
readonly modelValue?: DateValue | null;
|
|
7
7
|
readonly defaultValue?: DateValue | null;
|
|
@@ -128,15 +128,15 @@ export declare const CalendarRoot: import("vue").DefineComponent<import("vue").E
|
|
|
128
128
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
129
129
|
export type CalendarValueChangeHandler = NonNullable<InstanceType<typeof CalendarRoot>['$props']['onUpdate:modelValue']>;
|
|
130
130
|
export type CalendarHighlightedValueChangeHandler = NonNullable<InstanceType<typeof CalendarRoot>['$props']['onUpdate:highlightedValue']>;
|
|
131
|
-
export declare const CalendarContent: import("./
|
|
132
|
-
export declare const CalendarGrid: import("./
|
|
131
|
+
export declare const CalendarContent: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
132
|
+
export declare const CalendarGrid: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
133
133
|
export declare const CalendarCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
134
134
|
value: {
|
|
135
135
|
type: PropType<DateValue>;
|
|
136
136
|
required: true;
|
|
137
137
|
};
|
|
138
138
|
as: {
|
|
139
|
-
type: PropType<import("
|
|
139
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
140
140
|
default: string;
|
|
141
141
|
};
|
|
142
142
|
asChild: {
|
|
@@ -149,7 +149,7 @@ export declare const CalendarCell: import("vue").DefineComponent<import("vue").E
|
|
|
149
149
|
required: true;
|
|
150
150
|
};
|
|
151
151
|
as: {
|
|
152
|
-
type: PropType<import("
|
|
152
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
153
153
|
default: string;
|
|
154
154
|
};
|
|
155
155
|
asChild: {
|
|
@@ -157,7 +157,7 @@ export declare const CalendarCell: import("vue").DefineComponent<import("vue").E
|
|
|
157
157
|
default: boolean;
|
|
158
158
|
};
|
|
159
159
|
}>> & Readonly<{}>, {
|
|
160
|
-
as: import("
|
|
160
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
161
161
|
asChild: boolean;
|
|
162
162
|
}, SlotsType<{
|
|
163
163
|
default: (props: PickerCellSlotProps) => VNodeChild;
|
|
@@ -168,7 +168,7 @@ export declare const CalendarMonthCell: import("vue").DefineComponent<import("vu
|
|
|
168
168
|
required: true;
|
|
169
169
|
};
|
|
170
170
|
as: {
|
|
171
|
-
type: PropType<import("
|
|
171
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
172
172
|
default: string;
|
|
173
173
|
};
|
|
174
174
|
asChild: {
|
|
@@ -181,7 +181,7 @@ export declare const CalendarMonthCell: import("vue").DefineComponent<import("vu
|
|
|
181
181
|
required: true;
|
|
182
182
|
};
|
|
183
183
|
as: {
|
|
184
|
-
type: PropType<import("
|
|
184
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
185
185
|
default: string;
|
|
186
186
|
};
|
|
187
187
|
asChild: {
|
|
@@ -189,7 +189,7 @@ export declare const CalendarMonthCell: import("vue").DefineComponent<import("vu
|
|
|
189
189
|
default: boolean;
|
|
190
190
|
};
|
|
191
191
|
}>> & Readonly<{}>, {
|
|
192
|
-
as: import("
|
|
192
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
193
193
|
asChild: boolean;
|
|
194
194
|
}, SlotsType<{
|
|
195
195
|
default: (props: PickerMonthCellSlotProps) => VNodeChild;
|
|
@@ -204,7 +204,7 @@ export declare const CalendarInput: import("vue").DefineComponent<import("vue").
|
|
|
204
204
|
default: undefined;
|
|
205
205
|
};
|
|
206
206
|
as: {
|
|
207
|
-
type: PropType<import("
|
|
207
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
208
208
|
default: string;
|
|
209
209
|
};
|
|
210
210
|
asChild: {
|
|
@@ -221,7 +221,7 @@ export declare const CalendarInput: import("vue").DefineComponent<import("vue").
|
|
|
221
221
|
default: undefined;
|
|
222
222
|
};
|
|
223
223
|
as: {
|
|
224
|
-
type: PropType<import("
|
|
224
|
+
type: PropType<import("../primitive.js").PrimitiveAs>;
|
|
225
225
|
default: string;
|
|
226
226
|
};
|
|
227
227
|
asChild: {
|
|
@@ -231,16 +231,16 @@ export declare const CalendarInput: import("vue").DefineComponent<import("vue").
|
|
|
231
231
|
}>> & Readonly<{}>, {
|
|
232
232
|
name: string;
|
|
233
233
|
form: string;
|
|
234
|
-
as: import("
|
|
234
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
235
235
|
asChild: boolean;
|
|
236
236
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
237
|
-
export declare const CalendarPreviousWeek: import("./
|
|
238
|
-
export declare const CalendarNextWeek: import("./
|
|
239
|
-
export declare const CalendarPreviousMonth: import("./
|
|
240
|
-
export declare const CalendarNextMonth: import("./
|
|
241
|
-
export declare const CalendarPreviousYear: import("./
|
|
242
|
-
export declare const CalendarNextYear: import("./
|
|
243
|
-
export declare const CalendarWeekViewTrigger: import("./
|
|
244
|
-
export declare const CalendarMonthViewTrigger: import("./
|
|
245
|
-
export declare const CalendarYearViewTrigger: import("./
|
|
237
|
+
export declare const CalendarPreviousWeek: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
238
|
+
export declare const CalendarNextWeek: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
239
|
+
export declare const CalendarPreviousMonth: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
240
|
+
export declare const CalendarNextMonth: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
241
|
+
export declare const CalendarPreviousYear: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
242
|
+
export declare const CalendarNextYear: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
243
|
+
export declare const CalendarWeekViewTrigger: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
244
|
+
export declare const CalendarMonthViewTrigger: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
245
|
+
export declare const CalendarYearViewTrigger: import("./picker.js").PickerRootPartComponent<"calendar">;
|
|
246
246
|
export type { CalendarMonthValue, CalendarPolicies, CalendarViewMode, DateValue, PickerCellSlotProps as CalendarCellSlotProps, PickerMonthCellSlotProps as CalendarMonthCellSlotProps, PickerPartProps as CalendarPartProps, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineComponent,h,mergeProps}from'vue';import{PickerCell,PickerContent,PickerGrid,PickerMonthCell,createPickerInput,createPickerMove,createPickerRoot,createPickerViewTrigger,specializePickerRootPart}from'./picker.js';import{calendarCapability}from'./capabilities/calendar.js';const CalendarProviderRoot=/* @__PURE__ */createPickerRoot(calendarCapability,'SectileCalendarProviderRoot',{scope:'calendar',defaultOpen:true,defaultView:'month',inline:true});export const CalendarRoot=/* @__PURE__ */defineComponent({name:'SectileCalendarRoot',inheritAttrs:false,props:{modelValue:{type:Object,default:undefined},defaultValue:{type:Object,default:null},highlightedValue:{type:Object,default:undefined},defaultHighlightedValue:{type:Object,default:undefined},defaultView:{type:String,default:'month'},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:undefined},policies:{type:Object,default:undefined}},emits:{'update:modelValue':_value=>true,'update:highlightedValue':_value=>true},slots:Object,setup(props,{attrs,emit,slots}){return()=>h(CalendarProviderRoot,mergeProps(attrs,props,{'onUpdate:modelValue':value=>emit('update:modelValue',value),'onUpdate:highlightedValue':value=>emit('update:highlightedValue',value)}),slots)}});export const CalendarContent=/* @__PURE__ */specializePickerRootPart('calendar',PickerContent);export const CalendarGrid=/* @__PURE__ */specializePickerRootPart('calendar',PickerGrid);export const CalendarCell=PickerCell;export const CalendarMonthCell=PickerMonthCell;export const CalendarInput=/* @__PURE__ */createPickerInput('input','SectileCalendarInput','hidden');export const CalendarPreviousWeek=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('week',-1,'SectileCalendarPreviousWeek'));export const CalendarNextWeek=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('week',1,'SectileCalendarNextWeek'));export const CalendarPreviousMonth=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('month',-1,'SectileCalendarPreviousMonth'));export const CalendarNextMonth=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('month',1,'SectileCalendarNextMonth'));export const CalendarPreviousYear=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('year',-1,'SectileCalendarPreviousYear'));export const CalendarNextYear=/* @__PURE__ */specializePickerRootPart('calendar',createPickerMove('year',1,'SectileCalendarNextYear'));export const CalendarWeekViewTrigger=/* @__PURE__ */specializePickerRootPart('calendar',createPickerViewTrigger('week','SectileCalendarWeekViewTrigger'));export const CalendarMonthViewTrigger=/* @__PURE__ */specializePickerRootPart('calendar',createPickerViewTrigger('month','SectileCalendarMonthViewTrigger'));export const CalendarYearViewTrigger=/* @__PURE__ */specializePickerRootPart('calendar',createPickerViewTrigger('year','SectileCalendarYearViewTrigger'));
|
|
2
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","names":["defineComponent","h","mergeProps","PickerCell","PickerContent","PickerGrid","PickerMonthCell","createPickerInput","createPickerMove","createPickerRoot","createPickerViewTrigger","specializePickerRootPart","calendarCapability","CalendarProviderRoot","scope","defaultOpen","defaultView","inline","CalendarRoot","name","inheritAttrs","props","modelValue","type","Object","default","undefined","defaultValue","highlightedValue","defaultHighlightedValue","String","disabled","Boolean","readonly","required","label","policies","emits","_value","slots","setup","attrs","emit","value","CalendarContent","CalendarGrid","CalendarCell","CalendarMonthCell","CalendarInput","CalendarPreviousWeek","CalendarNextWeek","CalendarPreviousMonth","CalendarNextMonth","CalendarPreviousYear","CalendarNextYear","CalendarWeekViewTrigger","CalendarMonthViewTrigger","CalendarYearViewTrigger"],"sources":["../../src/temporal/calendar.ts"],"mappings":"OAOEA,gBACAC,EACAC,eAIK,aAELC,WACAC,cACAC,WACAC,gBACAC,kBACAC,iBACAC,iBACAC,wBACAC,6BAKK,qBACEC,uBAA0B,6BA2BnC,MAAMC,oCAAuCJ,iBAAiBG,mBAAoB,8BAA+B,CAC/GE,MAAO,WACPC,YAAa,KACbC,YAAa,QACbC,OAAQ,cAGH,MAAMC,4BAA+BlB,gBAAgB,CAC1DmB,KAAM,sBACNC,aAAc,MACdC,MAAO,CACLC,WAAY,CAAEC,KAAMC,OAAsCC,QAASC,WACnEC,aAAc,CAAEJ,KAAMC,OAAsCC,QAAS,MACrEG,iBAAkB,CAAEL,KAAMC,OAA+BC,QAASC,WAClEG,wBAAyB,CAAEN,KAAMC,OAA+BC,QAASC,WACzEV,YAAa,CAAEO,KAAMO,OAAsCL,QAAS,SACpEM,SAAU,CAAER,KAAMS,QAASP,QAAS,OACpCQ,SAAU,CAAEV,KAAMS,QAASP,QAAS,OACpCS,SAAU,CAAEX,KAAMS,QAASP,QAAS,OACpCU,MAAO,CAAEZ,KAAMO,OAAQL,QAASC,WAChCU,SAAU,CAAEb,KAAMC,OAAsCC,QAASC,YAEnEW,MAAO,CACL,oBAAsBC,QAAsC,KAC5D,0BAA4BA,QAA+B,MAE7DC,MAAOf,OACP,KAAAgB,CAAMnB,OAAOoB,MAAOC,KAAMH,QACxB,MAAO,IAAkBtC,EAAEY,qBAAsBX,WAAWuC,MAAOpB,MAAO,CACxE,sBAAwBsB,OAA0DD,KAAK,oBAAqBC,OAC5G,4BAA8BA,OAAqBD,KAAK,0BAA2BC,SACjFJ,MACN,WAIK,MAAMK,+BAAkCjC,yBAAyB,WAAYP,sBAC7E,MAAMyC,4BAA+BlC,yBAAyB,WAAYN,mBAC1E,MAAMyC,aAAe3C,kBACrB,MAAM4C,kBAAoBzC,uBAC1B,MAAM0C,6BAAgCzC,kBAAkB,QAAS,uBAAwB,iBACzF,MAAM0C,oCAAuCtC,yBAAyB,WAAYH,iBAAiB,QAAS,EAAG,uCAC/G,MAAM0C,gCAAmCvC,yBAAyB,WAAYH,iBAAiB,OAAQ,EAAG,mCAC1G,MAAM2C,qCAAwCxC,yBAAyB,WAAYH,iBAAiB,SAAU,EAAG,wCACjH,MAAM4C,iCAAoCzC,yBAAyB,WAAYH,iBAAiB,QAAS,EAAG,oCAC5G,MAAM6C,oCAAuC1C,yBAAyB,WAAYH,iBAAiB,QAAS,EAAG,uCAC/G,MAAM8C,gCAAmC3C,yBAAyB,WAAYH,iBAAiB,OAAQ,EAAG,mCAC1G,MAAM+C,uCAA0C5C,yBAAyB,WAAYD,wBAAwB,OAAQ,0CACrH,MAAM8C,wCAA2C7C,yBAAyB,WAAYD,wBAAwB,QAAS,2CACvH,MAAM+C,uCAA0C9C,yBAAyB,WAAYD,wBAAwB,OAAQ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const calendarCapability: import("../capability.js").PickerFamilyCapability<"calendar">;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createCalendar}from"@sectile/dom/temporal/calendar";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{definePickerFamilyCapability}from"../capability.js";const calendarCapability=definePickerFamilyCapability({kind:"calendar",connect:options=>createCalendar(options),formatInput:(_granularity,_part,value)=>formatDateValue(value)});export{calendarCapability};
|
|
2
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/capabilities/calendar.ts"],"mappings":"AAAA,OAAS,mBAAsB,iCAC/B,OAAS,oBAAuC,mCAChD,OAAS,iCAAoC,mBAEtC,MAAM,mBAAqB,6BAA6B,CAC7D,KAAM,WACN,QAAU,SAAY,eAAe,OAAgB,EACrD,YAAa,CAAC,aAAc,MAAO,QAAU,gBAAgB,KAAkB,EAChF","names":[],"file":"calendar.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const datePickerCapability: import("../capability.js").PickerFamilyCapability<"date">;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createDatePicker}from"@sectile/dom/temporal/date-picker";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{definePickerFamilyCapability}from"../capability.js";const datePickerCapability=definePickerFamilyCapability({kind:"date",connect:options=>createDatePicker(options),formatInput:(granularity,_part,value)=>formatPeriod(value,granularity)});function formatPeriod(value,granularity){return granularity==="year"?String(value.year):granularity==="month"?`${String(value.year).padStart(4,"0")}-${String(value.month).padStart(2,"0")}`:formatDateValue(value)}export{datePickerCapability};
|
|
2
|
+
//# sourceMappingURL=date-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/capabilities/date-picker.ts"],"mappings":"AAAA,OAAS,qBAAwB,oCACjC,OAAS,oBAAuC,mCAChD,OAAS,iCAAsE,mBAExE,MAAM,qBAAuB,6BAA6B,CAC/D,KAAM,OACN,QAAU,SAAY,iBAAiB,OAAgB,EACvD,YAAa,CAAC,YAAa,MAAO,QAAU,aAAa,MAAoB,WAAW,EACzF,EAED,SAAS,aAAa,MAAkB,YAAwC,CAC9E,OAAO,cAAgB,OACnB,OAAO,MAAM,IAAI,EACjB,cAAgB,QACd,GAAG,OAAO,MAAM,IAAI,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,SAAS,EAAG,GAAG,CAAC,GAC9E,gBAAgB,KAAK,CAC7B","names":[],"file":"date-picker.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const dateRangePickerCapability: import("../capability.js").PickerFamilyCapability<"date-range">;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createDateRangePicker}from"@sectile/dom/temporal/date-range-picker";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{definePickerFamilyCapability}from"../capability.js";const dateRangePickerCapability=definePickerFamilyCapability({kind:"date-range",connect:options=>createDateRangePicker(options),formatInput:(granularity,part,value)=>{const range=value;return formatPeriod(part.startsWith("start")?range.start:range.end,granularity)}});function formatPeriod(value,granularity){return granularity==="year"?String(value.year):granularity==="month"?`${String(value.year).padStart(4,"0")}-${String(value.month).padStart(2,"0")}`:formatDateValue(value)}export{dateRangePickerCapability};
|
|
2
|
+
//# sourceMappingURL=date-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/capabilities/date-range-picker.ts"],"mappings":"AAAA,OAAS,0BAA6B,0CACtC,OAAS,oBAAuD,mCAChE,OAAS,iCAAsE,mBAExE,MAAM,0BAA4B,6BAA6B,CACpE,KAAM,aACN,QAAU,SAAY,sBAAsB,OAAgB,EAC5D,YAAa,CAAC,YAAa,KAAM,QAAS,CACxC,MAAM,MAAQ,MACd,OAAO,aAAa,KAAK,WAAW,OAAO,EAAI,MAAM,MAAQ,MAAM,IAAK,WAAW,CACrF,EACD,EAED,SAAS,aAAa,MAAkB,YAAwC,CAC9E,OAAO,cAAgB,OACnB,OAAO,MAAM,IAAI,EACjB,cAAgB,QACd,GAAG,OAAO,MAAM,IAAI,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,SAAS,EAAG,GAAG,CAAC,GAC9E,gBAAgB,KAAK,CAC7B","names":[],"file":"date-range-picker.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const dateTimePickerCapability: import("../capability.js").PickerFamilyCapability<"date-time">;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createDateTimePicker}from"@sectile/dom/temporal/date-time-picker";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{formatDateTimeValue}from"@sectile/dom/temporal/date-time-field";import{formatTimeValue}from"@sectile/dom/temporal/time-field";import{definePickerFamilyCapability}from"../capability.js";const dateTimePickerCapability=definePickerFamilyCapability({kind:"date-time",connect:options=>createDateTimePicker(options),formatInput:(_granularity,part,value)=>{const dateTime=value;return part==="time-input"?formatTimeValue(dateTime.time):part==="date-input"?formatDateValue(dateTime.date):formatDateTimeValue(dateTime)}});export{dateTimePickerCapability};
|
|
2
|
+
//# sourceMappingURL=date-time-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/capabilities/date-time-picker.ts"],"mappings":"AAAA,OAAS,yBAA4B,yCACrC,OAAS,oBAAuB,mCAChC,OAAS,wBAA+C,wCACxD,OAAS,oBAAuB,mCAChC,OAAS,iCAAoC,mBAEtC,MAAM,yBAA2B,6BAA6B,CACnE,KAAM,YACN,QAAU,SAAY,qBAAqB,OAAgB,EAC3D,YAAa,CAAC,aAAc,KAAM,QAAS,CACzC,MAAM,SAAW,MACjB,OAAO,OAAS,aACZ,gBAAgB,SAAS,IAAI,EAC7B,OAAS,aACP,gBAAgB,SAAS,IAAI,EAC7B,oBAAoB,QAAQ,CACpC,EACD","names":[],"file":"date-time-picker.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const dateTimeRangePickerCapability: import("../capability.js").PickerFamilyCapability<"date-time-range">;
|