@igstack/app-catalog-frontend-core 0.2.0 → 0.3.0

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 (192) hide show
  1. package/dist/esm/api/infra/trpc.d.ts +0 -1491
  2. package/dist/esm/modules/appCatalog/context/AppCatalogContext.js +1 -0
  3. package/dist/esm/modules/appCatalog/context/AppCatalogContext.js.map +1 -1
  4. package/dist/esm/modules/appCatalog/ui/filters/FilterBar.js +23 -11
  5. package/dist/esm/modules/appCatalog/ui/filters/FilterBar.js.map +1 -1
  6. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.d.ts +5 -1
  7. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js +146 -56
  8. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js.map +1 -1
  9. package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js +20 -1
  10. package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js.map +1 -1
  11. package/dist/esm/modules/auth/AuthContext.js +1 -1
  12. package/dist/esm/modules/auth/AuthModalContext.js +1 -1
  13. package/dist/esm/modules/auth/authClient.d.ts +2 -2
  14. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js +4 -37
  15. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js.map +1 -1
  16. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js +2 -10
  17. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js.map +1 -1
  18. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.js +1 -1
  19. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js +0 -44
  20. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js.map +1 -1
  21. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js +0 -4
  22. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js.map +1 -1
  23. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js +0 -2
  24. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js.map +1 -1
  25. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js +4 -49
  26. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js.map +1 -1
  27. package/dist/esm/routeTree.gen.d.ts +3 -164
  28. package/dist/esm/routeTree.gen.js +8 -80
  29. package/dist/esm/routeTree.gen.js.map +1 -1
  30. package/dist/esm/ui/button.d.ts +1 -1
  31. package/dist/esm/ui/card.js +1 -48
  32. package/dist/esm/ui/card.js.map +1 -1
  33. package/dist/esm/ui/command.js +1 -15
  34. package/dist/esm/ui/command.js.map +1 -1
  35. package/dist/esm/ui/components/header/Header.js +2 -11
  36. package/dist/esm/ui/components/header/Header.js.map +1 -1
  37. package/dist/esm/ui/input-group.js +125 -0
  38. package/dist/esm/ui/input-group.js.map +1 -0
  39. package/package.json +3 -3
  40. package/src/modules/appCatalog/ui/components/AppDetailModal.tsx +2 -21
  41. package/src/routeTree.gen.ts +2 -220
  42. package/src/ui/components/header/Header.tsx +2 -12
  43. package/dist/esm/components/IconPickerDialog.d.ts +0 -8
  44. package/dist/esm/components/IconPickerDialog.js +0 -98
  45. package/dist/esm/components/IconPickerDialog.js.map +0 -1
  46. package/dist/esm/components/IconPickerField.d.ts +0 -9
  47. package/dist/esm/components/IconPickerField.js +0 -76
  48. package/dist/esm/components/IconPickerField.js.map +0 -1
  49. package/dist/esm/modules/admin-base/components/AdminChat.d.ts +0 -1
  50. package/dist/esm/modules/admin-base/components/AdminChat.js +0 -82
  51. package/dist/esm/modules/admin-base/components/AdminChat.js.map +0 -1
  52. package/dist/esm/modules/admin-base/components/AdminLayout.d.ts +0 -5
  53. package/dist/esm/modules/admin-base/components/AdminLayout.js +0 -83
  54. package/dist/esm/modules/admin-base/components/AdminLayout.js.map +0 -1
  55. package/dist/esm/modules/admin-base/components/AdminWelcome.d.ts +0 -1
  56. package/dist/esm/modules/admin-base/components/AdminWelcome.js +0 -37
  57. package/dist/esm/modules/admin-base/components/AdminWelcome.js.map +0 -1
  58. package/dist/esm/modules/admin-base/context/AdminConfigContext.d.ts +0 -8
  59. package/dist/esm/modules/admin-base/context/AdminConfigContext.js +0 -27
  60. package/dist/esm/modules/admin-base/context/AdminConfigContext.js.map +0 -1
  61. package/dist/esm/modules/admin-base/index.d.ts +0 -5
  62. package/dist/esm/modules/admin-base/types/adminTypes.d.ts +0 -10
  63. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.d.ts +0 -1
  64. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js +0 -196
  65. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js.map +0 -1
  66. package/dist/esm/modules/appCatalog/ScreenshotItem.js +0 -57
  67. package/dist/esm/modules/appCatalog/ScreenshotItem.js.map +0 -1
  68. package/dist/esm/modules/appCatalog/ScreenshotManager.js +0 -155
  69. package/dist/esm/modules/appCatalog/ScreenshotManager.js.map +0 -1
  70. package/dist/esm/modules/approvalMethod/AccessRequestFormFields.d.ts +0 -7
  71. package/dist/esm/modules/approvalMethod/AccessRequestFormFields.js +0 -323
  72. package/dist/esm/modules/approvalMethod/AccessRequestFormFields.js.map +0 -1
  73. package/dist/esm/modules/approvalMethod/ApprovalMethodForm.d.ts +0 -14
  74. package/dist/esm/modules/approvalMethod/ApprovalMethodForm.js +0 -227
  75. package/dist/esm/modules/approvalMethod/ApprovalMethodForm.js.map +0 -1
  76. package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.d.ts +0 -7
  77. package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.js +0 -124
  78. package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.js.map +0 -1
  79. package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.d.ts +0 -381
  80. package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.js +0 -26
  81. package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.js.map +0 -1
  82. package/dist/esm/modules/auth/authUtils.js +0 -25
  83. package/dist/esm/modules/auth/authUtils.js.map +0 -1
  84. package/dist/esm/modules/icons/IconManagementPage.d.ts +0 -1
  85. package/dist/esm/modules/icons/IconManagementPage.js +0 -177
  86. package/dist/esm/modules/icons/IconManagementPage.js.map +0 -1
  87. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -60
  88. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
  89. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js +0 -3055
  90. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
  91. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -593
  92. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
  93. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -302
  94. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
  95. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js +0 -34
  96. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js.map +0 -1
  97. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js +0 -94
  98. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js.map +0 -1
  99. package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js +0 -1894
  100. package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js.map +0 -1
  101. package/dist/esm/routes/admin/app-for-catalog/$id.d.ts +0 -5
  102. package/dist/esm/routes/admin/app-for-catalog/_id.js +0 -67
  103. package/dist/esm/routes/admin/app-for-catalog/_id.js.map +0 -1
  104. package/dist/esm/routes/admin/app-for-catalog/_id2.js +0 -321
  105. package/dist/esm/routes/admin/app-for-catalog/_id2.js.map +0 -1
  106. package/dist/esm/routes/admin/app-for-catalog/index.d.ts +0 -1
  107. package/dist/esm/routes/admin/app-for-catalog/index.js +0 -9
  108. package/dist/esm/routes/admin/app-for-catalog/index.js.map +0 -1
  109. package/dist/esm/routes/admin/app-for-catalog/index2.js +0 -12
  110. package/dist/esm/routes/admin/app-for-catalog/index2.js.map +0 -1
  111. package/dist/esm/routes/admin/app-for-catalog.d.ts +0 -1
  112. package/dist/esm/routes/admin/app-for-catalog.js +0 -14
  113. package/dist/esm/routes/admin/app-for-catalog.js.map +0 -1
  114. package/dist/esm/routes/admin/app-for-catalog2.js +0 -9
  115. package/dist/esm/routes/admin/app-for-catalog2.js.map +0 -1
  116. package/dist/esm/routes/admin/approval-methods/index.d.ts +0 -32
  117. package/dist/esm/routes/admin/approval-methods/index.js +0 -24
  118. package/dist/esm/routes/admin/approval-methods/index.js.map +0 -1
  119. package/dist/esm/routes/admin/approval-methods/index2.js +0 -100
  120. package/dist/esm/routes/admin/approval-methods/index2.js.map +0 -1
  121. package/dist/esm/routes/admin/approval-methods.d.ts +0 -1
  122. package/dist/esm/routes/admin/approval-methods.js +0 -14
  123. package/dist/esm/routes/admin/approval-methods.js.map +0 -1
  124. package/dist/esm/routes/admin/approval-methods2.js +0 -7
  125. package/dist/esm/routes/admin/approval-methods2.js.map +0 -1
  126. package/dist/esm/routes/admin/chat.d.ts +0 -1
  127. package/dist/esm/routes/admin/chat.js +0 -14
  128. package/dist/esm/routes/admin/chat.js.map +0 -1
  129. package/dist/esm/routes/admin/chat2.js +0 -9
  130. package/dist/esm/routes/admin/chat2.js.map +0 -1
  131. package/dist/esm/routes/admin/icons.d.ts +0 -1
  132. package/dist/esm/routes/admin/icons.js +0 -14
  133. package/dist/esm/routes/admin/icons.js.map +0 -1
  134. package/dist/esm/routes/admin/icons2.js +0 -12
  135. package/dist/esm/routes/admin/icons2.js.map +0 -1
  136. package/dist/esm/routes/admin/index.d.ts +0 -1
  137. package/dist/esm/routes/admin/index.js +0 -9
  138. package/dist/esm/routes/admin/index.js.map +0 -1
  139. package/dist/esm/routes/admin/index2.js +0 -9
  140. package/dist/esm/routes/admin/index2.js.map +0 -1
  141. package/dist/esm/routes/admin.d.ts +0 -1
  142. package/dist/esm/routes/admin.js +0 -37
  143. package/dist/esm/routes/admin.js.map +0 -1
  144. package/dist/esm/routes/admin2.js +0 -18
  145. package/dist/esm/routes/admin2.js.map +0 -1
  146. package/dist/esm/ui/alert-dialog.js +0 -141
  147. package/dist/esm/ui/alert-dialog.js.map +0 -1
  148. package/dist/esm/ui/breadcrumb.js +0 -84
  149. package/dist/esm/ui/breadcrumb.js.map +0 -1
  150. package/dist/esm/ui/components/Breadcrumbs.js +0 -36
  151. package/dist/esm/ui/components/Breadcrumbs.js.map +0 -1
  152. package/dist/esm/ui/crud-list/CrudList.js +0 -189
  153. package/dist/esm/ui/crud-list/CrudList.js.map +0 -1
  154. package/dist/esm/ui/editable-list/EditableListField.js +0 -130
  155. package/dist/esm/ui/editable-list/EditableListField.js.map +0 -1
  156. package/dist/esm/ui/form.js +0 -134
  157. package/dist/esm/ui/form.js.map +0 -1
  158. package/dist/esm/ui/linkExternal.js +0 -26
  159. package/dist/esm/ui/linkExternal.js.map +0 -1
  160. package/dist/esm/ui/markdown-editor/MarkdownEditor.js +0 -116
  161. package/dist/esm/ui/markdown-editor/MarkdownEditor.js.map +0 -1
  162. package/dist/esm/ui/markdown-editor/MarkdownToolbar.js +0 -99
  163. package/dist/esm/ui/markdown-editor/MarkdownToolbar.js.map +0 -1
  164. package/dist/esm/ui/scroll-area.js +0 -62
  165. package/dist/esm/ui/scroll-area.js.map +0 -1
  166. package/dist/esm/ui/select.js +0 -138
  167. package/dist/esm/ui/select.js.map +0 -1
  168. package/dist/esm/ui/textarea.js +0 -19
  169. package/dist/esm/ui/textarea.js.map +0 -1
  170. package/src/components/IconPickerDialog.tsx +0 -136
  171. package/src/components/IconPickerField.tsx +0 -88
  172. package/src/modules/admin-base/components/AdminChat.tsx +0 -122
  173. package/src/modules/admin-base/components/AdminLayout.tsx +0 -111
  174. package/src/modules/admin-base/components/AdminWelcome.tsx +0 -52
  175. package/src/modules/admin-base/context/AdminConfigContext.tsx +0 -36
  176. package/src/modules/admin-base/index.ts +0 -16
  177. package/src/modules/admin-base/types/adminTypes.ts +0 -11
  178. package/src/modules/appCatalog/AppCatalogAdminPage.tsx +0 -274
  179. package/src/modules/approvalMethod/AccessRequestFormFields.tsx +0 -393
  180. package/src/modules/approvalMethod/ApprovalMethodForm.tsx +0 -323
  181. package/src/modules/approvalMethod/ApprovalMethodSelector.tsx +0 -150
  182. package/src/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.ts +0 -34
  183. package/src/modules/icons/IconManagementPage.tsx +0 -245
  184. package/src/routes/admin/app-for-catalog/$id.tsx +0 -571
  185. package/src/routes/admin/app-for-catalog/index.tsx +0 -19
  186. package/src/routes/admin/app-for-catalog.tsx +0 -12
  187. package/src/routes/admin/approval-methods/index.tsx +0 -161
  188. package/src/routes/admin/approval-methods.tsx +0 -10
  189. package/src/routes/admin/chat.tsx +0 -13
  190. package/src/routes/admin/icons.tsx +0 -22
  191. package/src/routes/admin/index.tsx +0 -9
  192. package/src/routes/admin.tsx +0 -60
@@ -1,593 +0,0 @@
1
- import React__default, { useMemo, useRef, useEffect, useContext, useState } from "react";
2
- import { useDndContext, KeyboardCode, closestCorners, getFirstCollision, getScrollableAncestors, useDroppable, useDraggable, getClientRect } from "../../../../../@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js";
3
- import { useUniqueId, useIsomorphicLayoutEffect, subtract, useCombinedRefs, CSS, isKeyboardEvent } from "../../../../../@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js";
4
- function arrayMove(array, from, to) {
5
- const newArray = array.slice();
6
- newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);
7
- return newArray;
8
- }
9
- function getSortedRects(items, rects) {
10
- return items.reduce((accumulator, id, index) => {
11
- const rect = rects.get(id);
12
- if (rect) {
13
- accumulator[index] = rect;
14
- }
15
- return accumulator;
16
- }, Array(items.length));
17
- }
18
- function isValidIndex(index) {
19
- return index !== null && index >= 0;
20
- }
21
- function itemsEqual(a, b) {
22
- if (a === b) {
23
- return true;
24
- }
25
- if (a.length !== b.length) {
26
- return false;
27
- }
28
- for (let i = 0; i < a.length; i++) {
29
- if (a[i] !== b[i]) {
30
- return false;
31
- }
32
- }
33
- return true;
34
- }
35
- function normalizeDisabled(disabled) {
36
- if (typeof disabled === "boolean") {
37
- return {
38
- draggable: disabled,
39
- droppable: disabled
40
- };
41
- }
42
- return disabled;
43
- }
44
- const rectSortingStrategy = (_ref) => {
45
- let {
46
- rects,
47
- activeIndex,
48
- overIndex,
49
- index
50
- } = _ref;
51
- const newRects = arrayMove(rects, overIndex, activeIndex);
52
- const oldRect = rects[index];
53
- const newRect = newRects[index];
54
- if (!newRect || !oldRect) {
55
- return null;
56
- }
57
- return {
58
- x: newRect.left - oldRect.left,
59
- y: newRect.top - oldRect.top,
60
- scaleX: newRect.width / oldRect.width,
61
- scaleY: newRect.height / oldRect.height
62
- };
63
- };
64
- const defaultScale$1 = {
65
- scaleX: 1,
66
- scaleY: 1
67
- };
68
- const verticalListSortingStrategy = (_ref) => {
69
- var _rects$activeIndex;
70
- let {
71
- activeIndex,
72
- activeNodeRect: fallbackActiveRect,
73
- index,
74
- rects,
75
- overIndex
76
- } = _ref;
77
- const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;
78
- if (!activeNodeRect) {
79
- return null;
80
- }
81
- if (index === activeIndex) {
82
- const overIndexRect = rects[overIndex];
83
- if (!overIndexRect) {
84
- return null;
85
- }
86
- return {
87
- x: 0,
88
- y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,
89
- ...defaultScale$1
90
- };
91
- }
92
- const itemGap = getItemGap$1(rects, index, activeIndex);
93
- if (index > activeIndex && index <= overIndex) {
94
- return {
95
- x: 0,
96
- y: -activeNodeRect.height - itemGap,
97
- ...defaultScale$1
98
- };
99
- }
100
- if (index < activeIndex && index >= overIndex) {
101
- return {
102
- x: 0,
103
- y: activeNodeRect.height + itemGap,
104
- ...defaultScale$1
105
- };
106
- }
107
- return {
108
- x: 0,
109
- y: 0,
110
- ...defaultScale$1
111
- };
112
- };
113
- function getItemGap$1(clientRects, index, activeIndex) {
114
- const currentRect = clientRects[index];
115
- const previousRect = clientRects[index - 1];
116
- const nextRect = clientRects[index + 1];
117
- if (!currentRect) {
118
- return 0;
119
- }
120
- if (activeIndex < index) {
121
- return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;
122
- }
123
- return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;
124
- }
125
- const ID_PREFIX = "Sortable";
126
- const Context = /* @__PURE__ */ React__default.createContext({
127
- activeIndex: -1,
128
- containerId: ID_PREFIX,
129
- disableTransforms: false,
130
- items: [],
131
- overIndex: -1,
132
- useDragOverlay: false,
133
- sortedRects: [],
134
- strategy: rectSortingStrategy,
135
- disabled: {
136
- draggable: false,
137
- droppable: false
138
- }
139
- });
140
- function SortableContext(_ref) {
141
- let {
142
- children,
143
- id,
144
- items: userDefinedItems,
145
- strategy = rectSortingStrategy,
146
- disabled: disabledProp = false
147
- } = _ref;
148
- const {
149
- active,
150
- dragOverlay,
151
- droppableRects,
152
- over,
153
- measureDroppableContainers
154
- } = useDndContext();
155
- const containerId = useUniqueId(ID_PREFIX, id);
156
- const useDragOverlay = Boolean(dragOverlay.rect !== null);
157
- const items = useMemo(() => userDefinedItems.map((item) => typeof item === "object" && "id" in item ? item.id : item), [userDefinedItems]);
158
- const isDragging = active != null;
159
- const activeIndex = active ? items.indexOf(active.id) : -1;
160
- const overIndex = over ? items.indexOf(over.id) : -1;
161
- const previousItemsRef = useRef(items);
162
- const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);
163
- const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;
164
- const disabled = normalizeDisabled(disabledProp);
165
- useIsomorphicLayoutEffect(() => {
166
- if (itemsHaveChanged && isDragging) {
167
- measureDroppableContainers(items);
168
- }
169
- }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);
170
- useEffect(() => {
171
- previousItemsRef.current = items;
172
- }, [items]);
173
- const contextValue = useMemo(
174
- () => ({
175
- activeIndex,
176
- containerId,
177
- disabled,
178
- disableTransforms,
179
- items,
180
- overIndex,
181
- useDragOverlay,
182
- sortedRects: getSortedRects(items, droppableRects),
183
- strategy
184
- }),
185
- // eslint-disable-next-line react-hooks/exhaustive-deps
186
- [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]
187
- );
188
- return React__default.createElement(Context.Provider, {
189
- value: contextValue
190
- }, children);
191
- }
192
- const defaultNewIndexGetter = (_ref) => {
193
- let {
194
- id,
195
- items,
196
- activeIndex,
197
- overIndex
198
- } = _ref;
199
- return arrayMove(items, activeIndex, overIndex).indexOf(id);
200
- };
201
- const defaultAnimateLayoutChanges = (_ref2) => {
202
- let {
203
- containerId,
204
- isSorting,
205
- wasDragging,
206
- index,
207
- items,
208
- newIndex,
209
- previousItems,
210
- previousContainerId,
211
- transition
212
- } = _ref2;
213
- if (!transition || !wasDragging) {
214
- return false;
215
- }
216
- if (previousItems !== items && index === newIndex) {
217
- return false;
218
- }
219
- if (isSorting) {
220
- return true;
221
- }
222
- return newIndex !== index && containerId === previousContainerId;
223
- };
224
- const defaultTransition = {
225
- duration: 200,
226
- easing: "ease"
227
- };
228
- const transitionProperty = "transform";
229
- const disabledTransition = /* @__PURE__ */ CSS.Transition.toString({
230
- property: transitionProperty,
231
- duration: 0,
232
- easing: "linear"
233
- });
234
- const defaultAttributes = {
235
- roleDescription: "sortable"
236
- };
237
- function useDerivedTransform(_ref) {
238
- let {
239
- disabled,
240
- index,
241
- node,
242
- rect
243
- } = _ref;
244
- const [derivedTransform, setDerivedtransform] = useState(null);
245
- const previousIndex = useRef(index);
246
- useIsomorphicLayoutEffect(() => {
247
- if (!disabled && index !== previousIndex.current && node.current) {
248
- const initial = rect.current;
249
- if (initial) {
250
- const current = getClientRect(node.current, {
251
- ignoreTransform: true
252
- });
253
- const delta = {
254
- x: initial.left - current.left,
255
- y: initial.top - current.top,
256
- scaleX: initial.width / current.width,
257
- scaleY: initial.height / current.height
258
- };
259
- if (delta.x || delta.y) {
260
- setDerivedtransform(delta);
261
- }
262
- }
263
- }
264
- if (index !== previousIndex.current) {
265
- previousIndex.current = index;
266
- }
267
- }, [disabled, index, node, rect]);
268
- useEffect(() => {
269
- if (derivedTransform) {
270
- setDerivedtransform(null);
271
- }
272
- }, [derivedTransform]);
273
- return derivedTransform;
274
- }
275
- function useSortable(_ref) {
276
- let {
277
- animateLayoutChanges = defaultAnimateLayoutChanges,
278
- attributes: userDefinedAttributes,
279
- disabled: localDisabled,
280
- data: customData,
281
- getNewIndex = defaultNewIndexGetter,
282
- id,
283
- strategy: localStrategy,
284
- resizeObserverConfig,
285
- transition = defaultTransition
286
- } = _ref;
287
- const {
288
- items,
289
- containerId,
290
- activeIndex,
291
- disabled: globalDisabled,
292
- disableTransforms,
293
- sortedRects,
294
- overIndex,
295
- useDragOverlay,
296
- strategy: globalStrategy
297
- } = useContext(Context);
298
- const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);
299
- const index = items.indexOf(id);
300
- const data = useMemo(() => ({
301
- sortable: {
302
- containerId,
303
- index,
304
- items
305
- },
306
- ...customData
307
- }), [containerId, customData, index, items]);
308
- const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);
309
- const {
310
- rect,
311
- node,
312
- isOver,
313
- setNodeRef: setDroppableNodeRef
314
- } = useDroppable({
315
- id,
316
- data,
317
- disabled: disabled.droppable,
318
- resizeObserverConfig: {
319
- updateMeasurementsFor: itemsAfterCurrentSortable,
320
- ...resizeObserverConfig
321
- }
322
- });
323
- const {
324
- active,
325
- activatorEvent,
326
- activeNodeRect,
327
- attributes,
328
- setNodeRef: setDraggableNodeRef,
329
- listeners,
330
- isDragging,
331
- over,
332
- setActivatorNodeRef,
333
- transform
334
- } = useDraggable({
335
- id,
336
- data,
337
- attributes: {
338
- ...defaultAttributes,
339
- ...userDefinedAttributes
340
- },
341
- disabled: disabled.draggable
342
- });
343
- const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);
344
- const isSorting = Boolean(active);
345
- const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);
346
- const shouldDisplaceDragSource = !useDragOverlay && isDragging;
347
- const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;
348
- const strategy = localStrategy != null ? localStrategy : globalStrategy;
349
- const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({
350
- rects: sortedRects,
351
- activeNodeRect,
352
- activeIndex,
353
- overIndex,
354
- index
355
- }) : null;
356
- const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({
357
- id,
358
- items,
359
- activeIndex,
360
- overIndex
361
- }) : index;
362
- const activeId = active == null ? void 0 : active.id;
363
- const previous = useRef({
364
- activeId,
365
- items,
366
- newIndex,
367
- containerId
368
- });
369
- const itemsHaveChanged = items !== previous.current.items;
370
- const shouldAnimateLayoutChanges = animateLayoutChanges({
371
- active,
372
- containerId,
373
- isDragging,
374
- isSorting,
375
- id,
376
- index,
377
- items,
378
- newIndex: previous.current.newIndex,
379
- previousItems: previous.current.items,
380
- previousContainerId: previous.current.containerId,
381
- transition,
382
- wasDragging: previous.current.activeId != null
383
- });
384
- const derivedTransform = useDerivedTransform({
385
- disabled: !shouldAnimateLayoutChanges,
386
- index,
387
- node,
388
- rect
389
- });
390
- useEffect(() => {
391
- if (isSorting && previous.current.newIndex !== newIndex) {
392
- previous.current.newIndex = newIndex;
393
- }
394
- if (containerId !== previous.current.containerId) {
395
- previous.current.containerId = containerId;
396
- }
397
- if (items !== previous.current.items) {
398
- previous.current.items = items;
399
- }
400
- }, [isSorting, newIndex, containerId, items]);
401
- useEffect(() => {
402
- if (activeId === previous.current.activeId) {
403
- return;
404
- }
405
- if (activeId != null && previous.current.activeId == null) {
406
- previous.current.activeId = activeId;
407
- return;
408
- }
409
- const timeoutId = setTimeout(() => {
410
- previous.current.activeId = activeId;
411
- }, 50);
412
- return () => clearTimeout(timeoutId);
413
- }, [activeId]);
414
- return {
415
- active,
416
- activeIndex,
417
- attributes,
418
- data,
419
- rect,
420
- index,
421
- newIndex,
422
- items,
423
- isOver,
424
- isSorting,
425
- isDragging,
426
- listeners,
427
- node,
428
- overIndex,
429
- over,
430
- setNodeRef,
431
- setActivatorNodeRef,
432
- setDroppableNodeRef,
433
- setDraggableNodeRef,
434
- transform: derivedTransform != null ? derivedTransform : finalTransform,
435
- transition: getTransition()
436
- };
437
- function getTransition() {
438
- if (
439
- // Temporarily disable transitions for a single frame to set up derived transforms
440
- derivedTransform || // Or to prevent items jumping to back to their "new" position when items change
441
- itemsHaveChanged && previous.current.newIndex === index
442
- ) {
443
- return disabledTransition;
444
- }
445
- if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {
446
- return void 0;
447
- }
448
- if (isSorting || shouldAnimateLayoutChanges) {
449
- return CSS.Transition.toString({
450
- ...transition,
451
- property: transitionProperty
452
- });
453
- }
454
- return void 0;
455
- }
456
- }
457
- function normalizeLocalDisabled(localDisabled, globalDisabled) {
458
- var _localDisabled$dragga, _localDisabled$droppa;
459
- if (typeof localDisabled === "boolean") {
460
- return {
461
- draggable: localDisabled,
462
- // Backwards compatibility
463
- droppable: false
464
- };
465
- }
466
- return {
467
- draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,
468
- droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable
469
- };
470
- }
471
- function hasSortableData(entry) {
472
- if (!entry) {
473
- return false;
474
- }
475
- const data = entry.data.current;
476
- if (data && "sortable" in data && typeof data.sortable === "object" && "containerId" in data.sortable && "items" in data.sortable && "index" in data.sortable) {
477
- return true;
478
- }
479
- return false;
480
- }
481
- const directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];
482
- const sortableKeyboardCoordinates = (event, _ref) => {
483
- let {
484
- context: {
485
- active,
486
- collisionRect,
487
- droppableRects,
488
- droppableContainers,
489
- over,
490
- scrollableAncestors
491
- }
492
- } = _ref;
493
- if (directions.includes(event.code)) {
494
- event.preventDefault();
495
- if (!active || !collisionRect) {
496
- return;
497
- }
498
- const filteredContainers = [];
499
- droppableContainers.getEnabled().forEach((entry) => {
500
- if (!entry || entry != null && entry.disabled) {
501
- return;
502
- }
503
- const rect = droppableRects.get(entry.id);
504
- if (!rect) {
505
- return;
506
- }
507
- switch (event.code) {
508
- case KeyboardCode.Down:
509
- if (collisionRect.top < rect.top) {
510
- filteredContainers.push(entry);
511
- }
512
- break;
513
- case KeyboardCode.Up:
514
- if (collisionRect.top > rect.top) {
515
- filteredContainers.push(entry);
516
- }
517
- break;
518
- case KeyboardCode.Left:
519
- if (collisionRect.left > rect.left) {
520
- filteredContainers.push(entry);
521
- }
522
- break;
523
- case KeyboardCode.Right:
524
- if (collisionRect.left < rect.left) {
525
- filteredContainers.push(entry);
526
- }
527
- break;
528
- }
529
- });
530
- const collisions = closestCorners({
531
- collisionRect,
532
- droppableRects,
533
- droppableContainers: filteredContainers
534
- });
535
- let closestId = getFirstCollision(collisions, "id");
536
- if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {
537
- closestId = collisions[1].id;
538
- }
539
- if (closestId != null) {
540
- const activeDroppable = droppableContainers.get(active.id);
541
- const newDroppable = droppableContainers.get(closestId);
542
- const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;
543
- const newNode = newDroppable == null ? void 0 : newDroppable.node.current;
544
- if (newNode && newRect && activeDroppable && newDroppable) {
545
- const newScrollAncestors = getScrollableAncestors(newNode);
546
- const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);
547
- const hasSameContainer = isSameContainer(activeDroppable, newDroppable);
548
- const isAfterActive = isAfter(activeDroppable, newDroppable);
549
- const offset = hasDifferentScrollAncestors || !hasSameContainer ? {
550
- x: 0,
551
- y: 0
552
- } : {
553
- x: isAfterActive ? collisionRect.width - newRect.width : 0,
554
- y: isAfterActive ? collisionRect.height - newRect.height : 0
555
- };
556
- const rectCoordinates = {
557
- x: newRect.left,
558
- y: newRect.top
559
- };
560
- const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);
561
- return newCoordinates;
562
- }
563
- }
564
- }
565
- return void 0;
566
- };
567
- function isSameContainer(a, b) {
568
- if (!hasSortableData(a) || !hasSortableData(b)) {
569
- return false;
570
- }
571
- return a.data.current.sortable.containerId === b.data.current.sortable.containerId;
572
- }
573
- function isAfter(a, b) {
574
- if (!hasSortableData(a) || !hasSortableData(b)) {
575
- return false;
576
- }
577
- if (!isSameContainer(a, b)) {
578
- return false;
579
- }
580
- return a.data.current.sortable.index < b.data.current.sortable.index;
581
- }
582
- export {
583
- SortableContext,
584
- arrayMove,
585
- defaultAnimateLayoutChanges,
586
- defaultNewIndexGetter,
587
- hasSortableData,
588
- rectSortingStrategy,
589
- sortableKeyboardCoordinates,
590
- useSortable,
591
- verticalListSortingStrategy
592
- };
593
- //# sourceMappingURL=sortable.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sortable.esm.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js"],"sourcesContent":["import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n"],"names":["React"],"mappings":"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","x_google_ignoreList":[0]}