@vuu-ui/vuu-utils 0.13.9 → 0.13.11
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/cjs/node_modules/@dnd-kit/abstract/index.js +625 -0
- package/cjs/node_modules/@dnd-kit/abstract/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js +85 -0
- package/cjs/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js +91 -0
- package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/index.js +1649 -0
- package/cjs/node_modules/@dnd-kit/dom/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/sortable.js +833 -0
- package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/dom/utilities.js +1389 -0
- package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +310 -0
- package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/hooks.js +86 -0
- package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/sortable.js +177 -0
- package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/react/utilities.js +19 -0
- package/cjs/node_modules/@dnd-kit/react/utilities.js.map +1 -0
- package/cjs/node_modules/@dnd-kit/state/dist/index.js +272 -0
- package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +11 -0
- package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/cjs/packages/vuu-utils/src/DataWindow.js +76 -0
- package/cjs/packages/vuu-utils/src/DataWindow.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ShellContext.js +13 -0
- package/cjs/packages/vuu-utils/src/ShellContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ThemeProvider.js +85 -0
- package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/array-utils.js +87 -0
- package/cjs/packages/vuu-utils/src/array-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/box-utils.js +53 -0
- package/cjs/packages/vuu-utils/src/box-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/column-utils.js +891 -0
- package/cjs/packages/vuu-utils/src/column-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/common-types.js +15 -0
- package/cjs/packages/vuu-utils/src/common-types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/component-registry.js +140 -0
- package/cjs/packages/vuu-utils/src/component-registry.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js +20 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js +24 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +33 -0
- package/cjs/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +20 -0
- package/cjs/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
- package/cjs/packages/vuu-utils/src/cookie-utils.js +10 -0
- package/cjs/packages/vuu-utils/src/cookie-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/css-utils.js +9 -0
- package/cjs/packages/vuu-utils/src/css-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/data-utils.js +81 -0
- package/cjs/packages/vuu-utils/src/data-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js +248 -0
- package/cjs/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js +14 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js +23 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js +207 -0
- package/cjs/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/date-utils.js +10 -0
- package/cjs/packages/vuu-utils/src/date/date-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js +25 -0
- package/cjs/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js +66 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/types.js +27 -0
- package/cjs/packages/vuu-utils/src/date/types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/debug-utils.js +34 -0
- package/cjs/packages/vuu-utils/src/debug-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/event-emitter.js +113 -0
- package/cjs/packages/vuu-utils/src/event-emitter.js.map +1 -0
- package/cjs/packages/vuu-utils/src/feature-utils.js +139 -0
- package/cjs/packages/vuu-utils/src/feature-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js +136 -0
- package/cjs/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js +76 -0
- package/cjs/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
- package/cjs/packages/vuu-utils/src/form-utils.js +48 -0
- package/cjs/packages/vuu-utils/src/form-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/formatting-utils.js +68 -0
- package/cjs/packages/vuu-utils/src/formatting-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/getUniqueId.js +6 -0
- package/cjs/packages/vuu-utils/src/getUniqueId.js.map +1 -0
- package/cjs/packages/vuu-utils/src/group-utils.js +27 -0
- package/cjs/packages/vuu-utils/src/group-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/html-utils.js +162 -0
- package/cjs/packages/vuu-utils/src/html-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/index.js +414 -0
- package/cjs/packages/vuu-utils/src/index.js.map +1 -0
- package/cjs/packages/vuu-utils/src/input-utils.js +10 -0
- package/cjs/packages/vuu-utils/src/input-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/invariant.js +13 -0
- package/cjs/packages/vuu-utils/src/invariant.js.map +1 -0
- package/cjs/packages/vuu-utils/src/itemToString.js +23 -0
- package/cjs/packages/vuu-utils/src/itemToString.js.map +1 -0
- package/cjs/packages/vuu-utils/src/json-utils.js +103 -0
- package/cjs/packages/vuu-utils/src/json-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/keyboard-utils.js +30 -0
- package/cjs/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/keyset.js +72 -0
- package/cjs/packages/vuu-utils/src/keyset.js.map +1 -0
- package/cjs/packages/vuu-utils/src/list-utils.js +11 -0
- package/cjs/packages/vuu-utils/src/list-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/local-storage-utils.js +20 -0
- package/cjs/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/logging-utils.js +65 -0
- package/cjs/packages/vuu-utils/src/logging-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/menu-utils.js +10 -0
- package/cjs/packages/vuu-utils/src/menu-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/module-utils.js +6 -0
- package/cjs/packages/vuu-utils/src/module-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/moving-window.js +103 -0
- package/cjs/packages/vuu-utils/src/moving-window.js.map +1 -0
- package/cjs/packages/vuu-utils/src/nanoid/index.js +22 -0
- package/cjs/packages/vuu-utils/src/nanoid/index.js.map +1 -0
- package/cjs/packages/vuu-utils/src/perf-utils.js +35 -0
- package/cjs/packages/vuu-utils/src/perf-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/promise-utils.js +42 -0
- package/cjs/packages/vuu-utils/src/promise-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js +86 -0
- package/cjs/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/range-utils.js +152 -0
- package/cjs/packages/vuu-utils/src/range-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/react-utils.js +36 -0
- package/cjs/packages/vuu-utils/src/react-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/round-decimal.js +86 -0
- package/cjs/packages/vuu-utils/src/round-decimal.js.map +1 -0
- package/cjs/packages/vuu-utils/src/row-utils.js +44 -0
- package/cjs/packages/vuu-utils/src/row-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/selection-utils.js +246 -0
- package/cjs/packages/vuu-utils/src/selection-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/shell-layout-types.js +13 -0
- package/cjs/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
- package/cjs/packages/vuu-utils/src/sort-utils.js +78 -0
- package/cjs/packages/vuu-utils/src/sort-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/table-schema-utils.js +13 -0
- package/cjs/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/text-utils.js +21 -0
- package/cjs/packages/vuu-utils/src/text-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/tree-utils.js +106 -0
- package/cjs/packages/vuu-utils/src/tree-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/ts-utils.js +12 -0
- package/cjs/packages/vuu-utils/src/ts-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/typeahead-utils.js +6 -0
- package/cjs/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/url-utils.js +21 -0
- package/cjs/packages/vuu-utils/src/url-utils.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useId.js +9 -0
- package/cjs/packages/vuu-utils/src/useId.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +17 -0
- package/cjs/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
- package/cjs/packages/vuu-utils/src/useStateRef.js +23 -0
- package/cjs/packages/vuu-utils/src/useStateRef.js.map +1 -0
- package/esm/node_modules/@dnd-kit/abstract/index.js +612 -0
- package/esm/node_modules/@dnd-kit/abstract/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js +82 -0
- package/esm/node_modules/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/esm/node_modules/@dnd-kit/collision/dist/index.js +86 -0
- package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/index.js +1642 -0
- package/esm/node_modules/@dnd-kit/dom/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/sortable.js +827 -0
- package/esm/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
- package/esm/node_modules/@dnd-kit/dom/utilities.js +1344 -0
- package/esm/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js +303 -0
- package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/hooks.js +80 -0
- package/esm/node_modules/@dnd-kit/react/hooks.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/sortable.js +175 -0
- package/esm/node_modules/@dnd-kit/react/sortable.js.map +1 -0
- package/esm/node_modules/@dnd-kit/react/utilities.js +17 -0
- package/esm/node_modules/@dnd-kit/react/utilities.js.map +1 -0
- package/esm/node_modules/@dnd-kit/state/dist/index.js +259 -0
- package/esm/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js +4 -0
- package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/esm/packages/vuu-utils/src/DataWindow.js +74 -0
- package/esm/packages/vuu-utils/src/DataWindow.js.map +1 -0
- package/esm/packages/vuu-utils/src/ShellContext.js +10 -0
- package/esm/packages/vuu-utils/src/ShellContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/ThemeProvider.js +78 -0
- package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/array-utils.js +79 -0
- package/esm/packages/vuu-utils/src/array-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/box-utils.js +47 -0
- package/esm/packages/vuu-utils/src/box-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/column-utils.js +815 -0
- package/esm/packages/vuu-utils/src/column-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/common-types.js +13 -0
- package/esm/packages/vuu-utils/src/common-types.js.map +1 -0
- package/esm/packages/vuu-utils/src/component-registry.js +124 -0
- package/esm/packages/vuu-utils/src/component-registry.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js +18 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js +20 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js +29 -0
- package/esm/packages/vuu-utils/src/context-definitions/DataSourceProvider.js.map +1 -0
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +17 -0
- package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -0
- package/esm/packages/vuu-utils/src/cookie-utils.js +8 -0
- package/esm/packages/vuu-utils/src/cookie-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/css-utils.js +7 -0
- package/esm/packages/vuu-utils/src/css-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/data-utils.js +68 -0
- package/esm/packages/vuu-utils/src/data-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js +246 -0
- package/esm/packages/vuu-utils/src/datasource/BaseDataSource.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js +8 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-action-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js +21 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-filter-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js +184 -0
- package/esm/packages/vuu-utils/src/datasource/datasource-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/date-utils.js +8 -0
- package/esm/packages/vuu-utils/src/date/date-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js +21 -0
- package/esm/packages/vuu-utils/src/date/dateTimePattern.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/formatter.js +63 -0
- package/esm/packages/vuu-utils/src/date/formatter.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/types.js +21 -0
- package/esm/packages/vuu-utils/src/date/types.js.map +1 -0
- package/esm/packages/vuu-utils/src/debug-utils.js +32 -0
- package/esm/packages/vuu-utils/src/debug-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/event-emitter.js +111 -0
- package/esm/packages/vuu-utils/src/event-emitter.js.map +1 -0
- package/esm/packages/vuu-utils/src/feature-utils.js +125 -0
- package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/filters/filter-utils.js +120 -0
- package/esm/packages/vuu-utils/src/filters/filter-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js +72 -0
- package/esm/packages/vuu-utils/src/filters/filterAsQuery.js.map +1 -0
- package/esm/packages/vuu-utils/src/form-utils.js +44 -0
- package/esm/packages/vuu-utils/src/form-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/formatting-utils.js +63 -0
- package/esm/packages/vuu-utils/src/formatting-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/getUniqueId.js +4 -0
- package/esm/packages/vuu-utils/src/getUniqueId.js.map +1 -0
- package/esm/packages/vuu-utils/src/group-utils.js +23 -0
- package/esm/packages/vuu-utils/src/group-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/html-utils.js +145 -0
- package/esm/packages/vuu-utils/src/html-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/index.js +70 -0
- package/esm/packages/vuu-utils/src/index.js.map +1 -0
- package/esm/packages/vuu-utils/src/input-utils.js +7 -0
- package/esm/packages/vuu-utils/src/input-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/invariant.js +11 -0
- package/esm/packages/vuu-utils/src/invariant.js.map +1 -0
- package/esm/packages/vuu-utils/src/itemToString.js +21 -0
- package/esm/packages/vuu-utils/src/itemToString.js.map +1 -0
- package/esm/packages/vuu-utils/src/json-utils.js +101 -0
- package/esm/packages/vuu-utils/src/json-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/keyboard-utils.js +16 -0
- package/esm/packages/vuu-utils/src/keyboard-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/keyset.js +70 -0
- package/esm/packages/vuu-utils/src/keyset.js.map +1 -0
- package/esm/packages/vuu-utils/src/list-utils.js +9 -0
- package/esm/packages/vuu-utils/src/list-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/local-storage-utils.js +16 -0
- package/esm/packages/vuu-utils/src/local-storage-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/logging-utils.js +61 -0
- package/esm/packages/vuu-utils/src/logging-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/menu-utils.js +6 -0
- package/esm/packages/vuu-utils/src/menu-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/module-utils.js +4 -0
- package/esm/packages/vuu-utils/src/module-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/moving-window.js +101 -0
- package/esm/packages/vuu-utils/src/moving-window.js.map +1 -0
- package/esm/packages/vuu-utils/src/nanoid/index.js +20 -0
- package/esm/packages/vuu-utils/src/nanoid/index.js.map +1 -0
- package/esm/packages/vuu-utils/src/perf-utils.js +32 -0
- package/esm/packages/vuu-utils/src/perf-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/promise-utils.js +40 -0
- package/esm/packages/vuu-utils/src/promise-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/protocol-message-utils.js +71 -0
- package/esm/packages/vuu-utils/src/protocol-message-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/range-utils.js +145 -0
- package/esm/packages/vuu-utils/src/range-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/react-utils.js +32 -0
- package/esm/packages/vuu-utils/src/react-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/round-decimal.js +84 -0
- package/esm/packages/vuu-utils/src/round-decimal.js.map +1 -0
- package/esm/packages/vuu-utils/src/row-utils.js +40 -0
- package/esm/packages/vuu-utils/src/row-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/selection-utils.js +236 -0
- package/esm/packages/vuu-utils/src/selection-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/shell-layout-types.js +11 -0
- package/esm/packages/vuu-utils/src/shell-layout-types.js.map +1 -0
- package/esm/packages/vuu-utils/src/sort-utils.js +73 -0
- package/esm/packages/vuu-utils/src/sort-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/table-schema-utils.js +11 -0
- package/esm/packages/vuu-utils/src/table-schema-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/text-utils.js +18 -0
- package/esm/packages/vuu-utils/src/text-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/tree-utils.js +100 -0
- package/esm/packages/vuu-utils/src/tree-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/ts-utils.js +8 -0
- package/esm/packages/vuu-utils/src/ts-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/typeahead-utils.js +4 -0
- package/esm/packages/vuu-utils/src/typeahead-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/url-utils.js +18 -0
- package/esm/packages/vuu-utils/src/url-utils.js.map +1 -0
- package/esm/packages/vuu-utils/src/useId.js +7 -0
- package/esm/packages/vuu-utils/src/useId.js.map +1 -0
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js +15 -0
- package/esm/packages/vuu-utils/src/useLayoutEffectSkipFirst.js.map +1 -0
- package/esm/packages/vuu-utils/src/useStateRef.js +21 -0
- package/esm/packages/vuu-utils/src/useStateRef.js.map +1 -0
- package/package.json +11 -8
- package/cjs/index.js +0 -9622
- package/cjs/index.js.map +0 -1
- package/esm/index.js +0 -9283
- package/esm/index.js.map +0 -1
|
@@ -0,0 +1,1649 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../abstract/index.js');
|
|
4
|
+
var utilities = require('./utilities.js');
|
|
5
|
+
var index$2 = require('../state/dist/index.js');
|
|
6
|
+
var index$1 = require('../geometry/dist/index.js');
|
|
7
|
+
var index$3 = require('../collision/dist/index.js');
|
|
8
|
+
var signalsCore = require('../../@preact/signals-core/dist/signals-core.js');
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __defProps = Object.defineProperties;
|
|
13
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
14
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
15
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
16
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
17
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
18
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
19
|
+
var __typeError = (msg) => {
|
|
20
|
+
throw TypeError(msg);
|
|
21
|
+
};
|
|
22
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
23
|
+
var __spreadValues = (a, b) => {
|
|
24
|
+
for (var prop in b || (b = {}))
|
|
25
|
+
if (__hasOwnProp.call(b, prop))
|
|
26
|
+
__defNormalProp(a, prop, b[prop]);
|
|
27
|
+
if (__getOwnPropSymbols)
|
|
28
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
29
|
+
if (__propIsEnum.call(b, prop))
|
|
30
|
+
__defNormalProp(a, prop, b[prop]);
|
|
31
|
+
}
|
|
32
|
+
return a;
|
|
33
|
+
};
|
|
34
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
35
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
36
|
+
var __objRest = (source, exclude) => {
|
|
37
|
+
var target = {};
|
|
38
|
+
for (var prop in source)
|
|
39
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
40
|
+
target[prop] = source[prop];
|
|
41
|
+
if (source != null && __getOwnPropSymbols)
|
|
42
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
43
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
44
|
+
target[prop] = source[prop];
|
|
45
|
+
}
|
|
46
|
+
return target;
|
|
47
|
+
};
|
|
48
|
+
var __decoratorStart = (base) => {
|
|
49
|
+
var _a4;
|
|
50
|
+
return [, , , __create((_a4 = base == null ? void 0 : base[__knownSymbol("metadata")]) != null ? _a4 : null)];
|
|
51
|
+
};
|
|
52
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
53
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
54
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
55
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
56
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
57
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
58
|
+
return value;
|
|
59
|
+
};
|
|
60
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
61
|
+
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
|
|
62
|
+
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
|
|
63
|
+
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
|
|
64
|
+
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
|
|
65
|
+
return __privateGet(this, extra);
|
|
66
|
+
}, set [name](x) {
|
|
67
|
+
return __privateSet(this, extra, x);
|
|
68
|
+
} }, name));
|
|
69
|
+
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
|
|
70
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
71
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
72
|
+
if (k) {
|
|
73
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
|
|
74
|
+
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
|
|
75
|
+
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
|
|
76
|
+
}
|
|
77
|
+
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
78
|
+
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
|
|
79
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
80
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
81
|
+
}
|
|
82
|
+
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
|
|
83
|
+
};
|
|
84
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
85
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
86
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
87
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
88
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
89
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
90
|
+
|
|
91
|
+
// src/core/plugins/feedback/constants.ts
|
|
92
|
+
var ATTR_PREFIX = "data-dnd-";
|
|
93
|
+
var DROPPING_ATTRIBUTE = `${ATTR_PREFIX}dropping`;
|
|
94
|
+
var CSS_PREFIX = "--dnd-";
|
|
95
|
+
var ATTRIBUTE = `${ATTR_PREFIX}dragging`;
|
|
96
|
+
var PLACEHOLDER_ATTRIBUTE = `${ATTR_PREFIX}placeholder`;
|
|
97
|
+
var IGNORED_ATTRIBUTES = [
|
|
98
|
+
ATTRIBUTE,
|
|
99
|
+
PLACEHOLDER_ATTRIBUTE,
|
|
100
|
+
"popover",
|
|
101
|
+
"aria-pressed",
|
|
102
|
+
"aria-grabbing"
|
|
103
|
+
];
|
|
104
|
+
var IGNORED_STYLES = ["view-transition-name"];
|
|
105
|
+
var CSS_RULES = `
|
|
106
|
+
:root [${ATTRIBUTE}] {
|
|
107
|
+
position: fixed !important;
|
|
108
|
+
pointer-events: none !important;
|
|
109
|
+
touch-action: none;
|
|
110
|
+
z-index: calc(infinity);
|
|
111
|
+
will-change: translate;
|
|
112
|
+
top: var(${CSS_PREFIX}top, 0px) !important;
|
|
113
|
+
left: var(${CSS_PREFIX}left, 0px) !important;
|
|
114
|
+
right: unset !important;
|
|
115
|
+
bottom: unset !important;
|
|
116
|
+
width: var(${CSS_PREFIX}width, auto);
|
|
117
|
+
max-width: var(${CSS_PREFIX}width, auto);
|
|
118
|
+
height: var(${CSS_PREFIX}height, auto);
|
|
119
|
+
max-height: var(${CSS_PREFIX}height, auto);
|
|
120
|
+
transition: var(${CSS_PREFIX}transition) !important;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
:root [${PLACEHOLDER_ATTRIBUTE}] {
|
|
124
|
+
transition: none;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:root [${PLACEHOLDER_ATTRIBUTE}='hidden'] {
|
|
128
|
+
visibility: hidden;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
[${ATTRIBUTE}] * {
|
|
132
|
+
pointer-events: none !important;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
[${ATTRIBUTE}]:not([${DROPPING_ATTRIBUTE}]) {
|
|
136
|
+
translate: var(${CSS_PREFIX}translate) !important;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
[${ATTRIBUTE}][style*='${CSS_PREFIX}scale'] {
|
|
140
|
+
scale: var(${CSS_PREFIX}scale) !important;
|
|
141
|
+
transform-origin: var(${CSS_PREFIX}transform-origin) !important;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@layer {
|
|
145
|
+
:where([${ATTRIBUTE}][popover]) {
|
|
146
|
+
overflow: visible;
|
|
147
|
+
background: unset;
|
|
148
|
+
border: unset;
|
|
149
|
+
margin: unset;
|
|
150
|
+
padding: unset;
|
|
151
|
+
color: inherit;
|
|
152
|
+
|
|
153
|
+
&:is(input, button) {
|
|
154
|
+
border: revert;
|
|
155
|
+
background: revert;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
[${ATTRIBUTE}]::backdrop, [${ATTR_PREFIX}overlay]:not([${ATTRIBUTE}]) {
|
|
160
|
+
display: none;
|
|
161
|
+
visibility: hidden;
|
|
162
|
+
}
|
|
163
|
+
`.replace(/\n+/g, " ").replace(/\s+/g, " ").trim();
|
|
164
|
+
function createPlaceholder(source, type = "hidden") {
|
|
165
|
+
return signalsCore.untracked(() => {
|
|
166
|
+
const { element, manager } = source;
|
|
167
|
+
if (!element || !manager) return;
|
|
168
|
+
const containedDroppables = findContainedDroppables(
|
|
169
|
+
element,
|
|
170
|
+
manager.registry.droppables
|
|
171
|
+
);
|
|
172
|
+
const cleanup = [];
|
|
173
|
+
const placeholder = utilities.cloneElement(element);
|
|
174
|
+
const { remove } = placeholder;
|
|
175
|
+
proxyDroppableElements(containedDroppables, placeholder, cleanup);
|
|
176
|
+
configurePlaceholder(placeholder, type);
|
|
177
|
+
placeholder.remove = () => {
|
|
178
|
+
cleanup.forEach((fn) => fn());
|
|
179
|
+
remove.call(placeholder);
|
|
180
|
+
};
|
|
181
|
+
return placeholder;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
function findContainedDroppables(element, droppables) {
|
|
185
|
+
const containedDroppables = /* @__PURE__ */ new Map();
|
|
186
|
+
for (const droppable of droppables) {
|
|
187
|
+
if (!droppable.element) continue;
|
|
188
|
+
if (element === droppable.element || element.contains(droppable.element)) {
|
|
189
|
+
const identifierAttribute = `${ATTR_PREFIX}${utilities.generateUniqueId("dom-id")}`;
|
|
190
|
+
droppable.element.setAttribute(identifierAttribute, "");
|
|
191
|
+
containedDroppables.set(droppable, identifierAttribute);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return containedDroppables;
|
|
195
|
+
}
|
|
196
|
+
function proxyDroppableElements(containedDroppables, placeholder, cleanup) {
|
|
197
|
+
for (const [droppable, identifierAttribute] of containedDroppables) {
|
|
198
|
+
if (!droppable.element) continue;
|
|
199
|
+
const selector = `[${identifierAttribute}]`;
|
|
200
|
+
const clonedElement = placeholder.matches(selector) ? placeholder : placeholder.querySelector(selector);
|
|
201
|
+
droppable.element.removeAttribute(identifierAttribute);
|
|
202
|
+
if (!clonedElement) continue;
|
|
203
|
+
const originalElement = droppable.element;
|
|
204
|
+
droppable.proxy = clonedElement;
|
|
205
|
+
clonedElement.removeAttribute(identifierAttribute);
|
|
206
|
+
utilities.ProxiedElements.set(originalElement, clonedElement);
|
|
207
|
+
cleanup.push(() => {
|
|
208
|
+
utilities.ProxiedElements.delete(originalElement);
|
|
209
|
+
droppable.proxy = void 0;
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function configurePlaceholder(placeholder, type = "hidden") {
|
|
214
|
+
placeholder.setAttribute("inert", "true");
|
|
215
|
+
placeholder.setAttribute("tab-index", "-1");
|
|
216
|
+
placeholder.setAttribute("aria-hidden", "true");
|
|
217
|
+
placeholder.setAttribute(PLACEHOLDER_ATTRIBUTE, type);
|
|
218
|
+
}
|
|
219
|
+
function isSameFrame(element, target) {
|
|
220
|
+
if (element === target) return true;
|
|
221
|
+
return utilities.getFrameElement(element) === utilities.getFrameElement(target);
|
|
222
|
+
}
|
|
223
|
+
function preventPopoverClose(event) {
|
|
224
|
+
const { target } = event;
|
|
225
|
+
if ("newState" in event && event.newState === "closed" && utilities.isElement(target) && target.hasAttribute("popover")) {
|
|
226
|
+
requestAnimationFrame(() => utilities.showPopover(target));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function isTableRow(element) {
|
|
230
|
+
return element.tagName === "TR";
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// src/core/plugins/feedback/Feedback.ts
|
|
234
|
+
var styleSheetRegistry = /* @__PURE__ */ new Map();
|
|
235
|
+
var _overlay_dec, _a, _init, _overlay, _Feedback_instances, render_fn, injectStyles_fn;
|
|
236
|
+
var _Feedback = class _Feedback extends (_a = index.Plugin, _overlay_dec = [index$2.reactive], _a) {
|
|
237
|
+
constructor(manager, options) {
|
|
238
|
+
super(manager, options);
|
|
239
|
+
__privateAdd(this, _Feedback_instances);
|
|
240
|
+
__privateAdd(this, _overlay, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
|
|
241
|
+
this.state = {
|
|
242
|
+
initial: {},
|
|
243
|
+
current: {}
|
|
244
|
+
};
|
|
245
|
+
this.registerEffect(__privateMethod(this, _Feedback_instances, injectStyles_fn));
|
|
246
|
+
this.registerEffect(__privateMethod(this, _Feedback_instances, render_fn));
|
|
247
|
+
}
|
|
248
|
+
destroy() {
|
|
249
|
+
super.destroy();
|
|
250
|
+
for (const [doc, registration] of styleSheetRegistry.entries()) {
|
|
251
|
+
if (registration.instances.has(this)) {
|
|
252
|
+
registration.instances.delete(this);
|
|
253
|
+
if (registration.instances.size === 0) {
|
|
254
|
+
registration.cleanup();
|
|
255
|
+
styleSheetRegistry.delete(doc);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
_init = __decoratorStart(_a);
|
|
262
|
+
_overlay = new WeakMap();
|
|
263
|
+
_Feedback_instances = new WeakSet();
|
|
264
|
+
render_fn = function() {
|
|
265
|
+
var _a4, _b2, _c3;
|
|
266
|
+
const { state, manager, options } = this;
|
|
267
|
+
const { dragOperation } = manager;
|
|
268
|
+
const { position, source, status } = dragOperation;
|
|
269
|
+
if (status.idle) {
|
|
270
|
+
state.current = {};
|
|
271
|
+
state.initial = {};
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
if (!source) return;
|
|
275
|
+
const { element, feedback } = source;
|
|
276
|
+
if (!element || feedback === "none" || !status.initialized || status.initializing) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
const { initial } = state;
|
|
280
|
+
const feedbackElement = (_a4 = this.overlay) != null ? _a4 : element;
|
|
281
|
+
const frameTransform = utilities.getFrameTransform(feedbackElement);
|
|
282
|
+
const elementFrameTransform = utilities.getFrameTransform(element);
|
|
283
|
+
const crossFrame = !isSameFrame(element, feedbackElement);
|
|
284
|
+
const shape = new utilities.DOMRectangle(element, {
|
|
285
|
+
frameTransform: crossFrame ? elementFrameTransform : null,
|
|
286
|
+
ignoreTransforms: !crossFrame
|
|
287
|
+
});
|
|
288
|
+
const scaleDelta = {
|
|
289
|
+
x: elementFrameTransform.scaleX / frameTransform.scaleX,
|
|
290
|
+
y: elementFrameTransform.scaleY / frameTransform.scaleY
|
|
291
|
+
};
|
|
292
|
+
let cleanup;
|
|
293
|
+
let { width, height, top, left } = shape;
|
|
294
|
+
if (crossFrame) {
|
|
295
|
+
width = width / scaleDelta.x;
|
|
296
|
+
height = height / scaleDelta.y;
|
|
297
|
+
}
|
|
298
|
+
let elementMutationObserver;
|
|
299
|
+
let documentMutationObserver;
|
|
300
|
+
const styles = new utilities.Styles(feedbackElement);
|
|
301
|
+
const {
|
|
302
|
+
transition,
|
|
303
|
+
translate,
|
|
304
|
+
boxSizing,
|
|
305
|
+
paddingBlockStart,
|
|
306
|
+
paddingBlockEnd,
|
|
307
|
+
paddingInlineStart,
|
|
308
|
+
paddingInlineEnd,
|
|
309
|
+
borderInlineStartWidth,
|
|
310
|
+
borderInlineEndWidth,
|
|
311
|
+
borderBlockStartWidth,
|
|
312
|
+
borderBlockEndWidth
|
|
313
|
+
} = utilities.getComputedStyles(element);
|
|
314
|
+
const clone = feedback === "clone";
|
|
315
|
+
const contentBox = boxSizing === "content-box";
|
|
316
|
+
const widthOffset = contentBox ? parseInt(paddingInlineStart) + parseInt(paddingInlineEnd) + parseInt(borderInlineStartWidth) + parseInt(borderInlineEndWidth) : 0;
|
|
317
|
+
const heightOffset = contentBox ? parseInt(paddingBlockStart) + parseInt(paddingBlockEnd) + parseInt(borderBlockStartWidth) + parseInt(borderBlockEndWidth) : 0;
|
|
318
|
+
const placeholder = feedback !== "move" && !this.overlay ? createPlaceholder(source, clone ? "clone" : "hidden") : null;
|
|
319
|
+
const isKeyboardOperation = signalsCore.untracked(
|
|
320
|
+
() => utilities.isKeyboardEvent(manager.dragOperation.activatorEvent)
|
|
321
|
+
);
|
|
322
|
+
if (translate !== "none") {
|
|
323
|
+
const parsedTranslate = utilities.parseTranslate(translate);
|
|
324
|
+
if (parsedTranslate && !initial.translate) {
|
|
325
|
+
initial.translate = parsedTranslate;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (!initial.transformOrigin) {
|
|
329
|
+
const current = signalsCore.untracked(() => position.current);
|
|
330
|
+
initial.transformOrigin = {
|
|
331
|
+
x: (current.x - left * frameTransform.scaleX - frameTransform.x) / (width * frameTransform.scaleX),
|
|
332
|
+
y: (current.y - top * frameTransform.scaleY - frameTransform.y) / (height * frameTransform.scaleY)
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
const { transformOrigin } = initial;
|
|
336
|
+
const relativeTop = top * frameTransform.scaleY + frameTransform.y;
|
|
337
|
+
const relativeLeft = left * frameTransform.scaleX + frameTransform.x;
|
|
338
|
+
if (!initial.coordinates) {
|
|
339
|
+
initial.coordinates = {
|
|
340
|
+
x: relativeLeft,
|
|
341
|
+
y: relativeTop
|
|
342
|
+
};
|
|
343
|
+
if (scaleDelta.x !== 1 || scaleDelta.y !== 1) {
|
|
344
|
+
const { scaleX, scaleY } = elementFrameTransform;
|
|
345
|
+
const { x: tX2, y: tY2 } = transformOrigin;
|
|
346
|
+
initial.coordinates.x += (width * scaleX - width) * tX2;
|
|
347
|
+
initial.coordinates.y += (height * scaleY - height) * tY2;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (!initial.dimensions) {
|
|
351
|
+
initial.dimensions = { width, height };
|
|
352
|
+
}
|
|
353
|
+
if (!initial.frameTransform) {
|
|
354
|
+
initial.frameTransform = frameTransform;
|
|
355
|
+
}
|
|
356
|
+
const coordinatesDelta = {
|
|
357
|
+
x: initial.coordinates.x - relativeLeft,
|
|
358
|
+
y: initial.coordinates.y - relativeTop
|
|
359
|
+
};
|
|
360
|
+
const sizeDelta = {
|
|
361
|
+
width: (initial.dimensions.width * initial.frameTransform.scaleX - width * frameTransform.scaleX) * transformOrigin.x,
|
|
362
|
+
height: (initial.dimensions.height * initial.frameTransform.scaleY - height * frameTransform.scaleY) * transformOrigin.y
|
|
363
|
+
};
|
|
364
|
+
const delta = {
|
|
365
|
+
x: coordinatesDelta.x / frameTransform.scaleX + sizeDelta.width,
|
|
366
|
+
y: coordinatesDelta.y / frameTransform.scaleY + sizeDelta.height
|
|
367
|
+
};
|
|
368
|
+
const projected = {
|
|
369
|
+
left: left + delta.x,
|
|
370
|
+
top: top + delta.y
|
|
371
|
+
};
|
|
372
|
+
feedbackElement.setAttribute(ATTRIBUTE, "true");
|
|
373
|
+
const transform = signalsCore.untracked(() => dragOperation.transform);
|
|
374
|
+
const initialTranslate = (_b2 = initial.translate) != null ? _b2 : { x: 0, y: 0 };
|
|
375
|
+
const tX = transform.x * frameTransform.scaleX + initialTranslate.x;
|
|
376
|
+
const tY = transform.y * frameTransform.scaleY + initialTranslate.y;
|
|
377
|
+
const translateString = `${tX}px ${tY}px 0`;
|
|
378
|
+
const transitionString = transition ? `${transition}, translate 0ms linear` : "";
|
|
379
|
+
styles.set(
|
|
380
|
+
{
|
|
381
|
+
width: width - widthOffset,
|
|
382
|
+
height: height - heightOffset,
|
|
383
|
+
top: projected.top,
|
|
384
|
+
left: projected.left,
|
|
385
|
+
translate: translateString,
|
|
386
|
+
transition: transitionString,
|
|
387
|
+
scale: crossFrame ? `${scaleDelta.x} ${scaleDelta.y}` : "",
|
|
388
|
+
"transform-origin": `${transformOrigin.x * 100}% ${transformOrigin.y * 100}%`
|
|
389
|
+
},
|
|
390
|
+
CSS_PREFIX
|
|
391
|
+
);
|
|
392
|
+
if (placeholder) {
|
|
393
|
+
element.insertAdjacentElement("afterend", placeholder);
|
|
394
|
+
if (options == null ? void 0 : options.rootElement) {
|
|
395
|
+
const root = typeof options.rootElement === "function" ? options.rootElement(source) : options.rootElement;
|
|
396
|
+
root.appendChild(element);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (utilities.supportsPopover(feedbackElement)) {
|
|
400
|
+
if (!feedbackElement.hasAttribute("popover")) {
|
|
401
|
+
feedbackElement.setAttribute("popover", "manual");
|
|
402
|
+
}
|
|
403
|
+
utilities.showPopover(feedbackElement);
|
|
404
|
+
feedbackElement.addEventListener("beforetoggle", preventPopoverClose);
|
|
405
|
+
}
|
|
406
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
407
|
+
if (!placeholder) return;
|
|
408
|
+
const placeholderShape = new utilities.DOMRectangle(placeholder, {
|
|
409
|
+
frameTransform,
|
|
410
|
+
ignoreTransforms: true
|
|
411
|
+
});
|
|
412
|
+
const origin = transformOrigin != null ? transformOrigin : { x: 1, y: 1 };
|
|
413
|
+
const dX = (width - placeholderShape.width) * origin.x + delta.x;
|
|
414
|
+
const dY = (height - placeholderShape.height) * origin.y + delta.y;
|
|
415
|
+
styles.set(
|
|
416
|
+
{
|
|
417
|
+
width: placeholderShape.width - widthOffset,
|
|
418
|
+
height: placeholderShape.height - heightOffset,
|
|
419
|
+
top: top + dY,
|
|
420
|
+
left: left + dX
|
|
421
|
+
},
|
|
422
|
+
CSS_PREFIX
|
|
423
|
+
);
|
|
424
|
+
elementMutationObserver == null ? void 0 : elementMutationObserver.takeRecords();
|
|
425
|
+
if (isTableRow(element) && isTableRow(placeholder)) {
|
|
426
|
+
const cells = Array.from(element.cells);
|
|
427
|
+
const placeholderCells = Array.from(placeholder.cells);
|
|
428
|
+
for (const [index, cell] of cells.entries()) {
|
|
429
|
+
const placeholderCell = placeholderCells[index];
|
|
430
|
+
cell.style.width = `${placeholderCell.offsetWidth}px`;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
dragOperation.shape = new utilities.DOMRectangle(feedbackElement);
|
|
434
|
+
});
|
|
435
|
+
const initialShape = new utilities.DOMRectangle(feedbackElement);
|
|
436
|
+
signalsCore.untracked(() => dragOperation.shape = initialShape);
|
|
437
|
+
const feedbackWindow = utilities.getWindow(feedbackElement);
|
|
438
|
+
const handleWindowResize = (event) => {
|
|
439
|
+
this.manager.actions.stop({ event });
|
|
440
|
+
};
|
|
441
|
+
if (isKeyboardOperation) {
|
|
442
|
+
feedbackWindow.addEventListener("resize", handleWindowResize);
|
|
443
|
+
}
|
|
444
|
+
if (signalsCore.untracked(() => source.status) === "idle") {
|
|
445
|
+
requestAnimationFrame(() => source.status = "dragging");
|
|
446
|
+
}
|
|
447
|
+
if (placeholder) {
|
|
448
|
+
resizeObserver.observe(placeholder);
|
|
449
|
+
elementMutationObserver = new MutationObserver((mutations) => {
|
|
450
|
+
let hasChildrenMutations = false;
|
|
451
|
+
for (const mutation of mutations) {
|
|
452
|
+
if (mutation.target !== element) {
|
|
453
|
+
hasChildrenMutations = true;
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
if (mutation.type !== "attributes") {
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
const attributeName = mutation.attributeName;
|
|
460
|
+
if (attributeName.startsWith("aria-") || IGNORED_ATTRIBUTES.includes(attributeName)) {
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
const attributeValue = element.getAttribute(attributeName);
|
|
464
|
+
if (attributeName === "style") {
|
|
465
|
+
if (utilities.supportsStyle(element) && utilities.supportsStyle(placeholder)) {
|
|
466
|
+
const styles2 = element.style;
|
|
467
|
+
for (const key of Array.from(placeholder.style)) {
|
|
468
|
+
if (styles2.getPropertyValue(key) === "") {
|
|
469
|
+
placeholder.style.removeProperty(key);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
for (const key of Array.from(styles2)) {
|
|
473
|
+
if (IGNORED_STYLES.includes(key) || key.startsWith(CSS_PREFIX)) {
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
const value = styles2.getPropertyValue(key);
|
|
477
|
+
placeholder.style.setProperty(key, value);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
} else if (attributeValue !== null) {
|
|
481
|
+
placeholder.setAttribute(attributeName, attributeValue);
|
|
482
|
+
} else {
|
|
483
|
+
placeholder.removeAttribute(attributeName);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
if (hasChildrenMutations && clone) {
|
|
487
|
+
placeholder.innerHTML = element.innerHTML;
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
elementMutationObserver.observe(element, {
|
|
491
|
+
attributes: true,
|
|
492
|
+
subtree: true,
|
|
493
|
+
childList: true
|
|
494
|
+
});
|
|
495
|
+
documentMutationObserver = new MutationObserver((entries) => {
|
|
496
|
+
for (const entry of entries) {
|
|
497
|
+
if (entry.addedNodes.length === 0) continue;
|
|
498
|
+
for (const node of Array.from(entry.addedNodes)) {
|
|
499
|
+
if (node.contains(element) && element.nextElementSibling !== placeholder) {
|
|
500
|
+
element.insertAdjacentElement("afterend", placeholder);
|
|
501
|
+
utilities.showPopover(feedbackElement);
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
if (node.contains(placeholder) && placeholder.previousElementSibling !== element) {
|
|
505
|
+
placeholder.insertAdjacentElement("beforebegin", element);
|
|
506
|
+
utilities.showPopover(feedbackElement);
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
});
|
|
512
|
+
documentMutationObserver.observe(element.ownerDocument.body, {
|
|
513
|
+
childList: true,
|
|
514
|
+
subtree: true
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
const cleanupEffect = signalsCore.effect(() => {
|
|
518
|
+
var _a5;
|
|
519
|
+
const { transform: transform2, status: status2 } = dragOperation;
|
|
520
|
+
if (!transform2.x && !transform2.y && !state.current.translate) {
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
if (status2.dragging) {
|
|
524
|
+
const initialTranslate2 = (_a5 = initial.translate) != null ? _a5 : { x: 0, y: 0 };
|
|
525
|
+
const translate2 = {
|
|
526
|
+
x: transform2.x / frameTransform.scaleX + initialTranslate2.x,
|
|
527
|
+
y: transform2.y / frameTransform.scaleY + initialTranslate2.y
|
|
528
|
+
};
|
|
529
|
+
const previousTranslate = state.current.translate;
|
|
530
|
+
const modifiers = signalsCore.untracked(() => dragOperation.modifiers);
|
|
531
|
+
const currentShape = signalsCore.untracked(() => {
|
|
532
|
+
var _a6;
|
|
533
|
+
return (_a6 = dragOperation.shape) == null ? void 0 : _a6.current;
|
|
534
|
+
});
|
|
535
|
+
const translateTransition = isKeyboardOperation ? "250ms cubic-bezier(0.25, 1, 0.5, 1)" : "0ms linear";
|
|
536
|
+
styles.set(
|
|
537
|
+
{
|
|
538
|
+
transition: `${transition}, translate ${translateTransition}`,
|
|
539
|
+
translate: `${translate2.x}px ${translate2.y}px 0`
|
|
540
|
+
},
|
|
541
|
+
CSS_PREFIX
|
|
542
|
+
);
|
|
543
|
+
elementMutationObserver == null ? void 0 : elementMutationObserver.takeRecords();
|
|
544
|
+
if (currentShape && currentShape !== initialShape && previousTranslate && !modifiers.length) {
|
|
545
|
+
const delta2 = index$1.Point.delta(translate2, previousTranslate);
|
|
546
|
+
dragOperation.shape = index$1.Rectangle.from(
|
|
547
|
+
currentShape.boundingRectangle
|
|
548
|
+
).translate(
|
|
549
|
+
// Need to take into account frame transform when optimistically updating shape
|
|
550
|
+
delta2.x * frameTransform.scaleX,
|
|
551
|
+
delta2.y * frameTransform.scaleY
|
|
552
|
+
);
|
|
553
|
+
} else {
|
|
554
|
+
dragOperation.shape = new utilities.DOMRectangle(feedbackElement);
|
|
555
|
+
}
|
|
556
|
+
state.current.translate = translate2;
|
|
557
|
+
}
|
|
558
|
+
});
|
|
559
|
+
const id = (_c3 = manager.dragOperation.source) == null ? void 0 : _c3.id;
|
|
560
|
+
const restoreFocus = () => {
|
|
561
|
+
var _a5;
|
|
562
|
+
if (!isKeyboardOperation || id == null) {
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
const draggable = manager.registry.draggables.get(id);
|
|
566
|
+
const element2 = (_a5 = draggable == null ? void 0 : draggable.handle) != null ? _a5 : draggable == null ? void 0 : draggable.element;
|
|
567
|
+
if (utilities.isHTMLElement(element2)) {
|
|
568
|
+
element2.focus();
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
let dropEffectCleanup;
|
|
572
|
+
cleanup = () => {
|
|
573
|
+
elementMutationObserver == null ? void 0 : elementMutationObserver.disconnect();
|
|
574
|
+
documentMutationObserver == null ? void 0 : documentMutationObserver.disconnect();
|
|
575
|
+
resizeObserver.disconnect();
|
|
576
|
+
feedbackWindow.removeEventListener("resize", handleWindowResize);
|
|
577
|
+
if (utilities.supportsPopover(feedbackElement)) {
|
|
578
|
+
feedbackElement.removeEventListener(
|
|
579
|
+
"beforetoggle",
|
|
580
|
+
preventPopoverClose
|
|
581
|
+
);
|
|
582
|
+
feedbackElement.removeAttribute("popover");
|
|
583
|
+
}
|
|
584
|
+
feedbackElement.removeAttribute(ATTRIBUTE);
|
|
585
|
+
styles.reset();
|
|
586
|
+
source.status = "idle";
|
|
587
|
+
const moved = state.current.translate != null;
|
|
588
|
+
if (placeholder && (moved || placeholder.parentElement !== feedbackElement.parentElement) && feedbackElement.isConnected) {
|
|
589
|
+
placeholder.replaceWith(feedbackElement);
|
|
590
|
+
}
|
|
591
|
+
placeholder == null ? void 0 : placeholder.remove();
|
|
592
|
+
cleanupEffect();
|
|
593
|
+
dropEffectCleanup == null ? void 0 : dropEffectCleanup();
|
|
594
|
+
};
|
|
595
|
+
dropEffectCleanup = signalsCore.effect(() => {
|
|
596
|
+
if (dragOperation.status.dropped) {
|
|
597
|
+
queueMicrotask(() => dropEffectCleanup == null ? void 0 : dropEffectCleanup());
|
|
598
|
+
const onComplete = cleanup;
|
|
599
|
+
cleanup = void 0;
|
|
600
|
+
source.status = "dropping";
|
|
601
|
+
let translate2 = state.current.translate;
|
|
602
|
+
const moved = translate2 != null;
|
|
603
|
+
if (!translate2 && element !== feedbackElement) {
|
|
604
|
+
translate2 = {
|
|
605
|
+
x: 0,
|
|
606
|
+
y: 0
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
if (!translate2) {
|
|
610
|
+
onComplete == null ? void 0 : onComplete();
|
|
611
|
+
return;
|
|
612
|
+
}
|
|
613
|
+
const dropAnimation = () => {
|
|
614
|
+
var _a5, _b3;
|
|
615
|
+
{
|
|
616
|
+
utilities.showPopover(feedbackElement);
|
|
617
|
+
const [, animation] = (_a5 = utilities.getFinalKeyframe(
|
|
618
|
+
feedbackElement,
|
|
619
|
+
(keyframe) => "translate" in keyframe
|
|
620
|
+
)) != null ? _a5 : [];
|
|
621
|
+
animation == null ? void 0 : animation.pause();
|
|
622
|
+
const target = placeholder != null ? placeholder : element;
|
|
623
|
+
const options2 = {
|
|
624
|
+
frameTransform: isSameFrame(feedbackElement, target) ? null : void 0
|
|
625
|
+
};
|
|
626
|
+
const current = new utilities.DOMRectangle(feedbackElement, options2);
|
|
627
|
+
const currentTranslate = (_b3 = utilities.parseTranslate(utilities.getComputedStyles(feedbackElement).translate)) != null ? _b3 : translate2;
|
|
628
|
+
const final = new utilities.DOMRectangle(target, options2);
|
|
629
|
+
const delta2 = index$1.Rectangle.delta(current, final, source.alignment);
|
|
630
|
+
const finalTranslate = {
|
|
631
|
+
x: currentTranslate.x - delta2.x,
|
|
632
|
+
y: currentTranslate.y - delta2.y
|
|
633
|
+
};
|
|
634
|
+
const heightKeyframes = Math.round(current.intrinsicHeight) !== Math.round(final.intrinsicHeight) ? {
|
|
635
|
+
minHeight: [
|
|
636
|
+
`${current.intrinsicHeight}px`,
|
|
637
|
+
`${final.intrinsicHeight}px`
|
|
638
|
+
],
|
|
639
|
+
maxHeight: [
|
|
640
|
+
`${current.intrinsicHeight}px`,
|
|
641
|
+
`${final.intrinsicHeight}px`
|
|
642
|
+
]
|
|
643
|
+
} : {};
|
|
644
|
+
const widthKeyframes = Math.round(current.intrinsicWidth) !== Math.round(final.intrinsicWidth) ? {
|
|
645
|
+
minWidth: [
|
|
646
|
+
`${current.intrinsicWidth}px`,
|
|
647
|
+
`${final.intrinsicWidth}px`
|
|
648
|
+
],
|
|
649
|
+
maxWidth: [
|
|
650
|
+
`${current.intrinsicWidth}px`,
|
|
651
|
+
`${final.intrinsicWidth}px`
|
|
652
|
+
]
|
|
653
|
+
} : {};
|
|
654
|
+
styles.set({ transition }, CSS_PREFIX);
|
|
655
|
+
feedbackElement.setAttribute(DROPPING_ATTRIBUTE, "");
|
|
656
|
+
elementMutationObserver == null ? void 0 : elementMutationObserver.takeRecords();
|
|
657
|
+
utilities.animateTransform({
|
|
658
|
+
element: feedbackElement,
|
|
659
|
+
keyframes: __spreadProps(__spreadValues(__spreadValues({}, heightKeyframes), widthKeyframes), {
|
|
660
|
+
translate: [
|
|
661
|
+
`${currentTranslate.x}px ${currentTranslate.y}px 0`,
|
|
662
|
+
`${finalTranslate.x}px ${finalTranslate.y}px 0`
|
|
663
|
+
]
|
|
664
|
+
}),
|
|
665
|
+
options: {
|
|
666
|
+
duration: moved || feedbackElement !== element ? 250 : 0,
|
|
667
|
+
easing: "ease"
|
|
668
|
+
}
|
|
669
|
+
}).then(() => {
|
|
670
|
+
feedbackElement.removeAttribute(DROPPING_ATTRIBUTE);
|
|
671
|
+
animation == null ? void 0 : animation.finish();
|
|
672
|
+
onComplete == null ? void 0 : onComplete();
|
|
673
|
+
requestAnimationFrame(restoreFocus);
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
manager.renderer.rendering.then(dropAnimation);
|
|
678
|
+
}
|
|
679
|
+
});
|
|
680
|
+
return () => cleanup == null ? void 0 : cleanup();
|
|
681
|
+
};
|
|
682
|
+
injectStyles_fn = function() {
|
|
683
|
+
var _a4, _b2;
|
|
684
|
+
const { status, source, target } = this.manager.dragOperation;
|
|
685
|
+
if (status.initializing) {
|
|
686
|
+
const sourceDocument = utilities.getDocument((_a4 = source == null ? void 0 : source.element) != null ? _a4 : null);
|
|
687
|
+
const targetDocument = utilities.getDocument((_b2 = target == null ? void 0 : target.element) != null ? _b2 : null);
|
|
688
|
+
const documents = /* @__PURE__ */ new Set([sourceDocument, targetDocument]);
|
|
689
|
+
for (const doc of documents) {
|
|
690
|
+
let registration = styleSheetRegistry.get(doc);
|
|
691
|
+
if (!registration) {
|
|
692
|
+
const style = document.createElement("style");
|
|
693
|
+
style.textContent = CSS_RULES;
|
|
694
|
+
doc.head.prepend(style);
|
|
695
|
+
const mutationObserver = new MutationObserver((entries) => {
|
|
696
|
+
for (const entry of entries) {
|
|
697
|
+
if (entry.type === "childList") {
|
|
698
|
+
const removedNodes = Array.from(entry.removedNodes);
|
|
699
|
+
if (removedNodes.length > 0 && removedNodes.includes(style)) {
|
|
700
|
+
doc.head.prepend(style);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
});
|
|
705
|
+
mutationObserver.observe(doc.head, { childList: true });
|
|
706
|
+
registration = {
|
|
707
|
+
cleanup: () => {
|
|
708
|
+
mutationObserver.disconnect();
|
|
709
|
+
style.remove();
|
|
710
|
+
},
|
|
711
|
+
instances: /* @__PURE__ */ new Set()
|
|
712
|
+
};
|
|
713
|
+
styleSheetRegistry.set(doc, registration);
|
|
714
|
+
}
|
|
715
|
+
registration.instances.add(this);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
};
|
|
719
|
+
__decorateElement(_init, 4, "overlay", _overlay_dec, _Feedback, _overlay);
|
|
720
|
+
__decoratorMetadata(_init, _Feedback);
|
|
721
|
+
_Feedback.configure = index.configurator(_Feedback);
|
|
722
|
+
var LOCKED = true;
|
|
723
|
+
var UNLOCKED = false;
|
|
724
|
+
var _dec, _a2, _dec2, _b, _init2, __b, __a;
|
|
725
|
+
_b = (_dec2 = [index$2.reactive], utilities.ScrollDirection.Forward), _a2 = (_dec = [index$2.reactive], utilities.ScrollDirection.Reverse);
|
|
726
|
+
var ScrollLock = class {
|
|
727
|
+
constructor() {
|
|
728
|
+
__privateAdd(this, __b, __runInitializers(_init2, 8, this, LOCKED)), __runInitializers(_init2, 11, this);
|
|
729
|
+
__privateAdd(this, __a, __runInitializers(_init2, 12, this, LOCKED)), __runInitializers(_init2, 15, this);
|
|
730
|
+
}
|
|
731
|
+
isLocked(direction) {
|
|
732
|
+
if (direction === utilities.ScrollDirection.Idle) {
|
|
733
|
+
return false;
|
|
734
|
+
}
|
|
735
|
+
if (direction == null) {
|
|
736
|
+
return this[utilities.ScrollDirection.Forward] === LOCKED && this[utilities.ScrollDirection.Reverse] === LOCKED;
|
|
737
|
+
}
|
|
738
|
+
return this[direction] === LOCKED;
|
|
739
|
+
}
|
|
740
|
+
unlock(direction) {
|
|
741
|
+
if (direction === utilities.ScrollDirection.Idle) {
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
this[direction] = UNLOCKED;
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
_init2 = __decoratorStart(null);
|
|
748
|
+
__b = new WeakMap();
|
|
749
|
+
__a = new WeakMap();
|
|
750
|
+
__decorateElement(_init2, 4, _b, _dec2, ScrollLock, __b);
|
|
751
|
+
__decorateElement(_init2, 4, _a2, _dec, ScrollLock, __a);
|
|
752
|
+
__decoratorMetadata(_init2, ScrollLock);
|
|
753
|
+
|
|
754
|
+
// src/core/plugins/scrolling/ScrollIntent.ts
|
|
755
|
+
var DIRECTIONS = [utilities.ScrollDirection.Forward, utilities.ScrollDirection.Reverse];
|
|
756
|
+
var ScrollIntent = class {
|
|
757
|
+
constructor() {
|
|
758
|
+
this.x = new ScrollLock();
|
|
759
|
+
this.y = new ScrollLock();
|
|
760
|
+
}
|
|
761
|
+
isLocked() {
|
|
762
|
+
return this.x.isLocked() && this.y.isLocked();
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
var ScrollIntentTracker = class extends index.Plugin {
|
|
766
|
+
constructor(manager) {
|
|
767
|
+
super(manager);
|
|
768
|
+
const scrollIntent = signalsCore.signal(new ScrollIntent());
|
|
769
|
+
let previousDelta = null;
|
|
770
|
+
this.signal = scrollIntent;
|
|
771
|
+
signalsCore.effect(() => {
|
|
772
|
+
const { status } = manager.dragOperation;
|
|
773
|
+
if (!status.initialized) {
|
|
774
|
+
previousDelta = null;
|
|
775
|
+
scrollIntent.value = new ScrollIntent();
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
778
|
+
const { delta } = manager.dragOperation.position;
|
|
779
|
+
if (previousDelta) {
|
|
780
|
+
const directions = {
|
|
781
|
+
x: getDirection(delta.x, previousDelta.x),
|
|
782
|
+
y: getDirection(delta.y, previousDelta.y)
|
|
783
|
+
};
|
|
784
|
+
const intent = scrollIntent.peek();
|
|
785
|
+
signalsCore.batch(() => {
|
|
786
|
+
for (const axis of index$1.Axes) {
|
|
787
|
+
for (const direction of DIRECTIONS) {
|
|
788
|
+
if (directions[axis] === direction) {
|
|
789
|
+
intent[axis].unlock(direction);
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
scrollIntent.value = intent;
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
previousDelta = delta;
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
get current() {
|
|
800
|
+
return this.signal.peek();
|
|
801
|
+
}
|
|
802
|
+
};
|
|
803
|
+
function getDirection(a, b) {
|
|
804
|
+
return Math.sign(a - b);
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
// src/core/plugins/scrolling/Scroller.ts
|
|
808
|
+
var _autoScrolling_dec, _a3, _init3, _autoScrolling, _meta, _scroll;
|
|
809
|
+
var Scroller = class extends (_a3 = index.CorePlugin, _autoScrolling_dec = [index$2.reactive], _a3) {
|
|
810
|
+
constructor(manager) {
|
|
811
|
+
super(manager);
|
|
812
|
+
__privateAdd(this, _autoScrolling, __runInitializers(_init3, 8, this, false)), __runInitializers(_init3, 11, this);
|
|
813
|
+
__privateAdd(this, _meta);
|
|
814
|
+
__privateAdd(this, _scroll, () => {
|
|
815
|
+
if (!__privateGet(this, _meta)) {
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
const { element, by } = __privateGet(this, _meta);
|
|
819
|
+
if (by.y) element.scrollTop += by.y;
|
|
820
|
+
if (by.x) element.scrollLeft += by.x;
|
|
821
|
+
});
|
|
822
|
+
this.scroll = (options) => {
|
|
823
|
+
var _a4;
|
|
824
|
+
if (this.disabled) {
|
|
825
|
+
return false;
|
|
826
|
+
}
|
|
827
|
+
const elements = this.getScrollableElements();
|
|
828
|
+
if (!elements) {
|
|
829
|
+
__privateSet(this, _meta, void 0);
|
|
830
|
+
return false;
|
|
831
|
+
}
|
|
832
|
+
const { position } = this.manager.dragOperation;
|
|
833
|
+
const currentPosition = position == null ? void 0 : position.current;
|
|
834
|
+
if (currentPosition) {
|
|
835
|
+
const { by } = options != null ? options : {};
|
|
836
|
+
const intent = by ? {
|
|
837
|
+
x: getScrollIntent(by.x),
|
|
838
|
+
y: getScrollIntent(by.y)
|
|
839
|
+
} : void 0;
|
|
840
|
+
const scrollIntent = intent ? void 0 : this.scrollIntentTracker.current;
|
|
841
|
+
if (scrollIntent == null ? void 0 : scrollIntent.isLocked()) {
|
|
842
|
+
return false;
|
|
843
|
+
}
|
|
844
|
+
for (const scrollableElement of elements) {
|
|
845
|
+
const elementCanScroll = utilities.canScroll(scrollableElement, by);
|
|
846
|
+
if (elementCanScroll.x || elementCanScroll.y) {
|
|
847
|
+
const { speed, direction } = utilities.detectScrollIntent(
|
|
848
|
+
scrollableElement,
|
|
849
|
+
currentPosition,
|
|
850
|
+
intent
|
|
851
|
+
);
|
|
852
|
+
if (scrollIntent) {
|
|
853
|
+
for (const axis of index$1.Axes) {
|
|
854
|
+
if (scrollIntent[axis].isLocked(direction[axis])) {
|
|
855
|
+
speed[axis] = 0;
|
|
856
|
+
direction[axis] = 0;
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
if (direction.x || direction.y) {
|
|
861
|
+
const { x, y } = by != null ? by : direction;
|
|
862
|
+
const scrollLeftBy = x * speed.x;
|
|
863
|
+
const scrollTopBy = y * speed.y;
|
|
864
|
+
if (scrollLeftBy || scrollTopBy) {
|
|
865
|
+
const previousScrollBy = (_a4 = __privateGet(this, _meta)) == null ? void 0 : _a4.by;
|
|
866
|
+
if (this.autoScrolling && previousScrollBy) {
|
|
867
|
+
const scrollIntentMismatch = previousScrollBy.x && !scrollLeftBy || previousScrollBy.y && !scrollTopBy;
|
|
868
|
+
if (scrollIntentMismatch) continue;
|
|
869
|
+
}
|
|
870
|
+
__privateSet(this, _meta, {
|
|
871
|
+
element: scrollableElement,
|
|
872
|
+
by: {
|
|
873
|
+
x: scrollLeftBy,
|
|
874
|
+
y: scrollTopBy
|
|
875
|
+
}
|
|
876
|
+
});
|
|
877
|
+
utilities.scheduler.schedule(__privateGet(this, _scroll));
|
|
878
|
+
return true;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
__privateSet(this, _meta, void 0);
|
|
885
|
+
return false;
|
|
886
|
+
};
|
|
887
|
+
let previousElementFromPoint = null;
|
|
888
|
+
let previousScrollableElements = null;
|
|
889
|
+
const elementFromPoint = index$2.computed(() => {
|
|
890
|
+
const { position, source } = manager.dragOperation;
|
|
891
|
+
if (!position) {
|
|
892
|
+
return null;
|
|
893
|
+
}
|
|
894
|
+
const element = utilities.getElementFromPoint(
|
|
895
|
+
utilities.getDocument(source == null ? void 0 : source.element),
|
|
896
|
+
position.current
|
|
897
|
+
);
|
|
898
|
+
if (element) {
|
|
899
|
+
previousElementFromPoint = element;
|
|
900
|
+
}
|
|
901
|
+
return element != null ? element : previousElementFromPoint;
|
|
902
|
+
});
|
|
903
|
+
const scrollableElements = index$2.computed(() => {
|
|
904
|
+
const element = elementFromPoint.value;
|
|
905
|
+
const { documentElement } = utilities.getDocument(element);
|
|
906
|
+
if (!element || element === documentElement) {
|
|
907
|
+
const { target } = manager.dragOperation;
|
|
908
|
+
const targetElement = target == null ? void 0 : target.element;
|
|
909
|
+
if (targetElement) {
|
|
910
|
+
const elements = utilities.getScrollableAncestors(targetElement, {
|
|
911
|
+
excludeElement: false
|
|
912
|
+
});
|
|
913
|
+
previousScrollableElements = elements;
|
|
914
|
+
return elements;
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
if (element) {
|
|
918
|
+
const elements = utilities.getScrollableAncestors(element, {
|
|
919
|
+
excludeElement: false
|
|
920
|
+
});
|
|
921
|
+
if (this.autoScrolling && previousScrollableElements && elements.size < (previousScrollableElements == null ? void 0 : previousScrollableElements.size)) {
|
|
922
|
+
return previousScrollableElements;
|
|
923
|
+
}
|
|
924
|
+
previousScrollableElements = elements;
|
|
925
|
+
return elements;
|
|
926
|
+
}
|
|
927
|
+
previousScrollableElements = null;
|
|
928
|
+
return null;
|
|
929
|
+
}, index$2.deepEqual);
|
|
930
|
+
this.getScrollableElements = () => {
|
|
931
|
+
return scrollableElements.value;
|
|
932
|
+
};
|
|
933
|
+
this.scrollIntentTracker = new ScrollIntentTracker(manager);
|
|
934
|
+
this.destroy = manager.monitor.addEventListener("dragmove", (event) => {
|
|
935
|
+
if (this.disabled || event.defaultPrevented || !utilities.isKeyboardEvent(manager.dragOperation.activatorEvent) || !event.by) {
|
|
936
|
+
return;
|
|
937
|
+
}
|
|
938
|
+
if (this.scroll({ by: event.by })) {
|
|
939
|
+
event.preventDefault();
|
|
940
|
+
}
|
|
941
|
+
});
|
|
942
|
+
}
|
|
943
|
+
};
|
|
944
|
+
_init3 = __decoratorStart(_a3);
|
|
945
|
+
_autoScrolling = new WeakMap();
|
|
946
|
+
_meta = new WeakMap();
|
|
947
|
+
_scroll = new WeakMap();
|
|
948
|
+
__decorateElement(_init3, 4, "autoScrolling", _autoScrolling_dec, Scroller, _autoScrolling);
|
|
949
|
+
__decoratorMetadata(_init3, Scroller);
|
|
950
|
+
function getScrollIntent(value) {
|
|
951
|
+
if (value > 0) {
|
|
952
|
+
return utilities.ScrollDirection.Forward;
|
|
953
|
+
}
|
|
954
|
+
if (value < 0) {
|
|
955
|
+
return utilities.ScrollDirection.Reverse;
|
|
956
|
+
}
|
|
957
|
+
return utilities.ScrollDirection.Idle;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
// src/utilities/scheduling/scheduler.ts
|
|
961
|
+
var Scheduler = class {
|
|
962
|
+
constructor(scheduler5) {
|
|
963
|
+
this.scheduler = scheduler5;
|
|
964
|
+
this.pending = false;
|
|
965
|
+
this.tasks = /* @__PURE__ */ new Set();
|
|
966
|
+
this.resolvers = /* @__PURE__ */ new Set();
|
|
967
|
+
this.flush = () => {
|
|
968
|
+
const { tasks, resolvers } = this;
|
|
969
|
+
this.pending = false;
|
|
970
|
+
this.tasks = /* @__PURE__ */ new Set();
|
|
971
|
+
this.resolvers = /* @__PURE__ */ new Set();
|
|
972
|
+
for (const task of tasks) {
|
|
973
|
+
task();
|
|
974
|
+
}
|
|
975
|
+
for (const resolve of resolvers) {
|
|
976
|
+
resolve();
|
|
977
|
+
}
|
|
978
|
+
};
|
|
979
|
+
}
|
|
980
|
+
schedule(task) {
|
|
981
|
+
this.tasks.add(task);
|
|
982
|
+
if (!this.pending) {
|
|
983
|
+
this.pending = true;
|
|
984
|
+
this.scheduler(this.flush);
|
|
985
|
+
}
|
|
986
|
+
return new Promise((resolve) => this.resolvers.add(resolve));
|
|
987
|
+
}
|
|
988
|
+
};
|
|
989
|
+
var scheduler3 = new Scheduler((callback) => {
|
|
990
|
+
if (typeof requestAnimationFrame === "function") {
|
|
991
|
+
requestAnimationFrame(callback);
|
|
992
|
+
} else {
|
|
993
|
+
callback();
|
|
994
|
+
}
|
|
995
|
+
});
|
|
996
|
+
|
|
997
|
+
// src/core/plugins/scrolling/AutoScroller.ts
|
|
998
|
+
var AUTOSCROLL_INTERVAL = 10;
|
|
999
|
+
var AutoScroller = class extends index.Plugin {
|
|
1000
|
+
constructor(manager, _options) {
|
|
1001
|
+
super(manager);
|
|
1002
|
+
const scroller = manager.registry.plugins.get(Scroller);
|
|
1003
|
+
if (!scroller) {
|
|
1004
|
+
throw new Error("AutoScroller plugin depends on Scroller plugin");
|
|
1005
|
+
}
|
|
1006
|
+
this.destroy = signalsCore.effect(() => {
|
|
1007
|
+
if (this.disabled) {
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
const { position: _, status } = manager.dragOperation;
|
|
1011
|
+
if (status.dragging) {
|
|
1012
|
+
const canScroll2 = scroller.scroll();
|
|
1013
|
+
if (canScroll2) {
|
|
1014
|
+
scroller.autoScrolling = true;
|
|
1015
|
+
const interval = setInterval(
|
|
1016
|
+
() => scheduler3.schedule(scroller.scroll),
|
|
1017
|
+
AUTOSCROLL_INTERVAL
|
|
1018
|
+
);
|
|
1019
|
+
return () => {
|
|
1020
|
+
clearInterval(interval);
|
|
1021
|
+
};
|
|
1022
|
+
} else {
|
|
1023
|
+
scroller.autoScrolling = false;
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
});
|
|
1027
|
+
}
|
|
1028
|
+
};
|
|
1029
|
+
var defaults = Object.freeze({
|
|
1030
|
+
offset: 10,
|
|
1031
|
+
keyboardCodes: {
|
|
1032
|
+
start: ["Space", "Enter"],
|
|
1033
|
+
cancel: ["Escape"],
|
|
1034
|
+
end: ["Space", "Enter", "Tab"],
|
|
1035
|
+
up: ["ArrowUp"],
|
|
1036
|
+
down: ["ArrowDown"],
|
|
1037
|
+
left: ["ArrowLeft"],
|
|
1038
|
+
right: ["ArrowRight"]
|
|
1039
|
+
},
|
|
1040
|
+
shouldActivate(args) {
|
|
1041
|
+
var _a4;
|
|
1042
|
+
const { event, source } = args;
|
|
1043
|
+
const target = (_a4 = source.handle) != null ? _a4 : source.element;
|
|
1044
|
+
return event.target === target;
|
|
1045
|
+
}
|
|
1046
|
+
});
|
|
1047
|
+
var _cleanupFunctions;
|
|
1048
|
+
var _KeyboardSensor = class _KeyboardSensor extends index.Sensor {
|
|
1049
|
+
constructor(manager, options) {
|
|
1050
|
+
super(manager);
|
|
1051
|
+
this.manager = manager;
|
|
1052
|
+
this.options = options;
|
|
1053
|
+
__privateAdd(this, _cleanupFunctions, []);
|
|
1054
|
+
this.listeners = new utilities.Listeners();
|
|
1055
|
+
this.handleSourceKeyDown = (event, source, options) => {
|
|
1056
|
+
if (this.disabled || event.defaultPrevented) {
|
|
1057
|
+
return;
|
|
1058
|
+
}
|
|
1059
|
+
if (!utilities.isElement(event.target)) {
|
|
1060
|
+
return;
|
|
1061
|
+
}
|
|
1062
|
+
if (source.disabled) {
|
|
1063
|
+
return;
|
|
1064
|
+
}
|
|
1065
|
+
const {
|
|
1066
|
+
keyboardCodes = defaults.keyboardCodes,
|
|
1067
|
+
shouldActivate = defaults.shouldActivate
|
|
1068
|
+
} = options != null ? options : {};
|
|
1069
|
+
if (!keyboardCodes.start.includes(event.code)) {
|
|
1070
|
+
return;
|
|
1071
|
+
}
|
|
1072
|
+
if (!this.manager.dragOperation.status.idle) {
|
|
1073
|
+
return;
|
|
1074
|
+
}
|
|
1075
|
+
if (shouldActivate({ event, source, manager: this.manager })) {
|
|
1076
|
+
this.handleStart(event, source, options);
|
|
1077
|
+
}
|
|
1078
|
+
};
|
|
1079
|
+
}
|
|
1080
|
+
bind(source, options = this.options) {
|
|
1081
|
+
const unbind = signalsCore.effect(() => {
|
|
1082
|
+
var _a4;
|
|
1083
|
+
const target = (_a4 = source.handle) != null ? _a4 : source.element;
|
|
1084
|
+
const listener = (event) => {
|
|
1085
|
+
if (utilities.isKeyboardEvent(event)) {
|
|
1086
|
+
this.handleSourceKeyDown(event, source, options);
|
|
1087
|
+
}
|
|
1088
|
+
};
|
|
1089
|
+
if (target) {
|
|
1090
|
+
target.addEventListener("keydown", listener);
|
|
1091
|
+
return () => {
|
|
1092
|
+
target.removeEventListener("keydown", listener);
|
|
1093
|
+
};
|
|
1094
|
+
}
|
|
1095
|
+
});
|
|
1096
|
+
return unbind;
|
|
1097
|
+
}
|
|
1098
|
+
handleStart(event, source, options) {
|
|
1099
|
+
const { element } = source;
|
|
1100
|
+
if (!element) {
|
|
1101
|
+
throw new Error("Source draggable does not have an associated element");
|
|
1102
|
+
}
|
|
1103
|
+
event.preventDefault();
|
|
1104
|
+
event.stopImmediatePropagation();
|
|
1105
|
+
utilities.scrollIntoViewIfNeeded(element);
|
|
1106
|
+
const { center } = new utilities.DOMRectangle(element);
|
|
1107
|
+
const controller = this.manager.actions.start({
|
|
1108
|
+
event,
|
|
1109
|
+
coordinates: {
|
|
1110
|
+
x: center.x,
|
|
1111
|
+
y: center.y
|
|
1112
|
+
},
|
|
1113
|
+
source
|
|
1114
|
+
});
|
|
1115
|
+
if (controller.signal.aborted) return this.cleanup();
|
|
1116
|
+
this.sideEffects();
|
|
1117
|
+
const sourceDocument = utilities.getDocument(element);
|
|
1118
|
+
const listeners = [
|
|
1119
|
+
this.listeners.bind(sourceDocument, [
|
|
1120
|
+
{
|
|
1121
|
+
type: "keydown",
|
|
1122
|
+
listener: (event2) => this.handleKeyDown(event2, source, options),
|
|
1123
|
+
options: { capture: true }
|
|
1124
|
+
}
|
|
1125
|
+
])
|
|
1126
|
+
];
|
|
1127
|
+
__privateGet(this, _cleanupFunctions).push(...listeners);
|
|
1128
|
+
}
|
|
1129
|
+
handleKeyDown(event, _source, options) {
|
|
1130
|
+
const { keyboardCodes = defaults.keyboardCodes } = options != null ? options : {};
|
|
1131
|
+
if (isKeycode(event, [...keyboardCodes.end, ...keyboardCodes.cancel])) {
|
|
1132
|
+
event.preventDefault();
|
|
1133
|
+
const canceled = isKeycode(event, keyboardCodes.cancel);
|
|
1134
|
+
this.handleEnd(event, canceled);
|
|
1135
|
+
return;
|
|
1136
|
+
}
|
|
1137
|
+
if (isKeycode(event, keyboardCodes.up)) {
|
|
1138
|
+
this.handleMove("up", event);
|
|
1139
|
+
} else if (isKeycode(event, keyboardCodes.down)) {
|
|
1140
|
+
this.handleMove("down", event);
|
|
1141
|
+
}
|
|
1142
|
+
if (isKeycode(event, keyboardCodes.left)) {
|
|
1143
|
+
this.handleMove("left", event);
|
|
1144
|
+
} else if (isKeycode(event, keyboardCodes.right)) {
|
|
1145
|
+
this.handleMove("right", event);
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
handleEnd(event, canceled) {
|
|
1149
|
+
this.manager.actions.stop({
|
|
1150
|
+
event,
|
|
1151
|
+
canceled
|
|
1152
|
+
});
|
|
1153
|
+
this.cleanup();
|
|
1154
|
+
}
|
|
1155
|
+
handleMove(direction, event) {
|
|
1156
|
+
var _a4, _b2;
|
|
1157
|
+
const { shape } = this.manager.dragOperation;
|
|
1158
|
+
const factor = event.shiftKey ? 5 : 1;
|
|
1159
|
+
let by = {
|
|
1160
|
+
x: 0,
|
|
1161
|
+
y: 0
|
|
1162
|
+
};
|
|
1163
|
+
let offset = (_b2 = (_a4 = this.options) == null ? void 0 : _a4.offset) != null ? _b2 : defaults.offset;
|
|
1164
|
+
if (typeof offset === "number") {
|
|
1165
|
+
offset = { x: offset, y: offset };
|
|
1166
|
+
}
|
|
1167
|
+
if (!shape) {
|
|
1168
|
+
return;
|
|
1169
|
+
}
|
|
1170
|
+
switch (direction) {
|
|
1171
|
+
case "up":
|
|
1172
|
+
by = { x: 0, y: -offset.y * factor };
|
|
1173
|
+
break;
|
|
1174
|
+
case "down":
|
|
1175
|
+
by = { x: 0, y: offset.y * factor };
|
|
1176
|
+
break;
|
|
1177
|
+
case "left":
|
|
1178
|
+
by = { x: -offset.x * factor, y: 0 };
|
|
1179
|
+
break;
|
|
1180
|
+
case "right":
|
|
1181
|
+
by = { x: offset.x * factor, y: 0 };
|
|
1182
|
+
break;
|
|
1183
|
+
}
|
|
1184
|
+
if (by.x || by.y) {
|
|
1185
|
+
event.preventDefault();
|
|
1186
|
+
this.manager.actions.move({
|
|
1187
|
+
event,
|
|
1188
|
+
by
|
|
1189
|
+
});
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
sideEffects() {
|
|
1193
|
+
const autoScroller = this.manager.registry.plugins.get(AutoScroller);
|
|
1194
|
+
if ((autoScroller == null ? void 0 : autoScroller.disabled) === false) {
|
|
1195
|
+
autoScroller.disable();
|
|
1196
|
+
__privateGet(this, _cleanupFunctions).push(() => {
|
|
1197
|
+
autoScroller.enable();
|
|
1198
|
+
});
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
cleanup() {
|
|
1202
|
+
__privateGet(this, _cleanupFunctions).forEach((cleanup) => cleanup());
|
|
1203
|
+
__privateSet(this, _cleanupFunctions, []);
|
|
1204
|
+
}
|
|
1205
|
+
destroy() {
|
|
1206
|
+
this.cleanup();
|
|
1207
|
+
this.listeners.clear();
|
|
1208
|
+
}
|
|
1209
|
+
};
|
|
1210
|
+
_cleanupFunctions = new WeakMap();
|
|
1211
|
+
_KeyboardSensor.configure = index.configurator(_KeyboardSensor);
|
|
1212
|
+
_KeyboardSensor.defaults = defaults;
|
|
1213
|
+
var KeyboardSensor = _KeyboardSensor;
|
|
1214
|
+
function isKeycode(event, codes) {
|
|
1215
|
+
return codes.includes(event.code);
|
|
1216
|
+
}
|
|
1217
|
+
var defaults2 = Object.freeze({
|
|
1218
|
+
activationConstraints(event, source) {
|
|
1219
|
+
var _a4;
|
|
1220
|
+
const { pointerType, target } = event;
|
|
1221
|
+
if (pointerType === "mouse" && utilities.isElement(target) && (source.handle === target || ((_a4 = source.handle) == null ? void 0 : _a4.contains(target)))) {
|
|
1222
|
+
return void 0;
|
|
1223
|
+
}
|
|
1224
|
+
if (pointerType === "touch") {
|
|
1225
|
+
return {
|
|
1226
|
+
delay: { value: 250, tolerance: 5 }
|
|
1227
|
+
};
|
|
1228
|
+
}
|
|
1229
|
+
if (utilities.isTextInput(target) && !event.defaultPrevented) {
|
|
1230
|
+
return {
|
|
1231
|
+
delay: { value: 200, tolerance: 0 }
|
|
1232
|
+
};
|
|
1233
|
+
}
|
|
1234
|
+
return {
|
|
1235
|
+
delay: { value: 200, tolerance: 10 },
|
|
1236
|
+
distance: { value: 5 }
|
|
1237
|
+
};
|
|
1238
|
+
}
|
|
1239
|
+
});
|
|
1240
|
+
var _cleanup, _clearTimeout;
|
|
1241
|
+
var _PointerSensor = class _PointerSensor extends index.Sensor {
|
|
1242
|
+
constructor(manager, options) {
|
|
1243
|
+
super(manager);
|
|
1244
|
+
this.manager = manager;
|
|
1245
|
+
this.options = options;
|
|
1246
|
+
__privateAdd(this, _cleanup, /* @__PURE__ */ new Set());
|
|
1247
|
+
__privateAdd(this, _clearTimeout);
|
|
1248
|
+
this.listeners = new utilities.Listeners();
|
|
1249
|
+
this.latest = {
|
|
1250
|
+
event: void 0,
|
|
1251
|
+
coordinates: void 0
|
|
1252
|
+
};
|
|
1253
|
+
this.handleMove = () => {
|
|
1254
|
+
const { event, coordinates: to } = this.latest;
|
|
1255
|
+
if (!event || !to) {
|
|
1256
|
+
return;
|
|
1257
|
+
}
|
|
1258
|
+
this.manager.actions.move({ event, to });
|
|
1259
|
+
};
|
|
1260
|
+
this.handleCancel = this.handleCancel.bind(this);
|
|
1261
|
+
this.handlePointerUp = this.handlePointerUp.bind(this);
|
|
1262
|
+
this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
1263
|
+
}
|
|
1264
|
+
activationConstraints(event, source) {
|
|
1265
|
+
var _a4;
|
|
1266
|
+
const { activationConstraints = defaults2.activationConstraints } = (_a4 = this.options) != null ? _a4 : {};
|
|
1267
|
+
const constraints = typeof activationConstraints === "function" ? activationConstraints(event, source) : activationConstraints;
|
|
1268
|
+
return constraints;
|
|
1269
|
+
}
|
|
1270
|
+
bind(source, options = this.options) {
|
|
1271
|
+
const unbind = signalsCore.effect(() => {
|
|
1272
|
+
var _a4;
|
|
1273
|
+
const controller = new AbortController();
|
|
1274
|
+
const { signal: signal3 } = controller;
|
|
1275
|
+
const listener = (event) => {
|
|
1276
|
+
if (utilities.isPointerEvent(event)) {
|
|
1277
|
+
this.handlePointerDown(event, source, options);
|
|
1278
|
+
}
|
|
1279
|
+
};
|
|
1280
|
+
let targets = [(_a4 = source.handle) != null ? _a4 : source.element];
|
|
1281
|
+
if (options == null ? void 0 : options.activatorElements) {
|
|
1282
|
+
if (Array.isArray(options.activatorElements)) {
|
|
1283
|
+
targets = options.activatorElements;
|
|
1284
|
+
} else {
|
|
1285
|
+
targets = options.activatorElements(source);
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
for (const target of targets) {
|
|
1289
|
+
if (!target) continue;
|
|
1290
|
+
patchWindow(target.ownerDocument.defaultView);
|
|
1291
|
+
target.addEventListener("pointerdown", listener, { signal: signal3 });
|
|
1292
|
+
}
|
|
1293
|
+
return () => controller.abort();
|
|
1294
|
+
});
|
|
1295
|
+
return unbind;
|
|
1296
|
+
}
|
|
1297
|
+
handlePointerDown(event, source, options = {}) {
|
|
1298
|
+
if (this.disabled || !event.isPrimary || event.button !== 0 || !utilities.isElement(event.target) || source.disabled || isCapturedBySensor(event) || !this.manager.dragOperation.status.idle) {
|
|
1299
|
+
return;
|
|
1300
|
+
}
|
|
1301
|
+
const { target } = event;
|
|
1302
|
+
const isNativeDraggable = utilities.isHTMLElement(target) && target.draggable && target.getAttribute("draggable") === "true";
|
|
1303
|
+
const offset = utilities.getFrameTransform(source.element);
|
|
1304
|
+
this.initialCoordinates = {
|
|
1305
|
+
x: event.clientX * offset.scaleX + offset.x,
|
|
1306
|
+
y: event.clientY * offset.scaleY + offset.y
|
|
1307
|
+
};
|
|
1308
|
+
const constraints = this.activationConstraints(event, source);
|
|
1309
|
+
event.sensor = this;
|
|
1310
|
+
if (!(constraints == null ? void 0 : constraints.delay) && !(constraints == null ? void 0 : constraints.distance)) {
|
|
1311
|
+
this.handleStart(source, event);
|
|
1312
|
+
} else {
|
|
1313
|
+
const { delay } = constraints;
|
|
1314
|
+
if (delay) {
|
|
1315
|
+
const timeout = setTimeout(
|
|
1316
|
+
() => this.handleStart(source, event),
|
|
1317
|
+
delay.value
|
|
1318
|
+
);
|
|
1319
|
+
__privateSet(this, _clearTimeout, () => {
|
|
1320
|
+
clearTimeout(timeout);
|
|
1321
|
+
__privateSet(this, _clearTimeout, void 0);
|
|
1322
|
+
});
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
const ownerDocument = utilities.getDocument(event.target);
|
|
1326
|
+
const unbindListeners = this.listeners.bind(ownerDocument, [
|
|
1327
|
+
{
|
|
1328
|
+
type: "pointermove",
|
|
1329
|
+
listener: (event2) => this.handlePointerMove(event2, source)
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
type: "pointerup",
|
|
1333
|
+
listener: this.handlePointerUp,
|
|
1334
|
+
options: {
|
|
1335
|
+
capture: true
|
|
1336
|
+
}
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
// Cancel activation if there is a competing Drag and Drop interaction
|
|
1340
|
+
type: "dragstart",
|
|
1341
|
+
listener: isNativeDraggable ? this.handleCancel : preventDefault,
|
|
1342
|
+
options: {
|
|
1343
|
+
capture: true
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
]);
|
|
1347
|
+
const cleanup = () => {
|
|
1348
|
+
var _a4;
|
|
1349
|
+
unbindListeners();
|
|
1350
|
+
(_a4 = __privateGet(this, _clearTimeout)) == null ? void 0 : _a4.call(this);
|
|
1351
|
+
this.initialCoordinates = void 0;
|
|
1352
|
+
};
|
|
1353
|
+
__privateGet(this, _cleanup).add(cleanup);
|
|
1354
|
+
}
|
|
1355
|
+
handlePointerMove(event, source) {
|
|
1356
|
+
const coordinates = {
|
|
1357
|
+
x: event.clientX,
|
|
1358
|
+
y: event.clientY
|
|
1359
|
+
};
|
|
1360
|
+
const offset = utilities.getFrameTransform(source.element);
|
|
1361
|
+
coordinates.x = coordinates.x * offset.scaleX + offset.x;
|
|
1362
|
+
coordinates.y = coordinates.y * offset.scaleY + offset.y;
|
|
1363
|
+
if (this.manager.dragOperation.status.dragging) {
|
|
1364
|
+
event.preventDefault();
|
|
1365
|
+
event.stopPropagation();
|
|
1366
|
+
this.latest.event = event;
|
|
1367
|
+
this.latest.coordinates = coordinates;
|
|
1368
|
+
utilities.scheduler.schedule(this.handleMove);
|
|
1369
|
+
return;
|
|
1370
|
+
}
|
|
1371
|
+
if (!this.initialCoordinates) {
|
|
1372
|
+
return;
|
|
1373
|
+
}
|
|
1374
|
+
const delta = {
|
|
1375
|
+
x: coordinates.x - this.initialCoordinates.x,
|
|
1376
|
+
y: coordinates.y - this.initialCoordinates.y
|
|
1377
|
+
};
|
|
1378
|
+
const constraints = this.activationConstraints(event, source);
|
|
1379
|
+
const { distance, delay } = constraints != null ? constraints : {};
|
|
1380
|
+
if (distance) {
|
|
1381
|
+
if (distance.tolerance != null && index$1.exceedsDistance(delta, distance.tolerance)) {
|
|
1382
|
+
return this.handleCancel(event);
|
|
1383
|
+
}
|
|
1384
|
+
if (index$1.exceedsDistance(delta, distance.value)) {
|
|
1385
|
+
return this.handleStart(source, event);
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
if (delay) {
|
|
1389
|
+
if (index$1.exceedsDistance(delta, delay.tolerance)) {
|
|
1390
|
+
return this.handleCancel(event);
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
handlePointerUp(event) {
|
|
1395
|
+
const { status } = this.manager.dragOperation;
|
|
1396
|
+
if (!status.idle) {
|
|
1397
|
+
event.preventDefault();
|
|
1398
|
+
event.stopPropagation();
|
|
1399
|
+
const canceled = !status.initialized;
|
|
1400
|
+
this.manager.actions.stop({ event, canceled });
|
|
1401
|
+
}
|
|
1402
|
+
this.cleanup();
|
|
1403
|
+
}
|
|
1404
|
+
handleKeyDown(event) {
|
|
1405
|
+
if (event.key === "Escape") {
|
|
1406
|
+
event.preventDefault();
|
|
1407
|
+
this.handleCancel(event);
|
|
1408
|
+
}
|
|
1409
|
+
}
|
|
1410
|
+
handleStart(source, event) {
|
|
1411
|
+
var _a4;
|
|
1412
|
+
const { manager, initialCoordinates } = this;
|
|
1413
|
+
(_a4 = __privateGet(this, _clearTimeout)) == null ? void 0 : _a4.call(this);
|
|
1414
|
+
if (!initialCoordinates || !manager.dragOperation.status.idle) {
|
|
1415
|
+
return;
|
|
1416
|
+
}
|
|
1417
|
+
if (event.defaultPrevented) {
|
|
1418
|
+
return;
|
|
1419
|
+
}
|
|
1420
|
+
const controller = manager.actions.start({
|
|
1421
|
+
coordinates: initialCoordinates,
|
|
1422
|
+
event,
|
|
1423
|
+
source
|
|
1424
|
+
});
|
|
1425
|
+
if (controller.signal.aborted) return this.cleanup();
|
|
1426
|
+
event.preventDefault();
|
|
1427
|
+
const ownerDocument = utilities.getDocument(event.target);
|
|
1428
|
+
const pointerCaptureTarget = ownerDocument.body;
|
|
1429
|
+
pointerCaptureTarget.setPointerCapture(event.pointerId);
|
|
1430
|
+
const unbind = this.listeners.bind(ownerDocument, [
|
|
1431
|
+
{
|
|
1432
|
+
// Prevent scrolling on touch devices
|
|
1433
|
+
type: "touchmove",
|
|
1434
|
+
listener: preventDefault,
|
|
1435
|
+
options: {
|
|
1436
|
+
passive: false
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
{
|
|
1440
|
+
// Prevent click events
|
|
1441
|
+
type: "click",
|
|
1442
|
+
listener: preventDefault
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
type: "contextmenu",
|
|
1446
|
+
listener: preventDefault
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
type: "keydown",
|
|
1450
|
+
listener: this.handleKeyDown
|
|
1451
|
+
},
|
|
1452
|
+
{
|
|
1453
|
+
type: "lostpointercapture",
|
|
1454
|
+
listener: (event2) => {
|
|
1455
|
+
if (event2.target !== pointerCaptureTarget) return;
|
|
1456
|
+
this.handlePointerUp(event2);
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
]);
|
|
1460
|
+
__privateGet(this, _cleanup).add(unbind);
|
|
1461
|
+
}
|
|
1462
|
+
handleCancel(event) {
|
|
1463
|
+
const { dragOperation } = this.manager;
|
|
1464
|
+
if (dragOperation.status.initialized) {
|
|
1465
|
+
this.manager.actions.stop({ event, canceled: true });
|
|
1466
|
+
}
|
|
1467
|
+
this.cleanup();
|
|
1468
|
+
}
|
|
1469
|
+
cleanup() {
|
|
1470
|
+
this.latest = {
|
|
1471
|
+
event: void 0,
|
|
1472
|
+
coordinates: void 0
|
|
1473
|
+
};
|
|
1474
|
+
__privateGet(this, _cleanup).forEach((cleanup) => cleanup());
|
|
1475
|
+
__privateGet(this, _cleanup).clear();
|
|
1476
|
+
}
|
|
1477
|
+
destroy() {
|
|
1478
|
+
this.cleanup();
|
|
1479
|
+
this.listeners.clear();
|
|
1480
|
+
}
|
|
1481
|
+
};
|
|
1482
|
+
_cleanup = new WeakMap();
|
|
1483
|
+
_clearTimeout = new WeakMap();
|
|
1484
|
+
_PointerSensor.configure = index.configurator(_PointerSensor);
|
|
1485
|
+
_PointerSensor.defaults = defaults2;
|
|
1486
|
+
var PointerSensor = _PointerSensor;
|
|
1487
|
+
function isCapturedBySensor(event) {
|
|
1488
|
+
return "sensor" in event;
|
|
1489
|
+
}
|
|
1490
|
+
function preventDefault(event) {
|
|
1491
|
+
event.preventDefault();
|
|
1492
|
+
}
|
|
1493
|
+
function noop() {
|
|
1494
|
+
}
|
|
1495
|
+
var windows = /* @__PURE__ */ new WeakSet();
|
|
1496
|
+
function patchWindow(window) {
|
|
1497
|
+
if (!window || windows.has(window)) {
|
|
1498
|
+
return;
|
|
1499
|
+
}
|
|
1500
|
+
window.addEventListener("touchmove", noop, {
|
|
1501
|
+
capture: false,
|
|
1502
|
+
passive: false
|
|
1503
|
+
});
|
|
1504
|
+
windows.add(window);
|
|
1505
|
+
}
|
|
1506
|
+
var _feedback_dec, _element_dec, _handle_dec, _c, _init4, _handle, _element, _feedback;
|
|
1507
|
+
var Draggable = class extends (_c = index.Draggable, _handle_dec = [index$2.reactive], _element_dec = [index$2.reactive], _feedback_dec = [index$2.reactive], _c) {
|
|
1508
|
+
constructor(_a4, manager) {
|
|
1509
|
+
var _b2 = _a4, {
|
|
1510
|
+
element,
|
|
1511
|
+
effects = () => [],
|
|
1512
|
+
handle,
|
|
1513
|
+
feedback = "default"
|
|
1514
|
+
} = _b2, input = __objRest(_b2, [
|
|
1515
|
+
"element",
|
|
1516
|
+
"effects",
|
|
1517
|
+
"handle",
|
|
1518
|
+
"feedback"
|
|
1519
|
+
]);
|
|
1520
|
+
super(
|
|
1521
|
+
__spreadValues({
|
|
1522
|
+
effects: () => [
|
|
1523
|
+
...effects(),
|
|
1524
|
+
() => {
|
|
1525
|
+
var _a5, _b3;
|
|
1526
|
+
const { manager: manager2 } = this;
|
|
1527
|
+
if (!manager2) return;
|
|
1528
|
+
const sensors = (_b3 = (_a5 = this.sensors) == null ? void 0 : _a5.map(index.descriptor)) != null ? _b3 : [
|
|
1529
|
+
...manager2.sensors
|
|
1530
|
+
];
|
|
1531
|
+
const unbindFunctions = sensors.map((entry) => {
|
|
1532
|
+
const sensorInstance = entry instanceof index.Sensor ? entry : manager2.registry.register(entry.plugin);
|
|
1533
|
+
const options = entry instanceof index.Sensor ? void 0 : entry.options;
|
|
1534
|
+
const unbind = sensorInstance.bind(this, options);
|
|
1535
|
+
return unbind;
|
|
1536
|
+
});
|
|
1537
|
+
return function cleanup() {
|
|
1538
|
+
unbindFunctions.forEach((unbind) => unbind());
|
|
1539
|
+
};
|
|
1540
|
+
}
|
|
1541
|
+
]
|
|
1542
|
+
}, input),
|
|
1543
|
+
manager
|
|
1544
|
+
);
|
|
1545
|
+
__privateAdd(this, _handle, __runInitializers(_init4, 8, this)), __runInitializers(_init4, 11, this);
|
|
1546
|
+
__privateAdd(this, _element, __runInitializers(_init4, 12, this)), __runInitializers(_init4, 15, this);
|
|
1547
|
+
__privateAdd(this, _feedback, __runInitializers(_init4, 16, this)), __runInitializers(_init4, 19, this);
|
|
1548
|
+
this.element = element;
|
|
1549
|
+
this.handle = handle;
|
|
1550
|
+
this.feedback = feedback;
|
|
1551
|
+
}
|
|
1552
|
+
};
|
|
1553
|
+
_init4 = __decoratorStart(_c);
|
|
1554
|
+
_handle = new WeakMap();
|
|
1555
|
+
_element = new WeakMap();
|
|
1556
|
+
_feedback = new WeakMap();
|
|
1557
|
+
__decorateElement(_init4, 4, "handle", _handle_dec, Draggable, _handle);
|
|
1558
|
+
__decorateElement(_init4, 4, "element", _element_dec, Draggable, _element);
|
|
1559
|
+
__decorateElement(_init4, 4, "feedback", _feedback_dec, Draggable, _feedback);
|
|
1560
|
+
__decoratorMetadata(_init4, Draggable);
|
|
1561
|
+
var _proxy_dec, _element_dec2, _c2, _init5, _element2, _d, element_get, element_set, _Droppable_instances, _proxy;
|
|
1562
|
+
var Droppable = class extends (_c2 = index.Droppable, _element_dec2 = [index$2.reactive], _proxy_dec = [index$2.reactive], _c2) {
|
|
1563
|
+
constructor(_a4, manager) {
|
|
1564
|
+
var _b2 = _a4, { element, effects = () => [] } = _b2, input = __objRest(_b2, ["element", "effects"]);
|
|
1565
|
+
const { collisionDetector = index$3.defaultCollisionDetection } = input;
|
|
1566
|
+
const updateShape = (boundingClientRect) => {
|
|
1567
|
+
const { manager: manager2, element: element2 } = this;
|
|
1568
|
+
if (!element2 || boundingClientRect === null) {
|
|
1569
|
+
this.shape = void 0;
|
|
1570
|
+
return void 0;
|
|
1571
|
+
}
|
|
1572
|
+
if (!manager2) return;
|
|
1573
|
+
const updatedShape = new utilities.DOMRectangle(element2);
|
|
1574
|
+
const shape = signalsCore.untracked(() => this.shape);
|
|
1575
|
+
if (updatedShape && (shape == null ? void 0 : shape.equals(updatedShape))) {
|
|
1576
|
+
return shape;
|
|
1577
|
+
}
|
|
1578
|
+
this.shape = updatedShape;
|
|
1579
|
+
return updatedShape;
|
|
1580
|
+
};
|
|
1581
|
+
const observePosition = signalsCore.signal(false);
|
|
1582
|
+
super(
|
|
1583
|
+
__spreadProps(__spreadValues({}, input), {
|
|
1584
|
+
collisionDetector,
|
|
1585
|
+
effects: () => [
|
|
1586
|
+
...effects(),
|
|
1587
|
+
() => {
|
|
1588
|
+
const { element: element2, manager: manager2 } = this;
|
|
1589
|
+
if (!manager2) return;
|
|
1590
|
+
const { dragOperation } = manager2;
|
|
1591
|
+
const { source } = dragOperation;
|
|
1592
|
+
observePosition.value = Boolean(
|
|
1593
|
+
source && dragOperation.status.initialized && element2 && !this.disabled && this.accepts(source)
|
|
1594
|
+
);
|
|
1595
|
+
},
|
|
1596
|
+
() => {
|
|
1597
|
+
const { element: element2 } = this;
|
|
1598
|
+
if (observePosition.value && element2) {
|
|
1599
|
+
const positionObserver = new utilities.PositionObserver(
|
|
1600
|
+
element2,
|
|
1601
|
+
updateShape
|
|
1602
|
+
);
|
|
1603
|
+
return () => {
|
|
1604
|
+
positionObserver.disconnect();
|
|
1605
|
+
this.shape = void 0;
|
|
1606
|
+
};
|
|
1607
|
+
}
|
|
1608
|
+
},
|
|
1609
|
+
() => {
|
|
1610
|
+
var _a5;
|
|
1611
|
+
if ((_a5 = this.manager) == null ? void 0 : _a5.dragOperation.status.initialized) {
|
|
1612
|
+
return () => {
|
|
1613
|
+
this.shape = void 0;
|
|
1614
|
+
};
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
]
|
|
1618
|
+
}),
|
|
1619
|
+
manager
|
|
1620
|
+
);
|
|
1621
|
+
__privateAdd(this, _Droppable_instances);
|
|
1622
|
+
__privateAdd(this, _element2, __runInitializers(_init5, 8, this)), __runInitializers(_init5, 11, this);
|
|
1623
|
+
__privateAdd(this, _proxy, __runInitializers(_init5, 12, this)), __runInitializers(_init5, 15, this);
|
|
1624
|
+
this.element = element;
|
|
1625
|
+
this.refreshShape = () => updateShape();
|
|
1626
|
+
}
|
|
1627
|
+
set element(element) {
|
|
1628
|
+
__privateSet(this, _Droppable_instances, element, element_set);
|
|
1629
|
+
}
|
|
1630
|
+
get element() {
|
|
1631
|
+
var _a4;
|
|
1632
|
+
return (_a4 = this.proxy) != null ? _a4 : __privateGet(this, _Droppable_instances, element_get);
|
|
1633
|
+
}
|
|
1634
|
+
};
|
|
1635
|
+
_init5 = __decoratorStart(_c2);
|
|
1636
|
+
_element2 = new WeakMap();
|
|
1637
|
+
_Droppable_instances = new WeakSet();
|
|
1638
|
+
_proxy = new WeakMap();
|
|
1639
|
+
_d = __decorateElement(_init5, 20, "#element", _element_dec2, _Droppable_instances, _element2), element_get = _d.get, element_set = _d.set;
|
|
1640
|
+
__decorateElement(_init5, 4, "proxy", _proxy_dec, Droppable, _proxy);
|
|
1641
|
+
__decoratorMetadata(_init5, Droppable);
|
|
1642
|
+
|
|
1643
|
+
exports.AutoScroller = AutoScroller;
|
|
1644
|
+
exports.Draggable = Draggable;
|
|
1645
|
+
exports.Droppable = Droppable;
|
|
1646
|
+
exports.KeyboardSensor = KeyboardSensor;
|
|
1647
|
+
exports.PointerSensor = PointerSensor;
|
|
1648
|
+
exports.Scroller = Scroller;
|
|
1649
|
+
//# sourceMappingURL=index.js.map
|