@contember/react-board 2.1.0-alpha.3 → 2.1.0-alpha.35

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 (195) hide show
  1. package/package.json +9 -9
  2. package/src/components/Board.tsx +152 -143
  3. package/src/components/BoardEachColumn.tsx +20 -16
  4. package/src/components/BoardEachItem.tsx +15 -14
  5. package/src/contexts.ts +0 -1
  6. package/src/internal/useBoardItemsMethods.ts +13 -8
  7. package/src/internal/useCreateBoardColumns.ts +0 -3
  8. package/src/internal/useDynamicBoard.ts +2 -13
  9. package/src/internal/useGroupItemsByColumn.ts +4 -1
  10. package/src/internal/useStaticBoard.ts +0 -2
  11. package/src/types/BoardData.ts +3 -4
  12. package/src/types/BoardMethods.ts +5 -1
  13. package/dist/development/index.cjs +0 -28
  14. package/dist/development/index.cjs.map +0 -1
  15. package/dist/development/index.js +0 -28
  16. package/dist/development/index.js.map +0 -1
  17. package/dist/development/src/components/Board.cjs +0 -274
  18. package/dist/development/src/components/Board.cjs.map +0 -1
  19. package/dist/development/src/components/Board.js +0 -274
  20. package/dist/development/src/components/Board.js.map +0 -1
  21. package/dist/development/src/components/BoardColumn.cjs +0 -7
  22. package/dist/development/src/components/BoardColumn.cjs.map +0 -1
  23. package/dist/development/src/components/BoardColumn.js +0 -7
  24. package/dist/development/src/components/BoardColumn.js.map +0 -1
  25. package/dist/development/src/components/BoardColumnLabel.cjs +0 -14
  26. package/dist/development/src/components/BoardColumnLabel.cjs.map +0 -1
  27. package/dist/development/src/components/BoardColumnLabel.js +0 -14
  28. package/dist/development/src/components/BoardColumnLabel.js.map +0 -1
  29. package/dist/development/src/components/BoardEachColumn.cjs +0 -37
  30. package/dist/development/src/components/BoardEachColumn.cjs.map +0 -1
  31. package/dist/development/src/components/BoardEachColumn.js +0 -37
  32. package/dist/development/src/components/BoardEachColumn.js.map +0 -1
  33. package/dist/development/src/components/BoardEachItem.cjs +0 -56
  34. package/dist/development/src/components/BoardEachItem.cjs.map +0 -1
  35. package/dist/development/src/components/BoardEachItem.js +0 -56
  36. package/dist/development/src/components/BoardEachItem.js.map +0 -1
  37. package/dist/development/src/components/BoardItem.cjs +0 -8
  38. package/dist/development/src/components/BoardItem.cjs.map +0 -1
  39. package/dist/development/src/components/BoardItem.js +0 -8
  40. package/dist/development/src/components/BoardItem.js.map +0 -1
  41. package/dist/development/src/components/BoardNullColumn.cjs +0 -18
  42. package/dist/development/src/components/BoardNullColumn.cjs.map +0 -1
  43. package/dist/development/src/components/BoardNullColumn.js +0 -18
  44. package/dist/development/src/components/BoardNullColumn.js.map +0 -1
  45. package/dist/development/src/const.cjs +0 -5
  46. package/dist/development/src/const.cjs.map +0 -1
  47. package/dist/development/src/const.js +0 -5
  48. package/dist/development/src/const.js.map +0 -1
  49. package/dist/development/src/contexts.cjs +0 -24
  50. package/dist/development/src/contexts.cjs.map +0 -1
  51. package/dist/development/src/contexts.js +0 -24
  52. package/dist/development/src/contexts.js.map +0 -1
  53. package/dist/development/src/internal/boardAnalyzer.cjs +0 -13
  54. package/dist/development/src/internal/boardAnalyzer.cjs.map +0 -1
  55. package/dist/development/src/internal/boardAnalyzer.js +0 -13
  56. package/dist/development/src/internal/boardAnalyzer.js.map +0 -1
  57. package/dist/development/src/internal/useBoardItemsMethods.cjs +0 -100
  58. package/dist/development/src/internal/useBoardItemsMethods.cjs.map +0 -1
  59. package/dist/development/src/internal/useBoardItemsMethods.js +0 -100
  60. package/dist/development/src/internal/useBoardItemsMethods.js.map +0 -1
  61. package/dist/development/src/internal/useCreateBoardColumns.cjs +0 -30
  62. package/dist/development/src/internal/useCreateBoardColumns.cjs.map +0 -1
  63. package/dist/development/src/internal/useCreateBoardColumns.js +0 -30
  64. package/dist/development/src/internal/useCreateBoardColumns.js.map +0 -1
  65. package/dist/development/src/internal/useDynamicBoard.cjs +0 -95
  66. package/dist/development/src/internal/useDynamicBoard.cjs.map +0 -1
  67. package/dist/development/src/internal/useDynamicBoard.js +0 -95
  68. package/dist/development/src/internal/useDynamicBoard.js.map +0 -1
  69. package/dist/development/src/internal/useGroupItemsByColumn.cjs +0 -19
  70. package/dist/development/src/internal/useGroupItemsByColumn.cjs.map +0 -1
  71. package/dist/development/src/internal/useGroupItemsByColumn.js +0 -19
  72. package/dist/development/src/internal/useGroupItemsByColumn.js.map +0 -1
  73. package/dist/development/src/internal/useStaticBoard.cjs +0 -43
  74. package/dist/development/src/internal/useStaticBoard.cjs.map +0 -1
  75. package/dist/development/src/internal/useStaticBoard.js +0 -43
  76. package/dist/development/src/internal/useStaticBoard.js.map +0 -1
  77. package/dist/development/src/utils/arrayMove.cjs +0 -9
  78. package/dist/development/src/utils/arrayMove.cjs.map +0 -1
  79. package/dist/development/src/utils/arrayMove.js +0 -9
  80. package/dist/development/src/utils/arrayMove.js.map +0 -1
  81. package/dist/production/index.cjs +0 -28
  82. package/dist/production/index.cjs.map +0 -1
  83. package/dist/production/index.js +0 -28
  84. package/dist/production/index.js.map +0 -1
  85. package/dist/production/src/components/Board.cjs +0 -122
  86. package/dist/production/src/components/Board.cjs.map +0 -1
  87. package/dist/production/src/components/Board.js +0 -122
  88. package/dist/production/src/components/Board.js.map +0 -1
  89. package/dist/production/src/components/BoardColumn.cjs +0 -7
  90. package/dist/production/src/components/BoardColumn.cjs.map +0 -1
  91. package/dist/production/src/components/BoardColumn.js +0 -7
  92. package/dist/production/src/components/BoardColumn.js.map +0 -1
  93. package/dist/production/src/components/BoardColumnLabel.cjs +0 -10
  94. package/dist/production/src/components/BoardColumnLabel.cjs.map +0 -1
  95. package/dist/production/src/components/BoardColumnLabel.js +0 -10
  96. package/dist/production/src/components/BoardColumnLabel.js.map +0 -1
  97. package/dist/production/src/components/BoardEachColumn.cjs +0 -21
  98. package/dist/production/src/components/BoardEachColumn.cjs.map +0 -1
  99. package/dist/production/src/components/BoardEachColumn.js +0 -21
  100. package/dist/production/src/components/BoardEachColumn.js.map +0 -1
  101. package/dist/production/src/components/BoardEachItem.cjs +0 -33
  102. package/dist/production/src/components/BoardEachItem.cjs.map +0 -1
  103. package/dist/production/src/components/BoardEachItem.js +0 -33
  104. package/dist/production/src/components/BoardEachItem.js.map +0 -1
  105. package/dist/production/src/components/BoardItem.cjs +0 -8
  106. package/dist/production/src/components/BoardItem.cjs.map +0 -1
  107. package/dist/production/src/components/BoardItem.js +0 -8
  108. package/dist/production/src/components/BoardItem.js.map +0 -1
  109. package/dist/production/src/components/BoardNullColumn.cjs +0 -14
  110. package/dist/production/src/components/BoardNullColumn.cjs.map +0 -1
  111. package/dist/production/src/components/BoardNullColumn.js +0 -14
  112. package/dist/production/src/components/BoardNullColumn.js.map +0 -1
  113. package/dist/production/src/const.cjs +0 -5
  114. package/dist/production/src/const.cjs.map +0 -1
  115. package/dist/production/src/const.js +0 -5
  116. package/dist/production/src/const.js.map +0 -1
  117. package/dist/production/src/contexts.cjs +0 -24
  118. package/dist/production/src/contexts.cjs.map +0 -1
  119. package/dist/production/src/contexts.js +0 -24
  120. package/dist/production/src/contexts.js.map +0 -1
  121. package/dist/production/src/internal/boardAnalyzer.cjs +0 -13
  122. package/dist/production/src/internal/boardAnalyzer.cjs.map +0 -1
  123. package/dist/production/src/internal/boardAnalyzer.js +0 -13
  124. package/dist/production/src/internal/boardAnalyzer.js.map +0 -1
  125. package/dist/production/src/internal/useBoardItemsMethods.cjs +0 -100
  126. package/dist/production/src/internal/useBoardItemsMethods.cjs.map +0 -1
  127. package/dist/production/src/internal/useBoardItemsMethods.js +0 -100
  128. package/dist/production/src/internal/useBoardItemsMethods.js.map +0 -1
  129. package/dist/production/src/internal/useCreateBoardColumns.cjs +0 -30
  130. package/dist/production/src/internal/useCreateBoardColumns.cjs.map +0 -1
  131. package/dist/production/src/internal/useCreateBoardColumns.js +0 -30
  132. package/dist/production/src/internal/useCreateBoardColumns.js.map +0 -1
  133. package/dist/production/src/internal/useDynamicBoard.cjs +0 -95
  134. package/dist/production/src/internal/useDynamicBoard.cjs.map +0 -1
  135. package/dist/production/src/internal/useDynamicBoard.js +0 -95
  136. package/dist/production/src/internal/useDynamicBoard.js.map +0 -1
  137. package/dist/production/src/internal/useGroupItemsByColumn.cjs +0 -19
  138. package/dist/production/src/internal/useGroupItemsByColumn.cjs.map +0 -1
  139. package/dist/production/src/internal/useGroupItemsByColumn.js +0 -19
  140. package/dist/production/src/internal/useGroupItemsByColumn.js.map +0 -1
  141. package/dist/production/src/internal/useStaticBoard.cjs +0 -43
  142. package/dist/production/src/internal/useStaticBoard.cjs.map +0 -1
  143. package/dist/production/src/internal/useStaticBoard.js +0 -43
  144. package/dist/production/src/internal/useStaticBoard.js.map +0 -1
  145. package/dist/production/src/utils/arrayMove.cjs +0 -9
  146. package/dist/production/src/utils/arrayMove.cjs.map +0 -1
  147. package/dist/production/src/utils/arrayMove.js +0 -9
  148. package/dist/production/src/utils/arrayMove.js.map +0 -1
  149. package/dist/types/components/Board.d.ts +0 -28
  150. package/dist/types/components/Board.d.ts.map +0 -1
  151. package/dist/types/components/BoardColumn.d.ts +0 -5
  152. package/dist/types/components/BoardColumn.d.ts.map +0 -1
  153. package/dist/types/components/BoardColumnLabel.d.ts +0 -2
  154. package/dist/types/components/BoardColumnLabel.d.ts.map +0 -1
  155. package/dist/types/components/BoardEachColumn.d.ts +0 -10
  156. package/dist/types/components/BoardEachColumn.d.ts.map +0 -1
  157. package/dist/types/components/BoardEachItem.d.ts +0 -10
  158. package/dist/types/components/BoardEachItem.d.ts.map +0 -1
  159. package/dist/types/components/BoardItem.d.ts +0 -8
  160. package/dist/types/components/BoardItem.d.ts.map +0 -1
  161. package/dist/types/components/BoardNullColumn.d.ts +0 -7
  162. package/dist/types/components/BoardNullColumn.d.ts.map +0 -1
  163. package/dist/types/components/index.d.ts +0 -8
  164. package/dist/types/components/index.d.ts.map +0 -1
  165. package/dist/types/const.d.ts +0 -2
  166. package/dist/types/const.d.ts.map +0 -1
  167. package/dist/types/contexts.d.ts +0 -18
  168. package/dist/types/contexts.d.ts.map +0 -1
  169. package/dist/types/index.d.ts +0 -5
  170. package/dist/types/index.d.ts.map +0 -1
  171. package/dist/types/internal/boardAnalyzer.d.ts +0 -8
  172. package/dist/types/internal/boardAnalyzer.d.ts.map +0 -1
  173. package/dist/types/internal/useBoardItemsMethods.d.ts +0 -15
  174. package/dist/types/internal/useBoardItemsMethods.d.ts.map +0 -1
  175. package/dist/types/internal/useCreateBoardColumns.d.ts +0 -10
  176. package/dist/types/internal/useCreateBoardColumns.d.ts.map +0 -1
  177. package/dist/types/internal/useDynamicBoard.d.ts +0 -10
  178. package/dist/types/internal/useDynamicBoard.d.ts.map +0 -1
  179. package/dist/types/internal/useGroupItemsByColumn.d.ts +0 -5
  180. package/dist/types/internal/useGroupItemsByColumn.d.ts.map +0 -1
  181. package/dist/types/internal/useStaticBoard.d.ts +0 -9
  182. package/dist/types/internal/useStaticBoard.d.ts.map +0 -1
  183. package/dist/types/tsconfig.tsbuildinfo +0 -1
  184. package/dist/types/types/BoardColumnNode.d.ts +0 -15
  185. package/dist/types/types/BoardColumnNode.d.ts.map +0 -1
  186. package/dist/types/types/BoardData.d.ts +0 -5
  187. package/dist/types/types/BoardData.d.ts.map +0 -1
  188. package/dist/types/types/BoardItemNode.d.ts +0 -7
  189. package/dist/types/types/BoardItemNode.d.ts.map +0 -1
  190. package/dist/types/types/BoardMethods.d.ts +0 -17
  191. package/dist/types/types/BoardMethods.d.ts.map +0 -1
  192. package/dist/types/types/index.d.ts +0 -4
  193. package/dist/types/types/index.d.ts.map +0 -1
  194. package/dist/types/utils/arrayMove.d.ts +0 -2
  195. package/dist/types/utils/arrayMove.d.ts.map +0 -1
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const reactBinding = require("@contember/react-binding");
5
- const arrayMove = require("../utils/arrayMove.cjs");
6
- const useBoardItemsMethods = ({
7
- itemEntities,
8
- desugaredSortableByField,
9
- connectItemToColumn,
10
- groupItemsByColumn,
11
- getDiscriminatorValue,
12
- columnIdGetter,
13
- sortScope = "column"
14
- }) => {
15
- const itemEntitiesEntitiesGetter = itemEntities.getAccessor;
16
- const getSortScopeItems = React.useCallback((column) => {
17
- const itemEntities2 = itemEntitiesEntitiesGetter();
18
- return sortScope === "column" ? groupItemsByColumn(itemEntities2).get(column)?.slice() ?? [] : reactBinding.sortEntities(Array.from(itemEntities2), desugaredSortableByField);
19
- }, [desugaredSortableByField, groupItemsByColumn, itemEntitiesEntitiesGetter, sortScope]);
20
- const resolveScopedIndex = React.useCallback((column, index) => {
21
- if (index === void 0) {
22
- return void 0;
23
- }
24
- if (sortScope === "column") {
25
- return index;
26
- }
27
- const columnItems = groupItemsByColumn(itemEntities).get(column)?.slice() ?? [];
28
- const columnOnIndex = columnItems[index];
29
- if (!columnOnIndex) {
30
- return void 0;
31
- }
32
- const sortScopeItems = getSortScopeItems(column);
33
- return sortScopeItems.findIndex((it) => it.id === columnOnIndex.id) ?? sortScopeItems.length;
34
- }, [getSortScopeItems, groupItemsByColumn, itemEntities, sortScope]);
35
- const addItem = React.useCallback((column, index, preprocess) => {
36
- const itemEntities2 = itemEntitiesEntitiesGetter();
37
- const resolvedPreprocess = (getAccessor, options) => {
38
- connectItemToColumn(getAccessor(), column);
39
- preprocess?.(getAccessor, options);
40
- };
41
- if (!desugaredSortableByField) {
42
- if (index === void 0) {
43
- return itemEntities2.createNewEntity(resolvedPreprocess);
44
- }
45
- throw new reactBinding.BindingError("Cannot add item at specific index without sortableBy field");
46
- }
47
- const columnId = column ? columnIdGetter(column) : null;
48
- const sortScopeItems = getSortScopeItems(columnId);
49
- const resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length;
50
- itemEntities2.createNewEntity((getEntity, options) => {
51
- sortScopeItems.splice(resolvedIndex, 0, getEntity());
52
- reactBinding.repairEntitiesOrder(desugaredSortableByField, sortScopeItems);
53
- resolvedPreprocess?.(getEntity, options);
54
- });
55
- }, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getSortScopeItems, itemEntitiesEntitiesGetter, resolveScopedIndex]);
56
- const moveItem = React.useMemo(() => {
57
- if (!desugaredSortableByField) {
58
- return void 0;
59
- }
60
- return (entity, column, index) => {
61
- const currentColumn = getDiscriminatorValue(entity);
62
- const columnId = column ? columnIdGetter(column) : null;
63
- connectItemToColumn(entity, column);
64
- if (currentColumn === columnId || sortScope === "board") {
65
- const sortScopeItems = getSortScopeItems(columnId);
66
- const currentIndex2 = sortScopeItems.findIndex((it) => it.id === entity.id);
67
- const resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length;
68
- const resortedItems = arrayMove.arrayMove(sortScopeItems, currentIndex2, resolvedIndex);
69
- reactBinding.repairEntitiesOrder(desugaredSortableByField, resortedItems);
70
- return;
71
- }
72
- const itemEntities2 = itemEntitiesEntitiesGetter();
73
- const groupedItems = groupItemsByColumn(itemEntities2);
74
- const currentColumnItems = groupedItems.get(currentColumn ?? null)?.slice() ?? [];
75
- const currentIndex = currentColumnItems.findIndex((it) => it.id === entity.id);
76
- currentColumnItems.splice(currentIndex, 1);
77
- reactBinding.repairEntitiesOrder(desugaredSortableByField, currentColumnItems);
78
- const newColumnItems = groupedItems.get(columnId)?.slice() ?? [];
79
- newColumnItems.splice(index, 0, entity);
80
- reactBinding.repairEntitiesOrder(desugaredSortableByField, newColumnItems);
81
- };
82
- }, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getDiscriminatorValue, getSortScopeItems, groupItemsByColumn, itemEntitiesEntitiesGetter, resolveScopedIndex, sortScope]);
83
- const removeItem = React.useCallback((entity) => {
84
- if (desugaredSortableByField) {
85
- const currentColumn = getDiscriminatorValue(entity);
86
- const sortScopeItems = getSortScopeItems(currentColumn);
87
- const currentIndex = sortScopeItems.findIndex((it) => it.id === entity.id);
88
- sortScopeItems.splice(currentIndex, 1);
89
- reactBinding.repairEntitiesOrder(desugaredSortableByField, sortScopeItems);
90
- }
91
- entity.deleteEntity();
92
- }, [desugaredSortableByField, getDiscriminatorValue, getSortScopeItems]);
93
- return {
94
- addItem,
95
- moveItem,
96
- removeItem
97
- };
98
- };
99
- exports.useBoardItemsMethods = useBoardItemsMethods;
100
- //# sourceMappingURL=useBoardItemsMethods.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBoardItemsMethods.cjs","sources":["../../../../../packages/react-board/src/internal/useBoardItemsMethods.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n\tBatchUpdatesOptions,\n\tBindingError,\n\tEntityAccessor,\n\tEntityListAccessor,\n\tRelativeSingleField,\n\trepairEntitiesOrder, sortEntities,\n} from '@contember/react-binding'\nimport { BoardColumnKey, UseGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { arrayMove } from '../utils/arrayMove'\nimport { BoardAddItemMethod, BoardColumnValue, BoardMethods, BoardMoveItemMethod, BoardRemoveItemMethod } from '../types'\n\n\nexport type UseBoardItemsMethodsProps<ColumnValue extends BoardColumnValue> = {\n\titemEntities: EntityListAccessor\n\tconnectItemToColumn: (item: EntityAccessor, column: ColumnValue | null) => void\n\tdesugaredSortableByField: RelativeSingleField | undefined\n\tsortScope?: 'column' | 'board'\n\tgroupItemsByColumn: UseGroupItemsByColumn\n\tgetDiscriminatorValue: (entity: EntityAccessor) => BoardColumnKey\n\tcolumnIdGetter: (column: ColumnValue) => string | number\n}\n\nexport type BoardItemsMethods<ColumnValue extends BoardColumnValue> = Pick<BoardMethods<ColumnValue>, 'moveItem' | 'addItem' | 'removeItem'>\n\nexport const useBoardItemsMethods = <ColumnValue extends BoardColumnValue>({\n\titemEntities,\n\tdesugaredSortableByField,\n\tconnectItemToColumn,\n\tgroupItemsByColumn,\n\tgetDiscriminatorValue,\n\tcolumnIdGetter,\n\tsortScope = 'column',\n}: UseBoardItemsMethodsProps<ColumnValue>): BoardItemsMethods<ColumnValue> => {\n\n\tconst itemEntitiesEntitiesGetter = itemEntities.getAccessor\n\n\tconst getSortScopeItems = useCallback((column: string | number | null) => {\n\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\treturn sortScope === 'column'\n\t\t\t? groupItemsByColumn(itemEntities).get(column)?.slice() ?? []\n\t\t\t: sortEntities(Array.from(itemEntities), desugaredSortableByField)\n\t}, [desugaredSortableByField, groupItemsByColumn, itemEntitiesEntitiesGetter, sortScope])\n\n\tconst resolveScopedIndex = useCallback((column: string | number | null, index: number | undefined) => {\n\t\tif (index === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (sortScope === 'column') {\n\t\t\treturn index\n\t\t}\n\t\tconst columnItems = groupItemsByColumn(itemEntities).get(column)?.slice() ?? []\n\t\tconst columnOnIndex = columnItems[index]\n\t\tif (!columnOnIndex) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst sortScopeItems = getSortScopeItems(column)\n\t\treturn sortScopeItems.findIndex(it => it.id === columnOnIndex.id) ?? sortScopeItems.length\n\t}, [getSortScopeItems, groupItemsByColumn, itemEntities, sortScope])\n\n\tconst addItem = useCallback<BoardAddItemMethod<ColumnValue>>((column, index, preprocess) => {\n\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\tconst resolvedPreprocess = (getAccessor: () => EntityAccessor, options: BatchUpdatesOptions) => {\n\t\t\tconnectItemToColumn(getAccessor(), column)\n\t\t\tpreprocess?.(getAccessor, options)\n\t\t}\n\t\tif (!desugaredSortableByField) {\n\t\t\tif (index === undefined) {\n\t\t\t\treturn itemEntities.createNewEntity(resolvedPreprocess)\n\t\t\t}\n\t\t\tthrow new BindingError('Cannot add item at specific index without sortableBy field')\n\t\t}\n\t\tconst columnId = column ? columnIdGetter(column) : null\n\t\tconst sortScopeItems = getSortScopeItems(columnId)\n\n\t\tconst resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length\n\n\n\t\titemEntities.createNewEntity((getEntity, options) => {\n\t\t\tsortScopeItems.splice(resolvedIndex, 0, getEntity())\n\t\t\trepairEntitiesOrder(desugaredSortableByField, sortScopeItems)\n\t\t\tresolvedPreprocess?.(getEntity, options)\n\t\t})\n\t}, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getSortScopeItems, itemEntitiesEntitiesGetter, resolveScopedIndex])\n\n\n\tconst moveItem = useMemo<BoardMoveItemMethod<ColumnValue> | undefined>(() => {\n\t\tif (!desugaredSortableByField) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (entity, column, index) => {\n\t\t\tconst currentColumn = getDiscriminatorValue(entity)\n\t\t\tconst columnId = column ? columnIdGetter(column) : null\n\n\t\t\tconnectItemToColumn(entity, column)\n\n\t\t\tif (currentColumn === columnId || sortScope === 'board') {\n\t\t\t\tconst sortScopeItems = getSortScopeItems(columnId)\n\t\t\t\tconst currentIndex = sortScopeItems.findIndex(it => it.id === entity.id)\n\t\t\t\tconst resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length\n\t\t\t\tconst resortedItems = arrayMove(sortScopeItems, currentIndex, resolvedIndex)\n\t\t\t\trepairEntitiesOrder(desugaredSortableByField, resortedItems)\n\t\t\t\treturn\n\t\t\t}\n\n\n\t\t\t// sort scope is column\n\t\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\t\tconst groupedItems = groupItemsByColumn(itemEntities)\n\n\t\t\tconst currentColumnItems = groupedItems.get(currentColumn ?? null)?.slice() ?? []\n\t\t\tconst currentIndex = currentColumnItems.findIndex(it => it.id === entity.id)\n\t\t\tcurrentColumnItems.splice(currentIndex, 1)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, currentColumnItems)\n\n\t\t\tconst newColumnItems = groupedItems.get(columnId)?.slice() ?? []\n\t\t\tnewColumnItems.splice(index, 0, entity)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, newColumnItems)\n\n\t\t}\n\t}, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getDiscriminatorValue, getSortScopeItems, groupItemsByColumn, itemEntitiesEntitiesGetter, resolveScopedIndex, sortScope])\n\n\tconst removeItem = useCallback<BoardRemoveItemMethod>(entity => {\n\t\tif (desugaredSortableByField) {\n\t\t\tconst currentColumn = getDiscriminatorValue(entity)\n\t\t\tconst sortScopeItems = getSortScopeItems(currentColumn)\n\t\t\tconst currentIndex = sortScopeItems.findIndex(it => it.id === entity.id)\n\t\t\tsortScopeItems.splice(currentIndex, 1)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, sortScopeItems)\n\t\t}\n\t\tentity.deleteEntity()\n\t}, [desugaredSortableByField, getDiscriminatorValue, getSortScopeItems])\n\n\treturn {\n\t\taddItem,\n\t\tmoveItem,\n\t\tremoveItem,\n\t}\n}\n"],"names":["useCallback","itemEntities","sortEntities","BindingError","repairEntitiesOrder","useMemo","currentIndex","arrayMove"],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- import { useCallback, useMemo } from "react";
2
- import { sortEntities, BindingError, repairEntitiesOrder } from "@contember/react-binding";
3
- import { arrayMove } from "../utils/arrayMove.js";
4
- const useBoardItemsMethods = ({
5
- itemEntities,
6
- desugaredSortableByField,
7
- connectItemToColumn,
8
- groupItemsByColumn,
9
- getDiscriminatorValue,
10
- columnIdGetter,
11
- sortScope = "column"
12
- }) => {
13
- const itemEntitiesEntitiesGetter = itemEntities.getAccessor;
14
- const getSortScopeItems = useCallback((column) => {
15
- const itemEntities2 = itemEntitiesEntitiesGetter();
16
- return sortScope === "column" ? groupItemsByColumn(itemEntities2).get(column)?.slice() ?? [] : sortEntities(Array.from(itemEntities2), desugaredSortableByField);
17
- }, [desugaredSortableByField, groupItemsByColumn, itemEntitiesEntitiesGetter, sortScope]);
18
- const resolveScopedIndex = useCallback((column, index) => {
19
- if (index === void 0) {
20
- return void 0;
21
- }
22
- if (sortScope === "column") {
23
- return index;
24
- }
25
- const columnItems = groupItemsByColumn(itemEntities).get(column)?.slice() ?? [];
26
- const columnOnIndex = columnItems[index];
27
- if (!columnOnIndex) {
28
- return void 0;
29
- }
30
- const sortScopeItems = getSortScopeItems(column);
31
- return sortScopeItems.findIndex((it) => it.id === columnOnIndex.id) ?? sortScopeItems.length;
32
- }, [getSortScopeItems, groupItemsByColumn, itemEntities, sortScope]);
33
- const addItem = useCallback((column, index, preprocess) => {
34
- const itemEntities2 = itemEntitiesEntitiesGetter();
35
- const resolvedPreprocess = (getAccessor, options) => {
36
- connectItemToColumn(getAccessor(), column);
37
- preprocess?.(getAccessor, options);
38
- };
39
- if (!desugaredSortableByField) {
40
- if (index === void 0) {
41
- return itemEntities2.createNewEntity(resolvedPreprocess);
42
- }
43
- throw new BindingError("Cannot add item at specific index without sortableBy field");
44
- }
45
- const columnId = column ? columnIdGetter(column) : null;
46
- const sortScopeItems = getSortScopeItems(columnId);
47
- const resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length;
48
- itemEntities2.createNewEntity((getEntity, options) => {
49
- sortScopeItems.splice(resolvedIndex, 0, getEntity());
50
- repairEntitiesOrder(desugaredSortableByField, sortScopeItems);
51
- resolvedPreprocess?.(getEntity, options);
52
- });
53
- }, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getSortScopeItems, itemEntitiesEntitiesGetter, resolveScopedIndex]);
54
- const moveItem = useMemo(() => {
55
- if (!desugaredSortableByField) {
56
- return void 0;
57
- }
58
- return (entity, column, index) => {
59
- const currentColumn = getDiscriminatorValue(entity);
60
- const columnId = column ? columnIdGetter(column) : null;
61
- connectItemToColumn(entity, column);
62
- if (currentColumn === columnId || sortScope === "board") {
63
- const sortScopeItems = getSortScopeItems(columnId);
64
- const currentIndex2 = sortScopeItems.findIndex((it) => it.id === entity.id);
65
- const resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length;
66
- const resortedItems = arrayMove(sortScopeItems, currentIndex2, resolvedIndex);
67
- repairEntitiesOrder(desugaredSortableByField, resortedItems);
68
- return;
69
- }
70
- const itemEntities2 = itemEntitiesEntitiesGetter();
71
- const groupedItems = groupItemsByColumn(itemEntities2);
72
- const currentColumnItems = groupedItems.get(currentColumn ?? null)?.slice() ?? [];
73
- const currentIndex = currentColumnItems.findIndex((it) => it.id === entity.id);
74
- currentColumnItems.splice(currentIndex, 1);
75
- repairEntitiesOrder(desugaredSortableByField, currentColumnItems);
76
- const newColumnItems = groupedItems.get(columnId)?.slice() ?? [];
77
- newColumnItems.splice(index, 0, entity);
78
- repairEntitiesOrder(desugaredSortableByField, newColumnItems);
79
- };
80
- }, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getDiscriminatorValue, getSortScopeItems, groupItemsByColumn, itemEntitiesEntitiesGetter, resolveScopedIndex, sortScope]);
81
- const removeItem = useCallback((entity) => {
82
- if (desugaredSortableByField) {
83
- const currentColumn = getDiscriminatorValue(entity);
84
- const sortScopeItems = getSortScopeItems(currentColumn);
85
- const currentIndex = sortScopeItems.findIndex((it) => it.id === entity.id);
86
- sortScopeItems.splice(currentIndex, 1);
87
- repairEntitiesOrder(desugaredSortableByField, sortScopeItems);
88
- }
89
- entity.deleteEntity();
90
- }, [desugaredSortableByField, getDiscriminatorValue, getSortScopeItems]);
91
- return {
92
- addItem,
93
- moveItem,
94
- removeItem
95
- };
96
- };
97
- export {
98
- useBoardItemsMethods
99
- };
100
- //# sourceMappingURL=useBoardItemsMethods.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBoardItemsMethods.js","sources":["../../../../../packages/react-board/src/internal/useBoardItemsMethods.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n\tBatchUpdatesOptions,\n\tBindingError,\n\tEntityAccessor,\n\tEntityListAccessor,\n\tRelativeSingleField,\n\trepairEntitiesOrder, sortEntities,\n} from '@contember/react-binding'\nimport { BoardColumnKey, UseGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { arrayMove } from '../utils/arrayMove'\nimport { BoardAddItemMethod, BoardColumnValue, BoardMethods, BoardMoveItemMethod, BoardRemoveItemMethod } from '../types'\n\n\nexport type UseBoardItemsMethodsProps<ColumnValue extends BoardColumnValue> = {\n\titemEntities: EntityListAccessor\n\tconnectItemToColumn: (item: EntityAccessor, column: ColumnValue | null) => void\n\tdesugaredSortableByField: RelativeSingleField | undefined\n\tsortScope?: 'column' | 'board'\n\tgroupItemsByColumn: UseGroupItemsByColumn\n\tgetDiscriminatorValue: (entity: EntityAccessor) => BoardColumnKey\n\tcolumnIdGetter: (column: ColumnValue) => string | number\n}\n\nexport type BoardItemsMethods<ColumnValue extends BoardColumnValue> = Pick<BoardMethods<ColumnValue>, 'moveItem' | 'addItem' | 'removeItem'>\n\nexport const useBoardItemsMethods = <ColumnValue extends BoardColumnValue>({\n\titemEntities,\n\tdesugaredSortableByField,\n\tconnectItemToColumn,\n\tgroupItemsByColumn,\n\tgetDiscriminatorValue,\n\tcolumnIdGetter,\n\tsortScope = 'column',\n}: UseBoardItemsMethodsProps<ColumnValue>): BoardItemsMethods<ColumnValue> => {\n\n\tconst itemEntitiesEntitiesGetter = itemEntities.getAccessor\n\n\tconst getSortScopeItems = useCallback((column: string | number | null) => {\n\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\treturn sortScope === 'column'\n\t\t\t? groupItemsByColumn(itemEntities).get(column)?.slice() ?? []\n\t\t\t: sortEntities(Array.from(itemEntities), desugaredSortableByField)\n\t}, [desugaredSortableByField, groupItemsByColumn, itemEntitiesEntitiesGetter, sortScope])\n\n\tconst resolveScopedIndex = useCallback((column: string | number | null, index: number | undefined) => {\n\t\tif (index === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (sortScope === 'column') {\n\t\t\treturn index\n\t\t}\n\t\tconst columnItems = groupItemsByColumn(itemEntities).get(column)?.slice() ?? []\n\t\tconst columnOnIndex = columnItems[index]\n\t\tif (!columnOnIndex) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst sortScopeItems = getSortScopeItems(column)\n\t\treturn sortScopeItems.findIndex(it => it.id === columnOnIndex.id) ?? sortScopeItems.length\n\t}, [getSortScopeItems, groupItemsByColumn, itemEntities, sortScope])\n\n\tconst addItem = useCallback<BoardAddItemMethod<ColumnValue>>((column, index, preprocess) => {\n\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\tconst resolvedPreprocess = (getAccessor: () => EntityAccessor, options: BatchUpdatesOptions) => {\n\t\t\tconnectItemToColumn(getAccessor(), column)\n\t\t\tpreprocess?.(getAccessor, options)\n\t\t}\n\t\tif (!desugaredSortableByField) {\n\t\t\tif (index === undefined) {\n\t\t\t\treturn itemEntities.createNewEntity(resolvedPreprocess)\n\t\t\t}\n\t\t\tthrow new BindingError('Cannot add item at specific index without sortableBy field')\n\t\t}\n\t\tconst columnId = column ? columnIdGetter(column) : null\n\t\tconst sortScopeItems = getSortScopeItems(columnId)\n\n\t\tconst resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length\n\n\n\t\titemEntities.createNewEntity((getEntity, options) => {\n\t\t\tsortScopeItems.splice(resolvedIndex, 0, getEntity())\n\t\t\trepairEntitiesOrder(desugaredSortableByField, sortScopeItems)\n\t\t\tresolvedPreprocess?.(getEntity, options)\n\t\t})\n\t}, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getSortScopeItems, itemEntitiesEntitiesGetter, resolveScopedIndex])\n\n\n\tconst moveItem = useMemo<BoardMoveItemMethod<ColumnValue> | undefined>(() => {\n\t\tif (!desugaredSortableByField) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (entity, column, index) => {\n\t\t\tconst currentColumn = getDiscriminatorValue(entity)\n\t\t\tconst columnId = column ? columnIdGetter(column) : null\n\n\t\t\tconnectItemToColumn(entity, column)\n\n\t\t\tif (currentColumn === columnId || sortScope === 'board') {\n\t\t\t\tconst sortScopeItems = getSortScopeItems(columnId)\n\t\t\t\tconst currentIndex = sortScopeItems.findIndex(it => it.id === entity.id)\n\t\t\t\tconst resolvedIndex = resolveScopedIndex(columnId, index) ?? sortScopeItems.length\n\t\t\t\tconst resortedItems = arrayMove(sortScopeItems, currentIndex, resolvedIndex)\n\t\t\t\trepairEntitiesOrder(desugaredSortableByField, resortedItems)\n\t\t\t\treturn\n\t\t\t}\n\n\n\t\t\t// sort scope is column\n\t\t\tconst itemEntities = itemEntitiesEntitiesGetter()\n\t\t\tconst groupedItems = groupItemsByColumn(itemEntities)\n\n\t\t\tconst currentColumnItems = groupedItems.get(currentColumn ?? null)?.slice() ?? []\n\t\t\tconst currentIndex = currentColumnItems.findIndex(it => it.id === entity.id)\n\t\t\tcurrentColumnItems.splice(currentIndex, 1)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, currentColumnItems)\n\n\t\t\tconst newColumnItems = groupedItems.get(columnId)?.slice() ?? []\n\t\t\tnewColumnItems.splice(index, 0, entity)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, newColumnItems)\n\n\t\t}\n\t}, [columnIdGetter, connectItemToColumn, desugaredSortableByField, getDiscriminatorValue, getSortScopeItems, groupItemsByColumn, itemEntitiesEntitiesGetter, resolveScopedIndex, sortScope])\n\n\tconst removeItem = useCallback<BoardRemoveItemMethod>(entity => {\n\t\tif (desugaredSortableByField) {\n\t\t\tconst currentColumn = getDiscriminatorValue(entity)\n\t\t\tconst sortScopeItems = getSortScopeItems(currentColumn)\n\t\t\tconst currentIndex = sortScopeItems.findIndex(it => it.id === entity.id)\n\t\t\tsortScopeItems.splice(currentIndex, 1)\n\t\t\trepairEntitiesOrder(desugaredSortableByField, sortScopeItems)\n\t\t}\n\t\tentity.deleteEntity()\n\t}, [desugaredSortableByField, getDiscriminatorValue, getSortScopeItems])\n\n\treturn {\n\t\taddItem,\n\t\tmoveItem,\n\t\tremoveItem,\n\t}\n}\n"],"names":["itemEntities","currentIndex"],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const _const = require("../const.cjs");
5
- const useCreateBoardColumns = ({ groupItemsByColumn, items, columns, columnIdGetter }) => {
6
- return React.useMemo(() => {
7
- const itemsByColumn = groupItemsByColumn(items);
8
- const nullItems = itemsByColumn.get(null) ?? [];
9
- const result = [
10
- {
11
- id: _const.BoardNullColumnPlaceholder,
12
- index: Number.MAX_SAFE_INTEGER,
13
- value: null,
14
- items: nullItems.map((it, index2) => ({ value: it, id: it.id, index: index2 }))
15
- }
16
- ];
17
- let index = 0;
18
- for (const column of columns) {
19
- result.push({
20
- id: columnIdGetter(column),
21
- index: index++,
22
- value: column,
23
- items: itemsByColumn.get(columnIdGetter(column))?.map((it, index2) => ({ value: it, id: it.id, index: index2 })) ?? []
24
- });
25
- }
26
- return result;
27
- }, [columnIdGetter, columns, groupItemsByColumn, items]);
28
- };
29
- exports.useCreateBoardColumns = useCreateBoardColumns;
30
- //# sourceMappingURL=useCreateBoardColumns.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCreateBoardColumns.cjs","sources":["../../../../../packages/react-board/src/internal/useCreateBoardColumns.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { UseGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { EntityListAccessor } from '@contember/react-binding'\nimport { BoardNullColumnPlaceholder } from '../const'\nimport { BoardColumnNode, BoardColumnValue } from '../types'\n\nexport const useCreateBoardColumns = <ColumnValue extends BoardColumnValue>({ groupItemsByColumn, items, columns, columnIdGetter }: {\n\titems: EntityListAccessor\n\tcolumns: Iterable<ColumnValue>\n\tcolumnIdGetter: (column: ColumnValue) => string | number\n\tgroupItemsByColumn: UseGroupItemsByColumn\n}): BoardColumnNode<ColumnValue>[] => {\n\n\treturn useMemo(() => {\n\t\tconst itemsByColumn = groupItemsByColumn(items)\n\n\t\tconst nullItems = itemsByColumn.get(null) ?? []\n\t\tconst result: BoardColumnNode<ColumnValue>[] = [\n\t\t\t{\n\t\t\t\tid: BoardNullColumnPlaceholder,\n\t\t\t\tindex: Number.MAX_SAFE_INTEGER,\n\t\t\t\tvalue: null,\n\t\t\t\titems: nullItems.map((it, index) => ({ value: it, id: it.id, index })),\n\t\t\t},\n\t\t]\n\t\tlet index = 0\n\n\n\t\tfor (const column of columns) {\n\t\t\tresult.push({\n\t\t\t\tid: columnIdGetter(column),\n\t\t\t\tindex: index++,\n\t\t\t\tvalue: column,\n\t\t\t\titems: itemsByColumn.get(columnIdGetter(column))?.map((it, index) => ({ value: it, id: it.id, index })) ?? [],\n\t\t\t})\n\t\t}\n\t\treturn result\n\n\t}, [columnIdGetter, columns, groupItemsByColumn, items])\n}\n"],"names":["useMemo","BoardNullColumnPlaceholder","index"],"mappings":";;;;AAMO,MAAM,wBAAwB,CAAuC,EAAE,oBAAoB,OAAO,SAAS,qBAK5E;AAErC,SAAOA,cAAQ,MAAM;AACd,UAAA,gBAAgB,mBAAmB,KAAK;AAE9C,UAAM,YAAY,cAAc,IAAI,IAAI,KAAK,CAAC;AAC9C,UAAM,SAAyC;AAAA,MAC9C;AAAA,QACC,IAAIC,OAAA;AAAA,QACJ,OAAO,OAAO;AAAA,QACd,OAAO;AAAA,QACP,OAAO,UAAU,IAAI,CAAC,IAAIC,YAAW,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI,OAAAA,SAAQ;AAAA,MAAA;AAAA,IAEvE;AACA,QAAI,QAAQ;AAGZ,eAAW,UAAU,SAAS;AAC7B,aAAO,KAAK;AAAA,QACX,IAAI,eAAe,MAAM;AAAA,QACzB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO,cAAc,IAAI,eAAe,MAAM,CAAC,GAAG,IAAI,CAAC,IAAIA,YAAW,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI,OAAAA,OAAQ,EAAA,KAAK,CAAA;AAAA,MAAC,CAC5G;AAAA,IAAA;AAEK,WAAA;AAAA,KAEL,CAAC,gBAAgB,SAAS,oBAAoB,KAAK,CAAC;AACxD;;"}
@@ -1,30 +0,0 @@
1
- import { useMemo } from "react";
2
- import { BoardNullColumnPlaceholder } from "../const.js";
3
- const useCreateBoardColumns = ({ groupItemsByColumn, items, columns, columnIdGetter }) => {
4
- return useMemo(() => {
5
- const itemsByColumn = groupItemsByColumn(items);
6
- const nullItems = itemsByColumn.get(null) ?? [];
7
- const result = [
8
- {
9
- id: BoardNullColumnPlaceholder,
10
- index: Number.MAX_SAFE_INTEGER,
11
- value: null,
12
- items: nullItems.map((it, index2) => ({ value: it, id: it.id, index: index2 }))
13
- }
14
- ];
15
- let index = 0;
16
- for (const column of columns) {
17
- result.push({
18
- id: columnIdGetter(column),
19
- index: index++,
20
- value: column,
21
- items: itemsByColumn.get(columnIdGetter(column))?.map((it, index2) => ({ value: it, id: it.id, index: index2 })) ?? []
22
- });
23
- }
24
- return result;
25
- }, [columnIdGetter, columns, groupItemsByColumn, items]);
26
- };
27
- export {
28
- useCreateBoardColumns
29
- };
30
- //# sourceMappingURL=useCreateBoardColumns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCreateBoardColumns.js","sources":["../../../../../packages/react-board/src/internal/useCreateBoardColumns.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { UseGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { EntityListAccessor } from '@contember/react-binding'\nimport { BoardNullColumnPlaceholder } from '../const'\nimport { BoardColumnNode, BoardColumnValue } from '../types'\n\nexport const useCreateBoardColumns = <ColumnValue extends BoardColumnValue>({ groupItemsByColumn, items, columns, columnIdGetter }: {\n\titems: EntityListAccessor\n\tcolumns: Iterable<ColumnValue>\n\tcolumnIdGetter: (column: ColumnValue) => string | number\n\tgroupItemsByColumn: UseGroupItemsByColumn\n}): BoardColumnNode<ColumnValue>[] => {\n\n\treturn useMemo(() => {\n\t\tconst itemsByColumn = groupItemsByColumn(items)\n\n\t\tconst nullItems = itemsByColumn.get(null) ?? []\n\t\tconst result: BoardColumnNode<ColumnValue>[] = [\n\t\t\t{\n\t\t\t\tid: BoardNullColumnPlaceholder,\n\t\t\t\tindex: Number.MAX_SAFE_INTEGER,\n\t\t\t\tvalue: null,\n\t\t\t\titems: nullItems.map((it, index) => ({ value: it, id: it.id, index })),\n\t\t\t},\n\t\t]\n\t\tlet index = 0\n\n\n\t\tfor (const column of columns) {\n\t\t\tresult.push({\n\t\t\t\tid: columnIdGetter(column),\n\t\t\t\tindex: index++,\n\t\t\t\tvalue: column,\n\t\t\t\titems: itemsByColumn.get(columnIdGetter(column))?.map((it, index) => ({ value: it, id: it.id, index })) ?? [],\n\t\t\t})\n\t\t}\n\t\treturn result\n\n\t}, [columnIdGetter, columns, groupItemsByColumn, items])\n}\n"],"names":["index"],"mappings":";;AAMO,MAAM,wBAAwB,CAAuC,EAAE,oBAAoB,OAAO,SAAS,qBAK5E;AAErC,SAAO,QAAQ,MAAM;AACd,UAAA,gBAAgB,mBAAmB,KAAK;AAE9C,UAAM,YAAY,cAAc,IAAI,IAAI,KAAK,CAAC;AAC9C,UAAM,SAAyC;AAAA,MAC9C;AAAA,QACC,IAAI;AAAA,QACJ,OAAO,OAAO;AAAA,QACd,OAAO;AAAA,QACP,OAAO,UAAU,IAAI,CAAC,IAAIA,YAAW,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI,OAAAA,SAAQ;AAAA,MAAA;AAAA,IAEvE;AACA,QAAI,QAAQ;AAGZ,eAAW,UAAU,SAAS;AAC7B,aAAO,KAAK;AAAA,QACX,IAAI,eAAe,MAAM;AAAA,QACzB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO,cAAc,IAAI,eAAe,MAAM,CAAC,GAAG,IAAI,CAAC,IAAIA,YAAW,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI,OAAAA,OAAQ,EAAA,KAAK,CAAA;AAAA,MAAC,CAC5G;AAAA,IAAA;AAEK,WAAA;AAAA,KAEL,CAAC,gBAAgB,SAAS,oBAAoB,KAAK,CAAC;AACxD;"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const reactBinding = require("@contember/react-binding");
5
- const useGroupItemsByColumn = require("./useGroupItemsByColumn.cjs");
6
- const useCreateBoardColumns = require("./useCreateBoardColumns.cjs");
7
- const arrayMove = require("../utils/arrayMove.cjs");
8
- const useBoardItemsMethods = require("./useBoardItemsMethods.cjs");
9
- const useGetSortedColumns = (desugaredColumnSortableByField) => {
10
- return React.useCallback((columnEntities) => {
11
- return reactBinding.sortEntities(Array.from(columnEntities), desugaredColumnSortableByField);
12
- }, [desugaredColumnSortableByField]);
13
- };
14
- const useDynamicBoard = ({
15
- sortableBy,
16
- sortScope,
17
- columnsSortableBy,
18
- discriminationField,
19
- columnEntities,
20
- itemEntities
21
- }) => {
22
- const desugaredSortableByField = reactBinding.useDesugaredRelativeSingleField(sortableBy);
23
- const desugaredColumnSortableByField = reactBinding.useDesugaredRelativeSingleField(columnsSortableBy);
24
- const desugaredDiscriminationField = reactBinding.useDesugaredRelativeSingleEntity(discriminationField);
25
- const columnEntitiesGetter = columnEntities.getAccessor;
26
- const exitingColumnIds = React.useMemo(() => new Set(Array.from(columnEntities).map((it) => it.id)), [columnEntities]);
27
- const getDiscriminatorValue = React.useCallback((entity) => {
28
- const entityId = entity.getEntity(desugaredDiscriminationField).id;
29
- return exitingColumnIds.has(entityId) ? entityId : null;
30
- }, [desugaredDiscriminationField, exitingColumnIds]);
31
- const groupItemsByColumn = useGroupItemsByColumn.useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
32
- const getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField);
33
- const columnsResult = useCreateBoardColumns.useCreateBoardColumns({
34
- columns: getSortedColumns(columnEntities),
35
- columnIdGetter: (it) => it.id,
36
- groupItemsByColumn,
37
- items: itemEntities
38
- });
39
- const addColumn = React.useCallback((index, preprocess) => {
40
- const columnEntities2 = columnEntitiesGetter();
41
- if (!desugaredColumnSortableByField) {
42
- if (index === void 0) {
43
- return columnEntities2.createNewEntity(preprocess);
44
- }
45
- throw new reactBinding.BindingError("Cannot add column at specific index without sortableBy field");
46
- }
47
- reactBinding.addEntityAtIndex(columnEntities2, desugaredColumnSortableByField, columnEntities2.length, preprocess);
48
- }, [columnEntitiesGetter, desugaredColumnSortableByField]);
49
- const connectItemToColumn = React.useCallback((item, column) => {
50
- const hasOne = desugaredDiscriminationField.hasOneRelationPath;
51
- const parentEntity = item.getEntity({ hasOneRelationPath: hasOne.slice(0, -1) });
52
- if (column) {
53
- parentEntity.connectEntityAtField(hasOne[hasOne.length - 1].field, column);
54
- } else {
55
- parentEntity.disconnectEntityAtField(hasOne[hasOne.length - 1].field);
56
- }
57
- }, [desugaredDiscriminationField.hasOneRelationPath]);
58
- const moveColumn = React.useMemo(() => {
59
- if (!desugaredColumnSortableByField) {
60
- return void 0;
61
- }
62
- return (entity, index) => {
63
- const sortedColumns = getSortedColumns(columnEntitiesGetter());
64
- const currentIndex = sortedColumns.findIndex((it) => it.id === entity.id);
65
- const resortedItems = arrayMove.arrayMove(sortedColumns, currentIndex, index);
66
- reactBinding.repairEntitiesOrder(desugaredColumnSortableByField, resortedItems);
67
- };
68
- }, [columnEntitiesGetter, desugaredColumnSortableByField, getSortedColumns]);
69
- const removeColumn = React.useCallback((entity) => {
70
- entity.deleteEntity();
71
- if (desugaredSortableByField) {
72
- reactBinding.repairEntitiesOrder(desugaredSortableByField, Array.from(columnEntitiesGetter()));
73
- }
74
- }, [columnEntitiesGetter, desugaredSortableByField]);
75
- const { addItem, moveItem, removeItem } = useBoardItemsMethods.useBoardItemsMethods({
76
- columnIdGetter: (it) => it.id,
77
- connectItemToColumn,
78
- desugaredSortableByField,
79
- sortScope,
80
- getDiscriminatorValue,
81
- groupItemsByColumn,
82
- itemEntities
83
- });
84
- const methods = React.useMemo(() => ({
85
- addItem,
86
- moveItem,
87
- removeItem,
88
- moveColumn,
89
- addColumn,
90
- removeColumn
91
- }), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn]);
92
- return [{ columns: columnsResult }, methods];
93
- };
94
- exports.useDynamicBoard = useDynamicBoard;
95
- //# sourceMappingURL=useDynamicBoard.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDynamicBoard.cjs","sources":["../../../../../packages/react-board/src/internal/useDynamicBoard.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n\taddEntityAtIndex,\n\tBindingError,\n\tEntityAccessor,\n\tEntityListAccessor,\n\tRelativeSingleField,\n\trepairEntitiesOrder,\n\tsortEntities,\n\tuseDesugaredRelativeSingleEntity,\n\tuseDesugaredRelativeSingleField,\n} from '@contember/react-binding'\nimport {\n\tBoardAddColumnMethod,\n\tBoardMethods,\n\tBoardMoveColumnMethod,\n\tBoardRemoveColumnMethod,\n} from '../types'\nimport { useGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { useCreateBoardColumns } from './useCreateBoardColumns'\nimport { arrayMove } from '../utils/arrayMove'\nimport { useBoardItemsMethods } from './useBoardItemsMethods'\nimport { BoardData } from '../types/BoardData'\nimport { BoardCommonProps, BoardDynamicColumnsBindingProps } from '../components'\n\n\nexport type UseDynamicBoardBindingProps =\n\t& Omit<BoardCommonProps, 'children'>\n\t& BoardDynamicColumnsBindingProps\n\t& {\n\t\tcolumnEntities: EntityListAccessor\n\t\titemEntities: EntityListAccessor\n\t}\n\nconst useGetSortedColumns = (desugaredColumnSortableByField: RelativeSingleField | undefined) => {\n\treturn useCallback((columnEntities: EntityListAccessor) => {\n\t\treturn sortEntities(Array.from(columnEntities), desugaredColumnSortableByField)\n\t}, [desugaredColumnSortableByField])\n}\n\nexport const useDynamicBoard = ({\n\tsortableBy,\n\tsortScope,\n\tcolumnsSortableBy,\n\tdiscriminationField,\n\tcolumnEntities,\n\titemEntities,\n}: UseDynamicBoardBindingProps): [BoardData<EntityAccessor>, BoardMethods<EntityAccessor>] => {\n\n\tconst desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy)\n\tconst desugaredColumnSortableByField = useDesugaredRelativeSingleField(columnsSortableBy)\n\tconst desugaredDiscriminationField = useDesugaredRelativeSingleEntity(discriminationField)\n\n\tconst columnEntitiesGetter = columnEntities.getAccessor\n\n\n\tconst exitingColumnIds = useMemo(() => new Set(Array.from(columnEntities).map(it => it.id)), [columnEntities])\n\n\tconst getDiscriminatorValue = useCallback((entity: EntityAccessor) => {\n\t\tconst entityId = entity.getEntity(desugaredDiscriminationField).id\n\t\treturn exitingColumnIds.has(entityId) ? entityId : null\n\t}, [desugaredDiscriminationField, exitingColumnIds])\n\n\tconst groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField)\n\n\tconst getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField)\n\n\tconst columnsResult = useCreateBoardColumns<EntityAccessor>({\n\t\tcolumns: getSortedColumns(columnEntities),\n\t\tcolumnIdGetter: it => it.id,\n\t\tgroupItemsByColumn,\n\t\titems: itemEntities,\n\t})\n\n\tconst addColumn = useCallback<BoardAddColumnMethod>((index, preprocess) => {\n\t\tconst columnEntities = columnEntitiesGetter()\n\t\tif (!desugaredColumnSortableByField) {\n\t\t\tif (index === undefined) {\n\t\t\t\treturn columnEntities.createNewEntity(preprocess)\n\t\t\t}\n\t\t\tthrow new BindingError('Cannot add column at specific index without sortableBy field')\n\t\t}\n\t\taddEntityAtIndex(columnEntities, desugaredColumnSortableByField, columnEntities.length, preprocess)\n\t}, [columnEntitiesGetter, desugaredColumnSortableByField])\n\n\tconst connectItemToColumn = useCallback((item: EntityAccessor, column: EntityAccessor | null) => {\n\t\tconst hasOne = desugaredDiscriminationField.hasOneRelationPath\n\t\tconst parentEntity = item.getEntity({ hasOneRelationPath: hasOne.slice(0, -1) })\n\t\tif (column) {\n\t\t\tparentEntity.connectEntityAtField(hasOne[hasOne.length - 1].field, column)\n\t\t} else {\n\t\t\tparentEntity.disconnectEntityAtField(hasOne[hasOne.length - 1].field)\n\t\t}\n\n\t}, [desugaredDiscriminationField.hasOneRelationPath])\n\n\n\tconst moveColumn = useMemo<BoardMoveColumnMethod | undefined>(() => {\n\t\tif (!desugaredColumnSortableByField) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (entity, index) => {\n\t\t\tconst sortedColumns = getSortedColumns(columnEntitiesGetter())\n\t\t\tconst currentIndex = sortedColumns.findIndex(it => it.id === entity.id)\n\t\t\tconst resortedItems = arrayMove(sortedColumns, currentIndex, index)\n\t\t\trepairEntitiesOrder(desugaredColumnSortableByField, resortedItems)\n\t\t}\n\t}, [columnEntitiesGetter, desugaredColumnSortableByField, getSortedColumns])\n\n\n\tconst removeColumn = useCallback<BoardRemoveColumnMethod>(entity => {\n\t\tentity.deleteEntity()\n\t\tif (desugaredSortableByField) {\n\t\t\trepairEntitiesOrder(desugaredSortableByField, Array.from(columnEntitiesGetter()))\n\t\t}\n\t}, [columnEntitiesGetter, desugaredSortableByField])\n\n\tconst { addItem, moveItem, removeItem } = useBoardItemsMethods({\n\t\tcolumnIdGetter: it => it.id,\n\t\tconnectItemToColumn,\n\t\tdesugaredSortableByField,\n\t\tsortScope,\n\t\tgetDiscriminatorValue,\n\t\tgroupItemsByColumn,\n\t\titemEntities,\n\t})\n\n\tconst methods = useMemo(() => ({\n\t\taddItem,\n\t\tmoveItem,\n\t\tremoveItem,\n\t\tmoveColumn,\n\t\taddColumn,\n\t\tremoveColumn,\n\t}), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn])\n\n\treturn [{ columns: columnsResult }, methods]\n}\n"],"names":["useCallback","sortEntities","useDesugaredRelativeSingleField","useDesugaredRelativeSingleEntity","useMemo","useGroupItemsByColumn","useCreateBoardColumns","columnEntities","BindingError","addEntityAtIndex","arrayMove","repairEntitiesOrder","useBoardItemsMethods"],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- import { useMemo, useCallback } from "react";
2
- import { useDesugaredRelativeSingleField, useDesugaredRelativeSingleEntity, BindingError, addEntityAtIndex, repairEntitiesOrder, sortEntities } from "@contember/react-binding";
3
- import { useGroupItemsByColumn } from "./useGroupItemsByColumn.js";
4
- import { useCreateBoardColumns } from "./useCreateBoardColumns.js";
5
- import { arrayMove } from "../utils/arrayMove.js";
6
- import { useBoardItemsMethods } from "./useBoardItemsMethods.js";
7
- const useGetSortedColumns = (desugaredColumnSortableByField) => {
8
- return useCallback((columnEntities) => {
9
- return sortEntities(Array.from(columnEntities), desugaredColumnSortableByField);
10
- }, [desugaredColumnSortableByField]);
11
- };
12
- const useDynamicBoard = ({
13
- sortableBy,
14
- sortScope,
15
- columnsSortableBy,
16
- discriminationField,
17
- columnEntities,
18
- itemEntities
19
- }) => {
20
- const desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy);
21
- const desugaredColumnSortableByField = useDesugaredRelativeSingleField(columnsSortableBy);
22
- const desugaredDiscriminationField = useDesugaredRelativeSingleEntity(discriminationField);
23
- const columnEntitiesGetter = columnEntities.getAccessor;
24
- const exitingColumnIds = useMemo(() => new Set(Array.from(columnEntities).map((it) => it.id)), [columnEntities]);
25
- const getDiscriminatorValue = useCallback((entity) => {
26
- const entityId = entity.getEntity(desugaredDiscriminationField).id;
27
- return exitingColumnIds.has(entityId) ? entityId : null;
28
- }, [desugaredDiscriminationField, exitingColumnIds]);
29
- const groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
30
- const getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField);
31
- const columnsResult = useCreateBoardColumns({
32
- columns: getSortedColumns(columnEntities),
33
- columnIdGetter: (it) => it.id,
34
- groupItemsByColumn,
35
- items: itemEntities
36
- });
37
- const addColumn = useCallback((index, preprocess) => {
38
- const columnEntities2 = columnEntitiesGetter();
39
- if (!desugaredColumnSortableByField) {
40
- if (index === void 0) {
41
- return columnEntities2.createNewEntity(preprocess);
42
- }
43
- throw new BindingError("Cannot add column at specific index without sortableBy field");
44
- }
45
- addEntityAtIndex(columnEntities2, desugaredColumnSortableByField, columnEntities2.length, preprocess);
46
- }, [columnEntitiesGetter, desugaredColumnSortableByField]);
47
- const connectItemToColumn = useCallback((item, column) => {
48
- const hasOne = desugaredDiscriminationField.hasOneRelationPath;
49
- const parentEntity = item.getEntity({ hasOneRelationPath: hasOne.slice(0, -1) });
50
- if (column) {
51
- parentEntity.connectEntityAtField(hasOne[hasOne.length - 1].field, column);
52
- } else {
53
- parentEntity.disconnectEntityAtField(hasOne[hasOne.length - 1].field);
54
- }
55
- }, [desugaredDiscriminationField.hasOneRelationPath]);
56
- const moveColumn = useMemo(() => {
57
- if (!desugaredColumnSortableByField) {
58
- return void 0;
59
- }
60
- return (entity, index) => {
61
- const sortedColumns = getSortedColumns(columnEntitiesGetter());
62
- const currentIndex = sortedColumns.findIndex((it) => it.id === entity.id);
63
- const resortedItems = arrayMove(sortedColumns, currentIndex, index);
64
- repairEntitiesOrder(desugaredColumnSortableByField, resortedItems);
65
- };
66
- }, [columnEntitiesGetter, desugaredColumnSortableByField, getSortedColumns]);
67
- const removeColumn = useCallback((entity) => {
68
- entity.deleteEntity();
69
- if (desugaredSortableByField) {
70
- repairEntitiesOrder(desugaredSortableByField, Array.from(columnEntitiesGetter()));
71
- }
72
- }, [columnEntitiesGetter, desugaredSortableByField]);
73
- const { addItem, moveItem, removeItem } = useBoardItemsMethods({
74
- columnIdGetter: (it) => it.id,
75
- connectItemToColumn,
76
- desugaredSortableByField,
77
- sortScope,
78
- getDiscriminatorValue,
79
- groupItemsByColumn,
80
- itemEntities
81
- });
82
- const methods = useMemo(() => ({
83
- addItem,
84
- moveItem,
85
- removeItem,
86
- moveColumn,
87
- addColumn,
88
- removeColumn
89
- }), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn]);
90
- return [{ columns: columnsResult }, methods];
91
- };
92
- export {
93
- useDynamicBoard
94
- };
95
- //# sourceMappingURL=useDynamicBoard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDynamicBoard.js","sources":["../../../../../packages/react-board/src/internal/useDynamicBoard.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n\taddEntityAtIndex,\n\tBindingError,\n\tEntityAccessor,\n\tEntityListAccessor,\n\tRelativeSingleField,\n\trepairEntitiesOrder,\n\tsortEntities,\n\tuseDesugaredRelativeSingleEntity,\n\tuseDesugaredRelativeSingleField,\n} from '@contember/react-binding'\nimport {\n\tBoardAddColumnMethod,\n\tBoardMethods,\n\tBoardMoveColumnMethod,\n\tBoardRemoveColumnMethod,\n} from '../types'\nimport { useGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { useCreateBoardColumns } from './useCreateBoardColumns'\nimport { arrayMove } from '../utils/arrayMove'\nimport { useBoardItemsMethods } from './useBoardItemsMethods'\nimport { BoardData } from '../types/BoardData'\nimport { BoardCommonProps, BoardDynamicColumnsBindingProps } from '../components'\n\n\nexport type UseDynamicBoardBindingProps =\n\t& Omit<BoardCommonProps, 'children'>\n\t& BoardDynamicColumnsBindingProps\n\t& {\n\t\tcolumnEntities: EntityListAccessor\n\t\titemEntities: EntityListAccessor\n\t}\n\nconst useGetSortedColumns = (desugaredColumnSortableByField: RelativeSingleField | undefined) => {\n\treturn useCallback((columnEntities: EntityListAccessor) => {\n\t\treturn sortEntities(Array.from(columnEntities), desugaredColumnSortableByField)\n\t}, [desugaredColumnSortableByField])\n}\n\nexport const useDynamicBoard = ({\n\tsortableBy,\n\tsortScope,\n\tcolumnsSortableBy,\n\tdiscriminationField,\n\tcolumnEntities,\n\titemEntities,\n}: UseDynamicBoardBindingProps): [BoardData<EntityAccessor>, BoardMethods<EntityAccessor>] => {\n\n\tconst desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy)\n\tconst desugaredColumnSortableByField = useDesugaredRelativeSingleField(columnsSortableBy)\n\tconst desugaredDiscriminationField = useDesugaredRelativeSingleEntity(discriminationField)\n\n\tconst columnEntitiesGetter = columnEntities.getAccessor\n\n\n\tconst exitingColumnIds = useMemo(() => new Set(Array.from(columnEntities).map(it => it.id)), [columnEntities])\n\n\tconst getDiscriminatorValue = useCallback((entity: EntityAccessor) => {\n\t\tconst entityId = entity.getEntity(desugaredDiscriminationField).id\n\t\treturn exitingColumnIds.has(entityId) ? entityId : null\n\t}, [desugaredDiscriminationField, exitingColumnIds])\n\n\tconst groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField)\n\n\tconst getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField)\n\n\tconst columnsResult = useCreateBoardColumns<EntityAccessor>({\n\t\tcolumns: getSortedColumns(columnEntities),\n\t\tcolumnIdGetter: it => it.id,\n\t\tgroupItemsByColumn,\n\t\titems: itemEntities,\n\t})\n\n\tconst addColumn = useCallback<BoardAddColumnMethod>((index, preprocess) => {\n\t\tconst columnEntities = columnEntitiesGetter()\n\t\tif (!desugaredColumnSortableByField) {\n\t\t\tif (index === undefined) {\n\t\t\t\treturn columnEntities.createNewEntity(preprocess)\n\t\t\t}\n\t\t\tthrow new BindingError('Cannot add column at specific index without sortableBy field')\n\t\t}\n\t\taddEntityAtIndex(columnEntities, desugaredColumnSortableByField, columnEntities.length, preprocess)\n\t}, [columnEntitiesGetter, desugaredColumnSortableByField])\n\n\tconst connectItemToColumn = useCallback((item: EntityAccessor, column: EntityAccessor | null) => {\n\t\tconst hasOne = desugaredDiscriminationField.hasOneRelationPath\n\t\tconst parentEntity = item.getEntity({ hasOneRelationPath: hasOne.slice(0, -1) })\n\t\tif (column) {\n\t\t\tparentEntity.connectEntityAtField(hasOne[hasOne.length - 1].field, column)\n\t\t} else {\n\t\t\tparentEntity.disconnectEntityAtField(hasOne[hasOne.length - 1].field)\n\t\t}\n\n\t}, [desugaredDiscriminationField.hasOneRelationPath])\n\n\n\tconst moveColumn = useMemo<BoardMoveColumnMethod | undefined>(() => {\n\t\tif (!desugaredColumnSortableByField) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (entity, index) => {\n\t\t\tconst sortedColumns = getSortedColumns(columnEntitiesGetter())\n\t\t\tconst currentIndex = sortedColumns.findIndex(it => it.id === entity.id)\n\t\t\tconst resortedItems = arrayMove(sortedColumns, currentIndex, index)\n\t\t\trepairEntitiesOrder(desugaredColumnSortableByField, resortedItems)\n\t\t}\n\t}, [columnEntitiesGetter, desugaredColumnSortableByField, getSortedColumns])\n\n\n\tconst removeColumn = useCallback<BoardRemoveColumnMethod>(entity => {\n\t\tentity.deleteEntity()\n\t\tif (desugaredSortableByField) {\n\t\t\trepairEntitiesOrder(desugaredSortableByField, Array.from(columnEntitiesGetter()))\n\t\t}\n\t}, [columnEntitiesGetter, desugaredSortableByField])\n\n\tconst { addItem, moveItem, removeItem } = useBoardItemsMethods({\n\t\tcolumnIdGetter: it => it.id,\n\t\tconnectItemToColumn,\n\t\tdesugaredSortableByField,\n\t\tsortScope,\n\t\tgetDiscriminatorValue,\n\t\tgroupItemsByColumn,\n\t\titemEntities,\n\t})\n\n\tconst methods = useMemo(() => ({\n\t\taddItem,\n\t\tmoveItem,\n\t\tremoveItem,\n\t\tmoveColumn,\n\t\taddColumn,\n\t\tremoveColumn,\n\t}), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn])\n\n\treturn [{ columns: columnsResult }, methods]\n}\n"],"names":["columnEntities"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const reactBinding = require("@contember/react-binding");
4
- const React = require("react");
5
- const useGroupItemsByColumn = (getDiscriminatorValue, sortBy) => {
6
- return React.useCallback((itemEntities) => {
7
- const itemsByColumn = /* @__PURE__ */ new Map();
8
- for (const item of reactBinding.sortEntities(Array.from(itemEntities), sortBy)) {
9
- const discriminatedBy = getDiscriminatorValue(item);
10
- if (!itemsByColumn.has(discriminatedBy)) {
11
- itemsByColumn.set(discriminatedBy, []);
12
- }
13
- itemsByColumn.get(discriminatedBy)?.push(item);
14
- }
15
- return itemsByColumn;
16
- }, [getDiscriminatorValue, sortBy]);
17
- };
18
- exports.useGroupItemsByColumn = useGroupItemsByColumn;
19
- //# sourceMappingURL=useGroupItemsByColumn.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGroupItemsByColumn.cjs","sources":["../../../../../packages/react-board/src/internal/useGroupItemsByColumn.ts"],"sourcesContent":["import { EntityAccessor, EntityId, EntityListAccessor, RelativeSingleField, sortEntities } from '@contember/react-binding'\nimport { useCallback } from 'react'\n\nexport type BoardColumnKey = string | EntityId | null\nexport type UseGroupItemsByColumn = (itemEntities: EntityListAccessor) => Map<BoardColumnKey, EntityAccessor[]>\nexport const useGroupItemsByColumn = (getDiscriminatorValue: (entity: EntityAccessor) => BoardColumnKey, sortBy: RelativeSingleField | undefined): UseGroupItemsByColumn => {\n\treturn useCallback((itemEntities: EntityListAccessor) => {\n\t\tconst itemsByColumn = new Map<BoardColumnKey, EntityAccessor[]>()\n\n\t\tfor (const item of sortEntities(Array.from(itemEntities), sortBy)) {\n\t\t\tconst discriminatedBy = getDiscriminatorValue(item)\n\t\t\tif (!itemsByColumn.has(discriminatedBy)) {\n\t\t\t\titemsByColumn.set(discriminatedBy, [])\n\t\t\t}\n\t\t\titemsByColumn.get(discriminatedBy)?.push(item)\n\t\t}\n\t\treturn itemsByColumn\n\t}, [getDiscriminatorValue, sortBy])\n}\n"],"names":["useCallback","sortEntities"],"mappings":";;;;AAKa,MAAA,wBAAwB,CAAC,uBAAmE,WAAmE;AACpK,SAAAA,MAAAA,YAAY,CAAC,iBAAqC;AAClD,UAAA,oCAAoB,IAAsC;AAEhE,eAAW,QAAQC,0BAAa,MAAM,KAAK,YAAY,GAAG,MAAM,GAAG;AAC5D,YAAA,kBAAkB,sBAAsB,IAAI;AAClD,UAAI,CAAC,cAAc,IAAI,eAAe,GAAG;AAC1B,sBAAA,IAAI,iBAAiB,EAAE;AAAA,MAAA;AAEtC,oBAAc,IAAI,eAAe,GAAG,KAAK,IAAI;AAAA,IAAA;AAEvC,WAAA;AAAA,EAAA,GACL,CAAC,uBAAuB,MAAM,CAAC;AACnC;;"}
@@ -1,19 +0,0 @@
1
- import { sortEntities } from "@contember/react-binding";
2
- import { useCallback } from "react";
3
- const useGroupItemsByColumn = (getDiscriminatorValue, sortBy) => {
4
- return useCallback((itemEntities) => {
5
- const itemsByColumn = /* @__PURE__ */ new Map();
6
- for (const item of sortEntities(Array.from(itemEntities), sortBy)) {
7
- const discriminatedBy = getDiscriminatorValue(item);
8
- if (!itemsByColumn.has(discriminatedBy)) {
9
- itemsByColumn.set(discriminatedBy, []);
10
- }
11
- itemsByColumn.get(discriminatedBy)?.push(item);
12
- }
13
- return itemsByColumn;
14
- }, [getDiscriminatorValue, sortBy]);
15
- };
16
- export {
17
- useGroupItemsByColumn
18
- };
19
- //# sourceMappingURL=useGroupItemsByColumn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGroupItemsByColumn.js","sources":["../../../../../packages/react-board/src/internal/useGroupItemsByColumn.ts"],"sourcesContent":["import { EntityAccessor, EntityId, EntityListAccessor, RelativeSingleField, sortEntities } from '@contember/react-binding'\nimport { useCallback } from 'react'\n\nexport type BoardColumnKey = string | EntityId | null\nexport type UseGroupItemsByColumn = (itemEntities: EntityListAccessor) => Map<BoardColumnKey, EntityAccessor[]>\nexport const useGroupItemsByColumn = (getDiscriminatorValue: (entity: EntityAccessor) => BoardColumnKey, sortBy: RelativeSingleField | undefined): UseGroupItemsByColumn => {\n\treturn useCallback((itemEntities: EntityListAccessor) => {\n\t\tconst itemsByColumn = new Map<BoardColumnKey, EntityAccessor[]>()\n\n\t\tfor (const item of sortEntities(Array.from(itemEntities), sortBy)) {\n\t\t\tconst discriminatedBy = getDiscriminatorValue(item)\n\t\t\tif (!itemsByColumn.has(discriminatedBy)) {\n\t\t\t\titemsByColumn.set(discriminatedBy, [])\n\t\t\t}\n\t\t\titemsByColumn.get(discriminatedBy)?.push(item)\n\t\t}\n\t\treturn itemsByColumn\n\t}, [getDiscriminatorValue, sortBy])\n}\n"],"names":[],"mappings":";;AAKa,MAAA,wBAAwB,CAAC,uBAAmE,WAAmE;AACpK,SAAA,YAAY,CAAC,iBAAqC;AAClD,UAAA,oCAAoB,IAAsC;AAEhE,eAAW,QAAQ,aAAa,MAAM,KAAK,YAAY,GAAG,MAAM,GAAG;AAC5D,YAAA,kBAAkB,sBAAsB,IAAI;AAClD,UAAI,CAAC,cAAc,IAAI,eAAe,GAAG;AAC1B,sBAAA,IAAI,iBAAiB,EAAE;AAAA,MAAA;AAEtC,oBAAc,IAAI,eAAe,GAAG,KAAK,IAAI;AAAA,IAAA;AAEvC,WAAA;AAAA,EAAA,GACL,CAAC,uBAAuB,MAAM,CAAC;AACnC;"}