@vuu-ui/vuu-utils 4.0.1 → 4.1.1
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/package.json +7 -8
- package/src/column-utils.js +6 -1
- package/src/tree-utils.js +2 -2
- package/src/vendor/@dnd-kit/abstract/index.d.ts +114 -32
- package/src/vendor/@dnd-kit/abstract/index.js +430 -280
- package/src/vendor/@dnd-kit/abstract/index.js.map +1 -1
- package/src/vendor/@dnd-kit/abstract/modifiers.d.ts +7 -7
- package/src/vendor/@dnd-kit/abstract/modifiers.js.map +1 -1
- package/src/vendor/@dnd-kit/abstract/package.json +8 -3
- package/src/vendor/@dnd-kit/collision/dist/index.js +10 -3
- package/src/vendor/@dnd-kit/collision/package.json +8 -3
- package/src/vendor/@dnd-kit/dom/index.d.ts +225 -126
- package/src/vendor/@dnd-kit/dom/index.js +998 -484
- package/src/vendor/@dnd-kit/dom/index.js.map +1 -1
- package/src/vendor/@dnd-kit/dom/modifiers.d.ts +1 -1
- package/src/vendor/@dnd-kit/dom/package.json +11 -5
- package/src/vendor/@dnd-kit/dom/plugins/debug.js +10 -7
- package/src/vendor/@dnd-kit/dom/plugins/debug.js.map +1 -1
- package/src/vendor/@dnd-kit/dom/sortable.d.ts +45 -11
- package/src/vendor/@dnd-kit/dom/sortable.js +203 -54
- package/src/vendor/@dnd-kit/dom/sortable.js.map +1 -1
- package/src/vendor/@dnd-kit/dom/utilities.d.ts +82 -10
- package/src/vendor/@dnd-kit/dom/utilities.js +249 -95
- package/src/vendor/@dnd-kit/dom/utilities.js.map +1 -1
- package/src/vendor/@dnd-kit/geometry/package.json +7 -2
- package/src/vendor/@dnd-kit/react/hooks.js +61 -38
- package/src/vendor/@dnd-kit/react/hooks.js.map +1 -0
- package/src/vendor/@dnd-kit/react/index.d.ts +18 -9
- package/src/vendor/@dnd-kit/react/index.js +100 -59
- package/src/vendor/@dnd-kit/react/index.js.map +1 -0
- package/src/vendor/@dnd-kit/react/package.json +17 -5
- package/src/vendor/@dnd-kit/react/sortable.d.ts +1 -1
- package/src/vendor/@dnd-kit/react/sortable.js +24 -10
- package/src/vendor/@dnd-kit/react/sortable.js.map +1 -0
- package/src/vendor/@dnd-kit/react/utilities.js.map +1 -0
- package/src/vendor/@dnd-kit/state/dist/index.js +1 -1
- package/src/vendor/@dnd-kit/state/package.json +6 -1
- package/src/vendor/@preact/signals-core/dist/signals-core.js +1 -1
- package/src/vendor/@preact/signals-core/dist/signals-core.js.map +1 -1
- package/types/ThemeProvider.d.ts +1 -1
- package/types/column-utils.d.ts +2 -1
- package/types/context-definitions/DataProvider.d.ts +1 -1
- package/types/context-definitions/DataSourceProvider.d.ts +1 -1
- package/types/filters/filter-utils.d.ts +1 -0
- package/types/tree-types.d.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["src/sortable/utilities.ts","src/sortable/plugins/SortableKeyboardPlugin.ts","../helpers/dist/index.js","src/sortable/plugins/OptimisticSortingPlugin.ts","src/sortable/sortable.ts"],"names":["manager","id","source","target","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","Plugin","batch","Sortable","_a","_b","index","group"],"mappings":"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","file":"sortable.js","sourcesContent":["import type {Droppable, Draggable} from '@dnd-kit/dom';\n\nimport {SortableDroppable, SortableDraggable} from './sortable.ts';\n\nexport function isSortable(\n element: Draggable | Droppable | null\n): element is SortableDroppable<any> | SortableDraggable<any> {\n return (\n element instanceof SortableDroppable || element instanceof SortableDraggable\n );\n}\n","import {batch, CleanupFunction, effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport {closestCorners} from '@dnd-kit/collision';\nimport {\n DOMRectangle,\n getVisibleBoundingRectangle,\n isKeyboardEvent,\n scrollIntoViewIfNeeded,\n} from '@dnd-kit/dom/utilities';\nimport {Rectangle, type Coordinates} from '@dnd-kit/geometry';\nimport {Scroller} from '@dnd-kit/dom';\nimport type {DragDropManager, Droppable} from '@dnd-kit/dom';\n\nimport {isSortable} from '../utilities.ts';\n\nconst TOLERANCE = 10;\n\nexport class SortableKeyboardPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const cleanupEffect = effect(() => {\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (dragOperation.status.initialized) {\n const scroller = manager.registry.plugins.get(Scroller);\n\n if (scroller) {\n scroller.disable();\n\n return () => scroller.enable();\n }\n }\n });\n\n const unsubscribe = manager.monitor.addEventListener(\n 'dragmove',\n (event, manager: DragDropManager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented || !event.nativeEvent) {\n return;\n }\n\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(event.nativeEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (!dragOperation.shape) {\n return;\n }\n\n const {actions, collisionObserver, registry} = manager;\n const {by} = event;\n\n if (!by) {\n return;\n }\n\n const direction = getDirection(by);\n const {source, target} = dragOperation;\n const {center} = dragOperation.shape.current;\n const potentialTargets: Droppable[] = [];\n const cleanup: CleanupFunction[] = [];\n\n batch(() => {\n for (const droppable of registry.droppables) {\n const {id} = droppable;\n\n if (\n !droppable.accepts(source) ||\n (id === target?.id && isSortable(droppable)) ||\n !droppable.element\n ) {\n continue;\n }\n\n let previousShape = droppable.shape;\n const shape = new DOMRectangle(droppable.element, {\n getBoundingClientRect: (element) =>\n getVisibleBoundingRectangle(element, undefined, 0.2),\n });\n\n if (!shape.height || !shape.width) continue;\n\n if (\n (direction == 'down' &&\n center.y + TOLERANCE < shape.center.y) ||\n (direction == 'up' && center.y - TOLERANCE > shape.center.y) ||\n (direction == 'left' &&\n center.x - TOLERANCE > shape.center.x) ||\n (direction == 'right' && center.x + TOLERANCE < shape.center.x)\n ) {\n potentialTargets.push(droppable);\n droppable.shape = shape;\n cleanup.push(() => (droppable.shape = previousShape));\n }\n }\n });\n\n event.preventDefault();\n collisionObserver.disable();\n\n const collisions = collisionObserver.computeCollisions(\n potentialTargets,\n closestCorners\n );\n batch(() => cleanup.forEach((clean) => clean()));\n\n const [firstCollision] = collisions;\n\n if (!firstCollision) {\n return;\n }\n\n const {id} = firstCollision;\n const {index, group} = source.sortable;\n\n actions.setDropTarget(id).then(() => {\n // Wait until optimistic sorting has a chance to update the DOM\n const {source, target, shape} = dragOperation;\n\n if (!source || !isSortable(source) || !shape) {\n return;\n }\n\n const {\n index: newIndex,\n group: newGroup,\n target: targetElement,\n } = source.sortable;\n const updated = index !== newIndex || group !== newGroup;\n\n const element = updated ? targetElement : target?.element;\n\n if (!element) return;\n\n scrollIntoViewIfNeeded(element);\n const updatedShape = new DOMRectangle(element);\n\n if (!updatedShape) {\n return;\n }\n\n const delta = Rectangle.delta(\n updatedShape,\n Rectangle.from(shape.current.boundingRectangle),\n source.alignment\n );\n\n actions.move({\n by: delta,\n });\n\n if (updated) {\n actions\n .setDropTarget(source.id)\n .then(() => collisionObserver.enable());\n } else {\n collisionObserver.enable();\n }\n });\n });\n }\n );\n\n this.destroy = () => {\n unsubscribe();\n cleanupEffect();\n };\n }\n}\n\nfunction getDirection(delta: Coordinates) {\n const {x, y} = delta;\n\n if (x > 0) {\n return 'right';\n } else if (x < 0) {\n return 'left';\n } else if (y > 0) {\n return 'down';\n } else if (y < 0) {\n return 'up';\n }\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/move.ts\nfunction arrayMove(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n newArray.splice(to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction arraySwap(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n const item = newArray[from];\n newArray[from] = newArray[to];\n newArray[to] = item;\n return newArray;\n}\nfunction mutate(items, event, mutation) {\n var _a, _b;\n const { source, target, canceled } = event.operation;\n if (!source || !target || canceled) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n const findIndex = (item, id) => item === id || typeof item === \"object\" && \"id\" in item && item.id === id;\n if (Array.isArray(items)) {\n const sourceIndex2 = items.findIndex((item) => findIndex(item, source.id));\n const targetIndex2 = items.findIndex((item) => findIndex(item, target.id));\n if (sourceIndex2 === -1 || targetIndex2 === -1) {\n return items;\n }\n if (!canceled && \"index\" in source && typeof source.index === \"number\") {\n const projectedSourceIndex = source.index;\n if (projectedSourceIndex !== sourceIndex2) {\n return mutation(items, sourceIndex2, projectedSourceIndex);\n }\n }\n return mutation(items, sourceIndex2, targetIndex2);\n }\n const entries = Object.entries(items);\n let sourceIndex = -1;\n let sourceParent;\n let targetIndex = -1;\n let targetParent;\n for (const [id, children] of entries) {\n if (sourceIndex === -1) {\n sourceIndex = children.findIndex((item) => findIndex(item, source.id));\n if (sourceIndex !== -1) {\n sourceParent = id;\n }\n }\n if (targetIndex === -1) {\n targetIndex = children.findIndex((item) => findIndex(item, target.id));\n if (targetIndex !== -1) {\n targetParent = id;\n }\n }\n if (sourceIndex !== -1 && targetIndex !== -1) {\n break;\n }\n }\n if (!source.manager) return items;\n const { dragOperation } = source.manager;\n const position = (_b = (_a = dragOperation.shape) == null ? void 0 : _a.current.center) != null ? _b : dragOperation.position.current;\n if (targetParent == null) {\n if (target.id in items) {\n const insertionIndex = target.shape && position.y > target.shape.center.y ? items[target.id].length : 0;\n targetParent = target.id;\n targetIndex = insertionIndex;\n }\n }\n if (sourceParent == null || targetParent == null || sourceParent === targetParent && sourceIndex === targetIndex) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n if (sourceParent === targetParent) {\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: mutation(items[sourceParent], sourceIndex, targetIndex)\n });\n }\n const isBelowTarget = target.shape && Math.round(position.y) > Math.round(target.shape.center.y);\n const modifier = isBelowTarget ? 1 : 0;\n const sourceItem = items[sourceParent][sourceIndex];\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [targetParent]: [\n ...items[targetParent].slice(0, targetIndex + modifier),\n sourceItem,\n ...items[targetParent].slice(targetIndex + modifier)\n ]\n });\n}\nfunction move(items, event) {\n return mutate(items, event, arrayMove);\n}\nfunction swap(items, event) {\n return mutate(items, event, arraySwap);\n}\nexport {\n arrayMove,\n arraySwap,\n move,\n swap\n};\n","import {Plugin, type UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\nimport {move} from '@dnd-kit/helpers';\nimport {batch} from '@dnd-kit/state';\n\nimport {Sortable, SortableDroppable} from '../sortable.ts';\nimport {isSortable} from '../utilities.ts';\n\nconst defaultGroup = '__default__';\n\nexport class OptimisticSortingPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const getSortableInstances = () => {\n const sortableInstances = new Map<\n UniqueIdentifier | undefined,\n Set<Sortable>\n >();\n\n for (const droppable of manager.registry.droppables) {\n if (droppable instanceof SortableDroppable) {\n const {sortable} = droppable;\n const {group} = sortable;\n\n let instances = sortableInstances.get(group);\n\n if (!instances) {\n instances = new Set();\n sortableInstances.set(group, instances);\n }\n\n instances.add(sortable);\n }\n }\n\n for (const [group, instances] of sortableInstances) {\n sortableInstances.set(group, new Set(sort(instances)));\n }\n\n return sortableInstances;\n };\n\n const unsubscribe = [\n manager.monitor.addEventListener('dragover', (event, manager) => {\n if (this.disabled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source, target} = dragOperation;\n\n if (!isSortable(source) || !isSortable(target)) {\n return;\n }\n\n if (source.sortable === target.sortable) {\n return;\n }\n\n const instances = getSortableInstances();\n const sameGroup = source.sortable.group === target.sortable.group;\n const sourceInstances = instances.get(source.sortable.group);\n const targetInstances = sameGroup\n ? sourceInstances\n : instances.get(target.sortable.group);\n\n if (!sourceInstances || !targetInstances) return;\n\n queueMicrotask(() => {\n if (event.defaultPrevented) return;\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n const newInstances = getSortableInstances();\n\n for (const [group, sortableInstances] of instances.entries()) {\n const entries = Array.from(sortableInstances).entries();\n\n for (const [index, sortable] of entries) {\n if (\n sortable.index !== index ||\n sortable.group !== group ||\n !newInstances.get(group)?.has(sortable)\n ) {\n // At least one index or group was changed so we should abort optimistic updates\n return;\n }\n }\n }\n\n const sourceElement = source.sortable.element;\n const targetElement = target.sortable.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n if (!sameGroup && target.id === source.sortable.group) {\n return;\n }\n\n const orderedSourceSortables = sort(sourceInstances);\n const orderedTargetSortables = sameGroup\n ? orderedSourceSortables\n : sort(targetInstances);\n const sourceGroup = source.sortable.group ?? defaultGroup;\n const targetGroup = target.sortable.group ?? defaultGroup;\n const state = {\n [sourceGroup]: orderedSourceSortables,\n [targetGroup]: orderedTargetSortables,\n };\n const newState = move(state, event);\n\n if (state === newState) return;\n\n const sourceIndex = newState[targetGroup].indexOf(source.sortable);\n const targetIndex = newState[targetGroup].indexOf(target.sortable);\n\n manager.collisionObserver.disable();\n\n reorder(sourceElement, sourceIndex, targetElement, targetIndex);\n\n batch(() => {\n for (const [index, sortable] of newState[sourceGroup].entries()) {\n sortable.index = index;\n }\n\n if (!sameGroup) {\n for (const [index, sortable] of newState[\n targetGroup\n ].entries()) {\n sortable.group = target.sortable.group;\n sortable.index = index;\n }\n }\n });\n\n manager.actions\n .setDropTarget(source.id)\n .then(() => manager.collisionObserver.enable());\n });\n });\n }),\n manager.monitor.addEventListener('dragend', (event, manager) => {\n if (!event.canceled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source} = dragOperation;\n\n if (!isSortable(source)) {\n return;\n }\n\n if (\n source.sortable.initialIndex === source.sortable.index &&\n source.sortable.initialGroup === source.sortable.group\n ) {\n return;\n }\n\n queueMicrotask(() => {\n const instances = getSortableInstances();\n const initialGroupInstances = instances.get(\n source.sortable.initialGroup\n );\n\n if (!initialGroupInstances) return;\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n for (const [group, sortableInstances] of instances.entries()) {\n const entries = Array.from(sortableInstances).entries();\n\n for (const [index, sortable] of entries) {\n if (sortable.index !== index || sortable.group !== group) {\n // At least one index or group was changed so we should abort optimistic updates\n return;\n }\n }\n }\n\n const initialGroup = sort(initialGroupInstances);\n const sourceElement = source.sortable.element;\n const target = initialGroup[source.sortable.initialIndex];\n const targetElement = target?.element;\n\n if (!target || !targetElement || !sourceElement) {\n return;\n }\n\n reorder(sourceElement, target.index, targetElement, source.index);\n\n batch(() => {\n for (const [_, sortableInstances] of instances.entries()) {\n const entries = Array.from(sortableInstances).values();\n\n for (const sortable of entries) {\n sortable.index = sortable.initialIndex;\n sortable.group = sortable.initialGroup;\n }\n }\n });\n });\n });\n }),\n ];\n\n this.destroy = () => {\n for (const unsubscribeListener of unsubscribe) {\n unsubscribeListener();\n }\n };\n }\n}\n\nfunction reorder(\n sourceElement: Element,\n sourceIndex: number,\n targetElement: Element,\n targetIndex: number\n) {\n const position = targetIndex < sourceIndex ? 'afterend' : 'beforebegin';\n\n targetElement.insertAdjacentElement(position, sourceElement);\n}\n\nfunction sortByIndex(a: Sortable, b: Sortable) {\n return a.index - b.index;\n}\n\nfunction sort(instances: Set<Sortable>) {\n return Array.from(instances).sort(sortByIndex);\n}\n","import {batch, reactive, untracked, WeakStore} from '@dnd-kit/state';\nimport type {CollisionPriority, Modifiers} from '@dnd-kit/abstract';\nimport type {\n Data,\n PluginConstructor,\n Type,\n UniqueIdentifier,\n} from '@dnd-kit/abstract';\nimport {\n defaultCollisionDetection,\n type CollisionDetector,\n} from '@dnd-kit/collision';\nimport type {Alignment} from '@dnd-kit/geometry';\nimport {Draggable, Droppable} from '@dnd-kit/dom';\nimport type {\n DraggableInput,\n FeedbackType,\n DroppableInput,\n Sensors,\n DragDropManager,\n} from '@dnd-kit/dom';\nimport {\n animateTransform,\n getComputedStyles,\n computeTranslate,\n ProxiedElements,\n} from '@dnd-kit/dom/utilities';\n\nimport {SortableKeyboardPlugin} from './plugins/SortableKeyboardPlugin.ts';\nimport {OptimisticSortingPlugin} from './plugins/OptimisticSortingPlugin.ts';\n\nexport interface SortableTransition {\n /**\n * The duration of the transition in milliseconds.\n * @default 300\n */\n duration?: number;\n /**\n * The easing function to use for the transition.\n * @default 'cubic-bezier(0.25, 1, 0.5, 1)'\n */\n easing?: string;\n /**\n * Whether the sortable item should transition when its index changes,\n * but there is no drag operation in progress.\n * @default false\n **/\n idle?: boolean;\n}\n\nconst defaultPlugins: PluginConstructor[] = [\n SortableKeyboardPlugin,\n OptimisticSortingPlugin,\n];\n\nexport interface SortableInput<T extends Data>\n extends DraggableInput<T>,\n DroppableInput<T> {\n /**\n * The index of the sortable item within its group.\n */\n index: number;\n\n /**\n * The element that should be used as the droppable target for this sortable item.\n */\n target?: Element;\n\n /**\n * The optional unique identifier of the group that the sortable item belongs to.\n */\n group?: UniqueIdentifier;\n /**\n * The transition configuration to use when the index of the sortable item changes.\n */\n transition?: SortableTransition | null;\n /**\n * Plugins to register when sortable item is instantiated.\n * @default [SortableKeyboardPlugin, OptimisticSortingPlugin]\n */\n plugins?: PluginConstructor[];\n}\n\nexport const defaultSortableTransition: SortableTransition = {\n duration: 250,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n idle: false,\n};\n\ninterface TemporaryState {\n initialIndex: number;\n initialGroup: UniqueIdentifier | undefined;\n}\n\nconst store = new WeakStore<\n DragDropManager,\n UniqueIdentifier,\n TemporaryState\n>();\n\nexport class Sortable<T extends Data = Data> {\n public draggable: Draggable<T>;\n public droppable: Droppable<T>;\n\n @reactive\n public accessor index: number;\n\n #previousGroup: UniqueIdentifier | undefined;\n\n #previousIndex: number;\n\n get initialIndex() {\n return store.get(this.manager, this.id)?.initialIndex ?? this.index;\n }\n\n get initialGroup() {\n return store.get(this.manager, this.id)?.initialGroup ?? this.group;\n }\n\n @reactive\n public accessor group: UniqueIdentifier | undefined;\n\n transition: SortableTransition | null;\n\n constructor(\n {\n effects: inputEffects = () => [],\n group,\n index,\n sensors,\n type,\n transition = defaultSortableTransition,\n plugins = defaultPlugins,\n ...input\n }: SortableInput<T>,\n manager: DragDropManager<any, any> | undefined\n ) {\n this.droppable = new SortableDroppable<T>(input, manager, this);\n this.draggable = new SortableDraggable<T>(\n {\n ...input,\n effects: () => [\n () => {\n const status = this.manager?.dragOperation.status;\n\n if (\n status?.initializing &&\n this.id === this.manager?.dragOperation.source?.id\n ) {\n store.clear(this.manager);\n }\n\n if (status?.dragging) {\n store.set(\n this.manager,\n this.id,\n untracked(() => ({\n initialIndex: this.index,\n initialGroup: this.group,\n }))\n );\n }\n },\n () => {\n const {index, group, manager: _} = this;\n const previousIndex = this.#previousIndex;\n const previousGroup = this.#previousGroup;\n\n // Re-run this effect whenever the index changes\n if (index !== previousIndex || group !== previousGroup) {\n this.#previousIndex = index;\n this.#previousGroup = group;\n\n this.animate();\n }\n },\n () => {\n const {target} = this;\n const {feedback, isDragSource} = this.draggable;\n\n if (feedback == 'move' && isDragSource) {\n this.droppable.disabled = !target;\n }\n },\n () => {\n const {manager} = this;\n\n for (const plugin of plugins) {\n manager?.registry.register(plugin);\n }\n },\n ...inputEffects(),\n ],\n type,\n sensors,\n },\n manager,\n this\n );\n\n this.#element = input.element;\n this.manager = manager;\n this.index = index;\n this.#previousIndex = index;\n this.group = group;\n this.#previousGroup = group;\n this.type = type;\n this.transition = transition;\n }\n\n protected animate() {\n untracked(() => {\n const {manager, transition} = this;\n const {shape} = this.droppable;\n\n if (!manager) return;\n\n const {idle} = manager.dragOperation.status;\n\n if (!shape || !transition || (idle && !transition.idle)) {\n return;\n }\n\n manager.renderer.rendering.then(() => {\n const {element} = this;\n\n if (!element) {\n return;\n }\n\n const updatedShape = this.refreshShape();\n\n if (!updatedShape) {\n return;\n }\n\n const delta = {\n x: shape.boundingRectangle.left - updatedShape.boundingRectangle.left,\n y: shape.boundingRectangle.top - updatedShape.boundingRectangle.top,\n };\n\n const {translate} = getComputedStyles(element);\n const currentTranslate = computeTranslate(element, translate, false);\n const finalTranslate = computeTranslate(element, translate);\n\n if (delta.x || delta.y) {\n animateTransform({\n element,\n keyframes: {\n translate: [\n `${currentTranslate.x + delta.x}px ${currentTranslate.y + delta.y}px ${currentTranslate.z}`,\n `${finalTranslate.x}px ${finalTranslate.y}px ${finalTranslate.z}`,\n ],\n },\n options: transition,\n }).then(() => {\n if (!manager.dragOperation.status.dragging) {\n this.droppable.shape = undefined;\n }\n });\n }\n });\n });\n }\n\n public get manager(): DragDropManager<any, any> | undefined {\n return this.draggable.manager as any;\n }\n\n public set manager(manager: DragDropManager<any, any> | undefined) {\n batch(() => {\n this.draggable.manager = manager as any;\n this.droppable.manager = manager as any;\n });\n }\n\n #element: Element | undefined;\n\n public set element(element: Element | undefined) {\n batch(() => {\n const previousElement = this.#element;\n const droppableElement = this.droppable.element;\n const draggableElement = this.draggable.element;\n\n if (!droppableElement || droppableElement === previousElement) {\n this.droppable.element = element;\n }\n\n if (!draggableElement || draggableElement === previousElement) {\n this.draggable.element = element;\n }\n\n this.#element = element;\n });\n }\n\n public get element() {\n const element = this.#element;\n\n if (!element) return;\n\n return ProxiedElements.get(element) ?? element ?? this.droppable.element;\n }\n\n public set target(target: Element | undefined) {\n this.droppable.element = target;\n }\n\n public get target() {\n return this.droppable.element;\n }\n\n public set source(source: Element | undefined) {\n this.draggable.element = source;\n }\n\n public get source() {\n return this.draggable.element;\n }\n\n public get disabled() {\n return this.draggable.disabled && this.droppable.disabled;\n }\n\n public set feedback(value: FeedbackType) {\n this.draggable.feedback = value;\n }\n\n public set disabled(value: boolean) {\n batch(() => {\n this.droppable.disabled = value;\n this.draggable.disabled = value;\n });\n }\n\n public set data(data: T) {\n batch(() => {\n this.droppable.data = data;\n this.draggable.data = data;\n });\n }\n\n public set handle(handle: Element | undefined) {\n this.draggable.handle = handle;\n }\n\n public set id(id: UniqueIdentifier) {\n batch(() => {\n this.droppable.id = id;\n this.draggable.id = id;\n });\n }\n\n public get id() {\n return this.droppable.id;\n }\n\n public set sensors(value: Sensors | undefined) {\n this.draggable.sensors = value;\n }\n\n public set modifiers(value: Modifiers | undefined) {\n this.draggable.modifiers = value;\n }\n\n public set collisionPriority(value: CollisionPriority | number | undefined) {\n this.droppable.collisionPriority = value;\n }\n\n public set collisionDetector(value: CollisionDetector | undefined) {\n this.droppable.collisionDetector = value ?? defaultCollisionDetection;\n }\n\n public set alignment(value: Alignment | undefined) {\n this.draggable.alignment = value;\n }\n\n public get alignment() {\n return this.draggable.alignment;\n }\n\n public set type(type: Type | undefined) {\n batch(() => {\n this.droppable.type = type;\n this.draggable.type = type;\n });\n }\n\n public get type() {\n return this.draggable.type;\n }\n\n public set accept(value: Droppable['accept']) {\n this.droppable.accept = value;\n }\n\n public get accept() {\n return this.droppable.accept;\n }\n\n public get isDropTarget() {\n return this.droppable.isDropTarget;\n }\n\n /**\n * A boolean indicating whether the sortable item is the source of a drag operation.\n */\n public get isDragSource() {\n return this.draggable.isDragSource;\n }\n\n /**\n * A boolean indicating whether the sortable item is being dragged.\n */\n public get isDragging() {\n return this.draggable.isDragging;\n }\n\n /**\n * A boolean indicating whether the sortable item is being dropped.\n */\n public get isDropping() {\n return this.draggable.isDropping;\n }\n\n public get status() {\n return this.draggable.status;\n }\n\n public refreshShape() {\n return this.droppable.refreshShape();\n }\n\n public accepts(draggable: Draggable): boolean {\n return this.droppable.accepts(draggable);\n }\n\n public register = () => {\n batch(() => {\n this.manager?.registry.register(this.droppable);\n this.manager?.registry.register(this.draggable);\n });\n\n return () => this.unregister();\n };\n\n public unregister = () => {\n batch(() => {\n this.manager?.registry.unregister(this.droppable);\n this.manager?.registry.unregister(this.draggable);\n });\n };\n\n public destroy = () => {\n batch(() => {\n this.droppable.destroy();\n this.draggable.destroy();\n });\n };\n}\n\nexport class SortableDraggable<T extends Data> extends Draggable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n get index() {\n return this.sortable.index;\n }\n}\n\nexport class SortableDroppable<T extends Data> extends Droppable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["src/sortable/utilities.ts","src/sortable/plugins/SortableKeyboardPlugin.ts","../helpers/dist/index.js","src/sortable/plugins/OptimisticSortingPlugin.helpers.ts","src/sortable/plugins/OptimisticSortingPlugin.ts","src/sortable/sortable.ts"],"names":["manager","id","source","target","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","Plugin","batch","Sortable","_a","_b","index","group"],"mappings":"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","file":"sortable.js","sourcesContent":["import type {Data, DragOperation} from '@dnd-kit/abstract';\nimport type {Droppable, Draggable} from '@dnd-kit/dom';\n\nimport {SortableDroppable, SortableDraggable} from './sortable.ts';\n\nexport function isSortable<T extends Data = Data>(\n element: Draggable<T> | null\n): element is SortableDraggable<T>;\nexport function isSortable<T extends Data = Data>(\n element: Droppable<T> | null\n): element is SortableDroppable<T>;\nexport function isSortable<T extends Data = Data>(\n element: Draggable<T> | Droppable<T> | null\n): element is SortableDroppable<T> | SortableDraggable<T> {\n return (\n element instanceof SortableDroppable || element instanceof SortableDraggable\n );\n}\n\nexport function isSortableOperation<T extends Data = Data, U extends Data = T>(\n operation: DragOperation<Draggable<T>, Droppable<U>>\n): operation is DragOperation<SortableDraggable<T>, SortableDroppable<U>> {\n return isSortable(operation.source) && isSortable(operation.target);\n}\n","import {batch, CleanupFunction, effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport {closestCorners} from '@dnd-kit/collision';\nimport {\n DOMRectangle,\n getVisibleBoundingRectangle,\n isKeyboardEvent,\n scrollIntoViewIfNeeded,\n} from '@dnd-kit/dom/utilities';\nimport {Rectangle, type Coordinates} from '@dnd-kit/geometry';\nimport {Scroller} from '@dnd-kit/dom';\nimport type {DragDropManager, Droppable} from '@dnd-kit/dom';\n\nimport {isSortable} from '../utilities.ts';\n\nconst TOLERANCE = 10;\n\nexport class SortableKeyboardPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const cleanupEffect = effect(() => {\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (dragOperation.status.initialized) {\n const scroller = manager.registry.plugins.get(Scroller);\n\n if (scroller) {\n scroller.disable();\n\n return () => scroller.enable();\n }\n }\n });\n\n const unsubscribe = manager.monitor.addEventListener(\n 'dragmove',\n (event, manager: DragDropManager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented || !event.nativeEvent) {\n return;\n }\n\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(event.nativeEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (!dragOperation.shape) {\n return;\n }\n\n const {actions, collisionObserver, registry} = manager;\n const {by} = event;\n\n if (!by) {\n return;\n }\n\n const direction = getDirection(by);\n const {source, target} = dragOperation;\n const {center} = dragOperation.shape.current;\n const potentialTargets: Droppable[] = [];\n const cleanup: CleanupFunction[] = [];\n\n batch(() => {\n for (const droppable of registry.droppables) {\n const {id} = droppable;\n\n if (\n !droppable.accepts(source) ||\n (id === target?.id && isSortable(droppable)) ||\n !droppable.element\n ) {\n continue;\n }\n\n let previousShape = droppable.shape;\n const shape = new DOMRectangle(droppable.element, {\n getBoundingClientRect: (element) =>\n getVisibleBoundingRectangle(element, undefined, 0.2),\n });\n\n if (!shape.height || !shape.width) continue;\n\n if (\n (direction == 'down' &&\n center.y + TOLERANCE < shape.center.y) ||\n (direction == 'up' && center.y - TOLERANCE > shape.center.y) ||\n (direction == 'left' &&\n center.x - TOLERANCE > shape.center.x) ||\n (direction == 'right' && center.x + TOLERANCE < shape.center.x)\n ) {\n potentialTargets.push(droppable);\n droppable.shape = shape;\n cleanup.push(() => (droppable.shape = previousShape));\n }\n }\n });\n\n event.preventDefault();\n collisionObserver.disable();\n\n const collisions = collisionObserver.computeCollisions(\n potentialTargets,\n closestCorners\n );\n batch(() => cleanup.forEach((clean) => clean()));\n\n const [firstCollision] = collisions;\n\n if (!firstCollision) {\n return;\n }\n\n const {id} = firstCollision;\n const {index, group} = source.sortable;\n\n actions.setDropTarget(id).then(() => {\n // Wait until optimistic sorting has a chance to update the DOM\n const {source, target, shape} = dragOperation;\n\n if (!source || !isSortable(source) || !shape) {\n return;\n }\n\n const {\n index: newIndex,\n group: newGroup,\n target: targetElement,\n } = source.sortable;\n const updated = index !== newIndex || group !== newGroup;\n\n const element = updated ? targetElement : target?.element;\n\n if (!element) return;\n\n scrollIntoViewIfNeeded(element);\n const updatedShape = new DOMRectangle(element);\n\n if (!updatedShape) {\n return;\n }\n\n const delta = Rectangle.delta(\n updatedShape,\n Rectangle.from(shape.current.boundingRectangle),\n source.alignment\n );\n\n actions.move({\n by: delta,\n });\n\n if (updated) {\n actions\n .setDropTarget(source.id)\n .then(() => collisionObserver.enable());\n } else {\n collisionObserver.enable();\n }\n });\n });\n }\n );\n\n this.destroy = () => {\n unsubscribe();\n cleanupEffect();\n };\n }\n}\n\nfunction getDirection(delta: Coordinates) {\n const {x, y} = delta;\n\n if (x > 0) {\n return 'right';\n } else if (x < 0) {\n return 'left';\n } else if (y > 0) {\n return 'down';\n } else if (y < 0) {\n return 'up';\n }\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/move.ts\nfunction arrayMove(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n newArray.splice(to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction arraySwap(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n const item = newArray[from];\n newArray[from] = newArray[to];\n newArray[to] = item;\n return newArray;\n}\nfunction getRecordKey(items, id) {\n const key = String(id);\n return Object.prototype.hasOwnProperty.call(items, key) ? key : void 0;\n}\nfunction hasSortableIndices(source) {\n return \"initialIndex\" in source && typeof source.initialIndex === \"number\" && \"index\" in source && typeof source.index === \"number\";\n}\nfunction mutate(items, event, mutation) {\n var _a, _b;\n const { source, target, canceled } = event.operation;\n if (!source || !target || canceled) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n const findIndex = (item, id) => item === id || item !== null && typeof item === \"object\" && \"id\" in item && item.id === id;\n if (Array.isArray(items)) {\n const sourceIndex2 = items.findIndex((item) => findIndex(item, source.id));\n const targetIndex2 = items.findIndex((item) => findIndex(item, target.id));\n if (sourceIndex2 === -1 || targetIndex2 === -1) {\n if (hasSortableIndices(source)) {\n const from = source.initialIndex;\n const to = source.index;\n if (from === to || from < 0 || from >= items.length) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n return mutation(items, from, to);\n }\n return items;\n }\n if (!canceled && \"index\" in source && typeof source.index === \"number\") {\n const projectedSourceIndex = source.index;\n if (projectedSourceIndex !== sourceIndex2) {\n return mutation(items, sourceIndex2, projectedSourceIndex);\n }\n }\n return mutation(items, sourceIndex2, targetIndex2);\n }\n const entries = Object.entries(items);\n let sourceIndex = -1;\n let sourceParent;\n let targetIndex = -1;\n let targetParent;\n for (const [id, children] of entries) {\n if (sourceIndex === -1) {\n sourceIndex = children.findIndex((item) => findIndex(item, source.id));\n if (sourceIndex !== -1) {\n sourceParent = id;\n }\n }\n if (targetIndex === -1) {\n targetIndex = children.findIndex((item) => findIndex(item, target.id));\n if (targetIndex !== -1) {\n targetParent = id;\n }\n }\n if (sourceIndex !== -1 && targetIndex !== -1) {\n break;\n }\n }\n if (sourceIndex === -1 && hasSortableIndices(source)) {\n const srcParent = source.initialGroup == null ? void 0 : getRecordKey(items, source.initialGroup);\n const srcIndex = source.initialIndex;\n const tgtParent = source.group == null ? void 0 : getRecordKey(items, source.group);\n const tgtIndex = source.index;\n if (srcParent == null || tgtParent == null) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n if (srcParent === tgtParent && srcIndex === tgtIndex) {\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n if (srcParent === tgtParent) {\n return __spreadProps(__spreadValues({}, items), {\n [srcParent]: mutation(items[srcParent], srcIndex, tgtIndex)\n });\n }\n const sourceItem2 = items[srcParent][srcIndex];\n return __spreadProps(__spreadValues({}, items), {\n [srcParent]: [\n ...items[srcParent].slice(0, srcIndex),\n ...items[srcParent].slice(srcIndex + 1)\n ],\n [tgtParent]: [\n ...items[tgtParent].slice(0, tgtIndex),\n sourceItem2,\n ...items[tgtParent].slice(tgtIndex)\n ]\n });\n }\n if (!source.manager) return items;\n const { dragOperation } = source.manager;\n const position = (_b = (_a = dragOperation.shape) == null ? void 0 : _a.current.center) != null ? _b : dragOperation.position.current;\n if (targetParent == null) {\n const targetKey = getRecordKey(items, target.id);\n if (targetKey != null) {\n const insertionIndex = target.shape && position.y > target.shape.center.y ? items[targetKey].length : 0;\n targetParent = targetKey;\n targetIndex = insertionIndex;\n }\n }\n if (sourceParent == null || targetParent == null || sourceParent === targetParent && sourceIndex === targetIndex) {\n if (sourceParent != null && sourceParent === targetParent && sourceIndex === targetIndex && hasSortableIndices(source)) {\n const sourceGroupParent = source.group == null ? void 0 : getRecordKey(items, source.group);\n const hasGroupChanged = source.group != null && sourceGroupParent !== sourceParent;\n const hasIndexChanged = source.index !== sourceIndex;\n if (hasGroupChanged || hasIndexChanged) {\n const reconciledTargetParent = source.group == null ? sourceParent : sourceGroupParent;\n if (reconciledTargetParent != null) {\n if (sourceParent === reconciledTargetParent) {\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: mutation(\n items[sourceParent],\n sourceIndex,\n source.index\n )\n });\n }\n const sourceItem2 = items[sourceParent][sourceIndex];\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [reconciledTargetParent]: [\n ...items[reconciledTargetParent].slice(0, source.index),\n sourceItem2,\n ...items[reconciledTargetParent].slice(source.index)\n ]\n });\n }\n }\n }\n if (\"preventDefault\" in event) event.preventDefault();\n return items;\n }\n if (sourceParent === targetParent) {\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: mutation(items[sourceParent], sourceIndex, targetIndex)\n });\n }\n const isBelowTarget = target.shape && Math.round(position.y) > Math.round(target.shape.center.y);\n const modifier = isBelowTarget ? 1 : 0;\n const sourceItem = items[sourceParent][sourceIndex];\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [targetParent]: [\n ...items[targetParent].slice(0, targetIndex + modifier),\n sourceItem,\n ...items[targetParent].slice(targetIndex + modifier)\n ]\n });\n}\nfunction move(items, event) {\n return mutate(items, event, arrayMove);\n}\nfunction swap(items, event) {\n return mutate(items, event, arraySwap);\n}\nexport {\n arrayMove,\n arraySwap,\n move,\n swap\n};\n","import type {UniqueIdentifier} from '@dnd-kit/abstract';\n\nimport type {Sortable} from '../sortable.ts';\n\nexport type SortableInstances = Map<\n UniqueIdentifier | undefined,\n Set<Sortable>\n>;\nexport type SortableIndices = Map<UniqueIdentifier, number>;\n\nexport function getSortableIndices(\n instances: SortableInstances\n): SortableIndices {\n const sortableIndices: SortableIndices = new Map();\n\n for (const [, group] of instances) {\n for (const sortable of group) {\n sortableIndices.set(sortable.id, sortable.index);\n }\n }\n\n return sortableIndices;\n}\n\nexport function hasChanged(\n snapshotIndices: SortableIndices,\n instances: SortableInstances,\n newInstances: SortableInstances\n): boolean {\n for (const [group, sortables] of instances) {\n for (const sortable of sortables) {\n const index = snapshotIndices.get(sortable.id);\n\n if (\n sortable.index !== index ||\n sortable.group !== group ||\n !newInstances.get(group)?.has(sortable)\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n","import {Plugin} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\nimport {move} from '@dnd-kit/helpers';\nimport {batch} from '@dnd-kit/state';\n\nimport {Sortable, SortableDroppable} from '../sortable.ts';\nimport {isSortable} from '../utilities.ts';\nimport {\n getSortableIndices,\n hasChanged,\n type SortableInstances,\n} from './OptimisticSortingPlugin.helpers.ts';\n\nconst defaultGroup = '__default__';\n\nexport class OptimisticSortingPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const getSortableInstances = () => {\n const sortableInstances: SortableInstances = new Map();\n\n for (const droppable of manager.registry.droppables) {\n if (droppable instanceof SortableDroppable) {\n const {sortable} = droppable;\n const {group} = sortable;\n\n let instances = sortableInstances.get(group);\n\n if (!instances) {\n instances = new Set();\n sortableInstances.set(group, instances);\n }\n\n instances.add(sortable);\n }\n }\n\n return sortableInstances;\n };\n\n const unsubscribe = [\n manager.monitor.addEventListener('dragover', (event, manager) => {\n if (this.disabled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source, target} = dragOperation;\n\n if (!isSortable(source) || !isSortable(target)) {\n return;\n }\n\n if (source.sortable === target.sortable) {\n return;\n }\n\n const instances = getSortableInstances();\n const sortableIndices = getSortableIndices(instances);\n const sameGroup = source.sortable.group === target.sortable.group;\n const sourceInstances = instances.get(source.sortable.group);\n const targetInstances = sameGroup\n ? sourceInstances\n : instances.get(target.sortable.group);\n\n if (!sourceInstances || !targetInstances) return;\n\n queueMicrotask(() => {\n if (event.defaultPrevented) return;\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n const newInstances = getSortableInstances();\n\n if (hasChanged(sortableIndices, instances, newInstances)) {\n // At least one index or group was changed so we should abort optimistic updates\n return;\n }\n\n const sourceElement = source.sortable.element;\n const targetElement = target.sortable.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n if (!sameGroup && target.id === source.sortable.group) {\n return;\n }\n\n const orderedSourceSortables = sort(sourceInstances);\n const orderedTargetSortables = sameGroup\n ? orderedSourceSortables\n : sort(targetInstances);\n const sourceGroup = source.sortable.group ?? defaultGroup;\n const targetGroup = target.sortable.group ?? defaultGroup;\n const state = {\n [sourceGroup]: orderedSourceSortables,\n [targetGroup]: orderedTargetSortables,\n };\n const newState = move(state, event);\n\n if (state === newState) return;\n\n const sourceIndex = newState[targetGroup].indexOf(source.sortable);\n const targetIndex = newState[targetGroup].indexOf(target.sortable);\n\n manager.collisionObserver.disable();\n\n reorder(sourceElement, sourceIndex, targetElement, targetIndex);\n\n batch(() => {\n for (const [index, sortable] of newState[sourceGroup].entries()) {\n sortable.index = index;\n }\n\n if (!sameGroup) {\n for (const [index, sortable] of newState[\n targetGroup\n ].entries()) {\n sortable.group = target.sortable.group;\n sortable.index = index;\n }\n }\n });\n\n manager.actions\n .setDropTarget(source.id)\n .then(() => manager.collisionObserver.enable());\n });\n });\n }),\n manager.monitor.addEventListener('dragend', (event, manager) => {\n if (!event.canceled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source} = dragOperation;\n\n if (!isSortable(source)) {\n return;\n }\n\n if (\n source.sortable.initialIndex === source.sortable.index &&\n source.sortable.initialGroup === source.sortable.group\n ) {\n return;\n }\n\n queueMicrotask(() => {\n const instances = getSortableInstances();\n const sortableIndices = getSortableIndices(instances);\n const initialGroupInstances = instances.get(\n source.sortable.initialGroup\n );\n\n if (!initialGroupInstances) return;\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n const newInstances = getSortableInstances();\n\n if (hasChanged(sortableIndices, instances, newInstances)) {\n // At least one index or group was changed so we should abort optimistic updates\n return;\n }\n\n const currentSortables = sort(initialGroupInstances);\n const initialSortables = sort(\n initialGroupInstances,\n sortByInitialIndex\n );\n const sourceElement = source.sortable.element;\n const initialPosition = initialSortables.indexOf(source.sortable);\n const target = currentSortables[initialPosition];\n const targetElement = target?.element;\n\n if (!target || !targetElement || !sourceElement) {\n return;\n }\n\n reorder(sourceElement, target.index, targetElement, source.index);\n\n batch(() => {\n for (const sortableInstances of instances.values()) {\n const entries = Array.from(sortableInstances).values();\n\n for (const sortable of entries) {\n sortable.index = sortable.initialIndex;\n sortable.group = sortable.initialGroup;\n }\n }\n });\n });\n });\n }),\n ];\n\n this.destroy = () => {\n for (const unsubscribeListener of unsubscribe) {\n unsubscribeListener();\n }\n };\n }\n}\n\nfunction reorder(\n sourceElement: Element,\n sourceIndex: number,\n targetElement: Element,\n targetIndex: number\n) {\n const position = targetIndex < sourceIndex ? 'afterend' : 'beforebegin';\n\n targetElement.insertAdjacentElement(position, sourceElement);\n}\n\nfunction sortByIndex(a: Sortable, b: Sortable) {\n return a.index - b.index;\n}\n\nfunction sortByInitialIndex(a: Sortable, b: Sortable) {\n return a.initialIndex - b.initialIndex;\n}\n\nfunction sort(instances: Set<Sortable>, sortFn = sortByIndex) {\n return Array.from(instances).sort(sortFn);\n}\n","import {batch, reactive, untracked, WeakStore} from '@dnd-kit/state';\nimport type {CollisionPriority, Customizable, Modifiers, Plugins} from '@dnd-kit/abstract';\nimport type {\n Data,\n PluginConstructor,\n Type,\n UniqueIdentifier,\n} from '@dnd-kit/abstract';\nimport {resolveCustomizable} from '@dnd-kit/abstract';\nimport {\n defaultCollisionDetection,\n type CollisionDetector,\n} from '@dnd-kit/collision';\nimport type {Alignment} from '@dnd-kit/geometry';\nimport {Draggable, Droppable, Feedback} from '@dnd-kit/dom';\nimport type {\n DraggableInput,\n DroppableInput,\n Sensors,\n DragDropManager,\n} from '@dnd-kit/dom';\nimport {\n animateTransform,\n getComputedStyles,\n getWindow,\n computeTranslate,\n prefersReducedMotion,\n ProxiedElements,\n} from '@dnd-kit/dom/utilities';\n\nimport {SortableKeyboardPlugin} from './plugins/SortableKeyboardPlugin.ts';\nimport {OptimisticSortingPlugin} from './plugins/OptimisticSortingPlugin.ts';\n\nexport interface SortableTransition {\n /**\n * The duration of the transition in milliseconds.\n * @default 300\n */\n duration?: number;\n /**\n * The easing function to use for the transition.\n * @default 'cubic-bezier(0.25, 1, 0.5, 1)'\n */\n easing?: string;\n /**\n * Whether the sortable item should transition when its index changes,\n * but there is no drag operation in progress.\n * @default false\n **/\n idle?: boolean;\n}\n\nexport interface SortableDisabled {\n draggable?: boolean;\n droppable?: boolean;\n}\n\ntype SortableDisabledValue = boolean | SortableDisabled;\n\nconst defaultPlugins: PluginConstructor[] = [\n SortableKeyboardPlugin,\n OptimisticSortingPlugin,\n];\n\nexport interface SortableInput<T extends Data>\n extends Omit<DraggableInput<T>, 'disabled' | 'plugins'>,\n Omit<DroppableInput<T>, 'disabled'> {\n /**\n * Whether the sortable item should be disabled.\n *\n * Passing a boolean disables dragging and dropping.\n * Use the object form to disable dragging and dropping independently.\n */\n disabled?: boolean | SortableDisabled;\n\n /**\n * The index of the sortable item within its group.\n */\n index: number;\n\n /**\n * The element that should be used as the droppable target for this sortable item.\n */\n target?: Element;\n\n /**\n * The optional unique identifier of the group that the sortable item belongs to.\n */\n group?: UniqueIdentifier;\n /**\n * The transition configuration to use when the index of the sortable item changes.\n */\n transition?: SortableTransition | null;\n /**\n * Plugins to register or configure per-entity.\n *\n * Bare constructors are registered globally (e.g. sortable-specific plugins).\n * Descriptors from `Plugin.configure()` are applied as per-entity plugin config.\n *\n * Can be provided as an array (replaces defaults) or a function that receives\n * the default plugins and returns a new array (extends defaults).\n *\n * @default [SortableKeyboardPlugin, OptimisticSortingPlugin]\n *\n * @example\n * // Extend defaults\n * plugins: (defaults) => [...defaults, Feedback.configure({feedback: 'clone'})]\n *\n * // Replace defaults\n * plugins: [MyPlugin]\n */\n plugins?: Customizable<Plugins>;\n}\n\nexport const defaultSortableTransition: SortableTransition = {\n duration: 250,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n idle: false,\n};\n\nexport function resolveSortableTransition(\n transition: SortableTransition | null | undefined\n): SortableTransition | null {\n return transition === null\n ? null\n : {...defaultSortableTransition, ...transition};\n}\n\nfunction normalizeDisabled(\n disabled: SortableDisabledValue | undefined\n): Required<SortableDisabled> {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled,\n };\n }\n\n return {\n draggable: disabled?.draggable ?? false,\n droppable: disabled?.droppable ?? false,\n };\n}\n\ninterface TemporaryState {\n initialIndex: number;\n initialGroup: UniqueIdentifier | undefined;\n}\n\nconst store = new WeakStore<\n DragDropManager,\n UniqueIdentifier,\n TemporaryState\n>();\n\nexport class Sortable<T extends Data = Data> {\n public draggable: Draggable<T>;\n public droppable: Droppable<T>;\n\n @reactive\n public accessor index: number;\n\n #previousGroup: UniqueIdentifier | undefined;\n\n #previousIndex: number;\n\n get initialIndex() {\n return store.get(this.manager, this.id)?.initialIndex ?? this.index;\n }\n\n get initialGroup() {\n return store.get(this.manager, this.id)?.initialGroup ?? this.group;\n }\n\n @reactive\n public accessor group: UniqueIdentifier | undefined;\n\n transition: SortableTransition | null;\n\n constructor(\n {\n effects: inputEffects = () => [],\n disabled,\n group,\n index,\n sensors,\n type,\n transition = defaultSortableTransition,\n plugins: pluginsInput,\n ...input\n }: SortableInput<T>,\n manager: DragDropManager<any, any> | undefined\n ) {\n const plugins = resolveCustomizable(pluginsInput, defaultPlugins);\n const disabledState = normalizeDisabled(disabled);\n\n this.droppable = new SortableDroppable<T>(\n {...input, disabled: disabledState.droppable},\n manager,\n this\n );\n this.draggable = new SortableDraggable<T>(\n {\n ...input,\n disabled: disabledState.draggable,\n plugins,\n effects: () => [\n () => {\n const status = this.manager?.dragOperation.status;\n\n if (\n status?.initializationPending &&\n this.id === this.manager?.dragOperation.source?.id\n ) {\n store.clear(this.manager);\n }\n\n if (status?.dragging) {\n store.set(\n this.manager,\n this.id,\n untracked(() => ({\n initialIndex: this.index,\n initialGroup: this.group,\n }))\n );\n }\n },\n () => {\n const {index, group, manager: _} = this;\n const previousIndex = this.#previousIndex;\n const previousGroup = this.#previousGroup;\n\n // Re-run this effect whenever the index changes\n if (index !== previousIndex || group !== previousGroup) {\n this.#previousIndex = index;\n this.#previousGroup = group;\n\n this.animate();\n }\n },\n () => {\n const {target} = this;\n const {isDragSource} = this.draggable;\n const feedback =\n this.draggable.pluginConfig(Feedback)?.feedback ?? 'default';\n\n if (feedback === 'move' && isDragSource) {\n this.droppable.disabled = !target;\n }\n },\n ...inputEffects(),\n ],\n type,\n sensors,\n },\n manager,\n this\n );\n\n this.#element = input.element;\n this.manager = manager;\n this.index = index;\n this.#previousIndex = index;\n this.group = group;\n this.#previousGroup = group;\n this.type = type;\n this.transition = transition;\n }\n\n protected animate() {\n untracked(() => {\n const {manager, transition} = this;\n const {shape} = this.droppable;\n\n if (!manager) return;\n\n const {idle} = manager.dragOperation.status;\n\n if (!shape || !transition || (idle && !transition.idle)) {\n return;\n }\n\n manager.renderer.rendering.then(() => {\n const {element} = this;\n\n if (!element) {\n return;\n }\n\n // Cancel CSS transitions on transform-related properties before measuring.\n // These transitions (e.g. `transition: transform` from user CSS) would cause\n // getBoundingClientRect() to return the mid-transition position rather than\n // the element's final resting position, resulting in an incorrect delta.\n for (const animation of element.getAnimations()) {\n if (\n 'transitionProperty' in animation &&\n (animation.transitionProperty === 'transform' ||\n animation.transitionProperty === 'translate' ||\n animation.transitionProperty === 'scale')\n ) {\n animation.cancel();\n }\n }\n\n const updatedShape = this.refreshShape();\n\n if (!updatedShape) {\n return;\n }\n\n const delta = {\n x: shape.boundingRectangle.left - updatedShape.boundingRectangle.left,\n y: shape.boundingRectangle.top - updatedShape.boundingRectangle.top,\n };\n\n const {translate} = getComputedStyles(element);\n const currentTranslate = computeTranslate(element, translate, false);\n const finalTranslate = computeTranslate(element, translate);\n\n if (delta.x || delta.y) {\n const resolvedTransition = prefersReducedMotion(getWindow(element))\n ? {...transition, duration: 0}\n : transition;\n\n animateTransform({\n element,\n keyframes: {\n translate: [\n `${currentTranslate.x + delta.x}px ${currentTranslate.y + delta.y}px ${currentTranslate.z}`,\n `${finalTranslate.x}px ${finalTranslate.y}px ${finalTranslate.z}`,\n ],\n },\n options: resolvedTransition,\n }).then(() => {\n if (!manager.dragOperation.status.dragging) {\n this.droppable.shape = undefined;\n }\n });\n }\n });\n });\n }\n\n public get manager(): DragDropManager<any, any> | undefined {\n return this.draggable.manager as any;\n }\n\n public set manager(manager: DragDropManager<any, any> | undefined) {\n batch(() => {\n this.draggable.manager = manager as any;\n this.droppable.manager = manager as any;\n });\n }\n\n #element: Element | undefined;\n\n public set element(element: Element | undefined) {\n batch(() => {\n const previousElement = this.#element;\n const droppableElement = this.droppable.element;\n const draggableElement = this.draggable.element;\n\n if (!droppableElement || droppableElement === previousElement) {\n this.droppable.element = element;\n }\n\n if (!draggableElement || draggableElement === previousElement) {\n this.draggable.element = element;\n }\n\n this.#element = element;\n });\n }\n\n public get element() {\n const element = this.#element;\n\n if (!element) return;\n\n return ProxiedElements.get(element) ?? element ?? this.droppable.element;\n }\n\n public set target(target: Element | undefined) {\n this.droppable.element = target;\n }\n\n public get target() {\n return this.droppable.element;\n }\n\n public set source(source: Element | undefined) {\n this.draggable.element = source;\n }\n\n public get source() {\n return this.draggable.element;\n }\n\n public get disabled(): boolean | SortableDisabled {\n const {disabled: draggable} = this.draggable;\n const {disabled: droppable} = this.droppable;\n\n return draggable === droppable ? draggable : {draggable, droppable};\n }\n\n public set plugins(value: Customizable<Plugins> | undefined) {\n this.draggable.plugins = resolveCustomizable(value, defaultPlugins);\n }\n\n public set disabled(value: SortableDisabledValue) {\n const disabled = normalizeDisabled(value);\n\n batch(() => {\n this.droppable.disabled = disabled.droppable;\n this.draggable.disabled = disabled.draggable;\n });\n }\n\n public set data(data: T) {\n batch(() => {\n this.droppable.data = data;\n this.draggable.data = data;\n });\n }\n\n public set handle(handle: Element | undefined) {\n this.draggable.handle = handle;\n }\n\n public set id(id: UniqueIdentifier) {\n this.droppable.id = id;\n this.draggable.id = id;\n }\n\n public get id() {\n return this.droppable.id;\n }\n\n public set sensors(value: Sensors | undefined) {\n this.draggable.sensors = value;\n }\n\n public set modifiers(value: Modifiers | undefined) {\n this.draggable.modifiers = value;\n }\n\n public set collisionPriority(value: CollisionPriority | number | undefined) {\n this.droppable.collisionPriority = value;\n }\n\n public set collisionDetector(value: CollisionDetector | undefined) {\n this.droppable.collisionDetector = value ?? defaultCollisionDetection;\n }\n\n public set alignment(value: Alignment | undefined) {\n this.draggable.alignment = value;\n }\n\n public get alignment() {\n return this.draggable.alignment;\n }\n\n public set type(type: Type | undefined) {\n batch(() => {\n this.droppable.type = type;\n this.draggable.type = type;\n });\n }\n\n public get type() {\n return this.draggable.type;\n }\n\n public set accept(value: Droppable['accept']) {\n this.droppable.accept = value;\n }\n\n public get accept() {\n return this.droppable.accept;\n }\n\n public get isDropTarget() {\n return this.droppable.isDropTarget;\n }\n\n /**\n * A boolean indicating whether the sortable item is the source of a drag operation.\n */\n public get isDragSource() {\n return this.draggable.isDragSource;\n }\n\n /**\n * A boolean indicating whether the sortable item is being dragged.\n */\n public get isDragging() {\n return this.draggable.isDragging;\n }\n\n /**\n * A boolean indicating whether the sortable item is being dropped.\n */\n public get isDropping() {\n return this.draggable.isDropping;\n }\n\n public get status() {\n return this.draggable.status;\n }\n\n public refreshShape() {\n return this.droppable.refreshShape();\n }\n\n public accepts(draggable: Draggable): boolean {\n return this.droppable.accepts(draggable);\n }\n\n public register = () => {\n batch(() => {\n this.manager?.registry.register(this.droppable);\n this.manager?.registry.register(this.draggable);\n });\n\n return () => this.unregister();\n };\n\n public unregister = () => {\n batch(() => {\n this.manager?.registry.unregister(this.droppable);\n this.manager?.registry.unregister(this.draggable);\n });\n };\n\n public destroy = () => {\n batch(() => {\n this.droppable.destroy();\n this.draggable.destroy();\n });\n };\n}\n\nexport class SortableDraggable<T extends Data> extends Draggable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n get index() {\n return this.sortable.index;\n }\n\n get initialIndex() {\n return this.sortable.initialIndex;\n }\n\n get group() {\n return this.sortable.group;\n }\n\n get initialGroup() {\n return this.sortable.initialGroup;\n }\n}\n\nexport class SortableDroppable<T extends Data> extends Droppable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n get index() {\n return this.sortable.index;\n }\n\n get group() {\n return this.sortable.group;\n }\n}\n"]}
|
|
@@ -5,7 +5,12 @@ declare function getFinalKeyframe(element: Element, match: (keyframe: Keyframe)
|
|
|
5
5
|
declare function getBoundingRectangle(element: Element): BoundingRectangle;
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Returns the bounding rectangle of the viewport
|
|
8
|
+
* Returns the bounding rectangle of the viewport.
|
|
9
|
+
*
|
|
10
|
+
* When the visual viewport is available, uses its dimensions and offset
|
|
11
|
+
* to account for pinch-to-zoom. The returned rectangle is in layout viewport
|
|
12
|
+
* coordinates, consistent with `clientX`/`clientY` and `getBoundingClientRect()`.
|
|
13
|
+
*
|
|
9
14
|
* @param element
|
|
10
15
|
* @returns BoundingRectangle
|
|
11
16
|
*/
|
|
@@ -13,20 +18,51 @@ declare function getViewportBoundingRectangle(element: Element): BoundingRectang
|
|
|
13
18
|
|
|
14
19
|
declare function getVisibleBoundingRectangle(element: Element, boundingClientRect?: DOMRect, margin?: number): BoundingRectangle;
|
|
15
20
|
|
|
21
|
+
declare function getEventCoordinates(event: PointerEvent): Coordinates;
|
|
22
|
+
|
|
16
23
|
declare const canUseDOM: boolean;
|
|
17
24
|
|
|
18
25
|
declare function getDocument(target: Event['target'] | undefined): Document;
|
|
19
26
|
|
|
20
27
|
declare function getWindow(target: Event['target'] | null | undefined): typeof window;
|
|
21
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Recursively finds all same-origin Document objects:
|
|
31
|
+
* - the current document
|
|
32
|
+
* - any same-origin parent documents
|
|
33
|
+
* - any same-origin child documents (iframes, frames)
|
|
34
|
+
*
|
|
35
|
+
* @param rootDoc - The starting document (defaults to current document)
|
|
36
|
+
* @param seen - Internal set to prevent duplicate traversal
|
|
37
|
+
* @returns An array of all discovered same-origin Document objects
|
|
38
|
+
*/
|
|
39
|
+
declare function getDocuments(rootDoc?: Document, seen?: Set<Document>): Document[];
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* In Safari, `position: fixed` elements are anchored to the visual viewport
|
|
43
|
+
* during pinch-to-zoom, rather than the layout viewport. Returns the offset
|
|
44
|
+
* needed to compensate for this behavior.
|
|
45
|
+
*/
|
|
46
|
+
declare function getFixedPositionOffset(): {
|
|
47
|
+
x: number;
|
|
48
|
+
y: number;
|
|
49
|
+
};
|
|
50
|
+
|
|
22
51
|
declare function isSafari(): boolean;
|
|
23
52
|
|
|
53
|
+
declare function getRoot(target: Event['target'] | undefined): Document | ShadowRoot;
|
|
54
|
+
|
|
55
|
+
declare function prefersReducedMotion(window: Window): boolean;
|
|
56
|
+
|
|
24
57
|
declare function cloneElement(element: Element): Element;
|
|
25
58
|
|
|
26
|
-
declare function getElementFromPoint(
|
|
59
|
+
declare function getElementFromPoint(root: Document | ShadowRoot, { x, y }: Coordinates): Element | null;
|
|
27
60
|
|
|
28
61
|
declare const ProxiedElements: WeakMap<Element, Element>;
|
|
29
62
|
|
|
63
|
+
declare function isInteractiveElement(element: Element): boolean;
|
|
64
|
+
declare function getInteractiveElement(element: Element): Element | null;
|
|
65
|
+
|
|
30
66
|
interface EventListenerDescriptor {
|
|
31
67
|
type: string;
|
|
32
68
|
listener(event: Event): void;
|
|
@@ -36,7 +72,7 @@ type EventListenerInput = EventListenerDescriptor[] | EventListenerDescriptor;
|
|
|
36
72
|
declare class Listeners {
|
|
37
73
|
private entries;
|
|
38
74
|
constructor();
|
|
39
|
-
bind(target: EventTarget, input: EventListenerInput): () => void;
|
|
75
|
+
bind(target: EventTarget | EventTarget[], input: EventListenerInput): () => void;
|
|
40
76
|
clear: () => void;
|
|
41
77
|
}
|
|
42
78
|
|
|
@@ -69,7 +105,33 @@ declare function supportsPopover(element: Element): element is Element & {
|
|
|
69
105
|
hidePopover(): void;
|
|
70
106
|
};
|
|
71
107
|
|
|
72
|
-
|
|
108
|
+
interface ScrollPosition$1 {
|
|
109
|
+
rect: {
|
|
110
|
+
width: number;
|
|
111
|
+
height: number;
|
|
112
|
+
top: number;
|
|
113
|
+
left: number;
|
|
114
|
+
bottom: number;
|
|
115
|
+
right: number;
|
|
116
|
+
};
|
|
117
|
+
position: {
|
|
118
|
+
current: {
|
|
119
|
+
x: number;
|
|
120
|
+
y: number;
|
|
121
|
+
};
|
|
122
|
+
max: {
|
|
123
|
+
x: number;
|
|
124
|
+
y: number;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
isTop: boolean;
|
|
128
|
+
isLeft: boolean;
|
|
129
|
+
isBottom: boolean;
|
|
130
|
+
isRight: boolean;
|
|
131
|
+
}
|
|
132
|
+
declare function getScrollPosition(scrollableElement: Element): ScrollPosition$1;
|
|
133
|
+
|
|
134
|
+
declare function canScroll(scrollableElement: Element, by?: Coordinates, scrollPosition?: ScrollPosition$1): {
|
|
73
135
|
top: boolean;
|
|
74
136
|
bottom: boolean;
|
|
75
137
|
left: boolean;
|
|
@@ -81,6 +143,7 @@ declare function canScroll(scrollableElement: Element, by?: Coordinates): {
|
|
|
81
143
|
interface Options {
|
|
82
144
|
limit?: number;
|
|
83
145
|
excludeElement?: boolean;
|
|
146
|
+
escapeShadowDOM?: boolean;
|
|
84
147
|
}
|
|
85
148
|
declare function getScrollableAncestors(element: Node | null, options?: Options): Set<Element>;
|
|
86
149
|
declare function getFirstScrollableAncestor(node: Node | null): Element | null;
|
|
@@ -94,7 +157,7 @@ interface ScrollIntent {
|
|
|
94
157
|
x: ScrollDirection;
|
|
95
158
|
y: ScrollDirection;
|
|
96
159
|
}
|
|
97
|
-
declare function detectScrollIntent(scrollableElement: Element, coordinates: Coordinates, intent?: ScrollIntent, acceleration?: number, thresholdPercentage?: Record<Axis, number>, tolerance?: Record<Axis, number
|
|
160
|
+
declare function detectScrollIntent(scrollableElement: Element, coordinates: Coordinates, intent?: ScrollIntent, acceleration?: number, thresholdPercentage?: Record<Axis, number>, tolerance?: Record<Axis, number>, scrollPosition?: ScrollPosition$1): {
|
|
98
161
|
direction: Record<Axis, ScrollDirection>;
|
|
99
162
|
speed: {
|
|
100
163
|
x: number;
|
|
@@ -104,7 +167,12 @@ declare function detectScrollIntent(scrollableElement: Element, coordinates: Coo
|
|
|
104
167
|
|
|
105
168
|
declare function isDocumentScrollingElement(element: Element | null): boolean;
|
|
106
169
|
|
|
107
|
-
|
|
170
|
+
type ScrollPosition = 'center' | 'nearest' | 'none';
|
|
171
|
+
interface ScrollIntoViewOptions {
|
|
172
|
+
block?: ScrollPosition;
|
|
173
|
+
inline?: ScrollPosition;
|
|
174
|
+
}
|
|
175
|
+
declare function scrollIntoViewIfNeeded(el: Element, { block, inline }?: ScrollIntoViewOptions): void;
|
|
108
176
|
|
|
109
177
|
type Callback = () => void;
|
|
110
178
|
declare class Scheduler<T extends (callback: Callback) => any> {
|
|
@@ -139,14 +207,14 @@ interface Transform extends Coordinates {
|
|
|
139
207
|
scaleY: number;
|
|
140
208
|
}
|
|
141
209
|
declare function parseTransform(computedStyles: {
|
|
142
|
-
scale
|
|
210
|
+
scale?: string;
|
|
143
211
|
transform: string;
|
|
144
|
-
translate
|
|
212
|
+
translate?: string;
|
|
145
213
|
}): Transform | null;
|
|
146
214
|
|
|
147
215
|
declare function inverseTransform(rect: BoundingRectangle, parsedTransform: Transform, transformOrigin: string): BoundingRectangle;
|
|
148
216
|
|
|
149
|
-
declare function parseTranslate(translate
|
|
217
|
+
declare function parseTranslate(translate?: string): {
|
|
150
218
|
x: number;
|
|
151
219
|
y: number;
|
|
152
220
|
z: number;
|
|
@@ -180,6 +248,8 @@ declare class Styles {
|
|
|
180
248
|
*/
|
|
181
249
|
declare function getComputedStyles(element: Element, cached?: boolean): CSSStyleDeclaration;
|
|
182
250
|
|
|
251
|
+
declare function isDocument(node: Node): node is Document;
|
|
252
|
+
|
|
183
253
|
declare function isElement(target: EventTarget | null): target is Element;
|
|
184
254
|
|
|
185
255
|
declare function isHTMLElement(node: Node | Window | null | undefined): node is HTMLElement;
|
|
@@ -190,6 +260,8 @@ declare function isKeyboardEvent(event: Event | null | undefined): event is Keyb
|
|
|
190
260
|
|
|
191
261
|
declare function isPointerEvent(event: Event | null | undefined): event is PointerEvent;
|
|
192
262
|
|
|
263
|
+
declare function isShadowRoot(target: EventTarget | null): target is ShadowRoot;
|
|
264
|
+
|
|
193
265
|
interface ViewTransition {
|
|
194
266
|
ready: Promise<void>;
|
|
195
267
|
updateCallbackDone: Promise<void>;
|
|
@@ -212,4 +284,4 @@ declare function getFrameElement(el: Element | undefined): Element | null | unde
|
|
|
212
284
|
|
|
213
285
|
declare function getFrameTransform(el: Element | undefined, boundary?: Element | null): Transform;
|
|
214
286
|
|
|
215
|
-
export { DOMRectangle, type DOMRectangleOptions, Listeners, FrameObserver as PositionObserver, ProxiedElements, ResizeNotifier, Scheduler, ScrollDirection, Styles, type Transform, animateTransform, canScroll, canUseDOM, cloneElement, computeTranslate, detectScrollIntent, generateUniqueId, getBoundingRectangle, getComputedStyles, getDocument, getElementFromPoint, getFinalKeyframe, getFirstScrollableAncestor, getFrameElement, getFrameTransform, getScrollableAncestors, getViewportBoundingRectangle, getVisibleBoundingRectangle, getWindow, hidePopover, inverseTransform, isDocumentScrollingElement, isElement, isHTMLElement, isKeyboardEvent, isKeyframeEffect, isPointerEvent, isSafari, isTextInput, parseTransform, parseTranslate, scheduler, scrollIntoViewIfNeeded, showPopover, supportsPopover, supportsStyle, supportsViewTransition, timeout };
|
|
287
|
+
export { DOMRectangle, type DOMRectangleOptions, Listeners, FrameObserver as PositionObserver, ProxiedElements, ResizeNotifier, Scheduler, ScrollDirection, Styles, type Transform, animateTransform, canScroll, canUseDOM, cloneElement, computeTranslate, detectScrollIntent, generateUniqueId, getBoundingRectangle, getComputedStyles, getDocument, getDocuments, getElementFromPoint, getEventCoordinates, getFinalKeyframe, getFirstScrollableAncestor, getFixedPositionOffset, getFrameElement, getFrameTransform, getInteractiveElement, getRoot, getScrollPosition, getScrollableAncestors, getViewportBoundingRectangle, getVisibleBoundingRectangle, getWindow, hidePopover, inverseTransform, isDocument, isDocumentScrollingElement, isElement, isHTMLElement, isInteractiveElement, isKeyboardEvent, isKeyframeEffect, isPointerEvent, isSafari, isShadowRoot, isTextInput, parseTransform, parseTranslate, prefersReducedMotion, scheduler, scrollIntoViewIfNeeded, showPopover, supportsPopover, supportsStyle, supportsViewTransition, timeout };
|