@cloudscape-design/board-components 3.0.59 → 3.0.61

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.
Files changed (73) hide show
  1. package/board/internal.js +12 -7
  2. package/board/internal.js.map +1 -1
  3. package/board/styles.css.js +5 -5
  4. package/board/styles.scoped.css +10 -8
  5. package/board/styles.selectors.js +5 -5
  6. package/board/transition.d.ts +3 -1
  7. package/board/transition.js +32 -24
  8. package/board/transition.js.map +1 -1
  9. package/board/utils/announcements.js.map +1 -1
  10. package/board/utils/events.js.map +1 -1
  11. package/board/utils/get-hovered-rect.js.map +1 -1
  12. package/board/utils/layout.js.map +1 -1
  13. package/board/utils/path.js.map +1 -1
  14. package/board-item/styles.css.js +11 -11
  15. package/board-item/styles.scoped.css +27 -26
  16. package/board-item/styles.selectors.js +11 -11
  17. package/internal/debug-tools/generators.js.map +1 -1
  18. package/internal/debug-tools/parsers.js.map +1 -1
  19. package/internal/dnd-controller/event-emitter.js.map +1 -1
  20. package/internal/drag-handle/index.js.map +1 -1
  21. package/internal/drag-handle/styles.css.js +2 -2
  22. package/internal/drag-handle/styles.scoped.css +9 -9
  23. package/internal/drag-handle/styles.selectors.js +2 -2
  24. package/internal/environment.js +1 -1
  25. package/internal/environment.json +1 -1
  26. package/internal/global-drag-state-styles/styles.css.js +3 -3
  27. package/internal/global-drag-state-styles/styles.scoped.css +6 -3
  28. package/internal/global-drag-state-styles/styles.selectors.js +3 -3
  29. package/internal/grid/grid.d.ts +1 -1
  30. package/internal/grid/grid.js +5 -2
  31. package/internal/grid/grid.js.map +1 -1
  32. package/internal/grid/interfaces.d.ts +1 -0
  33. package/internal/grid/interfaces.js.map +1 -1
  34. package/internal/handle/styles.css.js +1 -1
  35. package/internal/handle/styles.scoped.css +4 -3
  36. package/internal/handle/styles.selectors.js +1 -1
  37. package/internal/item-container/get-collision-rect.js.map +1 -1
  38. package/internal/item-container/get-next-droppable.d.ts +6 -1
  39. package/internal/item-container/get-next-droppable.js +7 -2
  40. package/internal/item-container/get-next-droppable.js.map +1 -1
  41. package/internal/item-container/index.d.ts +1 -0
  42. package/internal/item-container/index.js +30 -18
  43. package/internal/item-container/index.js.map +1 -1
  44. package/internal/item-container/styles.css.js +7 -7
  45. package/internal/item-container/styles.scoped.css +8 -8
  46. package/internal/item-container/styles.selectors.js +7 -7
  47. package/internal/layout-engine/engine-solution.js.map +1 -1
  48. package/internal/layout-engine/engine-step.js.map +1 -1
  49. package/internal/layout-engine/utils.js.map +1 -1
  50. package/internal/manifest.json +1 -1
  51. package/internal/resize-handle/styles.css.js +2 -2
  52. package/internal/resize-handle/styles.scoped.css +11 -8
  53. package/internal/resize-handle/styles.selectors.js +2 -2
  54. package/internal/screenreader-grid-navigation/styles.css.js +2 -2
  55. package/internal/screenreader-grid-navigation/styles.scoped.css +4 -3
  56. package/internal/screenreader-grid-navigation/styles.selectors.js +2 -2
  57. package/internal/screenreader-only/styles.css.js +1 -1
  58. package/internal/screenreader-only/styles.scoped.css +3 -3
  59. package/internal/screenreader-only/styles.selectors.js +1 -1
  60. package/internal/utils/coordinates.d.ts +3 -1
  61. package/internal/utils/coordinates.js +5 -2
  62. package/internal/utils/coordinates.js.map +1 -1
  63. package/internal/utils/layout.js.map +1 -1
  64. package/internal/utils/rects.d.ts +6 -1
  65. package/internal/utils/rects.js +7 -1
  66. package/internal/utils/rects.js.map +1 -1
  67. package/internal/utils/screen.d.ts +30 -1
  68. package/internal/utils/screen.js +46 -11
  69. package/internal/utils/screen.js.map +1 -1
  70. package/internal/utils/use-auto-scroll.js.map +1 -1
  71. package/items-palette/internal.js +3 -1
  72. package/items-palette/internal.js.map +1 -1
  73. package/package.json +1 -1
@@ -1,16 +1,16 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_9ckv7_1974t_1",
5
- "container-override": "awsui_container-override_9ckv7_1974t_6",
6
- "active": "awsui_active_9ckv7_1974t_6",
7
- "header": "awsui_header_9ckv7_1974t_28",
8
- "flexible": "awsui_flexible_9ckv7_1974t_34",
9
- "handle": "awsui_handle_9ckv7_1974t_38",
10
- "refresh": "awsui_refresh_9ckv7_1974t_41",
11
- "header-content": "awsui_header-content_9ckv7_1974t_45",
12
- "settings": "awsui_settings_9ckv7_1974t_49",
13
- "fixed": "awsui_fixed_9ckv7_1974t_57",
14
- "resizer": "awsui_resizer_9ckv7_1974t_61"
4
+ "root": "awsui_root_9ckv7_1fj9z_1",
5
+ "container-override": "awsui_container-override_9ckv7_1fj9z_6",
6
+ "active": "awsui_active_9ckv7_1fj9z_6",
7
+ "header": "awsui_header_9ckv7_1fj9z_28",
8
+ "flexible": "awsui_flexible_9ckv7_1fj9z_35",
9
+ "handle": "awsui_handle_9ckv7_1fj9z_39",
10
+ "refresh": "awsui_refresh_9ckv7_1fj9z_42",
11
+ "header-content": "awsui_header-content_9ckv7_1fj9z_46",
12
+ "settings": "awsui_settings_9ckv7_1fj9z_50",
13
+ "fixed": "awsui_fixed_9ckv7_1fj9z_58",
14
+ "resizer": "awsui_resizer_9ckv7_1fj9z_62"
15
15
  };
16
16
 
@@ -1,65 +1,66 @@
1
- .awsui_root_9ckv7_1974t_1:not(#\9) {
1
+ .awsui_root_9ckv7_1fj9z_1:not(#\9) {
2
2
  display: contents;
3
3
  }
4
4
 
5
5
  /* TODO: use container API instead of styles override */
6
- .awsui_container-override_9ckv7_1974t_6.awsui_active_9ckv7_1974t_6:not(#\9) {
6
+ .awsui_container-override_9ckv7_1fj9z_6.awsui_active_9ckv7_1fj9z_6:not(#\9) {
7
7
  box-shadow: var(--shadow-container-active-kl29x9, 0px 1px 1px 1px #e9ebed, 0px 6px 36px rgba(0, 7, 22, 0.1019607843));
8
8
  }
9
- [data-awsui-focus-visible] .awsui_container-override_9ckv7_1974t_6.awsui_active_9ckv7_1974t_6:not(#\9) {
9
+ [data-awsui-focus-visible] .awsui_container-override_9ckv7_1fj9z_6.awsui_active_9ckv7_1fj9z_6:not(#\9) {
10
10
  position: relative;
11
11
  box-sizing: border-box;
12
12
  outline: 2px dotted transparent;
13
13
  outline-offset: -1px;
14
14
  }
15
- [data-awsui-focus-visible] .awsui_container-override_9ckv7_1974t_6.awsui_active_9ckv7_1974t_6:not(#\9)::before {
15
+ [data-awsui-focus-visible] .awsui_container-override_9ckv7_1fj9z_6.awsui_active_9ckv7_1fj9z_6:not(#\9)::before {
16
16
  content: " ";
17
17
  display: block;
18
18
  position: absolute;
19
19
  box-sizing: border-box;
20
- left: calc(-1 * 0px);
21
- top: calc(-1 * 0px);
22
- width: calc(100% + 2 * 0px);
23
- height: calc(100% + 2 * 0px);
20
+ inset-inline-start: calc(-1 * 0px);
21
+ inset-block-start: calc(-1 * 0px);
22
+ inline-size: calc(100% + 2 * 0px);
23
+ block-size: calc(100% + 2 * 0px);
24
24
  border-radius: var(--border-radius-container-wqv1zi, 16px);
25
25
  border: 2px solid var(--color-border-item-focused-b2ntyl, #0972d3);
26
26
  }
27
27
 
28
- .awsui_header_9ckv7_1974t_28:not(#\9) {
28
+ .awsui_header_9ckv7_1fj9z_28:not(#\9) {
29
29
  display: flex;
30
30
  justify-items: center;
31
- padding: var(--space-scaled-s-aqzyko, 12px) calc(var(--space-container-horizontal-wfukh3, 20px) - var(--space-scaled-xs-26e2du, 8px));
31
+ padding-block: var(--space-scaled-s-aqzyko, 12px);
32
+ padding-inline: calc(var(--space-container-horizontal-wfukh3, 20px) - var(--space-scaled-xs-26e2du, 8px));
32
33
  }
33
34
 
34
- .awsui_flexible_9ckv7_1974t_34:not(#\9) {
35
+ .awsui_flexible_9ckv7_1fj9z_35:not(#\9) {
35
36
  flex: 1 1 min-content;
36
37
  }
37
38
 
38
- .awsui_handle_9ckv7_1974t_38:not(#\9) {
39
- margin-top: calc(var(--space-scaled-xxs-7597g1, 4px) + 1px);
39
+ .awsui_handle_9ckv7_1fj9z_39:not(#\9) {
40
+ margin-block-start: calc(var(--space-scaled-xxs-7597g1, 4px) + 1px);
40
41
  }
41
- .awsui_refresh_9ckv7_1974t_41 > .awsui_handle_9ckv7_1974t_38:not(#\9) {
42
- margin-top: calc(var(--space-static-xxxs-3gu9os, 2px) + 1px);
42
+ .awsui_refresh_9ckv7_1fj9z_42 > .awsui_handle_9ckv7_1fj9z_39:not(#\9) {
43
+ margin-block-start: calc(var(--space-static-xxxs-3gu9os, 2px) + 1px);
43
44
  }
44
45
 
45
- .awsui_header-content_9ckv7_1974t_45:not(#\9) {
46
- margin-left: var(--space-scaled-xxs-7597g1, 4px);
46
+ .awsui_header-content_9ckv7_1fj9z_46:not(#\9) {
47
+ margin-inline-start: var(--space-scaled-xxs-7597g1, 4px);
47
48
  }
48
49
 
49
- .awsui_settings_9ckv7_1974t_49:not(#\9) {
50
- margin-top: calc(var(--space-scaled-xxxs-27y4hv, 2px) + 1px);
51
- margin-left: var(--space-static-xs-7sfb63, 8px);
50
+ .awsui_settings_9ckv7_1fj9z_50:not(#\9) {
51
+ margin-block-start: calc(var(--space-scaled-xxxs-27y4hv, 2px) + 1px);
52
+ margin-inline-start: var(--space-static-xs-7sfb63, 8px);
52
53
  }
53
- .awsui_refresh_9ckv7_1974t_41 > .awsui_settings_9ckv7_1974t_49:not(#\9) {
54
- margin-top: 0px;
54
+ .awsui_refresh_9ckv7_1fj9z_42 > .awsui_settings_9ckv7_1fj9z_50:not(#\9) {
55
+ margin-block-start: 0px;
55
56
  }
56
57
 
57
- .awsui_fixed_9ckv7_1974t_57:not(#\9) {
58
+ .awsui_fixed_9ckv7_1fj9z_58:not(#\9) {
58
59
  flex: 0 0 auto;
59
60
  }
60
61
 
61
- .awsui_resizer_9ckv7_1974t_61:not(#\9) {
62
+ .awsui_resizer_9ckv7_1fj9z_62:not(#\9) {
62
63
  position: absolute;
63
- bottom: calc(var(--space-static-xs-7sfb63, 8px) - var(--space-static-xxxs-3gu9os, 2px));
64
- right: calc(var(--space-static-xs-7sfb63, 8px) - var(--space-static-xxxs-3gu9os, 2px));
64
+ inset-block-end: calc(var(--space-static-xs-7sfb63, 8px) - var(--space-static-xxxs-3gu9os, 2px));
65
+ inset-inline-end: calc(var(--space-static-xs-7sfb63, 8px) - var(--space-static-xxxs-3gu9os, 2px));
65
66
  }
@@ -2,16 +2,16 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_9ckv7_1974t_1",
6
- "container-override": "awsui_container-override_9ckv7_1974t_6",
7
- "active": "awsui_active_9ckv7_1974t_6",
8
- "header": "awsui_header_9ckv7_1974t_28",
9
- "flexible": "awsui_flexible_9ckv7_1974t_34",
10
- "handle": "awsui_handle_9ckv7_1974t_38",
11
- "refresh": "awsui_refresh_9ckv7_1974t_41",
12
- "header-content": "awsui_header-content_9ckv7_1974t_45",
13
- "settings": "awsui_settings_9ckv7_1974t_49",
14
- "fixed": "awsui_fixed_9ckv7_1974t_57",
15
- "resizer": "awsui_resizer_9ckv7_1974t_61"
5
+ "root": "awsui_root_9ckv7_1fj9z_1",
6
+ "container-override": "awsui_container-override_9ckv7_1fj9z_6",
7
+ "active": "awsui_active_9ckv7_1fj9z_6",
8
+ "header": "awsui_header_9ckv7_1fj9z_28",
9
+ "flexible": "awsui_flexible_9ckv7_1fj9z_35",
10
+ "handle": "awsui_handle_9ckv7_1fj9z_39",
11
+ "refresh": "awsui_refresh_9ckv7_1fj9z_42",
12
+ "header-content": "awsui_header-content_9ckv7_1fj9z_46",
13
+ "settings": "awsui_settings_9ckv7_1fj9z_50",
14
+ "fixed": "awsui_fixed_9ckv7_1fj9z_58",
15
+ "resizer": "awsui_resizer_9ckv7_1fj9z_62"
16
16
  };
17
17
 
@@ -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\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
+ {"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 +1 @@
1
- {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../../src/internal/dnd-controller/event-emitter.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAMtC,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAG,IAAI,GAAG,EAA6C,CAAC;IAqB3E,CAAC;IAnBQ,EAAE,CAA6B,KAAY,EAAE,OAAsB;QACxE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAES,IAAI,CAA6B,KAAY,EAAE,GAAG,IAA+B;;QACzF,KAAK,MAAM,OAAO,IAAI,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,EAAE,EAAE;YACrD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;SAClB;IACH,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\ntype Listeners<L> = {\n [E in keyof L]: (...args: any[]) => any;\n};\n\nexport class EventEmitter<Events extends Listeners<Events>> {\n private listeners = new Map<keyof Events, Array<Events[keyof Events]>>();\n\n public on<Event extends keyof Events>(event: Event, handler: Events[Event]) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, []);\n }\n this.listeners.get(event)!.push(handler);\n\n return () => {\n this.listeners.set(\n event,\n this.listeners.get(event)!.filter((item) => item !== handler)\n );\n };\n }\n\n protected emit<Event extends keyof Events>(event: Event, ...data: Parameters<Events[Event]>) {\n for (const handler of this.listeners.get(event) ?? []) {\n handler(...data);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../../src/internal/dnd-controller/event-emitter.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAMtC,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAG,IAAI,GAAG,EAA6C,CAAC;IAqB3E,CAAC;IAnBQ,EAAE,CAA6B,KAAY,EAAE,OAAsB;QACxE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAES,IAAI,CAA6B,KAAY,EAAE,GAAG,IAA+B;;QACzF,KAAK,MAAM,OAAO,IAAI,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,EAAE,EAAE;YACrD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;SAClB;IACH,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\ntype Listeners<L> = {\n [E in keyof L]: (...args: any[]) => any;\n};\n\nexport class EventEmitter<Events extends Listeners<Events>> {\n private listeners = new Map<keyof Events, Array<Events[keyof Events]>>();\n\n public on<Event extends keyof Events>(event: Event, handler: Events[Event]) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, []);\n }\n this.listeners.get(event)!.push(handler);\n\n return () => {\n this.listeners.set(\n event,\n this.listeners.get(event)!.filter((item) => item !== handler),\n );\n };\n }\n\n protected emit<Event extends keyof Events>(event: Event, ...data: Parameters<Events[Event]>) {\n for (const handler of this.listeners.get(event) ?? []) {\n handler(...data);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/drag-handle/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,oCAAoC,CAAC;AACtD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAA6C,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAUrC,SAAS,UAAU,CACjB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAmB,EACxF,GAAoC;IAEpC,OAAO,CACL,KAAC,MAAM,IACL,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,qBACxC,cAAc,sBACb,eAAe,EACjC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,YAEpB,KAAC,IAAI,IAAC,IAAI,EAAC,gBAAgB,GAAG,GACvB,CACV,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC,UAAU,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Icon from \"@cloudscape-design/components/icon\";\nimport clsx from \"clsx\";\nimport { ForwardedRef, KeyboardEvent, PointerEvent, forwardRef } from \"react\";\n\nimport Handle from \"../handle\";\nimport styles from \"./styles.css.js\";\n\nexport interface DragHandleProps {\n ariaLabelledBy: string;\n ariaDescribedBy: string;\n onPointerDown: (event: PointerEvent) => void;\n onKeyDown: (event: KeyboardEvent) => void;\n isActive: boolean;\n}\n\nfunction DragHandle(\n { ariaLabelledBy, ariaDescribedBy, onPointerDown, onKeyDown, isActive }: DragHandleProps,\n ref: ForwardedRef<HTMLButtonElement>\n) {\n return (\n <Handle\n ref={ref}\n className={clsx(styles.handle, isActive && styles.active)}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n >\n <Icon name=\"drag-indicator\" />\n </Handle>\n );\n}\n\nexport default forwardRef(DragHandle);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/drag-handle/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,oCAAoC,CAAC;AACtD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAA6C,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAUrC,SAAS,UAAU,CACjB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAmB,EACxF,GAAoC;IAEpC,OAAO,CACL,KAAC,MAAM,IACL,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,qBACxC,cAAc,sBACb,eAAe,EACjC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,YAEpB,KAAC,IAAI,IAAC,IAAI,EAAC,gBAAgB,GAAG,GACvB,CACV,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC,UAAU,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Icon from \"@cloudscape-design/components/icon\";\nimport clsx from \"clsx\";\nimport { ForwardedRef, KeyboardEvent, PointerEvent, forwardRef } from \"react\";\n\nimport Handle from \"../handle\";\nimport styles from \"./styles.css.js\";\n\nexport interface DragHandleProps {\n ariaLabelledBy: string;\n ariaDescribedBy: string;\n onPointerDown: (event: PointerEvent) => void;\n onKeyDown: (event: KeyboardEvent) => void;\n isActive: boolean;\n}\n\nfunction DragHandle(\n { ariaLabelledBy, ariaDescribedBy, onPointerDown, onKeyDown, isActive }: DragHandleProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n return (\n <Handle\n ref={ref}\n className={clsx(styles.handle, isActive && styles.active)}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n >\n <Icon name=\"drag-indicator\" />\n </Handle>\n );\n}\n\nexport default forwardRef(DragHandle);\n"]}
@@ -1,7 +1,7 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "handle": "awsui_handle_umbhe_1bn34_1",
5
- "active": "awsui_active_umbhe_1bn34_9"
4
+ "handle": "awsui_handle_umbhe_1vpmb_1",
5
+ "active": "awsui_active_umbhe_1vpmb_9"
6
6
  };
7
7
 
@@ -1,30 +1,30 @@
1
- .awsui_handle_umbhe_1bn34_1:not(#\9) {
1
+ .awsui_handle_umbhe_1vpmb_1:not(#\9) {
2
2
  cursor: grab;
3
3
  }
4
4
 
5
- .awsui_handle_umbhe_1bn34_1:not(#\9):active {
5
+ .awsui_handle_umbhe_1vpmb_1:not(#\9):active {
6
6
  cursor: grabbing;
7
7
  }
8
8
 
9
- .awsui_handle_umbhe_1bn34_1:not(#\9):not(.awsui_active_umbhe_1bn34_9):focus-visible {
9
+ .awsui_handle_umbhe_1vpmb_1:not(#\9):not(.awsui_active_umbhe_1vpmb_9):focus-visible {
10
10
  position: relative;
11
11
  box-sizing: border-box;
12
12
  outline: 2px dotted transparent;
13
13
  outline-offset: 3px;
14
14
  }
15
- .awsui_handle_umbhe_1bn34_1:not(#\9):not(.awsui_active_umbhe_1bn34_9):focus-visible::before {
15
+ .awsui_handle_umbhe_1vpmb_1:not(#\9):not(.awsui_active_umbhe_1vpmb_9):focus-visible::before {
16
16
  content: " ";
17
17
  display: block;
18
18
  position: absolute;
19
19
  box-sizing: border-box;
20
- left: calc(-1 * 4px);
21
- top: calc(-1 * 4px);
22
- width: calc(100% + 2 * 4px);
23
- height: calc(100% + 2 * 4px);
20
+ inset-inline-start: calc(-1 * 4px);
21
+ inset-block-start: calc(-1 * 4px);
22
+ inline-size: calc(100% + 2 * 4px);
23
+ block-size: calc(100% + 2 * 4px);
24
24
  border-radius: var(--border-radius-control-default-focus-ring-u8zbsz, 4px);
25
25
  border: 2px solid var(--color-border-item-focused-b2ntyl, #0972d3);
26
26
  }
27
27
 
28
- .awsui_active_umbhe_1bn34_9:not(#\9) {
28
+ .awsui_active_umbhe_1vpmb_9:not(#\9) {
29
29
  outline: none;
30
30
  }
@@ -2,7 +2,7 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "handle": "awsui_handle_umbhe_1bn34_1",
6
- "active": "awsui_active_umbhe_1bn34_9"
5
+ "handle": "awsui_handle_umbhe_1vpmb_1",
6
+ "active": "awsui_active_umbhe_1vpmb_9"
7
7
  };
8
8
 
@@ -1,4 +1,4 @@
1
1
  export var PACKAGE_SOURCE = "board-components";
2
- export var PACKAGE_VERSION = "3.0.0 (771a32f9)";
2
+ export var PACKAGE_VERSION = "3.0.0 (b6e83249)";
3
3
  export var THEME = "open-source-visual-refresh";
4
4
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "board-components",
3
- "PACKAGE_VERSION": "3.0.0 (771a32f9)",
3
+ "PACKAGE_VERSION": "3.0.0 (b6e83249)",
4
4
  "THEME": "open-source-visual-refresh",
5
5
  "ALWAYS_VISUAL_REFRESH": true
6
6
  }
@@ -1,8 +1,8 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "show-grab-cursor": "awsui_show-grab-cursor_1fgk7_1nqmi_1",
5
- "show-resize-cursor": "awsui_show-resize-cursor_1fgk7_1nqmi_5",
6
- "disable-selection": "awsui_disable-selection_1fgk7_1nqmi_9"
4
+ "show-grab-cursor": "awsui_show-grab-cursor_1fgk7_to1u8_1",
5
+ "show-resize-cursor": "awsui_show-resize-cursor_1fgk7_to1u8_5",
6
+ "disable-selection": "awsui_disable-selection_1fgk7_to1u8_12"
7
7
  };
8
8
 
@@ -1,12 +1,15 @@
1
- .awsui_show-grab-cursor_1fgk7_1nqmi_1 *:not(#\9) {
1
+ .awsui_show-grab-cursor_1fgk7_to1u8_1 *:not(#\9) {
2
2
  cursor: grabbing;
3
3
  }
4
4
 
5
- .awsui_show-resize-cursor_1fgk7_1nqmi_5 *:not(#\9) {
5
+ .awsui_show-resize-cursor_1fgk7_to1u8_5 *:not(#\9) {
6
6
  cursor: nwse-resize;
7
7
  }
8
+ .awsui_show-resize-cursor_1fgk7_to1u8_5 *:not(#\9):dir(rtl) {
9
+ cursor: nesw-resize;
10
+ }
8
11
 
9
- .awsui_disable-selection_1fgk7_1nqmi_9 *:not(#\9) {
12
+ .awsui_disable-selection_1fgk7_to1u8_12 *:not(#\9) {
10
13
  -webkit-user-select: none;
11
14
  user-select: none;
12
15
  }
@@ -2,8 +2,8 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "show-grab-cursor": "awsui_show-grab-cursor_1fgk7_1nqmi_1",
6
- "show-resize-cursor": "awsui_show-resize-cursor_1fgk7_1nqmi_5",
7
- "disable-selection": "awsui_disable-selection_1fgk7_1nqmi_9"
5
+ "show-grab-cursor": "awsui_show-grab-cursor_1fgk7_to1u8_1",
6
+ "show-resize-cursor": "awsui_show-resize-cursor_1fgk7_to1u8_5",
7
+ "disable-selection": "awsui_disable-selection_1fgk7_to1u8_12"
8
8
  };
9
9
 
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { GridProps } from "./interfaces";
3
- export default function Grid({ layout, children: render, columns }: GridProps): JSX.Element;
3
+ export default function Grid({ layout, children: render, columns, isRtl }: GridProps): JSX.Element;
@@ -19,7 +19,7 @@ const ROWSPAN_HEIGHT = {
19
19
  comfortable: 96,
20
20
  compact: 76,
21
21
  };
22
- export default function Grid({ layout, children: render, columns }) {
22
+ export default function Grid({ layout, children: render, columns, isRtl }) {
23
23
  const gridRef = useRef(null);
24
24
  const [gridWidth, containerQueryRef] = useContainerQuery((entry) => entry.contentBoxWidth, []);
25
25
  const densityMode = useDensityMode(gridRef);
@@ -32,7 +32,10 @@ export default function Grid({ layout, children: render, columns }) {
32
32
  return colspan * cellWidth + (colspan - 1) * gridGap;
33
33
  };
34
34
  const getHeight = (rowspan) => rowspan * rowspanHeight + (rowspan - 1) * gridGap;
35
- const getColOffset = (x) => getWidth(x) + gridGap;
35
+ const getColOffset = (x) => {
36
+ const offset = getWidth(x) + gridGap;
37
+ return !(isRtl === null || isRtl === void 0 ? void 0 : isRtl()) ? offset : -offset;
38
+ };
36
39
  const getRowOffset = (y) => getHeight(y) + gridGap;
37
40
  const gridContext = { getWidth, getHeight, getColOffset, getRowOffset };
38
41
  const children = render === null || render === void 0 ? void 0 : render(gridContext);
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../src/internal/grid/grid.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\n\nimport { useContainerQuery } from \"@cloudscape-design/component-toolkit\";\nimport { useDensityMode } from \"@cloudscape-design/component-toolkit/internal\";\nimport clsx from \"clsx\";\nimport { Children, useRef } from \"react\";\nimport { useMergeRefs } from \"../utils/use-merge-refs\";\nimport { zipTwoArrays } from \"../utils/zip-arrays\";\n\nimport { GridProps } from \"./interfaces\";\nimport GridItem from \"./item\";\nimport styles from \"./styles.css.js\";\n\n/* Matches grid gap in CSS. */\nconst GRID_GAP = {\n comfortable: 20,\n compact: 16,\n};\n\n/* Matches grid-auto-rows in CSS. */\nconst ROWSPAN_HEIGHT = {\n comfortable: 96,\n compact: 76,\n};\n\nexport default function Grid({ layout, children: render, columns }: GridProps) {\n const gridRef = useRef<HTMLDivElement>(null);\n const [gridWidth, containerQueryRef] = useContainerQuery((entry) => entry.contentBoxWidth, []);\n const densityMode = useDensityMode(gridRef);\n const gridGap = GRID_GAP[densityMode];\n const rowspanHeight = ROWSPAN_HEIGHT[densityMode];\n\n // The below getters translate relative grid units into size/offset values in pixels.\n const getWidth = (colspan: number) => {\n colspan = Math.min(columns, colspan);\n const cellWidth = ((gridWidth || 0) - (columns - 1) * gridGap) / columns;\n return colspan * cellWidth + (colspan - 1) * gridGap;\n };\n const getHeight = (rowspan: number) => rowspan * rowspanHeight + (rowspan - 1) * gridGap;\n const getColOffset = (x: number) => getWidth(x) + gridGap;\n const getRowOffset = (y: number) => getHeight(y) + gridGap;\n\n const gridContext = { getWidth, getHeight, getColOffset, getRowOffset };\n const children = render?.(gridContext);\n\n const zipped = zipTwoArrays(layout, Children.toArray(children));\n\n const ref = useMergeRefs(gridRef, containerQueryRef);\n return (\n <div ref={ref} className={clsx(styles.grid, styles[`grid-${densityMode}`], styles[`columns-${columns}`])}>\n {zipped.map(([item, children]) => (\n <GridItem key={item.id} item={item}>\n {children}\n </GridItem>\n ))}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../src/internal/grid/grid.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\n\nimport { useContainerQuery } from \"@cloudscape-design/component-toolkit\";\nimport { useDensityMode } from \"@cloudscape-design/component-toolkit/internal\";\nimport clsx from \"clsx\";\nimport { Children, useRef } from \"react\";\nimport { useMergeRefs } from \"../utils/use-merge-refs\";\nimport { zipTwoArrays } from \"../utils/zip-arrays\";\n\nimport { GridProps } from \"./interfaces\";\nimport GridItem from \"./item\";\nimport styles from \"./styles.css.js\";\n\n/* Matches grid gap in CSS. */\nconst GRID_GAP = {\n comfortable: 20,\n compact: 16,\n};\n\n/* Matches grid-auto-rows in CSS. */\nconst ROWSPAN_HEIGHT = {\n comfortable: 96,\n compact: 76,\n};\n\nexport default function Grid({ layout, children: render, columns, isRtl }: GridProps) {\n const gridRef = useRef<HTMLDivElement>(null);\n const [gridWidth, containerQueryRef] = useContainerQuery((entry) => entry.contentBoxWidth, []);\n const densityMode = useDensityMode(gridRef);\n const gridGap = GRID_GAP[densityMode];\n const rowspanHeight = ROWSPAN_HEIGHT[densityMode];\n\n // The below getters translate relative grid units into size/offset values in pixels.\n const getWidth = (colspan: number) => {\n colspan = Math.min(columns, colspan);\n const cellWidth = ((gridWidth || 0) - (columns - 1) * gridGap) / columns;\n return colspan * cellWidth + (colspan - 1) * gridGap;\n };\n const getHeight = (rowspan: number) => rowspan * rowspanHeight + (rowspan - 1) * gridGap;\n const getColOffset = (x: number) => {\n const offset = getWidth(x) + gridGap;\n return !isRtl?.() ? offset : -offset;\n };\n const getRowOffset = (y: number) => getHeight(y) + gridGap;\n\n const gridContext = { getWidth, getHeight, getColOffset, getRowOffset };\n const children = render?.(gridContext);\n\n const zipped = zipTwoArrays(layout, Children.toArray(children));\n\n const ref = useMergeRefs(gridRef, containerQueryRef);\n return (\n <div ref={ref} className={clsx(styles.grid, styles[`grid-${densityMode}`], styles[`columns-${columns}`])}>\n {zipped.map(([item, children]) => (\n <GridItem key={item.id} item={item}>\n {children}\n </GridItem>\n ))}\n </div>\n );\n}\n"]}
@@ -4,6 +4,7 @@ export interface GridProps {
4
4
  layout: GridLayoutItem[];
5
5
  columns: number;
6
6
  children?: (context: GridContext) => ReactNode;
7
+ isRtl?: () => boolean;
7
8
  }
8
9
  export interface GridContext {
9
10
  getWidth: (colspan: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/internal/grid/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ReactNode } from \"react\";\nimport { GridLayoutItem } from \"../interfaces\";\n\nexport interface GridProps {\n layout: GridLayoutItem[];\n columns: number;\n children?: (context: GridContext) => ReactNode;\n}\n\nexport interface GridContext {\n getWidth: (colspan: number) => number;\n getHeight: (rowspan: number) => number;\n getColOffset: (x: number) => number;\n getRowOffset: (y: number) => number;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/internal/grid/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ReactNode } from \"react\";\nimport { GridLayoutItem } from \"../interfaces\";\n\nexport interface GridProps {\n layout: GridLayoutItem[];\n columns: number;\n children?: (context: GridContext) => ReactNode;\n isRtl?: () => boolean;\n}\n\nexport interface GridContext {\n getWidth: (colspan: number) => number;\n getHeight: (rowspan: number) => number;\n getColOffset: (x: number) => number;\n getRowOffset: (y: number) => number;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "handle": "awsui_handle_cc1pu_y0i9t_1"
4
+ "handle": "awsui_handle_cc1pu_1avwz_1"
5
5
  };
6
6
 
@@ -1,11 +1,12 @@
1
- .awsui_handle_cc1pu_y0i9t_1:not(#\9) {
1
+ .awsui_handle_cc1pu_1avwz_1:not(#\9) {
2
2
  -webkit-appearance: none;
3
3
  appearance: none;
4
4
  background: transparent;
5
5
  border: none;
6
- padding: var(--space-scaled-xxs-7597g1, 4px);
6
+ padding-block: var(--space-scaled-xxs-7597g1, 4px);
7
+ padding-inline: var(--space-scaled-xxs-7597g1, 4px);
7
8
  color: var(--color-text-interactive-default-lnx6lk, #414d5c);
8
9
  }
9
- .awsui_handle_cc1pu_y0i9t_1:not(#\9):hover {
10
+ .awsui_handle_cc1pu_1avwz_1:not(#\9):hover {
10
11
  color: var(--color-text-interactive-hover-mj8add, #000716);
11
12
  }
@@ -2,6 +2,6 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "handle": "awsui_handle_cc1pu_y0i9t_1"
5
+ "handle": "awsui_handle_cc1pu_1avwz_1"
6
6
  };
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"get-collision-rect.js","sourceRoot":"","sources":["../../../../src/internal/item-container/get-collision-rect.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAoB,EACpB,gBAA6B,EAC7B,WAAwB,EACxB,YAAsD;;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAEhF,QAAQ,SAAS,EAAE;QACjB,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;QACnH,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC/E,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,CAAC;gBACnB,GAAG,EAAE,WAAW,CAAC,CAAC;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,KAAK,CAAC;gBACrD,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,MAAM,CAAC;aACzD,CAAC;KACL;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Operation } from \"../dnd-controller/controller\";\nimport { Rect } from \"../interfaces\";\nimport { Coordinates } from \"../utils/coordinates\";\nimport { getNormalizedElementRect } from \"../utils/screen\";\n\n/**\n * Produces a rect (in coordinates) to represent the draggable item.\n */\nexport function getCollisionRect(\n operation: Operation,\n draggableElement: HTMLElement,\n coordinates: Coordinates,\n sizeOverride: null | { width: number; height: number }\n): Rect {\n const { left, top, width, height } = getNormalizedElementRect(draggableElement);\n\n switch (operation) {\n case \"reorder\":\n return { left: coordinates.x, right: coordinates.x + width, top: coordinates.y, bottom: coordinates.y + height };\n case \"resize\":\n return { left: left, top: top, right: coordinates.x, bottom: coordinates.y };\n case \"insert\":\n return {\n left: coordinates.x,\n top: coordinates.y,\n right: coordinates.x + (sizeOverride?.width ?? width),\n bottom: coordinates.y + (sizeOverride?.height ?? height),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"get-collision-rect.js","sourceRoot":"","sources":["../../../../src/internal/item-container/get-collision-rect.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAoB,EACpB,gBAA6B,EAC7B,WAAwB,EACxB,YAAsD;;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAEhF,QAAQ,SAAS,EAAE;QACjB,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;QACnH,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC/E,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,CAAC;gBACnB,GAAG,EAAE,WAAW,CAAC,CAAC;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,KAAK,CAAC;gBACrD,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,MAAM,CAAC;aACzD,CAAC;KACL;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Operation } from \"../dnd-controller/controller\";\nimport { Rect } from \"../interfaces\";\nimport { Coordinates } from \"../utils/coordinates\";\nimport { getNormalizedElementRect } from \"../utils/screen\";\n\n/**\n * Produces a rect (in coordinates) to represent the draggable item.\n */\nexport function getCollisionRect(\n operation: Operation,\n draggableElement: HTMLElement,\n coordinates: Coordinates,\n sizeOverride: null | { width: number; height: number },\n): Rect {\n const { left, top, width, height } = getNormalizedElementRect(draggableElement);\n\n switch (operation) {\n case \"reorder\":\n return { left: coordinates.x, right: coordinates.x + width, top: coordinates.y, bottom: coordinates.y + height };\n case \"resize\":\n return { left: left, top: top, right: coordinates.x, bottom: coordinates.y };\n case \"insert\":\n return {\n left: coordinates.x,\n top: coordinates.y,\n right: coordinates.x + (sizeOverride?.width ?? width),\n bottom: coordinates.y + (sizeOverride?.height ?? height),\n };\n }\n}\n"]}
@@ -4,4 +4,9 @@ import { Direction, ItemId } from "../interfaces";
4
4
  * Finds closest droppable to provided draggable element and direction.
5
5
  * Returns null if there is no droppable in the given direction.
6
6
  */
7
- export declare function getNextDroppable(draggableElement: HTMLElement, droppables: readonly [ItemId, Droppable][], direction: Direction): null | ItemId;
7
+ export declare function getNextDroppable({ draggableElement, droppables, direction, isRtl, }: {
8
+ draggableElement: HTMLElement;
9
+ droppables: readonly [ItemId, Droppable][];
10
+ direction: Direction;
11
+ isRtl: boolean;
12
+ }): null | ItemId;
@@ -6,11 +6,16 @@ import { getNormalizedElementRect } from "../utils/screen";
6
6
  * Finds closest droppable to provided draggable element and direction.
7
7
  * Returns null if there is no droppable in the given direction.
8
8
  */
9
- export function getNextDroppable(draggableElement, droppables, direction) {
9
+ export function getNextDroppable({ draggableElement, droppables, direction, isRtl, }) {
10
10
  var _a;
11
11
  const draggableRect = getNormalizedElementRect(draggableElement);
12
12
  const sources = new Map(droppables.map(([id, d]) => [getNormalizedElementRect(d.element), id]));
13
- const closest = getClosestNeighbor(draggableRect, [...sources.keys()], direction);
13
+ const closest = getClosestNeighbor({
14
+ target: draggableRect,
15
+ sources: [...sources.keys()],
16
+ direction,
17
+ isRtl,
18
+ });
14
19
  return (_a = sources.get(closest)) !== null && _a !== void 0 ? _a : null;
15
20
  }
16
21
  //# sourceMappingURL=get-next-droppable.js.map