@cloudscape-design/board-components 3.0.58 → 3.0.60
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/board/internal.js.map +1 -1
- package/board/transition.js.map +1 -1
- package/board/utils/announcements.js.map +1 -1
- package/board/utils/events.js.map +1 -1
- package/board/utils/get-hovered-rect.js.map +1 -1
- package/board/utils/layout.js.map +1 -1
- package/board/utils/path.js.map +1 -1
- package/internal/debug-tools/generators.js.map +1 -1
- package/internal/debug-tools/parsers.js.map +1 -1
- package/internal/dnd-controller/__mocks__/controller.d.ts +3 -1
- package/internal/dnd-controller/__mocks__/controller.js +4 -0
- package/internal/dnd-controller/__mocks__/controller.js.map +1 -1
- package/internal/dnd-controller/controller.d.ts +1 -1
- package/internal/dnd-controller/controller.js.map +1 -1
- package/internal/dnd-controller/event-emitter.js.map +1 -1
- package/internal/drag-handle/index.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/environment.json +1 -1
- package/internal/item-container/get-collision-rect.js.map +1 -1
- package/internal/item-container/get-next-droppable.js.map +1 -1
- package/internal/item-container/index.js.map +1 -1
- package/internal/layout-engine/engine-solution.js.map +1 -1
- package/internal/layout-engine/engine-step.js.map +1 -1
- package/internal/layout-engine/utils.js.map +1 -1
- package/internal/manifest.json +1 -1
- package/internal/utils/layout.js.map +1 -1
- package/internal/utils/rects.js.map +1 -1
- package/internal/utils/use-auto-scroll.js.map +1 -1
- package/package.json +1 -1
package/board/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/board/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from \"clsx\";\nimport { ReactNode, useEffect, useRef } from \"react\";\nimport { getDataAttributes } from \"../internal/base-component/get-data-attributes\";\nimport { InternalBaseComponentProps } from \"../internal/base-component/use-base-component\";\nimport { useContainerColumns } from \"../internal/breakpoints\";\nimport { TRANSITION_DURATION_MS } from \"../internal/constants\";\nimport { useDragSubscription } from \"../internal/dnd-controller/controller\";\nimport { useGlobalDragStateStyles } from \"../internal/global-drag-state-styles\";\nimport Grid from \"../internal/grid\";\nimport { BoardItemDefinition, BoardItemDefinitionBase, Direction, ItemId, Rect } from \"../internal/interfaces\";\nimport { ItemContainer, ItemContainerRef } from \"../internal/item-container\";\nimport LiveRegion from \"../internal/live-region\";\nimport { ScreenReaderGridNavigation } from \"../internal/screenreader-grid-navigation\";\nimport {\n createPlaceholdersLayout,\n getDefaultColumnSpan,\n getDefaultRowSpan,\n getMinColumnSpan,\n getMinRowSpan,\n interpretItems,\n} from \"../internal/utils/layout\";\nimport { Position } from \"../internal/utils/position\";\nimport { useAutoScroll } from \"../internal/utils/use-auto-scroll\";\nimport { useMergeRefs } from \"../internal/utils/use-merge-refs\";\n\nimport { BoardProps } from \"./interfaces\";\nimport Placeholder from \"./placeholder\";\nimport styles from \"./styles.css.js\";\nimport { selectTransitionRows, useTransition } from \"./transition\";\nimport { announcementToString } from \"./utils/announcements\";\nimport { createTransforms } from \"./utils/create-transforms\";\nimport { createItemsChangeEvent } from \"./utils/events\";\n\nexport function InternalBoard<D>({\n items,\n renderItem,\n onItemsChange,\n empty,\n i18nStrings,\n __internalRootRef,\n ...rest\n}: BoardProps<D> & InternalBaseComponentProps) {\n const containerAccessRef = useRef<HTMLDivElement>(null);\n const [currentColumns, containerQueryRef] = useContainerColumns();\n const containerRef = useMergeRefs(containerAccessRef, containerQueryRef);\n const itemContainerRef = useRef<{ [id: ItemId]: ItemContainerRef }>({});\n\n useGlobalDragStateStyles();\n\n const autoScrollHandlers = useAutoScroll();\n\n const [transitionState, dispatch] = useTransition<D>();\n const transition = transitionState.transition;\n const removeTransition = transitionState.removeTransition;\n const transitionAnnouncement = transitionState.announcement;\n const acquiredItem = transition?.acquiredItem ?? null;\n const acquiredItemElement = transition?.acquiredItemElement;\n\n // Using cached columns from transition to ensure no unexpected changes in the process.\n const columns = transition ? transition.itemsLayout.columns : currentColumns;\n\n // Use previous items while remove transition is in progress.\n items = removeTransition?.items ?? items;\n\n // The acquired item is the one being inserting at the moment but not submitted yet.\n // It needs to be included to the layout to be a part of layout shifts and rendering.\n items = acquiredItem ? [...items, acquiredItem] : items;\n const itemsLayout = interpretItems(items, columns);\n\n const layoutItemById = new Map(itemsLayout.items.map((item) => [item.id, item]));\n const layoutItemIndexById = new Map(itemsLayout.items.map((item, index) => [item.id, index]));\n\n // Items and layout items must maintain the same order visually, in the DOM and in the data\n // to ensure on-change events and tab order work as expected.\n items = [...items].sort((a, b) => (layoutItemIndexById.get(a.id) ?? -1) - (layoutItemIndexById.get(b.id) ?? -1));\n\n // When an item gets acquired or removed the focus needs to be dispatched on the next render.\n const focusNextRenderIndexRef = useRef<null | number>(null);\n const focusNextRenderIdRef = useRef<null | ItemId>(null);\n useEffect(() => {\n const focusTarget = focusNextRenderIdRef.current ?? items[focusNextRenderIndexRef.current ?? -1]?.id;\n if (focusTarget) {\n itemContainerRef.current[focusTarget].focusDragHandle();\n }\n focusNextRenderIndexRef.current = null;\n focusNextRenderIdRef.current = null;\n });\n\n // Submit scheduled removal after a delay to let animations play.\n useEffect(() => {\n if (!removeTransition) {\n return;\n }\n\n const timeoutId = setTimeout(() => {\n dispatch({ type: \"submit\" });\n\n const removedItemIndex = items.findIndex((it) => it.id === removeTransition.removedItem.id);\n const nextIndexToFocus = removedItemIndex !== items.length - 1 ? removedItemIndex : items.length - 2;\n focusNextRenderIndexRef.current = nextIndexToFocus;\n onItemsChange(createItemsChangeEvent(items, removeTransition.layoutShift));\n }, TRANSITION_DURATION_MS);\n\n return () => clearTimeout(timeoutId);\n }, [removeTransition, items, onItemsChange]);\n\n const rows = selectTransitionRows(transitionState) || itemsLayout.rows;\n const placeholdersLayout = createPlaceholdersLayout(rows, itemsLayout.columns);\n\n function isElementOverBoard(rect: Rect) {\n const board = containerAccessRef.current!;\n const boardContains = (target: null | Element) => board === target || board.contains(target);\n return (\n boardContains(document.elementFromPoint(rect.left, rect.top)) ||\n boardContains(document.elementFromPoint(rect.right, rect.top)) ||\n boardContains(document.elementFromPoint(rect.right, rect.bottom)) ||\n boardContains(document.elementFromPoint(rect.left, rect.bottom))\n );\n }\n\n useDragSubscription(\"start\", ({ operation, interactionType, draggableItem, collisionRect, collisionIds }) => {\n dispatch({\n type: \"init\",\n operation,\n interactionType,\n itemsLayout,\n // TODO: resolve any\n // The code only works assuming the board can take any draggable.\n // If draggables can be of different types a check of some sort is required here.\n draggableItem: draggableItem as BoardItemDefinitionBase<any>,\n draggableRect: collisionRect,\n collisionIds: interactionType === \"pointer\" && isElementOverBoard(collisionRect) ? collisionIds : [],\n });\n\n autoScrollHandlers.addPointerEventHandlers();\n });\n\n useDragSubscription(\"update\", ({ interactionType, collisionIds, positionOffset, collisionRect }) => {\n dispatch({\n type: \"update-with-pointer\",\n collisionIds: interactionType === \"pointer\" && isElementOverBoard(collisionRect) ? collisionIds : [],\n positionOffset,\n draggableRect: collisionRect,\n });\n });\n\n useDragSubscription(\"submit\", () => {\n dispatch({ type: \"submit\" });\n\n autoScrollHandlers.removePointerEventHandlers();\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n if (\n !transition.layoutShift ||\n transition.layoutShift.conflicts.length > 0 ||\n transition.layoutShift.moves.length === 0\n ) {\n return null;\n }\n\n // Commit new layout for insert case.\n if (transition.operation === \"insert\") {\n onItemsChange(createItemsChangeEvent([...items, transition.draggableItem], transition.layoutShift));\n }\n // Commit new layout for reorder/resize case.\n else {\n onItemsChange(createItemsChangeEvent(items, transition.layoutShift));\n }\n });\n\n useDragSubscription(\"discard\", () => {\n dispatch({ type: \"discard\" });\n\n autoScrollHandlers.removePointerEventHandlers();\n });\n\n useDragSubscription(\"acquire\", ({ droppableId, draggableItem, renderAcquiredItem }) => {\n const placeholder = placeholdersLayout.items.find((it) => it.id === droppableId);\n\n // If missing then it does not belong to this board.\n if (!placeholder) {\n return;\n }\n\n dispatch({\n type: \"acquire-item\",\n position: new Position({ x: placeholder.x, y: placeholder.y }),\n layoutElement: containerAccessRef.current!,\n acquiredItemElement: renderAcquiredItem(),\n });\n\n focusNextRenderIdRef.current = draggableItem.id;\n });\n\n const removeItemAction = (removedItem: BoardItemDefinition<D>) => {\n dispatch({ type: \"init-remove\", items, itemsLayout, removedItem });\n };\n\n function focusItem(itemId: ItemId) {\n itemContainerRef.current[itemId].focusDragHandle();\n }\n\n function onItemMove(direction: Direction) {\n if (transition) {\n dispatch({ type: \"update-with-keyboard\", direction });\n autoScrollHandlers.scheduleActiveElementScrollIntoView(TRANSITION_DURATION_MS);\n }\n }\n\n const announcement = transitionAnnouncement\n ? announcementToString(transitionAnnouncement, items, i18nStrings, itemsLayout.columns)\n : \"\";\n\n return (\n <div ref={__internalRootRef} {...getDataAttributes(rest)}>\n <ScreenReaderGridNavigation\n items={items}\n itemsLayout={itemsLayout}\n ariaLabel={i18nStrings.navigationAriaLabel}\n ariaDescription={i18nStrings.navigationAriaDescription}\n itemAriaLabel={i18nStrings.navigationItemAriaLabel}\n onActivateItem={focusItem}\n />\n\n <div ref={containerRef} className={clsx(styles.root, { [styles.empty]: rows === 0 })}>\n {rows > 0 ? (\n <Grid columns={itemsLayout.columns} layout={[...placeholdersLayout.items, ...itemsLayout.items]}>\n {(gridContext) => {\n const layoutShift = transition?.layoutShift ?? removeTransition?.layoutShift;\n const transforms = layoutShift ? createTransforms(itemsLayout, layoutShift.moves, gridContext) : {};\n\n // Exclude drag target from transforms.\n if (transition && transition.interactionType === \"pointer\") {\n delete transforms[transition.draggableItem.id];\n }\n\n const children: ReactNode[] = [];\n\n /* Placeholders are rendered even when there is no transition to support the first collisions check. */\n placeholdersLayout.items.forEach((placeholder) =>\n children.push(\n <Placeholder\n key={placeholder.id}\n id={placeholder.id}\n state={transition ? (transition.collisionIds?.has(placeholder.id) ? \"hover\" : \"active\") : \"default\"}\n gridContext={gridContext}\n columns={itemsLayout.columns}\n />\n )\n );\n\n items.forEach((item) => {\n const layoutItem = layoutItemById.get(item.id);\n const isResizing = transition?.operation === \"resize\" && transition?.draggableItem.id === item.id;\n\n const itemSize = layoutItem ?? {\n width: getDefaultColumnSpan(item, itemsLayout.columns),\n height: getDefaultRowSpan(item),\n };\n\n const itemMaxSize =\n isResizing && layoutItem ? { width: itemsLayout.columns - layoutItem.x, height: 999 } : itemSize;\n\n children.push(\n <ItemContainer\n key={item.id}\n ref={(elem) => {\n if (elem) {\n itemContainerRef.current[item.id] = elem;\n } else {\n delete itemContainerRef.current[item.id];\n }\n }}\n item={item}\n transform={transforms[item.id]}\n inTransition={!!transition || !!removeTransition}\n placed={item.id !== acquiredItem?.id}\n acquired={item.id === acquiredItem?.id}\n getItemSize={() => ({\n width: gridContext.getWidth(itemSize.width),\n minWidth: gridContext.getWidth(getMinColumnSpan(item, itemsLayout.columns)),\n maxWidth: gridContext.getWidth(itemMaxSize.width),\n height: gridContext.getHeight(itemSize.height),\n minHeight: gridContext.getHeight(getMinRowSpan(item)),\n maxHeight: gridContext.getHeight(itemMaxSize.height),\n })}\n onKeyMove={onItemMove}\n >\n {item.id === acquiredItem?.id && acquiredItemElement\n ? () => acquiredItemElement\n : () => renderItem(item, { removeItem: () => removeItemAction(item) })}\n </ItemContainer>\n );\n });\n\n return children;\n }}\n </Grid>\n ) : (\n empty\n )}\n </div>\n\n <LiveRegion>{announcement}</LiveRegion>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/board/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from \"clsx\";\nimport { ReactNode, useEffect, useRef } from \"react\";\nimport { getDataAttributes } from \"../internal/base-component/get-data-attributes\";\nimport { InternalBaseComponentProps } from \"../internal/base-component/use-base-component\";\nimport { useContainerColumns } from \"../internal/breakpoints\";\nimport { TRANSITION_DURATION_MS } from \"../internal/constants\";\nimport { useDragSubscription } from \"../internal/dnd-controller/controller\";\nimport { useGlobalDragStateStyles } from \"../internal/global-drag-state-styles\";\nimport Grid from \"../internal/grid\";\nimport { BoardItemDefinition, BoardItemDefinitionBase, Direction, ItemId, Rect } from \"../internal/interfaces\";\nimport { ItemContainer, ItemContainerRef } from \"../internal/item-container\";\nimport LiveRegion from \"../internal/live-region\";\nimport { ScreenReaderGridNavigation } from \"../internal/screenreader-grid-navigation\";\nimport {\n createPlaceholdersLayout,\n getDefaultColumnSpan,\n getDefaultRowSpan,\n getMinColumnSpan,\n getMinRowSpan,\n interpretItems,\n} from \"../internal/utils/layout\";\nimport { Position } from \"../internal/utils/position\";\nimport { useAutoScroll } from \"../internal/utils/use-auto-scroll\";\nimport { useMergeRefs } from \"../internal/utils/use-merge-refs\";\n\nimport { BoardProps } from \"./interfaces\";\nimport Placeholder from \"./placeholder\";\nimport styles from \"./styles.css.js\";\nimport { selectTransitionRows, useTransition } from \"./transition\";\nimport { announcementToString } from \"./utils/announcements\";\nimport { createTransforms } from \"./utils/create-transforms\";\nimport { createItemsChangeEvent } from \"./utils/events\";\n\nexport function InternalBoard<D>({\n items,\n renderItem,\n onItemsChange,\n empty,\n i18nStrings,\n __internalRootRef,\n ...rest\n}: BoardProps<D> & InternalBaseComponentProps) {\n const containerAccessRef = useRef<HTMLDivElement>(null);\n const [currentColumns, containerQueryRef] = useContainerColumns();\n const containerRef = useMergeRefs(containerAccessRef, containerQueryRef);\n const itemContainerRef = useRef<{ [id: ItemId]: ItemContainerRef }>({});\n\n useGlobalDragStateStyles();\n\n const autoScrollHandlers = useAutoScroll();\n\n const [transitionState, dispatch] = useTransition<D>();\n const transition = transitionState.transition;\n const removeTransition = transitionState.removeTransition;\n const transitionAnnouncement = transitionState.announcement;\n const acquiredItem = transition?.acquiredItem ?? null;\n const acquiredItemElement = transition?.acquiredItemElement;\n\n // Using cached columns from transition to ensure no unexpected changes in the process.\n const columns = transition ? transition.itemsLayout.columns : currentColumns;\n\n // Use previous items while remove transition is in progress.\n items = removeTransition?.items ?? items;\n\n // The acquired item is the one being inserting at the moment but not submitted yet.\n // It needs to be included to the layout to be a part of layout shifts and rendering.\n items = acquiredItem ? [...items, acquiredItem] : items;\n const itemsLayout = interpretItems(items, columns);\n\n const layoutItemById = new Map(itemsLayout.items.map((item) => [item.id, item]));\n const layoutItemIndexById = new Map(itemsLayout.items.map((item, index) => [item.id, index]));\n\n // Items and layout items must maintain the same order visually, in the DOM and in the data\n // to ensure on-change events and tab order work as expected.\n items = [...items].sort((a, b) => (layoutItemIndexById.get(a.id) ?? -1) - (layoutItemIndexById.get(b.id) ?? -1));\n\n // When an item gets acquired or removed the focus needs to be dispatched on the next render.\n const focusNextRenderIndexRef = useRef<null | number>(null);\n const focusNextRenderIdRef = useRef<null | ItemId>(null);\n useEffect(() => {\n const focusTarget = focusNextRenderIdRef.current ?? items[focusNextRenderIndexRef.current ?? -1]?.id;\n if (focusTarget) {\n itemContainerRef.current[focusTarget].focusDragHandle();\n }\n focusNextRenderIndexRef.current = null;\n focusNextRenderIdRef.current = null;\n });\n\n // Submit scheduled removal after a delay to let animations play.\n useEffect(() => {\n if (!removeTransition) {\n return;\n }\n\n const timeoutId = setTimeout(() => {\n dispatch({ type: \"submit\" });\n\n const removedItemIndex = items.findIndex((it) => it.id === removeTransition.removedItem.id);\n const nextIndexToFocus = removedItemIndex !== items.length - 1 ? removedItemIndex : items.length - 2;\n focusNextRenderIndexRef.current = nextIndexToFocus;\n onItemsChange(createItemsChangeEvent(items, removeTransition.layoutShift));\n }, TRANSITION_DURATION_MS);\n\n return () => clearTimeout(timeoutId);\n }, [removeTransition, items, onItemsChange]);\n\n const rows = selectTransitionRows(transitionState) || itemsLayout.rows;\n const placeholdersLayout = createPlaceholdersLayout(rows, itemsLayout.columns);\n\n function isElementOverBoard(rect: Rect) {\n const board = containerAccessRef.current!;\n const boardContains = (target: null | Element) => board === target || board.contains(target);\n return (\n boardContains(document.elementFromPoint(rect.left, rect.top)) ||\n boardContains(document.elementFromPoint(rect.right, rect.top)) ||\n boardContains(document.elementFromPoint(rect.right, rect.bottom)) ||\n boardContains(document.elementFromPoint(rect.left, rect.bottom))\n );\n }\n\n useDragSubscription(\"start\", ({ operation, interactionType, draggableItem, collisionRect, collisionIds }) => {\n dispatch({\n type: \"init\",\n operation,\n interactionType,\n itemsLayout,\n // TODO: resolve any\n // The code only works assuming the board can take any draggable.\n // If draggables can be of different types a check of some sort is required here.\n draggableItem: draggableItem as BoardItemDefinitionBase<any>,\n draggableRect: collisionRect,\n collisionIds: interactionType === \"pointer\" && isElementOverBoard(collisionRect) ? collisionIds : [],\n });\n\n autoScrollHandlers.addPointerEventHandlers();\n });\n\n useDragSubscription(\"update\", ({ interactionType, collisionIds, positionOffset, collisionRect }) => {\n dispatch({\n type: \"update-with-pointer\",\n collisionIds: interactionType === \"pointer\" && isElementOverBoard(collisionRect) ? collisionIds : [],\n positionOffset,\n draggableRect: collisionRect,\n });\n });\n\n useDragSubscription(\"submit\", () => {\n dispatch({ type: \"submit\" });\n\n autoScrollHandlers.removePointerEventHandlers();\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n if (\n !transition.layoutShift ||\n transition.layoutShift.conflicts.length > 0 ||\n transition.layoutShift.moves.length === 0\n ) {\n return null;\n }\n\n // Commit new layout for insert case.\n if (transition.operation === \"insert\") {\n onItemsChange(createItemsChangeEvent([...items, transition.draggableItem], transition.layoutShift));\n }\n // Commit new layout for reorder/resize case.\n else {\n onItemsChange(createItemsChangeEvent(items, transition.layoutShift));\n }\n });\n\n useDragSubscription(\"discard\", () => {\n dispatch({ type: \"discard\" });\n\n autoScrollHandlers.removePointerEventHandlers();\n });\n\n useDragSubscription(\"acquire\", ({ droppableId, draggableItem, renderAcquiredItem }) => {\n const placeholder = placeholdersLayout.items.find((it) => it.id === droppableId);\n\n // If missing then it does not belong to this board.\n if (!placeholder) {\n return;\n }\n\n dispatch({\n type: \"acquire-item\",\n position: new Position({ x: placeholder.x, y: placeholder.y }),\n layoutElement: containerAccessRef.current!,\n acquiredItemElement: renderAcquiredItem(),\n });\n\n focusNextRenderIdRef.current = draggableItem.id;\n });\n\n const removeItemAction = (removedItem: BoardItemDefinition<D>) => {\n dispatch({ type: \"init-remove\", items, itemsLayout, removedItem });\n };\n\n function focusItem(itemId: ItemId) {\n itemContainerRef.current[itemId].focusDragHandle();\n }\n\n function onItemMove(direction: Direction) {\n if (transition) {\n dispatch({ type: \"update-with-keyboard\", direction });\n autoScrollHandlers.scheduleActiveElementScrollIntoView(TRANSITION_DURATION_MS);\n }\n }\n\n const announcement = transitionAnnouncement\n ? announcementToString(transitionAnnouncement, items, i18nStrings, itemsLayout.columns)\n : \"\";\n\n return (\n <div ref={__internalRootRef} {...getDataAttributes(rest)}>\n <ScreenReaderGridNavigation\n items={items}\n itemsLayout={itemsLayout}\n ariaLabel={i18nStrings.navigationAriaLabel}\n ariaDescription={i18nStrings.navigationAriaDescription}\n itemAriaLabel={i18nStrings.navigationItemAriaLabel}\n onActivateItem={focusItem}\n />\n\n <div ref={containerRef} className={clsx(styles.root, { [styles.empty]: rows === 0 })}>\n {rows > 0 ? (\n <Grid columns={itemsLayout.columns} layout={[...placeholdersLayout.items, ...itemsLayout.items]}>\n {(gridContext) => {\n const layoutShift = transition?.layoutShift ?? removeTransition?.layoutShift;\n const transforms = layoutShift ? createTransforms(itemsLayout, layoutShift.moves, gridContext) : {};\n\n // Exclude drag target from transforms.\n if (transition && transition.interactionType === \"pointer\") {\n delete transforms[transition.draggableItem.id];\n }\n\n const children: ReactNode[] = [];\n\n /* Placeholders are rendered even when there is no transition to support the first collisions check. */\n placeholdersLayout.items.forEach((placeholder) =>\n children.push(\n <Placeholder\n key={placeholder.id}\n id={placeholder.id}\n state={transition ? (transition.collisionIds?.has(placeholder.id) ? \"hover\" : \"active\") : \"default\"}\n gridContext={gridContext}\n columns={itemsLayout.columns}\n />,\n ),\n );\n\n items.forEach((item) => {\n const layoutItem = layoutItemById.get(item.id);\n const isResizing = transition?.operation === \"resize\" && transition?.draggableItem.id === item.id;\n\n const itemSize = layoutItem ?? {\n width: getDefaultColumnSpan(item, itemsLayout.columns),\n height: getDefaultRowSpan(item),\n };\n\n const itemMaxSize =\n isResizing && layoutItem ? { width: itemsLayout.columns - layoutItem.x, height: 999 } : itemSize;\n\n children.push(\n <ItemContainer\n key={item.id}\n ref={(elem) => {\n if (elem) {\n itemContainerRef.current[item.id] = elem;\n } else {\n delete itemContainerRef.current[item.id];\n }\n }}\n item={item}\n transform={transforms[item.id]}\n inTransition={!!transition || !!removeTransition}\n placed={item.id !== acquiredItem?.id}\n acquired={item.id === acquiredItem?.id}\n getItemSize={() => ({\n width: gridContext.getWidth(itemSize.width),\n minWidth: gridContext.getWidth(getMinColumnSpan(item, itemsLayout.columns)),\n maxWidth: gridContext.getWidth(itemMaxSize.width),\n height: gridContext.getHeight(itemSize.height),\n minHeight: gridContext.getHeight(getMinRowSpan(item)),\n maxHeight: gridContext.getHeight(itemMaxSize.height),\n })}\n onKeyMove={onItemMove}\n >\n {item.id === acquiredItem?.id && acquiredItemElement\n ? () => acquiredItemElement\n : () => renderItem(item, { removeItem: () => removeItemAction(item) })}\n </ItemContainer>,\n );\n });\n\n return children;\n }}\n </Grid>\n ) : (\n empty\n )}\n </div>\n\n <LiveRegion>{announcement}</LiveRegion>\n </div>\n );\n}\n"]}
|
package/board/transition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/board/transition.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Dispatch, ReactNode, useReducer } from \"react\";\nimport { InteractionType, Operation } from \"../internal/dnd-controller/controller\";\nimport { BoardItemDefinitionBase, Direction, GridLayout, ItemId, Rect } from \"../internal/interfaces\";\nimport { LayoutEngine } from \"../internal/layout-engine/engine\";\nimport { Coordinates } from \"../internal/utils/coordinates\";\nimport { getDefaultColumnSpan, getDefaultRowSpan, getMinColumnSpan, getMinRowSpan } from \"../internal/utils/layout\";\nimport { Position } from \"../internal/utils/position\";\nimport { BoardProps, RemoveTransition, Transition, TransitionAnnouncement } from \"./interfaces\";\nimport { createOperationAnnouncement } from \"./utils/announcements\";\nimport { getHoveredRect } from \"./utils/get-hovered-rect\";\nimport { getInsertionDirection, getLayoutPlaceholders, getLayoutRows, getLayoutShift } from \"./utils/layout\";\nimport { appendMovePath, appendResizePath } from \"./utils/path\";\n\nexport interface TransitionState<D> {\n transition: null | Transition<D>;\n removeTransition: null | RemoveTransition<D>;\n announcement: null | TransitionAnnouncement;\n}\n\nexport type Action<D> =\n | InitAction<D>\n | InitRemoveAction<D>\n | SubmitAction\n | DiscardAction\n | UpdateWithPointerAction\n | UpdateWithKeyboardAction\n | AcquireItemAction;\n\ninterface InitAction<D> {\n type: \"init\";\n operation: Operation;\n interactionType: InteractionType;\n itemsLayout: GridLayout;\n draggableItem: BoardItemDefinitionBase<D>;\n draggableRect: Rect;\n collisionIds: readonly ItemId[];\n}\ninterface InitRemoveAction<D> {\n type: \"init-remove\";\n items: readonly BoardProps.Item<D>[];\n removedItem: BoardItemDefinitionBase<D>;\n itemsLayout: GridLayout;\n}\ninterface SubmitAction {\n type: \"submit\";\n}\ninterface DiscardAction {\n type: \"discard\";\n}\ninterface UpdateWithPointerAction {\n type: \"update-with-pointer\";\n collisionIds: readonly ItemId[];\n positionOffset: Coordinates;\n draggableRect: Rect;\n}\ninterface UpdateWithKeyboardAction {\n type: \"update-with-keyboard\";\n direction: Direction;\n}\ninterface AcquireItemAction {\n type: \"acquire-item\";\n position: Position;\n layoutElement: HTMLElement;\n acquiredItemElement?: ReactNode;\n}\n\nexport function useTransition<D>(): [TransitionState<D>, Dispatch<Action<D>>] {\n return useReducer(transitionReducer<D>, { transition: null, removeTransition: null, announcement: null });\n}\n\nexport function selectTransitionRows<D>(state: TransitionState<D>) {\n return state.transition ? getLayoutRows(state.transition) : 0;\n}\n\nfunction transitionReducer<D>(state: TransitionState<D>, action: Action<D>): TransitionState<D> {\n switch (action.type) {\n case \"init\":\n return initTransition(action);\n case \"init-remove\":\n return initRemoveTransition(action);\n case \"submit\":\n return submitTransition(state);\n case \"discard\":\n return discardTransition(state);\n case \"update-with-pointer\":\n return updateTransitionWithPointerEvent(state, action);\n case \"update-with-keyboard\":\n return updateTransitionWithKeyboardEvent(state, action);\n case \"acquire-item\":\n return acquireTransitionItem(state, action);\n }\n}\n\nfunction initTransition<D>({\n operation,\n interactionType,\n itemsLayout,\n draggableItem,\n draggableRect,\n collisionIds,\n}: InitAction<D>): TransitionState<D> {\n const transition: Transition<D> = {\n operation,\n interactionType,\n itemsLayout,\n layoutEngine: new LayoutEngine(itemsLayout),\n insertionDirection: null,\n draggableItem,\n draggableRect,\n acquiredItem: null,\n collisionIds: new Set(),\n layoutShift: null,\n path: [],\n };\n\n const placeholdersLayout = getLayoutPlaceholders(transition);\n\n const layoutItem = itemsLayout.items.find((it) => it.id === draggableItem.id);\n\n let path: Position[] = [];\n if (interactionType === \"pointer\" || operation === \"insert\") {\n const collisionRect = getHoveredRect(collisionIds, placeholdersLayout.items);\n const appendPath = operation === \"resize\" ? appendResizePath : appendMovePath;\n path = layoutItem ? appendPath([], collisionRect) : [];\n } else if (layoutItem) {\n path =\n operation === \"resize\"\n ? [new Position({ x: layoutItem.x + layoutItem.width, y: layoutItem.y + layoutItem.height })]\n : [new Position({ x: layoutItem.x, y: layoutItem.y })];\n }\n\n return {\n transition: { ...transition, path },\n removeTransition: null,\n announcement: layoutItem ? { type: \"dnd-started\", item: draggableItem, operation } : null,\n };\n}\n\nfunction initRemoveTransition<D>({ items, removedItem, itemsLayout }: InitRemoveAction<D>): TransitionState<D> {\n const layoutShift = new LayoutEngine(itemsLayout).remove(removedItem.id);\n const removeTransition: RemoveTransition<D> = { items, removedItem, layoutShift };\n return { transition: null, removeTransition, announcement: null };\n}\n\nfunction submitTransition<D>(state: TransitionState<D>): TransitionState<D> {\n const { transition, removeTransition } = state;\n\n if (removeTransition) {\n const disturbed = new Set(removeTransition.layoutShift.moves.map((move) => move.itemId));\n disturbed.delete(removeTransition.removedItem.id);\n return {\n transition: null,\n removeTransition: null,\n announcement: { type: \"item-removed\", item: removeTransition.removedItem, disturbed },\n };\n }\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { operation, itemsLayout, draggableItem: item, acquiredItem } = transition;\n const itemBelongsToBoard = item.id === acquiredItem?.id || itemsLayout.items.some((it) => it.id === item.id);\n\n return transition.layoutShift?.conflicts.length === 0\n ? {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-committed\", item, operation } : null,\n }\n : {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-discarded\", item, operation } : null,\n };\n}\n\nfunction discardTransition<D>(state: TransitionState<D>): TransitionState<D> {\n const { transition, removeTransition } = state;\n\n if (removeTransition) {\n throw new Error(\"Can't discard remove transition.\");\n }\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { operation, itemsLayout, draggableItem: item, acquiredItem } = transition;\n const itemBelongsToBoard = item.id === acquiredItem?.id || itemsLayout.items.some((it) => it.id === item.id);\n\n return {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-discarded\", item, operation } : null,\n };\n}\n\nfunction updateTransitionWithPointerEvent<D>(\n state: TransitionState<D>,\n { collisionIds, positionOffset, draggableRect }: UpdateWithPointerAction\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const itemWidth = layoutItem ? layoutItem.width : getDefaultColumnSpan(transition.draggableItem, layout.columns);\n const itemHeight = layoutItem ? layoutItem.height : getDefaultRowSpan(transition.draggableItem);\n const itemSize = itemWidth * itemHeight;\n\n const isOutOfBoundaries =\n transition.operation !== \"resize\" ? collisionIds.length < itemSize : collisionIds.length === 0;\n\n if (isOutOfBoundaries) {\n return {\n transition: {\n ...transition,\n draggableRect,\n collisionIds: new Set(),\n layoutShift: null,\n insertionDirection: null,\n },\n removeTransition: null,\n announcement: null,\n };\n }\n\n const placeholdersLayout = getLayoutPlaceholders(transition);\n const collisionRect = getHoveredRect(collisionIds, placeholdersLayout.items);\n const appendPath = transition.operation === \"resize\" ? appendResizePath : appendMovePath;\n const path = appendPath(transition.path, collisionRect);\n\n const insertionDirection = transition.insertionDirection ?? getInsertionDirection(positionOffset);\n const layoutShift = getLayoutShift(transition, path, insertionDirection);\n\n return {\n transition: {\n ...transition,\n draggableRect,\n collisionIds: new Set(collisionIds),\n layoutShift,\n path,\n insertionDirection,\n },\n removeTransition: null,\n announcement: null,\n };\n}\n\nfunction updateTransitionWithKeyboardEvent<D>(\n state: TransitionState<D>,\n { direction }: UpdateWithKeyboardAction\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const updateManualItemTransition = (transition: Transition<D>, direction: Direction): TransitionState<D> => {\n const xDelta = direction === \"left\" ? -1 : direction === \"right\" ? 1 : 0;\n const yDelta = direction === \"up\" ? -1 : direction === \"down\" ? 1 : 0;\n const lastPosition = transition.path[transition.path.length - 1];\n const nextPosition = new Position({ x: lastPosition.x + xDelta, y: lastPosition.y + yDelta });\n const nextPath = [...transition.path, nextPosition];\n\n // Check resizing below min size.\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const minWidth = getMinColumnSpan(transition.draggableItem, transition.itemsLayout.columns);\n const minHeight = getMinRowSpan(transition.draggableItem);\n if (\n transition.operation === \"resize\" &&\n layoutItem &&\n (layoutItem.width + xDelta < minWidth || layoutItem.height + yDelta < minHeight)\n ) {\n return state;\n }\n\n try {\n const layoutShift = getLayoutShift(transition, nextPath);\n const nextTransition = { ...transition, layoutShift, path: nextPath };\n return {\n transition: nextTransition,\n removeTransition: null,\n announcement: createOperationAnnouncement(nextTransition, direction),\n };\n } catch (e) {\n // Can't create next layout because the next path is out of bounds.\n return state;\n }\n };\n\n switch (direction) {\n case \"left\":\n return updateManualItemTransition(transition, \"left\");\n case \"right\":\n return updateManualItemTransition(transition, \"right\");\n case \"up\":\n return updateManualItemTransition(transition, \"up\");\n case \"down\":\n return updateManualItemTransition(transition, \"down\");\n }\n}\n\nfunction acquireTransitionItem<D>(\n state: TransitionState<D>,\n { position, layoutElement, acquiredItemElement }: AcquireItemAction\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { columns } = transition.itemsLayout;\n\n const layoutRect = layoutElement.getBoundingClientRect();\n const itemRect = transition.draggableRect;\n const offset = new Coordinates({ x: itemRect.left - layoutRect.x, y: itemRect.top - layoutRect.y });\n const insertionDirection = getInsertionDirection(offset);\n\n // Update original insertion position if the item can't fit into the layout by width.\n const width = getDefaultColumnSpan(transition.draggableItem, columns);\n position = new Position({ x: Math.min(columns - width, position.x), y: position.y });\n\n const path = [...transition.path, position];\n\n const layoutShift = getLayoutShift(transition, path, insertionDirection);\n\n // The columnOffset, columnSpan and rowSpan are of no use as of being overridden by the layout shift.\n const acquiredItem = { ...transition.draggableItem, columnOffset: 0, columnSpan: 1, rowSpan: 1 };\n\n const nextTransition: Transition<D> = {\n ...transition,\n collisionIds: new Set(),\n layoutShift,\n path,\n acquiredItem,\n acquiredItemElement,\n };\n return {\n transition: nextTransition,\n removeTransition: null,\n announcement: createOperationAnnouncement(nextTransition, null),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/board/transition.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Dispatch, ReactNode, useReducer } from \"react\";\nimport { InteractionType, Operation } from \"../internal/dnd-controller/controller\";\nimport { BoardItemDefinitionBase, Direction, GridLayout, ItemId, Rect } from \"../internal/interfaces\";\nimport { LayoutEngine } from \"../internal/layout-engine/engine\";\nimport { Coordinates } from \"../internal/utils/coordinates\";\nimport { getDefaultColumnSpan, getDefaultRowSpan, getMinColumnSpan, getMinRowSpan } from \"../internal/utils/layout\";\nimport { Position } from \"../internal/utils/position\";\nimport { BoardProps, RemoveTransition, Transition, TransitionAnnouncement } from \"./interfaces\";\nimport { createOperationAnnouncement } from \"./utils/announcements\";\nimport { getHoveredRect } from \"./utils/get-hovered-rect\";\nimport { getInsertionDirection, getLayoutPlaceholders, getLayoutRows, getLayoutShift } from \"./utils/layout\";\nimport { appendMovePath, appendResizePath } from \"./utils/path\";\n\nexport interface TransitionState<D> {\n transition: null | Transition<D>;\n removeTransition: null | RemoveTransition<D>;\n announcement: null | TransitionAnnouncement;\n}\n\nexport type Action<D> =\n | InitAction<D>\n | InitRemoveAction<D>\n | SubmitAction\n | DiscardAction\n | UpdateWithPointerAction\n | UpdateWithKeyboardAction\n | AcquireItemAction;\n\ninterface InitAction<D> {\n type: \"init\";\n operation: Operation;\n interactionType: InteractionType;\n itemsLayout: GridLayout;\n draggableItem: BoardItemDefinitionBase<D>;\n draggableRect: Rect;\n collisionIds: readonly ItemId[];\n}\ninterface InitRemoveAction<D> {\n type: \"init-remove\";\n items: readonly BoardProps.Item<D>[];\n removedItem: BoardItemDefinitionBase<D>;\n itemsLayout: GridLayout;\n}\ninterface SubmitAction {\n type: \"submit\";\n}\ninterface DiscardAction {\n type: \"discard\";\n}\ninterface UpdateWithPointerAction {\n type: \"update-with-pointer\";\n collisionIds: readonly ItemId[];\n positionOffset: Coordinates;\n draggableRect: Rect;\n}\ninterface UpdateWithKeyboardAction {\n type: \"update-with-keyboard\";\n direction: Direction;\n}\ninterface AcquireItemAction {\n type: \"acquire-item\";\n position: Position;\n layoutElement: HTMLElement;\n acquiredItemElement?: ReactNode;\n}\n\nexport function useTransition<D>(): [TransitionState<D>, Dispatch<Action<D>>] {\n return useReducer(transitionReducer<D>, { transition: null, removeTransition: null, announcement: null });\n}\n\nexport function selectTransitionRows<D>(state: TransitionState<D>) {\n return state.transition ? getLayoutRows(state.transition) : 0;\n}\n\nfunction transitionReducer<D>(state: TransitionState<D>, action: Action<D>): TransitionState<D> {\n switch (action.type) {\n case \"init\":\n return initTransition(action);\n case \"init-remove\":\n return initRemoveTransition(action);\n case \"submit\":\n return submitTransition(state);\n case \"discard\":\n return discardTransition(state);\n case \"update-with-pointer\":\n return updateTransitionWithPointerEvent(state, action);\n case \"update-with-keyboard\":\n return updateTransitionWithKeyboardEvent(state, action);\n case \"acquire-item\":\n return acquireTransitionItem(state, action);\n }\n}\n\nfunction initTransition<D>({\n operation,\n interactionType,\n itemsLayout,\n draggableItem,\n draggableRect,\n collisionIds,\n}: InitAction<D>): TransitionState<D> {\n const transition: Transition<D> = {\n operation,\n interactionType,\n itemsLayout,\n layoutEngine: new LayoutEngine(itemsLayout),\n insertionDirection: null,\n draggableItem,\n draggableRect,\n acquiredItem: null,\n collisionIds: new Set(),\n layoutShift: null,\n path: [],\n };\n\n const placeholdersLayout = getLayoutPlaceholders(transition);\n\n const layoutItem = itemsLayout.items.find((it) => it.id === draggableItem.id);\n\n let path: Position[] = [];\n if (interactionType === \"pointer\" || operation === \"insert\") {\n const collisionRect = getHoveredRect(collisionIds, placeholdersLayout.items);\n const appendPath = operation === \"resize\" ? appendResizePath : appendMovePath;\n path = layoutItem ? appendPath([], collisionRect) : [];\n } else if (layoutItem) {\n path =\n operation === \"resize\"\n ? [new Position({ x: layoutItem.x + layoutItem.width, y: layoutItem.y + layoutItem.height })]\n : [new Position({ x: layoutItem.x, y: layoutItem.y })];\n }\n\n return {\n transition: { ...transition, path },\n removeTransition: null,\n announcement: layoutItem ? { type: \"dnd-started\", item: draggableItem, operation } : null,\n };\n}\n\nfunction initRemoveTransition<D>({ items, removedItem, itemsLayout }: InitRemoveAction<D>): TransitionState<D> {\n const layoutShift = new LayoutEngine(itemsLayout).remove(removedItem.id);\n const removeTransition: RemoveTransition<D> = { items, removedItem, layoutShift };\n return { transition: null, removeTransition, announcement: null };\n}\n\nfunction submitTransition<D>(state: TransitionState<D>): TransitionState<D> {\n const { transition, removeTransition } = state;\n\n if (removeTransition) {\n const disturbed = new Set(removeTransition.layoutShift.moves.map((move) => move.itemId));\n disturbed.delete(removeTransition.removedItem.id);\n return {\n transition: null,\n removeTransition: null,\n announcement: { type: \"item-removed\", item: removeTransition.removedItem, disturbed },\n };\n }\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { operation, itemsLayout, draggableItem: item, acquiredItem } = transition;\n const itemBelongsToBoard = item.id === acquiredItem?.id || itemsLayout.items.some((it) => it.id === item.id);\n\n return transition.layoutShift?.conflicts.length === 0\n ? {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-committed\", item, operation } : null,\n }\n : {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-discarded\", item, operation } : null,\n };\n}\n\nfunction discardTransition<D>(state: TransitionState<D>): TransitionState<D> {\n const { transition, removeTransition } = state;\n\n if (removeTransition) {\n throw new Error(\"Can't discard remove transition.\");\n }\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { operation, itemsLayout, draggableItem: item, acquiredItem } = transition;\n const itemBelongsToBoard = item.id === acquiredItem?.id || itemsLayout.items.some((it) => it.id === item.id);\n\n return {\n transition: null,\n removeTransition: null,\n announcement: itemBelongsToBoard ? { type: \"dnd-discarded\", item, operation } : null,\n };\n}\n\nfunction updateTransitionWithPointerEvent<D>(\n state: TransitionState<D>,\n { collisionIds, positionOffset, draggableRect }: UpdateWithPointerAction,\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const itemWidth = layoutItem ? layoutItem.width : getDefaultColumnSpan(transition.draggableItem, layout.columns);\n const itemHeight = layoutItem ? layoutItem.height : getDefaultRowSpan(transition.draggableItem);\n const itemSize = itemWidth * itemHeight;\n\n const isOutOfBoundaries =\n transition.operation !== \"resize\" ? collisionIds.length < itemSize : collisionIds.length === 0;\n\n if (isOutOfBoundaries) {\n return {\n transition: {\n ...transition,\n draggableRect,\n collisionIds: new Set(),\n layoutShift: null,\n insertionDirection: null,\n },\n removeTransition: null,\n announcement: null,\n };\n }\n\n const placeholdersLayout = getLayoutPlaceholders(transition);\n const collisionRect = getHoveredRect(collisionIds, placeholdersLayout.items);\n const appendPath = transition.operation === \"resize\" ? appendResizePath : appendMovePath;\n const path = appendPath(transition.path, collisionRect);\n\n const insertionDirection = transition.insertionDirection ?? getInsertionDirection(positionOffset);\n const layoutShift = getLayoutShift(transition, path, insertionDirection);\n\n return {\n transition: {\n ...transition,\n draggableRect,\n collisionIds: new Set(collisionIds),\n layoutShift,\n path,\n insertionDirection,\n },\n removeTransition: null,\n announcement: null,\n };\n}\n\nfunction updateTransitionWithKeyboardEvent<D>(\n state: TransitionState<D>,\n { direction }: UpdateWithKeyboardAction,\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const updateManualItemTransition = (transition: Transition<D>, direction: Direction): TransitionState<D> => {\n const xDelta = direction === \"left\" ? -1 : direction === \"right\" ? 1 : 0;\n const yDelta = direction === \"up\" ? -1 : direction === \"down\" ? 1 : 0;\n const lastPosition = transition.path[transition.path.length - 1];\n const nextPosition = new Position({ x: lastPosition.x + xDelta, y: lastPosition.y + yDelta });\n const nextPath = [...transition.path, nextPosition];\n\n // Check resizing below min size.\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const minWidth = getMinColumnSpan(transition.draggableItem, transition.itemsLayout.columns);\n const minHeight = getMinRowSpan(transition.draggableItem);\n if (\n transition.operation === \"resize\" &&\n layoutItem &&\n (layoutItem.width + xDelta < minWidth || layoutItem.height + yDelta < minHeight)\n ) {\n return state;\n }\n\n try {\n const layoutShift = getLayoutShift(transition, nextPath);\n const nextTransition = { ...transition, layoutShift, path: nextPath };\n return {\n transition: nextTransition,\n removeTransition: null,\n announcement: createOperationAnnouncement(nextTransition, direction),\n };\n } catch (e) {\n // Can't create next layout because the next path is out of bounds.\n return state;\n }\n };\n\n switch (direction) {\n case \"left\":\n return updateManualItemTransition(transition, \"left\");\n case \"right\":\n return updateManualItemTransition(transition, \"right\");\n case \"up\":\n return updateManualItemTransition(transition, \"up\");\n case \"down\":\n return updateManualItemTransition(transition, \"down\");\n }\n}\n\nfunction acquireTransitionItem<D>(\n state: TransitionState<D>,\n { position, layoutElement, acquiredItemElement }: AcquireItemAction,\n): TransitionState<D> {\n const { transition } = state;\n\n if (!transition) {\n throw new Error(\"Invariant violation: no transition.\");\n }\n\n const { columns } = transition.itemsLayout;\n\n const layoutRect = layoutElement.getBoundingClientRect();\n const itemRect = transition.draggableRect;\n const offset = new Coordinates({ x: itemRect.left - layoutRect.x, y: itemRect.top - layoutRect.y });\n const insertionDirection = getInsertionDirection(offset);\n\n // Update original insertion position if the item can't fit into the layout by width.\n const width = getDefaultColumnSpan(transition.draggableItem, columns);\n position = new Position({ x: Math.min(columns - width, position.x), y: position.y });\n\n const path = [...transition.path, position];\n\n const layoutShift = getLayoutShift(transition, path, insertionDirection);\n\n // The columnOffset, columnSpan and rowSpan are of no use as of being overridden by the layout shift.\n const acquiredItem = { ...transition.draggableItem, columnOffset: 0, columnSpan: 1, rowSpan: 1 };\n\n const nextTransition: Transition<D> = {\n ...transition,\n collisionIds: new Set(),\n layoutShift,\n path,\n acquiredItem,\n acquiredItemElement,\n };\n return {\n transition: nextTransition,\n removeTransition: null,\n announcement: createOperationAnnouncement(nextTransition, null),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcements.js","sourceRoot":"","sources":["../../../../src/board/utils/announcements.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction, ItemId } from \"../../internal/interfaces\";\nimport { getMinColumnSpan, getMinRowSpan } from \"../../internal/utils/layout\";\nimport {\n BoardProps,\n DndActionAnnouncement,\n ItemRemovedAnnouncement,\n Transition,\n TransitionAnnouncement,\n} from \"../interfaces\";\n\n/**\n * Creates an announcement object describing the last user move.\n */\nexport function createOperationAnnouncement<D>(\n transition: Transition<D>,\n direction: null | Direction
|
|
1
|
+
{"version":3,"file":"announcements.js","sourceRoot":"","sources":["../../../../src/board/utils/announcements.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction, ItemId } from \"../../internal/interfaces\";\nimport { getMinColumnSpan, getMinRowSpan } from \"../../internal/utils/layout\";\nimport {\n BoardProps,\n DndActionAnnouncement,\n ItemRemovedAnnouncement,\n Transition,\n TransitionAnnouncement,\n} from \"../interfaces\";\n\n/**\n * Creates an announcement object describing the last user move.\n */\nexport function createOperationAnnouncement<D>(\n transition: Transition<D>,\n direction: null | Direction,\n): null | DndActionAnnouncement {\n const { operation, layoutShift, itemsLayout } = transition;\n const targetItem = itemsLayout.items.find((it) => it.id === transition.draggableItem.id) ?? null;\n\n if (!layoutShift) {\n return null;\n }\n\n const firstMove = layoutShift.moves[0];\n const targetId = firstMove?.itemId ?? targetItem?.id;\n if (!targetId) {\n return null;\n }\n\n const itemMoves = layoutShift.moves.filter((m) => m.itemId === targetId);\n const lastItemMove = itemMoves[itemMoves.length - 1];\n const placement = lastItemMove ?? targetItem;\n\n const conflicts = new Set(layoutShift.conflicts);\n\n const disturbed = new Set(layoutShift.moves.map((move) => move.itemId));\n disturbed.delete(targetId);\n\n return {\n type: \"dnd-action\",\n item: transition.draggableItem,\n operation,\n placement: {\n x: placement.x,\n y: placement.y,\n width: placement.width,\n height: placement.height,\n },\n direction,\n conflicts,\n disturbed,\n };\n}\n\n/**\n * Applies i18nStrings to the announcement object to produce a string for the live region.\n */\nexport function announcementToString<D>(\n announcement: TransitionAnnouncement,\n items: readonly BoardProps.Item<D>[],\n i18nStrings: BoardProps.I18nStrings<D>,\n columns: number,\n): string {\n if (!announcement) {\n return \"\";\n }\n const item = announcement.item as BoardProps.Item<D>;\n\n const toItem = (id: ItemId) => items.find((it) => it?.id === id)!;\n const formatDirection = (direction: null | Direction) => {\n if (!direction) {\n return null;\n }\n return direction === \"left\" || direction === \"right\" ? \"horizontal\" : \"vertical\";\n };\n\n function createDndActionAnnouncement(announcement: DndActionAnnouncement) {\n const placement = announcement.placement;\n const direction = formatDirection(announcement.direction);\n const conflicts = [...announcement.conflicts].map(toItem);\n const disturbed = [...announcement.disturbed].map(toItem);\n\n switch (announcement.operation) {\n case \"reorder\":\n return i18nStrings.liveAnnouncementDndItemReordered({\n item,\n placement,\n direction: direction!,\n conflicts,\n disturbed,\n });\n case \"resize\":\n return i18nStrings.liveAnnouncementDndItemResized({\n item,\n placement,\n direction: direction!,\n isMinimalColumnsReached: placement.width === getMinColumnSpan(item, columns),\n isMinimalRowsReached: placement.height === getMinRowSpan(item),\n conflicts,\n disturbed,\n });\n case \"insert\":\n return i18nStrings.liveAnnouncementDndItemInserted({ item, placement, conflicts, disturbed });\n }\n }\n\n function createItemRemovedAnnouncement(announcement: ItemRemovedAnnouncement) {\n return i18nStrings.liveAnnouncementItemRemoved({ item, disturbed: [...announcement.disturbed].map(toItem) });\n }\n\n switch (announcement.type) {\n case \"dnd-started\":\n return i18nStrings.liveAnnouncementDndStarted(announcement.operation);\n case \"dnd-action\":\n return createDndActionAnnouncement(announcement);\n case \"dnd-committed\":\n return i18nStrings.liveAnnouncementDndCommitted(announcement.operation);\n case \"dnd-discarded\":\n return i18nStrings.liveAnnouncementDndDiscarded(announcement.operation);\n case \"item-removed\":\n return createItemRemovedAnnouncement(announcement);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/board/utils/events.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,UAAU,sBAAsB,CACpC,KAAoC,EACpC,WAAwB;;IAExB,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC9F,MAAM,UAAU,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC1F,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC9F,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAE9F,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,YAAY,CAAC,CAAC;IAEvF,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QACxD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QACvD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QAC1D,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KACnF,CAAC,CAAC;AACL,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LayoutShift } from \"../../internal/layout-engine/interfaces\";\nimport { createCustomEvent } from \"../../internal/utils/events\";\nimport { transformItems } from \"../../internal/utils/layout\";\nimport { BoardProps } from \"../interfaces\";\n\nexport function createItemsChangeEvent<D>(\n items: readonly BoardProps.Item<D>[],\n layoutShift: LayoutShift
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/board/utils/events.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,UAAU,sBAAsB,CACpC,KAAoC,EACpC,WAAwB;;IAExB,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC9F,MAAM,UAAU,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC1F,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAC9F,MAAM,YAAY,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,MAAM,mCAAI,IAAI,CAAC;IAE9F,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,YAAY,CAAC,CAAC;IAEvF,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QACxD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QACvD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC;QAC1D,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KACnF,CAAC,CAAC;AACL,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LayoutShift } from \"../../internal/layout-engine/interfaces\";\nimport { createCustomEvent } from \"../../internal/utils/events\";\nimport { transformItems } from \"../../internal/utils/layout\";\nimport { BoardProps } from \"../interfaces\";\n\nexport function createItemsChangeEvent<D>(\n items: readonly BoardProps.Item<D>[],\n layoutShift: LayoutShift,\n): CustomEvent<BoardProps.ItemsChangeDetail<D>> {\n const insertTarget = layoutShift.moves.find((move) => move.type === \"INSERT\")?.itemId ?? null;\n const moveTarget = layoutShift.moves.find((move) => move.type === \"MOVE\")?.itemId ?? null;\n const removeTarget = layoutShift.moves.find((move) => move.type === \"REMOVE\")?.itemId ?? null;\n const resizeTarget = layoutShift.moves.find((move) => move.type === \"RESIZE\")?.itemId ?? null;\n\n const newItems = transformItems(items, layoutShift.next, resizeTarget ?? insertTarget);\n\n return createCustomEvent({\n items: newItems,\n addedItem: newItems.find((it) => it.id === insertTarget),\n removedItem: items.find((it) => it.id === removeTarget),\n resizedItem: newItems.find((it) => it.id === resizeTarget),\n movedItem: !insertTarget ? newItems.find((it) => it.id === moveTarget) : undefined,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-hovered-rect.js","sourceRoot":"","sources":["../../../../src/board/utils/get-hovered-rect.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAItC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAgC,EAAE,YAAuC;IACtG,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAC;IAC9F,OAAO,mBAAmB,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACpB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;KAC3D,CAAC,EACF;QACE,GAAG,EAAE,MAAM,CAAC,iBAAiB;QAC7B,IAAI,EAAE,MAAM,CAAC,iBAAiB;QAC9B,MAAM,EAAE,MAAM,CAAC,iBAAiB;QAChC,KAAK,EAAE,MAAM,CAAC,iBAAiB;KAChC,CACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GridLayoutItem, ItemId } from \"../../internal/interfaces\";\n\n/**\n * Creates a minimal hovered rectangle (in grid units) that contains all collided placeholders.\n */\nexport function getHoveredRect(collisionsIds: readonly ItemId[], placeholders: readonly GridLayoutItem[]) {\n const hoveredPlaceholders = collisionsIds.map((id) => placeholders.find((p) => p.id === id)!);\n return hoveredPlaceholders.reduce(\n (rect, collision) => ({\n top: Math.min(rect.top, collision.y),\n left: Math.min(rect.left, collision.x),\n bottom: Math.max(rect.bottom, collision.y + collision.height),\n right: Math.max(rect.right, collision.x + collision.width),\n }),\n {\n top: Number.POSITIVE_INFINITY,\n left: Number.POSITIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n }
|
|
1
|
+
{"version":3,"file":"get-hovered-rect.js","sourceRoot":"","sources":["../../../../src/board/utils/get-hovered-rect.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAItC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAgC,EAAE,YAAuC;IACtG,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAC;IAC9F,OAAO,mBAAmB,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACpB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;KAC3D,CAAC,EACF;QACE,GAAG,EAAE,MAAM,CAAC,iBAAiB;QAC7B,IAAI,EAAE,MAAM,CAAC,iBAAiB;QAC9B,MAAM,EAAE,MAAM,CAAC,iBAAiB;QAChC,KAAK,EAAE,MAAM,CAAC,iBAAiB;KAChC,CACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GridLayoutItem, ItemId } from \"../../internal/interfaces\";\n\n/**\n * Creates a minimal hovered rectangle (in grid units) that contains all collided placeholders.\n */\nexport function getHoveredRect(collisionsIds: readonly ItemId[], placeholders: readonly GridLayoutItem[]) {\n const hoveredPlaceholders = collisionsIds.map((id) => placeholders.find((p) => p.id === id)!);\n return hoveredPlaceholders.reduce(\n (rect, collision) => ({\n top: Math.min(rect.top, collision.y),\n left: Math.min(rect.left, collision.x),\n bottom: Math.max(rect.bottom, collision.y + collision.height),\n right: Math.max(rect.right, collision.x + collision.width),\n }),\n {\n top: Number.POSITIVE_INFINITY,\n left: Number.POSITIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n },\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/board/utils/layout.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhH,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAI,UAAyB;IAC3D,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;AACxC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAI,UAAyB;;IACxD,MAAM,MAAM,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,0CAAE,IAAI,mCAAI,UAAU,CAAC,WAAW,CAAC;IAEtE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,mCAAI,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACrF,uDAAuD;IACvD,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrF;IACD,8DAA8D;SACzD;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;KACxE;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAI,UAAyB;IAChE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAAyB;IAC7D,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAyB,EACzB,IAAyB,EACzB,kBAA8B;IAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE7C,QAAQ,UAAU,CAAC,SAAS,EAAE;QAC5B,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;gBACpC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE;gBACnC,KAAK;gBACL,MAAM;gBACN,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;aACjF,CAAC,CAAC;KACN;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction } from \"../../internal/interfaces\";\nimport { LayoutShift } from \"../../internal/layout-engine/interfaces\";\nimport { Coordinates } from \"../../internal/utils/coordinates\";\nimport { createPlaceholdersLayout, getDefaultColumnSpan, getDefaultRowSpan } from \"../../internal/utils/layout\";\nimport { Position } from \"../../internal/utils/position\";\nimport { Transition } from \"../interfaces\";\nimport { normalizeInsertionPath } from \"./path\";\n\nexport function getLayoutColumns<D>(transition: Transition<D>) {\n return transition.itemsLayout.columns;\n}\n\n// The rows can be overridden during transition to create more drop targets at the bottom.\nexport function getLayoutRows<D>(transition: Transition<D>) {\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const itemHeight = layoutItem?.height ?? getDefaultRowSpan(transition.draggableItem);\n // Add extra row for resize when already at the bottom.\n if (transition.operation === \"resize\") {\n return Math.max(layout.rows, layoutItem ? layoutItem.y + layoutItem.height + 1 : 0);\n }\n // Add extra row(s) for reorder/insert based on item's height.\n else {\n return Math.max(layout.rows, transition.itemsLayout.rows + itemHeight);\n }\n}\n\nexport function getLayoutPlaceholders<D>(transition: Transition<D>) {\n const rows = getLayoutRows(transition);\n const columns = getLayoutColumns(transition);\n return createPlaceholdersLayout(rows, columns);\n}\n\n/**\n * Retrieves direction from where the inserting item comes.\n */\nexport function getInsertionDirection(cursorOffset: Coordinates): Direction {\n if (cursorOffset.x < 0) {\n return \"right\";\n }\n if (cursorOffset.x > 0) {\n return \"left\";\n }\n if (cursorOffset.y < 0) {\n return \"down\";\n }\n if (cursorOffset.y > 0) {\n return \"up\";\n }\n return \"right\";\n}\n\n/**\n * Applies transition operation (reorder/move/insert) and retrieves an object that describes the updated\n * layout and the moves to be made including and not including items float to top.\n *\n * The layout shift w/o refloat is used for rendering and w/ refloat is used for live announcements.\n */\nexport function getLayoutShift<D>(\n transition: Transition<D>,\n path: readonly Position[],\n insertionDirection?: Direction
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/board/utils/layout.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction } from \"../../internal/interfaces\";\nimport { LayoutShift } from \"../../internal/layout-engine/interfaces\";\nimport { Coordinates } from \"../../internal/utils/coordinates\";\nimport { createPlaceholdersLayout, getDefaultColumnSpan, getDefaultRowSpan } from \"../../internal/utils/layout\";\nimport { Position } from \"../../internal/utils/position\";\nimport { Transition } from \"../interfaces\";\nimport { normalizeInsertionPath } from \"./path\";\n\nexport function getLayoutColumns<D>(transition: Transition<D>) {\n return transition.itemsLayout.columns;\n}\n\n// The rows can be overridden during transition to create more drop targets at the bottom.\nexport function getLayoutRows<D>(transition: Transition<D>) {\n const layout = transition.layoutShift?.next ?? transition.itemsLayout;\n\n const layoutItem = layout.items.find((it) => it.id === transition.draggableItem.id);\n const itemHeight = layoutItem?.height ?? getDefaultRowSpan(transition.draggableItem);\n // Add extra row for resize when already at the bottom.\n if (transition.operation === \"resize\") {\n return Math.max(layout.rows, layoutItem ? layoutItem.y + layoutItem.height + 1 : 0);\n }\n // Add extra row(s) for reorder/insert based on item's height.\n else {\n return Math.max(layout.rows, transition.itemsLayout.rows + itemHeight);\n }\n}\n\nexport function getLayoutPlaceholders<D>(transition: Transition<D>) {\n const rows = getLayoutRows(transition);\n const columns = getLayoutColumns(transition);\n return createPlaceholdersLayout(rows, columns);\n}\n\n/**\n * Retrieves direction from where the inserting item comes.\n */\nexport function getInsertionDirection(cursorOffset: Coordinates): Direction {\n if (cursorOffset.x < 0) {\n return \"right\";\n }\n if (cursorOffset.x > 0) {\n return \"left\";\n }\n if (cursorOffset.y < 0) {\n return \"down\";\n }\n if (cursorOffset.y > 0) {\n return \"up\";\n }\n return \"right\";\n}\n\n/**\n * Applies transition operation (reorder/move/insert) and retrieves an object that describes the updated\n * layout and the moves to be made including and not including items float to top.\n *\n * The layout shift w/o refloat is used for rendering and w/ refloat is used for live announcements.\n */\nexport function getLayoutShift<D>(\n transition: Transition<D>,\n path: readonly Position[],\n insertionDirection?: Direction,\n): null | LayoutShift {\n if (path.length === 0) {\n return null;\n }\n\n const width = getDefaultColumnSpan(transition.draggableItem, getLayoutColumns(transition));\n const height = getDefaultRowSpan(transition.draggableItem);\n const rows = getLayoutRows(transition);\n const columns = getLayoutColumns(transition);\n\n switch (transition.operation) {\n case \"resize\":\n return transition.layoutEngine.resize({ itemId: transition.draggableItem.id, path });\n case \"reorder\":\n return transition.layoutEngine.move({ itemId: transition.draggableItem.id, path });\n case \"insert\":\n return transition.layoutEngine.insert({\n itemId: transition.draggableItem.id,\n width,\n height,\n path: normalizeInsertionPath(path, insertionDirection ?? \"right\", columns, rows),\n });\n }\n}\n"]}
|
package/board/utils/path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../src/board/utils/path.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Direction } from \"../../internal/interfaces\";\nimport { Rect } from \"../../internal/interfaces\";\nimport { Position } from \"../../internal/utils/position\";\n\n/**\n * The insertion operation is similar to reorder yet the first path entry is treated differently.\n * The normalization removes leading path entries if on the same edge to optimize UX.\n */\nexport function normalizeInsertionPath(\n path: readonly Position[],\n insertionDirection: Direction,\n columns: number,\n rows: number
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../src/board/utils/path.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Direction } from \"../../internal/interfaces\";\nimport { Rect } from \"../../internal/interfaces\";\nimport { Position } from \"../../internal/utils/position\";\n\n/**\n * The insertion operation is similar to reorder yet the first path entry is treated differently.\n * The normalization removes leading path entries if on the same edge to optimize UX.\n */\nexport function normalizeInsertionPath(\n path: readonly Position[],\n insertionDirection: Direction,\n columns: number,\n rows: number,\n): Position[] {\n let edgeIndex = -1;\n for (let i = 0; i < path.length; i++) {\n switch (insertionDirection) {\n case \"left\": {\n if (path[i].x === 0) {\n edgeIndex = i;\n }\n break;\n }\n case \"right\": {\n if (path[i].x === columns - 1) {\n edgeIndex = i;\n }\n break;\n }\n case \"up\": {\n if (path[i].y === 0) {\n edgeIndex = i;\n }\n break;\n }\n case \"down\": {\n if (path[i].y === rows - 1) {\n edgeIndex = i;\n }\n break;\n }\n }\n }\n return path.slice(edgeIndex);\n}\n\nexport function appendMovePath(prevPath: readonly Position[], collisionRect: Rect): Position[] {\n return appendPath(prevPath, new Position({ x: collisionRect.left, y: collisionRect.top }));\n}\n\nexport function appendResizePath(prevPath: readonly Position[], collisionRect: Rect): Position[] {\n return appendPath(prevPath, new Position({ x: collisionRect.right, y: collisionRect.bottom }));\n}\n\n/**\n * The operation path must be strictly incremental (each dx + dy == 1). However, the actual collisions\n * data can have gaps due to pointer events throttling or other factors.\n *\n * The function produces next path from previous path and the target position by incrementally adding steps.\n */\nfunction appendPath(prevPath: readonly Position[], nextPosition: Position): Position[] {\n const path: Array<Position> = [...prevPath];\n const lastPosition = prevPath[prevPath.length - 1];\n\n if (!lastPosition) {\n return [nextPosition];\n }\n\n const vx = Math.sign(nextPosition.x - lastPosition.x);\n const vy = Math.sign(nextPosition.y - lastPosition.y);\n\n let { x, y } = lastPosition;\n let safetyCounter = 0;\n\n while (x !== nextPosition.x || y !== nextPosition.y) {\n if (++safetyCounter === 100) {\n throw new Error(\"Infinite loop in appendPath.\");\n }\n if (x !== nextPosition.x) {\n x += vx;\n } else {\n y += vy;\n }\n path.push(new Position({ x, y }));\n }\n\n return path;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../../src/internal/debug-tools/generators.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction, GridLayout, GridLayoutItem } from \"../interfaces\";\nimport { InsertCommand, MoveCommand, ResizeCommand } from \"../layout-engine/interfaces\";\nimport { Position } from \"../utils/position\";\nimport { toMatrix } from \".\";\n\nexport type GenerateMoveType = \"any\" | \"vertical\" | \"horizontal\";\n\nexport interface GenerateGridOptions {\n width?: number;\n totalItems?: number;\n averageItemWidth?: number;\n averageItemHeight?: number;\n}\n\nexport interface GenerateGridResizeOptions {\n maxWidthIncrement?: number;\n maxWidthDecrement?: number;\n maxHeightIncrement?: number;\n maxHeightDecrement?: number;\n}\n\nexport interface GenerateGridInsertOptions {\n maxWidth?: number;\n maxHeight?: number;\n}\n\nconst LETTER_INDICES = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nexport function generateGrid(options?: GenerateGridOptions): GridLayout {\n const width = options?.width ?? 6;\n const totalItems = options?.totalItems ?? 20;\n const averageItemWidth = options?.averageItemWidth ?? 1.44;\n const averageItemHeight = options?.averageItemHeight ?? 1.44;\n\n const allowance = {\n horizontal: Math.floor(totalItems * (averageItemWidth - 1)),\n vertical: Math.floor(totalItems * (averageItemHeight - 1)),\n };\n\n const items: GridLayoutItem[] = [...Array(totalItems)].map((_, index) => ({\n id: getGridItemId(index),\n width: 1,\n height: 1,\n y: 0,\n x: 0,\n }));\n\n let selectedAllowance: \"horizontal\" | \"vertical\" = \"horizontal\";\n while (allowance.horizontal > 0 || allowance.vertical > 0) {\n if (allowance.horizontal === 0) {\n selectedAllowance = \"vertical\";\n } else if (allowance.vertical === 0) {\n selectedAllowance = \"horizontal\";\n } else {\n selectedAllowance = selectedAllowance === \"horizontal\" ? \"vertical\" : \"horizontal\";\n }\n\n const index = getRandomIndex(items);\n\n if (selectedAllowance === \"horizontal\") {\n items[index].width = Math.min(width - items[index].x, items[index].width + 1);\n for (let i = 0; i < items[index].height; i++) {\n allowance.horizontal--;\n }\n } else {\n items[index].height++;\n for (let i = 0; i < items[index].width; i++) {\n allowance.vertical--;\n }\n }\n }\n\n const grid: string[][] = [];\n\n for (const item of items) {\n item.x = getRandomOffset(width, item.width);\n\n for (let y = 0; y < grid.length; y++) {\n for (let x = item.x; x < item.x + item.width; x++) {\n if (grid[y][x].trim()) {\n item.y = y + 1;\n break;\n }\n }\n }\n\n for (let y = item.y; y < item.y + item.height; y++) {\n while (grid.length <= y) {\n grid.push([...Array(width)].map(() => \" \"));\n }\n\n for (let x = item.x; x < item.x + item.width; x++) {\n grid[y][x] = item.id;\n }\n }\n }\n\n items.sort((a, b) => (b.y - a.y === 0 ? b.x - a.x : b.y - a.y));\n\n return { items, columns: width, rows: grid.length };\n}\n\nexport function generateMove(grid: GridLayout, type: GenerateMoveType = \"any\"): MoveCommand {\n const textGrid = toMatrix(grid);\n const moveTarget = grid.items[getRandomIndex(grid.items)];\n\n const affordance: [Direction, number][] = [];\n\n if (moveTarget.y > 0) {\n affordance.push([\"up\", moveTarget.y]);\n }\n if (moveTarget.y + moveTarget.height <= textGrid.length) {\n affordance.push([\"down\", 1 + textGrid.length - (moveTarget.y + moveTarget.height)]);\n }\n if (moveTarget.x > 0) {\n affordance.push([\"left\", moveTarget.x]);\n }\n if (moveTarget.x + moveTarget.width < textGrid[0].length) {\n affordance.push([\"right\", textGrid[0].length - (moveTarget.x + moveTarget.width)]);\n }\n\n function swap(type: \"vertical\" | \"horizontal\" | \"any\"): Position {\n const verticalAffordance = affordance.filter(([direction]) => direction === \"up\" || direction === \"down\");\n const horizontalAffordance = affordance.filter(([direction]) => direction === \"left\" || direction === \"right\");\n const chosenAffordance =\n type === \"any\" ? affordance : type === \"vertical\" ? verticalAffordance : horizontalAffordance;\n\n if (chosenAffordance.length === 0) {\n throw new Error(\"Move is not possible\");\n }\n\n const [direction, maxDistance] = chosenAffordance[getRandomIndex(chosenAffordance)];\n const distance = 1 + Math.floor(Math.random() * maxDistance);\n switch (direction) {\n case \"up\":\n return new Position({ y: moveTarget.y - distance, x: moveTarget.x });\n case \"down\":\n return new Position({ y: moveTarget.y + distance, x: moveTarget.x });\n case \"left\":\n return new Position({ y: moveTarget.y, x: moveTarget.x - distance });\n case \"right\":\n return new Position({ y: moveTarget.y, x: moveTarget.x + distance });\n }\n }\n\n function replace(): Position {\n const verticalAffordance = affordance.filter(([direction]) => direction === \"up\" || direction === \"down\");\n const horizontalAffordance = affordance.filter(([direction]) => direction === \"left\" || direction === \"right\");\n\n if (horizontalAffordance.length === 0) {\n throw new Error(\"Move is not possible\");\n }\n\n const [directionVertical, maxDistanceVertical] = verticalAffordance[getRandomIndex(verticalAffordance)];\n const distanceVertical = 1 + Math.floor(Math.random() * maxDistanceVertical);\n\n const [directionHorizontal, maxDistanceHorizontal] = horizontalAffordance[getRandomIndex(horizontalAffordance)];\n const distanceHorizontal = 1 + Math.floor(Math.random() * maxDistanceHorizontal);\n\n switch (`${directionVertical}-${directionHorizontal}`) {\n case \"top-left\":\n return new Position({\n y: moveTarget.y - distanceVertical,\n x: moveTarget.x - distanceHorizontal,\n });\n case \"top-right\":\n return new Position({\n y: moveTarget.y - distanceVertical,\n x: moveTarget.x + distanceHorizontal,\n });\n case \"bottom-left\":\n return new Position({\n y: moveTarget.y + distanceVertical,\n x: moveTarget.x - distanceHorizontal,\n });\n case \"bottom-right\":\n return new Position({\n y: moveTarget.y + distanceVertical,\n x: moveTarget.x + distanceHorizontal,\n });\n }\n\n return new Position({ y: moveTarget.y, x: moveTarget.x });\n }\n\n const position = (() => {\n let repeatCounter = 0;\n while (repeatCounter < 10) {\n try {\n repeatCounter++;\n\n switch (type) {\n case \"vertical\":\n return swap(\"vertical\");\n case \"horizontal\":\n return swap(\"horizontal\");\n case \"any\":\n return Math.random() > 0.5 ? swap(\"any\") : replace();\n }\n } catch {\n // noop\n }\n }\n\n throw new Error(\"Move is not possible\");\n })();\n\n const path = generateRandomPath(new Position({ y: moveTarget.y, x: moveTarget.x }), position);\n\n return { itemId: moveTarget.id, path };\n}\n\nexport function generateResize(grid: GridLayout, options?: GenerateGridResizeOptions): ResizeCommand {\n const maxWidthIncrement = options?.maxHeightIncrement ?? grid.columns - 1;\n const maxWidthDecrement = options?.maxHeightDecrement ?? grid.columns - 1;\n const maxHeightIncrement = options?.maxHeightIncrement ?? Math.floor((grid.items.length - 1) % 2) + 1;\n const maxHeightDecrement = options?.maxHeightDecrement ?? Math.floor((grid.items.length - 1) % 2) + 1;\n\n const resizeTarget = grid.items[getRandomIndex(grid.items)];\n\n let maxWidthDelta = getRandomDirection();\n if (maxWidthDelta === 1 && maxWidthIncrement) {\n maxWidthDelta *= maxWidthIncrement;\n } else if (maxWidthDelta === -1 && maxWidthDecrement) {\n maxWidthDelta *= maxWidthDecrement;\n } else if (maxWidthIncrement) {\n maxWidthDelta = maxWidthIncrement;\n } else {\n maxWidthDelta = -maxWidthDecrement;\n }\n if (resizeTarget.width + maxWidthDelta < 1) {\n maxWidthDelta = -(resizeTarget.width - 1);\n } else if (resizeTarget.x + resizeTarget.width + maxWidthDelta >= grid.columns) {\n maxWidthDelta = grid.columns - (resizeTarget.x + resizeTarget.width);\n }\n const widthDelta = Math.sign(maxWidthDelta) * getRandomInt(0, Math.abs(maxWidthDelta) + 1);\n\n let maxHeightDelta = getRandomDirection();\n if (maxHeightDelta === 1 && maxHeightIncrement) {\n maxHeightDelta *= maxHeightIncrement;\n } else if (maxHeightDelta === -1 && maxHeightDecrement) {\n maxHeightDelta *= maxHeightDecrement;\n } else if (maxHeightIncrement) {\n maxHeightDelta = maxHeightIncrement;\n } else {\n maxHeightDelta = -maxHeightDecrement;\n }\n if (resizeTarget.height + maxHeightDelta < 1) {\n maxHeightDelta = -(resizeTarget.height - 1);\n }\n const heightDelta = Math.sign(maxHeightDelta) * getRandomInt(0, Math.abs(maxHeightDelta) + 1);\n\n const path = generateRandomPath(\n new Position({ x: resizeTarget.x + resizeTarget.width, y: resizeTarget.y + resizeTarget.height }),\n new Position({\n x: resizeTarget.x + resizeTarget.width + widthDelta,\n y: resizeTarget.y + resizeTarget.height + heightDelta,\n })\n );\n\n return { itemId: resizeTarget.id, path };\n}\n\nexport function generateInsert(grid: GridLayout, insertId = \"X\", options?: GenerateGridInsertOptions): InsertCommand {\n const maxWidth = options?.maxWidth ?? grid.columns;\n const maxHeight = options?.maxHeight ?? Math.floor(grid.items.length / 2) + 1;\n\n const textGrid = toMatrix(grid);\n\n const y = getRandomIndex(textGrid);\n const x = getRandomIndex(textGrid[y]);\n const width = getRandomInt(1, Math.max(1, maxWidth + 1 - x));\n const height = getRandomInt(1, maxHeight + 1);\n\n return { itemId: insertId, width, height, path: [new Position({ x, y })] };\n}\n\nexport function generateRandomPath(from: Position, to: Position): Position[] {\n const path = [];\n const directions: [\"y\", \"x\"] = [\"y\", \"x\"];\n\n const last = { ...from };\n while (last.y !== to.y || last.x !== to.x) {\n let direction = directions[getRandomIndex(directions)];\n if (last.y === to.y) {\n direction = \"x\";\n }\n if (last.x === to.x) {\n direction = \"y\";\n }\n last[direction] += to[direction] > from[direction] ? 1 : -1;\n path.push({ ...last });\n }\n\n return path;\n}\n\nfunction getRandomIndex(array: readonly unknown[]): number {\n return Math.floor(Math.random() * array.length);\n}\n\nfunction getRandomOffset(gridWidth: number, itemWidth: number): number {\n return Math.floor(Math.random() * (1 + gridWidth - itemWidth));\n}\n\nfunction getRandomDirection(): number {\n return Math.random() > 0.5 ? 1 : -1;\n}\n\nfunction getRandomInt(from: number, until: number): number {\n return Math.floor(Math.random() * (until - from)) + from;\n}\n\nfunction getGridItemId(index: number): string {\n const letter = LETTER_INDICES[index % LETTER_INDICES.length];\n const letterIndex = Math.floor(index / LETTER_INDICES.length);\n return letter + (letterIndex === 0 ? \"\" : letterIndex);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../../src/internal/debug-tools/generators.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Direction, GridLayout, GridLayoutItem } from \"../interfaces\";\nimport { InsertCommand, MoveCommand, ResizeCommand } from \"../layout-engine/interfaces\";\nimport { Position } from \"../utils/position\";\nimport { toMatrix } from \".\";\n\nexport type GenerateMoveType = \"any\" | \"vertical\" | \"horizontal\";\n\nexport interface GenerateGridOptions {\n width?: number;\n totalItems?: number;\n averageItemWidth?: number;\n averageItemHeight?: number;\n}\n\nexport interface GenerateGridResizeOptions {\n maxWidthIncrement?: number;\n maxWidthDecrement?: number;\n maxHeightIncrement?: number;\n maxHeightDecrement?: number;\n}\n\nexport interface GenerateGridInsertOptions {\n maxWidth?: number;\n maxHeight?: number;\n}\n\nconst LETTER_INDICES = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nexport function generateGrid(options?: GenerateGridOptions): GridLayout {\n const width = options?.width ?? 6;\n const totalItems = options?.totalItems ?? 20;\n const averageItemWidth = options?.averageItemWidth ?? 1.44;\n const averageItemHeight = options?.averageItemHeight ?? 1.44;\n\n const allowance = {\n horizontal: Math.floor(totalItems * (averageItemWidth - 1)),\n vertical: Math.floor(totalItems * (averageItemHeight - 1)),\n };\n\n const items: GridLayoutItem[] = [...Array(totalItems)].map((_, index) => ({\n id: getGridItemId(index),\n width: 1,\n height: 1,\n y: 0,\n x: 0,\n }));\n\n let selectedAllowance: \"horizontal\" | \"vertical\" = \"horizontal\";\n while (allowance.horizontal > 0 || allowance.vertical > 0) {\n if (allowance.horizontal === 0) {\n selectedAllowance = \"vertical\";\n } else if (allowance.vertical === 0) {\n selectedAllowance = \"horizontal\";\n } else {\n selectedAllowance = selectedAllowance === \"horizontal\" ? \"vertical\" : \"horizontal\";\n }\n\n const index = getRandomIndex(items);\n\n if (selectedAllowance === \"horizontal\") {\n items[index].width = Math.min(width - items[index].x, items[index].width + 1);\n for (let i = 0; i < items[index].height; i++) {\n allowance.horizontal--;\n }\n } else {\n items[index].height++;\n for (let i = 0; i < items[index].width; i++) {\n allowance.vertical--;\n }\n }\n }\n\n const grid: string[][] = [];\n\n for (const item of items) {\n item.x = getRandomOffset(width, item.width);\n\n for (let y = 0; y < grid.length; y++) {\n for (let x = item.x; x < item.x + item.width; x++) {\n if (grid[y][x].trim()) {\n item.y = y + 1;\n break;\n }\n }\n }\n\n for (let y = item.y; y < item.y + item.height; y++) {\n while (grid.length <= y) {\n grid.push([...Array(width)].map(() => \" \"));\n }\n\n for (let x = item.x; x < item.x + item.width; x++) {\n grid[y][x] = item.id;\n }\n }\n }\n\n items.sort((a, b) => (b.y - a.y === 0 ? b.x - a.x : b.y - a.y));\n\n return { items, columns: width, rows: grid.length };\n}\n\nexport function generateMove(grid: GridLayout, type: GenerateMoveType = \"any\"): MoveCommand {\n const textGrid = toMatrix(grid);\n const moveTarget = grid.items[getRandomIndex(grid.items)];\n\n const affordance: [Direction, number][] = [];\n\n if (moveTarget.y > 0) {\n affordance.push([\"up\", moveTarget.y]);\n }\n if (moveTarget.y + moveTarget.height <= textGrid.length) {\n affordance.push([\"down\", 1 + textGrid.length - (moveTarget.y + moveTarget.height)]);\n }\n if (moveTarget.x > 0) {\n affordance.push([\"left\", moveTarget.x]);\n }\n if (moveTarget.x + moveTarget.width < textGrid[0].length) {\n affordance.push([\"right\", textGrid[0].length - (moveTarget.x + moveTarget.width)]);\n }\n\n function swap(type: \"vertical\" | \"horizontal\" | \"any\"): Position {\n const verticalAffordance = affordance.filter(([direction]) => direction === \"up\" || direction === \"down\");\n const horizontalAffordance = affordance.filter(([direction]) => direction === \"left\" || direction === \"right\");\n const chosenAffordance =\n type === \"any\" ? affordance : type === \"vertical\" ? verticalAffordance : horizontalAffordance;\n\n if (chosenAffordance.length === 0) {\n throw new Error(\"Move is not possible\");\n }\n\n const [direction, maxDistance] = chosenAffordance[getRandomIndex(chosenAffordance)];\n const distance = 1 + Math.floor(Math.random() * maxDistance);\n switch (direction) {\n case \"up\":\n return new Position({ y: moveTarget.y - distance, x: moveTarget.x });\n case \"down\":\n return new Position({ y: moveTarget.y + distance, x: moveTarget.x });\n case \"left\":\n return new Position({ y: moveTarget.y, x: moveTarget.x - distance });\n case \"right\":\n return new Position({ y: moveTarget.y, x: moveTarget.x + distance });\n }\n }\n\n function replace(): Position {\n const verticalAffordance = affordance.filter(([direction]) => direction === \"up\" || direction === \"down\");\n const horizontalAffordance = affordance.filter(([direction]) => direction === \"left\" || direction === \"right\");\n\n if (horizontalAffordance.length === 0) {\n throw new Error(\"Move is not possible\");\n }\n\n const [directionVertical, maxDistanceVertical] = verticalAffordance[getRandomIndex(verticalAffordance)];\n const distanceVertical = 1 + Math.floor(Math.random() * maxDistanceVertical);\n\n const [directionHorizontal, maxDistanceHorizontal] = horizontalAffordance[getRandomIndex(horizontalAffordance)];\n const distanceHorizontal = 1 + Math.floor(Math.random() * maxDistanceHorizontal);\n\n switch (`${directionVertical}-${directionHorizontal}`) {\n case \"top-left\":\n return new Position({\n y: moveTarget.y - distanceVertical,\n x: moveTarget.x - distanceHorizontal,\n });\n case \"top-right\":\n return new Position({\n y: moveTarget.y - distanceVertical,\n x: moveTarget.x + distanceHorizontal,\n });\n case \"bottom-left\":\n return new Position({\n y: moveTarget.y + distanceVertical,\n x: moveTarget.x - distanceHorizontal,\n });\n case \"bottom-right\":\n return new Position({\n y: moveTarget.y + distanceVertical,\n x: moveTarget.x + distanceHorizontal,\n });\n }\n\n return new Position({ y: moveTarget.y, x: moveTarget.x });\n }\n\n const position = (() => {\n let repeatCounter = 0;\n while (repeatCounter < 10) {\n try {\n repeatCounter++;\n\n switch (type) {\n case \"vertical\":\n return swap(\"vertical\");\n case \"horizontal\":\n return swap(\"horizontal\");\n case \"any\":\n return Math.random() > 0.5 ? swap(\"any\") : replace();\n }\n } catch {\n // noop\n }\n }\n\n throw new Error(\"Move is not possible\");\n })();\n\n const path = generateRandomPath(new Position({ y: moveTarget.y, x: moveTarget.x }), position);\n\n return { itemId: moveTarget.id, path };\n}\n\nexport function generateResize(grid: GridLayout, options?: GenerateGridResizeOptions): ResizeCommand {\n const maxWidthIncrement = options?.maxHeightIncrement ?? grid.columns - 1;\n const maxWidthDecrement = options?.maxHeightDecrement ?? grid.columns - 1;\n const maxHeightIncrement = options?.maxHeightIncrement ?? Math.floor((grid.items.length - 1) % 2) + 1;\n const maxHeightDecrement = options?.maxHeightDecrement ?? Math.floor((grid.items.length - 1) % 2) + 1;\n\n const resizeTarget = grid.items[getRandomIndex(grid.items)];\n\n let maxWidthDelta = getRandomDirection();\n if (maxWidthDelta === 1 && maxWidthIncrement) {\n maxWidthDelta *= maxWidthIncrement;\n } else if (maxWidthDelta === -1 && maxWidthDecrement) {\n maxWidthDelta *= maxWidthDecrement;\n } else if (maxWidthIncrement) {\n maxWidthDelta = maxWidthIncrement;\n } else {\n maxWidthDelta = -maxWidthDecrement;\n }\n if (resizeTarget.width + maxWidthDelta < 1) {\n maxWidthDelta = -(resizeTarget.width - 1);\n } else if (resizeTarget.x + resizeTarget.width + maxWidthDelta >= grid.columns) {\n maxWidthDelta = grid.columns - (resizeTarget.x + resizeTarget.width);\n }\n const widthDelta = Math.sign(maxWidthDelta) * getRandomInt(0, Math.abs(maxWidthDelta) + 1);\n\n let maxHeightDelta = getRandomDirection();\n if (maxHeightDelta === 1 && maxHeightIncrement) {\n maxHeightDelta *= maxHeightIncrement;\n } else if (maxHeightDelta === -1 && maxHeightDecrement) {\n maxHeightDelta *= maxHeightDecrement;\n } else if (maxHeightIncrement) {\n maxHeightDelta = maxHeightIncrement;\n } else {\n maxHeightDelta = -maxHeightDecrement;\n }\n if (resizeTarget.height + maxHeightDelta < 1) {\n maxHeightDelta = -(resizeTarget.height - 1);\n }\n const heightDelta = Math.sign(maxHeightDelta) * getRandomInt(0, Math.abs(maxHeightDelta) + 1);\n\n const path = generateRandomPath(\n new Position({ x: resizeTarget.x + resizeTarget.width, y: resizeTarget.y + resizeTarget.height }),\n new Position({\n x: resizeTarget.x + resizeTarget.width + widthDelta,\n y: resizeTarget.y + resizeTarget.height + heightDelta,\n }),\n );\n\n return { itemId: resizeTarget.id, path };\n}\n\nexport function generateInsert(grid: GridLayout, insertId = \"X\", options?: GenerateGridInsertOptions): InsertCommand {\n const maxWidth = options?.maxWidth ?? grid.columns;\n const maxHeight = options?.maxHeight ?? Math.floor(grid.items.length / 2) + 1;\n\n const textGrid = toMatrix(grid);\n\n const y = getRandomIndex(textGrid);\n const x = getRandomIndex(textGrid[y]);\n const width = getRandomInt(1, Math.max(1, maxWidth + 1 - x));\n const height = getRandomInt(1, maxHeight + 1);\n\n return { itemId: insertId, width, height, path: [new Position({ x, y })] };\n}\n\nexport function generateRandomPath(from: Position, to: Position): Position[] {\n const path = [];\n const directions: [\"y\", \"x\"] = [\"y\", \"x\"];\n\n const last = { ...from };\n while (last.y !== to.y || last.x !== to.x) {\n let direction = directions[getRandomIndex(directions)];\n if (last.y === to.y) {\n direction = \"x\";\n }\n if (last.x === to.x) {\n direction = \"y\";\n }\n last[direction] += to[direction] > from[direction] ? 1 : -1;\n path.push({ ...last });\n }\n\n return path;\n}\n\nfunction getRandomIndex(array: readonly unknown[]): number {\n return Math.floor(Math.random() * array.length);\n}\n\nfunction getRandomOffset(gridWidth: number, itemWidth: number): number {\n return Math.floor(Math.random() * (1 + gridWidth - itemWidth));\n}\n\nfunction getRandomDirection(): number {\n return Math.random() > 0.5 ? 1 : -1;\n}\n\nfunction getRandomInt(from: number, until: number): number {\n return Math.floor(Math.random() * (until - from)) + from;\n}\n\nfunction getGridItemId(index: number): string {\n const letter = LETTER_INDICES[index % LETTER_INDICES.length];\n const letterIndex = Math.floor(index / LETTER_INDICES.length);\n return letter + (letterIndex === 0 ? \"\" : letterIndex);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../src/internal/debug-tools/parsers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GridLayout } from \"../interfaces\";\nimport { GridLayoutItem, ItemId } from \"../interfaces\";\nimport { Position } from \"../utils/position\";\nimport { GridMatrix } from \"./interfaces\";\n\nconst LETTER_INDICES = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nexport function fromMatrix(matrix: GridMatrix): GridLayout {\n const items: GridLayoutItem[] = [];\n const added = new Set<ItemId>();\n\n for (let y = 0; y < matrix.length; y++) {\n for (let x = 0; x < matrix[y].length; x++) {\n const ids = matrix[y][x].split(\"/\").map((id) => id.trim());\n\n for (const id of ids) {\n if (id.trim().length === 0) {\n continue;\n }\n\n if (!added.has(id)) {\n const item = { id, y, x, width: 1, height: 1 };\n\n for (let itemX = x + 1; itemX < matrix[y].length; itemX++) {\n if (matrix[y][itemX] === id) {\n x++;\n item.width++;\n } else {\n break;\n }\n }\n\n for (let itemY = y + 1; itemY < matrix.length; itemY++) {\n if (matrix[itemY][x] === id) {\n item.height++;\n } else {\n break;\n }\n }\n\n items.push(item);\n added.add(id);\n }\n }\n }\n }\n\n return { items, columns: matrix[0]?.length ?? 0, rows: matrix.length };\n}\n\n// Path is defined like \"A1 A2 B2 C2\" where A-C is a column index (A-based) and 1-2 is a row index (1-based).\nexport function fromTextPath(textPath: string, gridArg: GridLayout | GridMatrix) {\n // Parse path.\n const positions = textPath.split(\" \").filter(Boolean);\n const [start, ...rest] = positions.map((pos) => {\n const x = LETTER_INDICES.indexOf(pos[0]);\n const y = parseInt(pos.slice(1)) - 1;\n return { y, x };\n });\n\n // Find move target.\n const grid = Array.isArray(gridArg) ? fromMatrix(gridArg) : gridArg;\n const targets = grid.items.filter(\n (item) => item.y <= start.y && start.y < item.y + item.height && item.x <= start.x && start.x < item.x + item.width
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../src/internal/debug-tools/parsers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GridLayout } from \"../interfaces\";\nimport { GridLayoutItem, ItemId } from \"../interfaces\";\nimport { Position } from \"../utils/position\";\nimport { GridMatrix } from \"./interfaces\";\n\nconst LETTER_INDICES = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nexport function fromMatrix(matrix: GridMatrix): GridLayout {\n const items: GridLayoutItem[] = [];\n const added = new Set<ItemId>();\n\n for (let y = 0; y < matrix.length; y++) {\n for (let x = 0; x < matrix[y].length; x++) {\n const ids = matrix[y][x].split(\"/\").map((id) => id.trim());\n\n for (const id of ids) {\n if (id.trim().length === 0) {\n continue;\n }\n\n if (!added.has(id)) {\n const item = { id, y, x, width: 1, height: 1 };\n\n for (let itemX = x + 1; itemX < matrix[y].length; itemX++) {\n if (matrix[y][itemX] === id) {\n x++;\n item.width++;\n } else {\n break;\n }\n }\n\n for (let itemY = y + 1; itemY < matrix.length; itemY++) {\n if (matrix[itemY][x] === id) {\n item.height++;\n } else {\n break;\n }\n }\n\n items.push(item);\n added.add(id);\n }\n }\n }\n }\n\n return { items, columns: matrix[0]?.length ?? 0, rows: matrix.length };\n}\n\n// Path is defined like \"A1 A2 B2 C2\" where A-C is a column index (A-based) and 1-2 is a row index (1-based).\nexport function fromTextPath(textPath: string, gridArg: GridLayout | GridMatrix) {\n // Parse path.\n const positions = textPath.split(\" \").filter(Boolean);\n const [start, ...rest] = positions.map((pos) => {\n const x = LETTER_INDICES.indexOf(pos[0]);\n const y = parseInt(pos.slice(1)) - 1;\n return { y, x };\n });\n\n // Find move target.\n const grid = Array.isArray(gridArg) ? fromMatrix(gridArg) : gridArg;\n const targets = grid.items.filter(\n (item) => item.y <= start.y && start.y < item.y + item.height && item.x <= start.x && start.x < item.x + item.width,\n );\n if (targets.length === 0) {\n throw new Error(\"No move target corresponding given path.\");\n }\n if (targets.length > 1) {\n throw new Error(\"Multiple move targets corresponding given path.\");\n }\n const [moveTarget] = targets;\n\n // Adjust path to target's top-left point.\n const yOffset = start.y - moveTarget.y;\n const xOffset = start.x - moveTarget.x;\n return { itemId: moveTarget.id, path: rest.map(({ y, x }) => new Position({ y: y - yOffset, x: x - xOffset })) };\n}\n"]}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { DragAndDropData, DragAndDropEvents } from "../controller";
|
|
1
|
+
import { AcquireData, DragAndDropData, DragAndDropEvents } from "../controller";
|
|
2
2
|
import { EventEmitter } from "../event-emitter";
|
|
3
3
|
declare class MockController extends EventEmitter<DragAndDropEvents> {
|
|
4
4
|
start(event: DragAndDropData): void;
|
|
5
5
|
update(event: DragAndDropData): void;
|
|
6
6
|
submit(): void;
|
|
7
7
|
discard(): void;
|
|
8
|
+
acquire(event: AcquireData): void;
|
|
8
9
|
}
|
|
9
10
|
export declare const mockController: MockController;
|
|
10
11
|
export declare function useDragSubscription<K extends keyof DragAndDropEvents>(event: K, handler: DragAndDropEvents[K]): void;
|
|
11
12
|
export declare const mockDraggable: any;
|
|
12
13
|
export declare function useDraggable(): any;
|
|
14
|
+
export declare function useDroppable(): void;
|
|
13
15
|
export {};
|
|
@@ -16,6 +16,9 @@ class MockController extends EventEmitter {
|
|
|
16
16
|
discard() {
|
|
17
17
|
this.emit("discard");
|
|
18
18
|
}
|
|
19
|
+
acquire(event) {
|
|
20
|
+
this.emit("acquire", event);
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
export const mockController = new MockController();
|
|
21
24
|
export function useDragSubscription(event, handler) {
|
|
@@ -31,4 +34,5 @@ export const mockDraggable = {
|
|
|
31
34
|
export function useDraggable() {
|
|
32
35
|
return mockDraggable;
|
|
33
36
|
}
|
|
37
|
+
export function useDroppable() { }
|
|
34
38
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/internal/dnd-controller/__mocks__/controller.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,cAAe,SAAQ,YAA+B;IACnD,KAAK,CAAC,KAAsB;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAEnD,MAAM,UAAU,mBAAmB,CAAoC,KAAQ,EAAE,OAA6B;IAC5G,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC;AAET,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from \"react\";\nimport { vi } from \"vitest\";\nimport { DragAndDropData, DragAndDropEvents } from \"../controller\";\nimport { EventEmitter } from \"../event-emitter\";\n\nclass MockController extends EventEmitter<DragAndDropEvents> {\n public start(event: DragAndDropData) {\n this.emit(\"start\", event);\n }\n\n public update(event: DragAndDropData) {\n this.emit(\"update\", event);\n }\n\n public submit() {\n this.emit(\"submit\");\n }\n\n public discard() {\n this.emit(\"discard\");\n }\n}\n\nexport const mockController = new MockController();\n\nexport function useDragSubscription<K extends keyof DragAndDropEvents>(event: K, handler: DragAndDropEvents[K]) {\n useEffect(() => mockController.on(event, handler), [event, handler]);\n}\n\nexport const mockDraggable = {\n start: vi.fn(),\n updateTransition: vi.fn(),\n submitTransition: vi.fn(),\n discardTransition: vi.fn(),\n getDroppables: vi.fn(),\n} as any;\n\nexport function useDraggable() {\n return mockDraggable;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/internal/dnd-controller/__mocks__/controller.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,cAAe,SAAQ,YAA+B;IACnD,KAAK,CAAC,KAAsB;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO,CAAC,KAAkB;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAEnD,MAAM,UAAU,mBAAmB,CAAoC,KAAQ,EAAE,OAA6B;IAC5G,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC;AAET,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY,KAAI,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from \"react\";\nimport { vi } from \"vitest\";\nimport { AcquireData, DragAndDropData, DragAndDropEvents } from \"../controller\";\nimport { EventEmitter } from \"../event-emitter\";\n\nclass MockController extends EventEmitter<DragAndDropEvents> {\n public start(event: DragAndDropData) {\n this.emit(\"start\", event);\n }\n\n public update(event: DragAndDropData) {\n this.emit(\"update\", event);\n }\n\n public submit() {\n this.emit(\"submit\");\n }\n\n public discard() {\n this.emit(\"discard\");\n }\n\n public acquire(event: AcquireData) {\n this.emit(\"acquire\", event);\n }\n}\n\nexport const mockController = new MockController();\n\nexport function useDragSubscription<K extends keyof DragAndDropEvents>(event: K, handler: DragAndDropEvents[K]) {\n useEffect(() => mockController.on(event, handler), [event, handler]);\n}\n\nexport const mockDraggable = {\n start: vi.fn(),\n updateTransition: vi.fn(),\n submitTransition: vi.fn(),\n discardTransition: vi.fn(),\n getDroppables: vi.fn(),\n} as any;\n\nexport function useDraggable() {\n return mockDraggable;\n}\n\nexport function useDroppable() {}\n"]}
|