@contember/react-board 2.1.0-alpha.30 → 2.1.0-alpha.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +9 -9
- package/src/components/Board.tsx +152 -143
- package/src/components/BoardEachColumn.tsx +20 -16
- package/src/components/BoardEachItem.tsx +15 -14
- package/src/contexts.ts +0 -1
- package/src/internal/useBoardItemsMethods.ts +13 -8
- package/src/internal/useCreateBoardColumns.ts +0 -3
- package/src/internal/useDynamicBoard.ts +2 -13
- package/src/internal/useGroupItemsByColumn.ts +4 -1
- package/src/internal/useStaticBoard.ts +0 -2
- package/src/types/BoardData.ts +3 -4
- package/src/types/BoardMethods.ts +5 -1
- package/dist/development/index.cjs +0 -28
- package/dist/development/index.cjs.map +0 -1
- package/dist/development/index.js +0 -28
- package/dist/development/index.js.map +0 -1
- package/dist/development/src/components/Board.cjs +0 -274
- package/dist/development/src/components/Board.cjs.map +0 -1
- package/dist/development/src/components/Board.js +0 -274
- package/dist/development/src/components/Board.js.map +0 -1
- package/dist/development/src/components/BoardColumn.cjs +0 -7
- package/dist/development/src/components/BoardColumn.cjs.map +0 -1
- package/dist/development/src/components/BoardColumn.js +0 -7
- package/dist/development/src/components/BoardColumn.js.map +0 -1
- package/dist/development/src/components/BoardColumnLabel.cjs +0 -14
- package/dist/development/src/components/BoardColumnLabel.cjs.map +0 -1
- package/dist/development/src/components/BoardColumnLabel.js +0 -14
- package/dist/development/src/components/BoardColumnLabel.js.map +0 -1
- package/dist/development/src/components/BoardEachColumn.cjs +0 -37
- package/dist/development/src/components/BoardEachColumn.cjs.map +0 -1
- package/dist/development/src/components/BoardEachColumn.js +0 -37
- package/dist/development/src/components/BoardEachColumn.js.map +0 -1
- package/dist/development/src/components/BoardEachItem.cjs +0 -56
- package/dist/development/src/components/BoardEachItem.cjs.map +0 -1
- package/dist/development/src/components/BoardEachItem.js +0 -56
- package/dist/development/src/components/BoardEachItem.js.map +0 -1
- package/dist/development/src/components/BoardItem.cjs +0 -8
- package/dist/development/src/components/BoardItem.cjs.map +0 -1
- package/dist/development/src/components/BoardItem.js +0 -8
- package/dist/development/src/components/BoardItem.js.map +0 -1
- package/dist/development/src/components/BoardNullColumn.cjs +0 -18
- package/dist/development/src/components/BoardNullColumn.cjs.map +0 -1
- package/dist/development/src/components/BoardNullColumn.js +0 -18
- package/dist/development/src/components/BoardNullColumn.js.map +0 -1
- package/dist/development/src/const.cjs +0 -5
- package/dist/development/src/const.cjs.map +0 -1
- package/dist/development/src/const.js +0 -5
- package/dist/development/src/const.js.map +0 -1
- package/dist/development/src/contexts.cjs +0 -24
- package/dist/development/src/contexts.cjs.map +0 -1
- package/dist/development/src/contexts.js +0 -24
- package/dist/development/src/contexts.js.map +0 -1
- package/dist/development/src/internal/boardAnalyzer.cjs +0 -13
- package/dist/development/src/internal/boardAnalyzer.cjs.map +0 -1
- package/dist/development/src/internal/boardAnalyzer.js +0 -13
- package/dist/development/src/internal/boardAnalyzer.js.map +0 -1
- package/dist/development/src/internal/useBoardItemsMethods.cjs +0 -100
- package/dist/development/src/internal/useBoardItemsMethods.cjs.map +0 -1
- package/dist/development/src/internal/useBoardItemsMethods.js +0 -100
- package/dist/development/src/internal/useBoardItemsMethods.js.map +0 -1
- package/dist/development/src/internal/useCreateBoardColumns.cjs +0 -30
- package/dist/development/src/internal/useCreateBoardColumns.cjs.map +0 -1
- package/dist/development/src/internal/useCreateBoardColumns.js +0 -30
- package/dist/development/src/internal/useCreateBoardColumns.js.map +0 -1
- package/dist/development/src/internal/useDynamicBoard.cjs +0 -95
- package/dist/development/src/internal/useDynamicBoard.cjs.map +0 -1
- package/dist/development/src/internal/useDynamicBoard.js +0 -95
- package/dist/development/src/internal/useDynamicBoard.js.map +0 -1
- package/dist/development/src/internal/useGroupItemsByColumn.cjs +0 -19
- package/dist/development/src/internal/useGroupItemsByColumn.cjs.map +0 -1
- package/dist/development/src/internal/useGroupItemsByColumn.js +0 -19
- package/dist/development/src/internal/useGroupItemsByColumn.js.map +0 -1
- package/dist/development/src/internal/useStaticBoard.cjs +0 -43
- package/dist/development/src/internal/useStaticBoard.cjs.map +0 -1
- package/dist/development/src/internal/useStaticBoard.js +0 -43
- package/dist/development/src/internal/useStaticBoard.js.map +0 -1
- package/dist/development/src/utils/arrayMove.cjs +0 -9
- package/dist/development/src/utils/arrayMove.cjs.map +0 -1
- package/dist/development/src/utils/arrayMove.js +0 -9
- package/dist/development/src/utils/arrayMove.js.map +0 -1
- package/dist/production/index.cjs +0 -28
- package/dist/production/index.cjs.map +0 -1
- package/dist/production/index.js +0 -28
- package/dist/production/index.js.map +0 -1
- package/dist/production/src/components/Board.cjs +0 -122
- package/dist/production/src/components/Board.cjs.map +0 -1
- package/dist/production/src/components/Board.js +0 -122
- package/dist/production/src/components/Board.js.map +0 -1
- package/dist/production/src/components/BoardColumn.cjs +0 -7
- package/dist/production/src/components/BoardColumn.cjs.map +0 -1
- package/dist/production/src/components/BoardColumn.js +0 -7
- package/dist/production/src/components/BoardColumn.js.map +0 -1
- package/dist/production/src/components/BoardColumnLabel.cjs +0 -10
- package/dist/production/src/components/BoardColumnLabel.cjs.map +0 -1
- package/dist/production/src/components/BoardColumnLabel.js +0 -10
- package/dist/production/src/components/BoardColumnLabel.js.map +0 -1
- package/dist/production/src/components/BoardEachColumn.cjs +0 -21
- package/dist/production/src/components/BoardEachColumn.cjs.map +0 -1
- package/dist/production/src/components/BoardEachColumn.js +0 -21
- package/dist/production/src/components/BoardEachColumn.js.map +0 -1
- package/dist/production/src/components/BoardEachItem.cjs +0 -33
- package/dist/production/src/components/BoardEachItem.cjs.map +0 -1
- package/dist/production/src/components/BoardEachItem.js +0 -33
- package/dist/production/src/components/BoardEachItem.js.map +0 -1
- package/dist/production/src/components/BoardItem.cjs +0 -8
- package/dist/production/src/components/BoardItem.cjs.map +0 -1
- package/dist/production/src/components/BoardItem.js +0 -8
- package/dist/production/src/components/BoardItem.js.map +0 -1
- package/dist/production/src/components/BoardNullColumn.cjs +0 -14
- package/dist/production/src/components/BoardNullColumn.cjs.map +0 -1
- package/dist/production/src/components/BoardNullColumn.js +0 -14
- package/dist/production/src/components/BoardNullColumn.js.map +0 -1
- package/dist/production/src/const.cjs +0 -5
- package/dist/production/src/const.cjs.map +0 -1
- package/dist/production/src/const.js +0 -5
- package/dist/production/src/const.js.map +0 -1
- package/dist/production/src/contexts.cjs +0 -24
- package/dist/production/src/contexts.cjs.map +0 -1
- package/dist/production/src/contexts.js +0 -24
- package/dist/production/src/contexts.js.map +0 -1
- package/dist/production/src/internal/boardAnalyzer.cjs +0 -13
- package/dist/production/src/internal/boardAnalyzer.cjs.map +0 -1
- package/dist/production/src/internal/boardAnalyzer.js +0 -13
- package/dist/production/src/internal/boardAnalyzer.js.map +0 -1
- package/dist/production/src/internal/useBoardItemsMethods.cjs +0 -100
- package/dist/production/src/internal/useBoardItemsMethods.cjs.map +0 -1
- package/dist/production/src/internal/useBoardItemsMethods.js +0 -100
- package/dist/production/src/internal/useBoardItemsMethods.js.map +0 -1
- package/dist/production/src/internal/useCreateBoardColumns.cjs +0 -30
- package/dist/production/src/internal/useCreateBoardColumns.cjs.map +0 -1
- package/dist/production/src/internal/useCreateBoardColumns.js +0 -30
- package/dist/production/src/internal/useCreateBoardColumns.js.map +0 -1
- package/dist/production/src/internal/useDynamicBoard.cjs +0 -95
- package/dist/production/src/internal/useDynamicBoard.cjs.map +0 -1
- package/dist/production/src/internal/useDynamicBoard.js +0 -95
- package/dist/production/src/internal/useDynamicBoard.js.map +0 -1
- package/dist/production/src/internal/useGroupItemsByColumn.cjs +0 -19
- package/dist/production/src/internal/useGroupItemsByColumn.cjs.map +0 -1
- package/dist/production/src/internal/useGroupItemsByColumn.js +0 -19
- package/dist/production/src/internal/useGroupItemsByColumn.js.map +0 -1
- package/dist/production/src/internal/useStaticBoard.cjs +0 -43
- package/dist/production/src/internal/useStaticBoard.cjs.map +0 -1
- package/dist/production/src/internal/useStaticBoard.js +0 -43
- package/dist/production/src/internal/useStaticBoard.js.map +0 -1
- package/dist/production/src/utils/arrayMove.cjs +0 -9
- package/dist/production/src/utils/arrayMove.cjs.map +0 -1
- package/dist/production/src/utils/arrayMove.js +0 -9
- package/dist/production/src/utils/arrayMove.js.map +0 -1
- package/dist/types/components/Board.d.ts +0 -28
- package/dist/types/components/Board.d.ts.map +0 -1
- package/dist/types/components/BoardColumn.d.ts +0 -5
- package/dist/types/components/BoardColumn.d.ts.map +0 -1
- package/dist/types/components/BoardColumnLabel.d.ts +0 -2
- package/dist/types/components/BoardColumnLabel.d.ts.map +0 -1
- package/dist/types/components/BoardEachColumn.d.ts +0 -10
- package/dist/types/components/BoardEachColumn.d.ts.map +0 -1
- package/dist/types/components/BoardEachItem.d.ts +0 -10
- package/dist/types/components/BoardEachItem.d.ts.map +0 -1
- package/dist/types/components/BoardItem.d.ts +0 -8
- package/dist/types/components/BoardItem.d.ts.map +0 -1
- package/dist/types/components/BoardNullColumn.d.ts +0 -7
- package/dist/types/components/BoardNullColumn.d.ts.map +0 -1
- package/dist/types/components/index.d.ts +0 -8
- package/dist/types/components/index.d.ts.map +0 -1
- package/dist/types/const.d.ts +0 -2
- package/dist/types/const.d.ts.map +0 -1
- package/dist/types/contexts.d.ts +0 -18
- package/dist/types/contexts.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/internal/boardAnalyzer.d.ts +0 -8
- package/dist/types/internal/boardAnalyzer.d.ts.map +0 -1
- package/dist/types/internal/useBoardItemsMethods.d.ts +0 -15
- package/dist/types/internal/useBoardItemsMethods.d.ts.map +0 -1
- package/dist/types/internal/useCreateBoardColumns.d.ts +0 -10
- package/dist/types/internal/useCreateBoardColumns.d.ts.map +0 -1
- package/dist/types/internal/useDynamicBoard.d.ts +0 -10
- package/dist/types/internal/useDynamicBoard.d.ts.map +0 -1
- package/dist/types/internal/useGroupItemsByColumn.d.ts +0 -5
- package/dist/types/internal/useGroupItemsByColumn.d.ts.map +0 -1
- package/dist/types/internal/useStaticBoard.d.ts +0 -9
- package/dist/types/internal/useStaticBoard.d.ts.map +0 -1
- package/dist/types/tsconfig.tsbuildinfo +0 -1
- package/dist/types/types/BoardColumnNode.d.ts +0 -15
- package/dist/types/types/BoardColumnNode.d.ts.map +0 -1
- package/dist/types/types/BoardData.d.ts +0 -5
- package/dist/types/types/BoardData.d.ts.map +0 -1
- package/dist/types/types/BoardItemNode.d.ts +0 -7
- package/dist/types/types/BoardItemNode.d.ts.map +0 -1
- package/dist/types/types/BoardMethods.d.ts +0 -17
- package/dist/types/types/BoardMethods.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -4
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/utils/arrayMove.d.ts +0 -2
- package/dist/types/utils/arrayMove.d.ts.map +0 -1
|
@@ -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;"}
|
|
@@ -1,43 +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 useBoardItemsMethods = require("./useBoardItemsMethods.cjs");
|
|
8
|
-
const useStaticBoard = ({
|
|
9
|
-
sortableBy,
|
|
10
|
-
sortScope,
|
|
11
|
-
columns,
|
|
12
|
-
discriminationField,
|
|
13
|
-
itemEntities
|
|
14
|
-
}) => {
|
|
15
|
-
const desugaredSortableByField = reactBinding.useDesugaredRelativeSingleField(sortableBy);
|
|
16
|
-
const desugaredDiscriminationField = reactBinding.useDesugaredRelativeSingleField(discriminationField);
|
|
17
|
-
const getDiscriminatorValue = React.useCallback((entity) => {
|
|
18
|
-
return entity.getField(desugaredDiscriminationField).value;
|
|
19
|
-
}, [desugaredDiscriminationField]);
|
|
20
|
-
const groupItemsByColumn = useGroupItemsByColumn.useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
|
|
21
|
-
const columnsResult = useCreateBoardColumns.useCreateBoardColumns({
|
|
22
|
-
columns,
|
|
23
|
-
columnIdGetter: (it) => it.value,
|
|
24
|
-
groupItemsByColumn,
|
|
25
|
-
items: itemEntities
|
|
26
|
-
});
|
|
27
|
-
const connectItemToColumn = React.useCallback((item, column) => {
|
|
28
|
-
item.getField(desugaredDiscriminationField).updateValue(column?.value ?? null);
|
|
29
|
-
}, [desugaredDiscriminationField]);
|
|
30
|
-
const { addItem, moveItem, removeItem } = useBoardItemsMethods.useBoardItemsMethods({
|
|
31
|
-
columnIdGetter: (it) => it.value,
|
|
32
|
-
connectItemToColumn,
|
|
33
|
-
groupItemsByColumn,
|
|
34
|
-
itemEntities,
|
|
35
|
-
desugaredSortableByField,
|
|
36
|
-
sortScope,
|
|
37
|
-
getDiscriminatorValue
|
|
38
|
-
});
|
|
39
|
-
const methods = React.useMemo(() => ({ addItem, moveItem, removeItem }), [addItem, moveItem, removeItem]);
|
|
40
|
-
return [{ columns: columnsResult }, methods];
|
|
41
|
-
};
|
|
42
|
-
exports.useStaticBoard = useStaticBoard;
|
|
43
|
-
//# sourceMappingURL=useStaticBoard.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStaticBoard.cjs","sources":["../../../../../packages/react-board/src/internal/useStaticBoard.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { EntityAccessor, EntityListAccessor, useDesugaredRelativeSingleField } from '@contember/react-binding'\nimport { BoardMethods, BoardStaticColumnValue } from '../types'\nimport { useGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { useCreateBoardColumns } from './useCreateBoardColumns'\nimport { useBoardItemsMethods } from './useBoardItemsMethods'\nimport { BoardData } from '../types/BoardData'\nimport { BoardCommonProps, BoardStaticColumnsBindingProps } from '../components'\n\n\nexport type UseStaticBoardBindingProps =\n\t& Omit<BoardCommonProps, 'children'>\n\t& BoardStaticColumnsBindingProps\n\t& {\n\t\titemEntities: EntityListAccessor\n\t}\n\nexport const useStaticBoard = ({\n\tsortableBy,\n\tsortScope,\n\tcolumns,\n\tdiscriminationField,\n\titemEntities,\n}: UseStaticBoardBindingProps): [BoardData<BoardStaticColumnValue>, BoardMethods<BoardStaticColumnValue>] => {\n\n\tconst desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy)\n\tconst desugaredDiscriminationField = useDesugaredRelativeSingleField(discriminationField)\n\n\tconst getDiscriminatorValue = useCallback((entity: EntityAccessor) => {\n\t\treturn entity.getField<string>(desugaredDiscriminationField).value\n\t}, [desugaredDiscriminationField])\n\n\tconst groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField)\n\n\tconst columnsResult = useCreateBoardColumns({\n\t\tcolumns,\n\t\tcolumnIdGetter: it => it.value,\n\t\tgroupItemsByColumn,\n\t\titems: itemEntities,\n\t})\n\n\tconst connectItemToColumn = useCallback((item: EntityAccessor, column: BoardStaticColumnValue | null) => {\n\t\titem.getField(desugaredDiscriminationField).updateValue(column?.value ?? null)\n\t}, [desugaredDiscriminationField])\n\n\tconst { addItem, moveItem, removeItem } = useBoardItemsMethods({\n\t\tcolumnIdGetter: it => it.value,\n\t\tconnectItemToColumn,\n\t\tgroupItemsByColumn,\n\t\titemEntities,\n\t\tdesugaredSortableByField,\n\t\tsortScope,\n\t\tgetDiscriminatorValue,\n\t})\n\n\tconst methods = useMemo(() => ({ addItem, moveItem, removeItem }), [addItem, moveItem, removeItem])\n\n\treturn [{ columns: columnsResult }, methods]\n}\n"],"names":["useDesugaredRelativeSingleField","useCallback","useGroupItemsByColumn","useCreateBoardColumns","useBoardItemsMethods","useMemo"],"mappings":";;;;;;;AAiBO,MAAM,iBAAiB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAA6G;AAEtG,QAAA,2BAA2BA,6CAAgC,UAAU;AACrE,QAAA,+BAA+BA,6CAAgC,mBAAmB;AAElF,QAAA,wBAAwBC,kBAAY,CAAC,WAA2B;AAC9D,WAAA,OAAO,SAAiB,4BAA4B,EAAE;AAAA,EAAA,GAC3D,CAAC,4BAA4B,CAAC;AAE3B,QAAA,qBAAqBC,sBAAAA,sBAAsB,uBAAuB,wBAAwB;AAEhG,QAAM,gBAAgBC,sBAAAA,sBAAsB;AAAA,IAC3C;AAAA,IACA,gBAAgB,QAAM,GAAG;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,EAAA,CACP;AAED,QAAM,sBAAsBF,MAAAA,YAAY,CAAC,MAAsB,WAA0C;AACxG,SAAK,SAAS,4BAA4B,EAAE,YAAY,QAAQ,SAAS,IAAI;AAAA,EAAA,GAC3E,CAAC,4BAA4B,CAAC;AAEjC,QAAM,EAAE,SAAS,UAAU,WAAA,IAAeG,qBAAAA,qBAAqB;AAAA,IAC9D,gBAAgB,QAAM,GAAG;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACA;AAED,QAAM,UAAUC,MAAAA,QAAQ,OAAO,EAAE,SAAS,UAAU,WAAW,IAAI,CAAC,SAAS,UAAU,UAAU,CAAC;AAElG,SAAO,CAAC,EAAE,SAAS,cAAA,GAAiB,OAAO;AAC5C;;"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { useCallback, useMemo } from "react";
|
|
2
|
-
import { useDesugaredRelativeSingleField } from "@contember/react-binding";
|
|
3
|
-
import { useGroupItemsByColumn } from "./useGroupItemsByColumn.js";
|
|
4
|
-
import { useCreateBoardColumns } from "./useCreateBoardColumns.js";
|
|
5
|
-
import { useBoardItemsMethods } from "./useBoardItemsMethods.js";
|
|
6
|
-
const useStaticBoard = ({
|
|
7
|
-
sortableBy,
|
|
8
|
-
sortScope,
|
|
9
|
-
columns,
|
|
10
|
-
discriminationField,
|
|
11
|
-
itemEntities
|
|
12
|
-
}) => {
|
|
13
|
-
const desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy);
|
|
14
|
-
const desugaredDiscriminationField = useDesugaredRelativeSingleField(discriminationField);
|
|
15
|
-
const getDiscriminatorValue = useCallback((entity) => {
|
|
16
|
-
return entity.getField(desugaredDiscriminationField).value;
|
|
17
|
-
}, [desugaredDiscriminationField]);
|
|
18
|
-
const groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
|
|
19
|
-
const columnsResult = useCreateBoardColumns({
|
|
20
|
-
columns,
|
|
21
|
-
columnIdGetter: (it) => it.value,
|
|
22
|
-
groupItemsByColumn,
|
|
23
|
-
items: itemEntities
|
|
24
|
-
});
|
|
25
|
-
const connectItemToColumn = useCallback((item, column) => {
|
|
26
|
-
item.getField(desugaredDiscriminationField).updateValue(column?.value ?? null);
|
|
27
|
-
}, [desugaredDiscriminationField]);
|
|
28
|
-
const { addItem, moveItem, removeItem } = useBoardItemsMethods({
|
|
29
|
-
columnIdGetter: (it) => it.value,
|
|
30
|
-
connectItemToColumn,
|
|
31
|
-
groupItemsByColumn,
|
|
32
|
-
itemEntities,
|
|
33
|
-
desugaredSortableByField,
|
|
34
|
-
sortScope,
|
|
35
|
-
getDiscriminatorValue
|
|
36
|
-
});
|
|
37
|
-
const methods = useMemo(() => ({ addItem, moveItem, removeItem }), [addItem, moveItem, removeItem]);
|
|
38
|
-
return [{ columns: columnsResult }, methods];
|
|
39
|
-
};
|
|
40
|
-
export {
|
|
41
|
-
useStaticBoard
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=useStaticBoard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStaticBoard.js","sources":["../../../../../packages/react-board/src/internal/useStaticBoard.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { EntityAccessor, EntityListAccessor, useDesugaredRelativeSingleField } from '@contember/react-binding'\nimport { BoardMethods, BoardStaticColumnValue } from '../types'\nimport { useGroupItemsByColumn } from './useGroupItemsByColumn'\nimport { useCreateBoardColumns } from './useCreateBoardColumns'\nimport { useBoardItemsMethods } from './useBoardItemsMethods'\nimport { BoardData } from '../types/BoardData'\nimport { BoardCommonProps, BoardStaticColumnsBindingProps } from '../components'\n\n\nexport type UseStaticBoardBindingProps =\n\t& Omit<BoardCommonProps, 'children'>\n\t& BoardStaticColumnsBindingProps\n\t& {\n\t\titemEntities: EntityListAccessor\n\t}\n\nexport const useStaticBoard = ({\n\tsortableBy,\n\tsortScope,\n\tcolumns,\n\tdiscriminationField,\n\titemEntities,\n}: UseStaticBoardBindingProps): [BoardData<BoardStaticColumnValue>, BoardMethods<BoardStaticColumnValue>] => {\n\n\tconst desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy)\n\tconst desugaredDiscriminationField = useDesugaredRelativeSingleField(discriminationField)\n\n\tconst getDiscriminatorValue = useCallback((entity: EntityAccessor) => {\n\t\treturn entity.getField<string>(desugaredDiscriminationField).value\n\t}, [desugaredDiscriminationField])\n\n\tconst groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField)\n\n\tconst columnsResult = useCreateBoardColumns({\n\t\tcolumns,\n\t\tcolumnIdGetter: it => it.value,\n\t\tgroupItemsByColumn,\n\t\titems: itemEntities,\n\t})\n\n\tconst connectItemToColumn = useCallback((item: EntityAccessor, column: BoardStaticColumnValue | null) => {\n\t\titem.getField(desugaredDiscriminationField).updateValue(column?.value ?? null)\n\t}, [desugaredDiscriminationField])\n\n\tconst { addItem, moveItem, removeItem } = useBoardItemsMethods({\n\t\tcolumnIdGetter: it => it.value,\n\t\tconnectItemToColumn,\n\t\tgroupItemsByColumn,\n\t\titemEntities,\n\t\tdesugaredSortableByField,\n\t\tsortScope,\n\t\tgetDiscriminatorValue,\n\t})\n\n\tconst methods = useMemo(() => ({ addItem, moveItem, removeItem }), [addItem, moveItem, removeItem])\n\n\treturn [{ columns: columnsResult }, methods]\n}\n"],"names":[],"mappings":";;;;;AAiBO,MAAM,iBAAiB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAA6G;AAEtG,QAAA,2BAA2B,gCAAgC,UAAU;AACrE,QAAA,+BAA+B,gCAAgC,mBAAmB;AAElF,QAAA,wBAAwB,YAAY,CAAC,WAA2B;AAC9D,WAAA,OAAO,SAAiB,4BAA4B,EAAE;AAAA,EAAA,GAC3D,CAAC,4BAA4B,CAAC;AAE3B,QAAA,qBAAqB,sBAAsB,uBAAuB,wBAAwB;AAEhG,QAAM,gBAAgB,sBAAsB;AAAA,IAC3C;AAAA,IACA,gBAAgB,QAAM,GAAG;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,EAAA,CACP;AAED,QAAM,sBAAsB,YAAY,CAAC,MAAsB,WAA0C;AACxG,SAAK,SAAS,4BAA4B,EAAE,YAAY,QAAQ,SAAS,IAAI;AAAA,EAAA,GAC3E,CAAC,4BAA4B,CAAC;AAEjC,QAAM,EAAE,SAAS,UAAU,WAAA,IAAe,qBAAqB;AAAA,IAC9D,gBAAgB,QAAM,GAAG;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACA;AAED,QAAM,UAAU,QAAQ,OAAO,EAAE,SAAS,UAAU,WAAW,IAAI,CAAC,SAAS,UAAU,UAAU,CAAC;AAElG,SAAO,CAAC,EAAE,SAAS,cAAA,GAAiB,OAAO;AAC5C;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
function arrayMove(array, from, to) {
|
|
4
|
-
const newArray = array.slice();
|
|
5
|
-
newArray.splice(to, 0, newArray.splice(from, 1)[0]);
|
|
6
|
-
return newArray;
|
|
7
|
-
}
|
|
8
|
-
exports.arrayMove = arrayMove;
|
|
9
|
-
//# sourceMappingURL=arrayMove.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrayMove.cjs","sources":["../../../../../packages/react-board/src/utils/arrayMove.ts"],"sourcesContent":["export function arrayMove<T>(array: T[], from: number, to: number): T[] {\n\tconst newArray = array.slice()\n\tnewArray.splice(to, 0, newArray.splice(from, 1)[0])\n\treturn newArray\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,UAAa,OAAY,MAAc,IAAiB;AACjE,QAAA,WAAW,MAAM,MAAM;AACpB,WAAA,OAAO,IAAI,GAAG,SAAS,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,SAAA;AACR;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrayMove.js","sources":["../../../../../packages/react-board/src/utils/arrayMove.ts"],"sourcesContent":["export function arrayMove<T>(array: T[], from: number, to: number): T[] {\n\tconst newArray = array.slice()\n\tnewArray.splice(to, 0, newArray.splice(from, 1)[0])\n\treturn newArray\n}\n"],"names":[],"mappings":"AAAgB,SAAA,UAAa,OAAY,MAAc,IAAiB;AACjE,QAAA,WAAW,MAAM,MAAM;AACpB,WAAA,OAAO,IAAI,GAAG,SAAS,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,SAAA;AACR;"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const _const = require("./src/const.cjs");
|
|
4
|
-
const contexts = require("./src/contexts.cjs");
|
|
5
|
-
const Board = require("./src/components/Board.cjs");
|
|
6
|
-
const BoardColumn = require("./src/components/BoardColumn.cjs");
|
|
7
|
-
const BoardItem = require("./src/components/BoardItem.cjs");
|
|
8
|
-
const BoardEachColumn = require("./src/components/BoardEachColumn.cjs");
|
|
9
|
-
const BoardEachItem = require("./src/components/BoardEachItem.cjs");
|
|
10
|
-
const BoardNullColumn = require("./src/components/BoardNullColumn.cjs");
|
|
11
|
-
const BoardColumnLabel = require("./src/components/BoardColumnLabel.cjs");
|
|
12
|
-
exports.BoardNullColumnPlaceholder = _const.BoardNullColumnPlaceholder;
|
|
13
|
-
exports.BoardColumnsContext = contexts.BoardColumnsContext;
|
|
14
|
-
exports.BoardCurrentColumnContext = contexts.BoardCurrentColumnContext;
|
|
15
|
-
exports.BoardCurrentItemContext = contexts.BoardCurrentItemContext;
|
|
16
|
-
exports.BoardMethodsContext = contexts.BoardMethodsContext;
|
|
17
|
-
exports.useBoardColumns = contexts.useBoardColumns;
|
|
18
|
-
exports.useBoardCurrentColumn = contexts.useBoardCurrentColumn;
|
|
19
|
-
exports.useBoardCurrentItem = contexts.useBoardCurrentItem;
|
|
20
|
-
exports.useBoardMethods = contexts.useBoardMethods;
|
|
21
|
-
exports.Board = Board.Board;
|
|
22
|
-
exports.BoardColumn = BoardColumn.BoardColumn;
|
|
23
|
-
exports.BoardItem = BoardItem.BoardItem;
|
|
24
|
-
exports.BoardEachColumn = BoardEachColumn.BoardEachColumn;
|
|
25
|
-
exports.BoardEachItem = BoardEachItem.BoardEachItem;
|
|
26
|
-
exports.BoardNullColumn = BoardNullColumn.BoardNullColumn;
|
|
27
|
-
exports.BoardColumnLabel = BoardColumnLabel.BoardColumnLabel;
|
|
28
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/production/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { BoardNullColumnPlaceholder } from "./src/const.js";
|
|
2
|
-
import { BoardColumnsContext, BoardCurrentColumnContext, BoardCurrentItemContext, BoardMethodsContext, useBoardColumns, useBoardCurrentColumn, useBoardCurrentItem, useBoardMethods } from "./src/contexts.js";
|
|
3
|
-
import { Board } from "./src/components/Board.js";
|
|
4
|
-
import { BoardColumn } from "./src/components/BoardColumn.js";
|
|
5
|
-
import { BoardItem } from "./src/components/BoardItem.js";
|
|
6
|
-
import { BoardEachColumn } from "./src/components/BoardEachColumn.js";
|
|
7
|
-
import { BoardEachItem } from "./src/components/BoardEachItem.js";
|
|
8
|
-
import { BoardNullColumn } from "./src/components/BoardNullColumn.js";
|
|
9
|
-
import { BoardColumnLabel } from "./src/components/BoardColumnLabel.js";
|
|
10
|
-
export {
|
|
11
|
-
Board,
|
|
12
|
-
BoardColumn,
|
|
13
|
-
BoardColumnLabel,
|
|
14
|
-
BoardColumnsContext,
|
|
15
|
-
BoardCurrentColumnContext,
|
|
16
|
-
BoardCurrentItemContext,
|
|
17
|
-
BoardEachColumn,
|
|
18
|
-
BoardEachItem,
|
|
19
|
-
BoardItem,
|
|
20
|
-
BoardMethodsContext,
|
|
21
|
-
BoardNullColumn,
|
|
22
|
-
BoardNullColumnPlaceholder,
|
|
23
|
-
useBoardColumns,
|
|
24
|
-
useBoardCurrentColumn,
|
|
25
|
-
useBoardCurrentItem,
|
|
26
|
-
useBoardMethods
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const reactBinding = require("@contember/react-binding");
|
|
5
|
-
const boardAnalyzer = require("../internal/boardAnalyzer.cjs");
|
|
6
|
-
const React = require("react");
|
|
7
|
-
const useDynamicBoard = require("../internal/useDynamicBoard.cjs");
|
|
8
|
-
const useStaticBoard = require("../internal/useStaticBoard.cjs");
|
|
9
|
-
const contexts = require("../contexts.cjs");
|
|
10
|
-
const Board = reactBinding.Component((props) => {
|
|
11
|
-
if ("entities" in props) {
|
|
12
|
-
if (Array.isArray(props.columns)) {
|
|
13
|
-
return /* @__PURE__ */ jsxRuntime.jsx(BoardQualifiedStatic, { ...props });
|
|
14
|
-
} else {
|
|
15
|
-
return /* @__PURE__ */ jsxRuntime.jsx(BoardQualifiedDynamic, { ...props });
|
|
16
|
-
}
|
|
17
|
-
} else {
|
|
18
|
-
if (Array.isArray(props.columns)) {
|
|
19
|
-
return /* @__PURE__ */ jsxRuntime.jsx(RelativeStaticBoard, { ...props });
|
|
20
|
-
} else {
|
|
21
|
-
return /* @__PURE__ */ jsxRuntime.jsx(RelativeDynamicBoard, { ...props });
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
const BoardQualifiedDynamic = reactBinding.Component(({ entities, orderBy, limit, offset, columns, columnsSortableBy, discriminationField, sortableBy, sortScope, children }) => {
|
|
26
|
-
const itemsAccessor = reactBinding.useEntityListSubTree({ entities, orderBy, limit, offset });
|
|
27
|
-
const columnsAccessor = reactBinding.useEntityListSubTree({ entities: columns });
|
|
28
|
-
const [data, methods] = useDynamicBoard.useDynamicBoard({
|
|
29
|
-
columnEntities: columnsAccessor,
|
|
30
|
-
itemEntities: itemsAccessor,
|
|
31
|
-
columns,
|
|
32
|
-
sortableBy,
|
|
33
|
-
sortScope,
|
|
34
|
-
columnsSortableBy,
|
|
35
|
-
discriminationField
|
|
36
|
-
});
|
|
37
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardColumnsContext.Provider, { value: data.columns, children }) });
|
|
38
|
-
}, ({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, columnsSortableBy, children }, env) => {
|
|
39
|
-
const childrenByType = boardAnalyzer.boardAnalyzer.processChildren(children, env);
|
|
40
|
-
const columnChildren = childrenByType.filter((it) => it.type === "column").map((it) => it.children);
|
|
41
|
-
const itemChildren = childrenByType.filter((it) => it.type === "item").map((it) => it.children);
|
|
42
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsxs(reactBinding.EntityListSubTree, { entities, orderBy, limit, offset, children: [
|
|
44
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasOne, { ...typeof discriminationField === "string" ? { field: discriminationField } : discriminationField }),
|
|
45
|
-
sortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof sortableBy === "string" ? { field: sortableBy } : sortableBy }),
|
|
46
|
-
itemChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
47
|
-
] }),
|
|
48
|
-
/* @__PURE__ */ jsxRuntime.jsxs(reactBinding.EntityListSubTree, { entities: columns, children: [
|
|
49
|
-
columnsSortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof columnsSortableBy === "string" ? { field: columnsSortableBy } : columnsSortableBy }),
|
|
50
|
-
columnChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
51
|
-
] })
|
|
52
|
-
] });
|
|
53
|
-
});
|
|
54
|
-
const RelativeDynamicBoard = reactBinding.Component(({ field, orderBy, limit, offset, columns, columnsSortableBy, discriminationField, sortableBy, sortScope, children }) => {
|
|
55
|
-
const itemsAccessor = reactBinding.useEntityList({ field, orderBy, limit, offset });
|
|
56
|
-
const columnsAccessor = reactBinding.useEntityListSubTree({ entities: columns });
|
|
57
|
-
const [data, methods] = useDynamicBoard.useDynamicBoard({
|
|
58
|
-
columnEntities: columnsAccessor,
|
|
59
|
-
itemEntities: itemsAccessor,
|
|
60
|
-
columns,
|
|
61
|
-
sortableBy,
|
|
62
|
-
sortScope,
|
|
63
|
-
columnsSortableBy,
|
|
64
|
-
discriminationField
|
|
65
|
-
});
|
|
66
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardColumnsContext.Provider, { value: data.columns, children }) });
|
|
67
|
-
}, ({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, columnsSortableBy, children }, env) => {
|
|
68
|
-
const childrenByType = boardAnalyzer.boardAnalyzer.processChildren(children, env);
|
|
69
|
-
const columnChildren = childrenByType.filter((it) => it.type === "column").map((it) => it.children);
|
|
70
|
-
const itemChildren = childrenByType.filter((it) => it.type === "item").map((it) => it.children);
|
|
71
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
72
|
-
/* @__PURE__ */ jsxRuntime.jsxs(reactBinding.HasMany, { field, orderBy, limit, offset, children: [
|
|
73
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasOne, { ...typeof discriminationField === "string" ? { field: discriminationField } : discriminationField }),
|
|
74
|
-
sortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof sortableBy === "string" ? { field: sortableBy } : sortableBy }),
|
|
75
|
-
itemChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
76
|
-
] }),
|
|
77
|
-
/* @__PURE__ */ jsxRuntime.jsxs(reactBinding.EntityListSubTree, { entities: columns, children: [
|
|
78
|
-
columnsSortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof columnsSortableBy === "string" ? { field: columnsSortableBy } : columnsSortableBy }),
|
|
79
|
-
columnChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
80
|
-
] })
|
|
81
|
-
] });
|
|
82
|
-
});
|
|
83
|
-
const BoardQualifiedStatic = reactBinding.Component(({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, sortScope, children }) => {
|
|
84
|
-
const itemsAccessor = reactBinding.useEntityListSubTree({ entities, orderBy, limit, offset });
|
|
85
|
-
const [data, methods] = useStaticBoard.useStaticBoard({
|
|
86
|
-
itemEntities: itemsAccessor,
|
|
87
|
-
columns,
|
|
88
|
-
sortableBy,
|
|
89
|
-
sortScope,
|
|
90
|
-
discriminationField
|
|
91
|
-
});
|
|
92
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardColumnsContext.Provider, { value: data.columns, children }) });
|
|
93
|
-
}, ({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, children }, env) => {
|
|
94
|
-
const childrenByType = boardAnalyzer.boardAnalyzer.processChildren(children, env);
|
|
95
|
-
const itemChildren = childrenByType.filter((it) => it.type === "item").map((it) => it.children);
|
|
96
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(reactBinding.EntityListSubTree, { entities, orderBy, limit, offset, children: [
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof discriminationField === "string" ? { field: discriminationField } : discriminationField }),
|
|
98
|
-
sortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof sortableBy === "string" ? { field: sortableBy } : sortableBy }),
|
|
99
|
-
itemChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
100
|
-
] }) });
|
|
101
|
-
});
|
|
102
|
-
const RelativeStaticBoard = reactBinding.Component(({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, sortScope, children }) => {
|
|
103
|
-
const itemsAccessor = reactBinding.useEntityList({ field, orderBy, limit, offset });
|
|
104
|
-
const [data, methods] = useStaticBoard.useStaticBoard({
|
|
105
|
-
itemEntities: itemsAccessor,
|
|
106
|
-
columns,
|
|
107
|
-
sortableBy,
|
|
108
|
-
sortScope,
|
|
109
|
-
discriminationField
|
|
110
|
-
});
|
|
111
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.BoardColumnsContext.Provider, { value: data.columns, children }) });
|
|
112
|
-
}, ({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, children }, env) => {
|
|
113
|
-
const childrenByType = boardAnalyzer.boardAnalyzer.processChildren(children, env);
|
|
114
|
-
const itemChildren = childrenByType.filter((it) => it.type === "item").map((it) => it.children);
|
|
115
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(reactBinding.HasMany, { field, orderBy, limit, offset, children: [
|
|
116
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof discriminationField === "string" ? { field: discriminationField } : discriminationField }),
|
|
117
|
-
sortableBy && /* @__PURE__ */ jsxRuntime.jsx(reactBinding.Field, { ...typeof sortableBy === "string" ? { field: sortableBy } : sortableBy }),
|
|
118
|
-
itemChildren.map((it, index) => /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: it }, index))
|
|
119
|
-
] }) });
|
|
120
|
-
});
|
|
121
|
-
exports.Board = Board;
|
|
122
|
-
//# sourceMappingURL=Board.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Board.cjs","sources":["../../../../../packages/react-board/src/components/Board.tsx"],"sourcesContent":["import {\n\tComponent,\n\tEntityListSubTree,\n\tField,\n\tHasMany,\n\tHasOne,\n\tSugaredQualifiedEntityList,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tuseEntityList,\n\tuseEntityListSubTree,\n} from '@contember/react-binding'\nimport { boardAnalyzer } from '../internal/boardAnalyzer'\nimport { Fragment, ReactNode } from 'react'\nimport { useDynamicBoard } from '../internal/useDynamicBoard'\nimport { useStaticBoard } from '../internal/useStaticBoard'\nimport { BoardColumnsContext, BoardMethodsContext } from '../contexts'\n\nexport type BoardProps =\n\t| BoardQualifiedDynamicProps\n\t| BoardRelativeDynamicProps\n\t| BoardQualifiedStaticProps\n\t| BoardRelativeStaticProps\n\n\nexport const Board = Component<BoardProps>(props => {\n\tif ('entities' in props) {\n\t\tif (Array.isArray(props.columns)) {\n\t\t\treturn <BoardQualifiedStatic {...(props as BoardQualifiedStaticProps)} />\n\t\t} else {\n\t\t\treturn <BoardQualifiedDynamic {...(props as BoardQualifiedDynamicProps)} />\n\t\t}\n\t} else {\n\t\tif (Array.isArray(props.columns)) {\n\t\t\treturn <RelativeStaticBoard {...(props as BoardRelativeStaticProps)} />\n\t\t} else {\n\t\t\treturn <RelativeDynamicBoard {...(props as BoardRelativeDynamicProps)} />\n\t\t}\n\t}\n})\n\nexport type BoardDynamicColumnsBindingProps = {\n\tcolumns: SugaredQualifiedEntityList['entities']\n\tcolumnsSortableBy?: string | SugaredRelativeSingleField\n\tdiscriminationField: string | SugaredRelativeSingleEntity\n}\n\nexport type BoardStaticColumnsBindingProps = {\n\tcolumns: {\n\t\tvalue: string\n\t\tlabel: ReactNode\n\t}[]\n\tdiscriminationField: string | SugaredRelativeSingleField\n}\n\nexport type BoardCommonProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tsortableBy?: string | SugaredRelativeSingleField\n\t\tsortScope?: 'column' | 'board'\n\t}\n\nexport type BoardQualifiedItemsProps =\n\t& Pick<SugaredQualifiedEntityList, 'entities' | 'orderBy' | 'limit' | 'offset'>\n\n\nexport type BoardRelativeItemsProps =\n\t& Pick<SugaredRelativeEntityList, 'field' | 'orderBy' | 'limit' | 'offset'>\n\n\nexport type BoardQualifiedDynamicProps =\n\t& BoardCommonProps\n\t& BoardDynamicColumnsBindingProps\n\t& BoardQualifiedItemsProps\n\nconst BoardQualifiedDynamic = Component<BoardQualifiedDynamicProps>(({ entities, orderBy, limit, offset, columns, columnsSortableBy, discriminationField, sortableBy, sortScope, children }) => {\n\tconst itemsAccessor = useEntityListSubTree({ entities, orderBy, limit, offset })\n\tconst columnsAccessor = useEntityListSubTree({ entities: columns })\n\tconst [data, methods] = useDynamicBoard({\n\t\tcolumnEntities: columnsAccessor,\n\t\titemEntities: itemsAccessor,\n\t\tcolumns,\n\t\tsortableBy,\n\t\tsortScope,\n\t\tcolumnsSortableBy,\n\t\tdiscriminationField,\n\t})\n\treturn (\n\t\t<BoardMethodsContext.Provider value={methods}>\n\t\t\t<BoardColumnsContext.Provider value={data.columns}>\n\t\t\t\t{children}\n\t\t\t</BoardColumnsContext.Provider>\n\t\t</BoardMethodsContext.Provider>\n\t)\n}, ({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, columnsSortableBy, children }, env) => {\n\n\tconst childrenByType = boardAnalyzer.processChildren(children, env)\n\tconst columnChildren = childrenByType.filter(it => it.type === 'column').map(it => it.children)\n\tconst itemChildren = childrenByType.filter(it => it.type === 'item').map(it => it.children)\n\n\treturn (<>\n\t\t<EntityListSubTree entities={entities} orderBy={orderBy} limit={limit} offset={offset}>\n\t\t\t<HasOne {...typeof discriminationField === 'string' ? { field: discriminationField } : discriminationField} />\n\t\t\t{sortableBy && <Field {...typeof sortableBy === 'string' ? { field: sortableBy } : sortableBy} />}\n\t\t\t{itemChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</EntityListSubTree>\n\t\t<EntityListSubTree entities={columns}>\n\t\t\t{columnsSortableBy && <Field {...typeof columnsSortableBy === 'string' ? { field: columnsSortableBy } : columnsSortableBy} />}\n\t\t\t{columnChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</EntityListSubTree>\n\t</>)\n})\n\n\nexport type BoardRelativeDynamicProps =\n\t& BoardCommonProps\n\t& BoardDynamicColumnsBindingProps\n\t& BoardRelativeItemsProps\n\n\nconst RelativeDynamicBoard = Component<BoardRelativeDynamicProps>(({ field, orderBy, limit, offset, columns, columnsSortableBy, discriminationField, sortableBy, sortScope, children }) => {\n\tconst itemsAccessor = useEntityList({ field, orderBy, limit, offset })\n\tconst columnsAccessor = useEntityListSubTree({ entities: columns })\n\tconst [data, methods] = useDynamicBoard({\n\t\tcolumnEntities: columnsAccessor,\n\t\titemEntities: itemsAccessor,\n\t\tcolumns,\n\t\tsortableBy,\n\t\tsortScope,\n\t\tcolumnsSortableBy,\n\t\tdiscriminationField,\n\t})\n\treturn (\n\t\t<BoardMethodsContext.Provider value={methods}>\n\t\t\t<BoardColumnsContext.Provider value={data.columns}>\n\t\t\t\t{children}\n\t\t\t</BoardColumnsContext.Provider>\n\t\t</BoardMethodsContext.Provider>\n\t)\n}, ({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, columnsSortableBy, children }, env) => {\n\tconst childrenByType = boardAnalyzer.processChildren(children, env)\n\tconst columnChildren = childrenByType.filter(it => it.type === 'column').map(it => it.children)\n\tconst itemChildren = childrenByType.filter(it => it.type === 'item').map(it => it.children)\n\treturn (<>\n\t\t<HasMany field={field} orderBy={orderBy} limit={limit} offset={offset}>\n\t\t\t<HasOne {...typeof discriminationField === 'string' ? { field: discriminationField } : discriminationField} />\n\t\t\t{sortableBy && <Field {...typeof sortableBy === 'string' ? { field: sortableBy } : sortableBy} />}\n\t\t\t{itemChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</HasMany>\n\t\t<EntityListSubTree entities={columns}>\n\t\t\t{columnsSortableBy && <Field {...typeof columnsSortableBy === 'string' ? { field: columnsSortableBy } : columnsSortableBy} />}\n\t\t\t{columnChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</EntityListSubTree>\n\t</>)\n})\nexport type BoardQualifiedStaticProps =\n\t& BoardCommonProps\n\t& BoardStaticColumnsBindingProps\n\t& BoardQualifiedItemsProps\n\n\nconst BoardQualifiedStatic = Component<BoardQualifiedStaticProps>(({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, sortScope, children }) => {\n\tconst itemsAccessor = useEntityListSubTree({ entities, orderBy, limit, offset })\n\tconst [data, methods] = useStaticBoard({\n\t\titemEntities: itemsAccessor,\n\t\tcolumns,\n\t\tsortableBy,\n\t\tsortScope,\n\t\tdiscriminationField,\n\t})\n\treturn (\n\t\t<BoardMethodsContext.Provider value={methods}>\n\t\t\t<BoardColumnsContext.Provider value={data.columns}>\n\t\t\t\t{children}\n\t\t\t</BoardColumnsContext.Provider>\n\t\t</BoardMethodsContext.Provider>\n\t)\n}, ({ entities, orderBy, limit, offset, columns, discriminationField, sortableBy, children }, env) => {\n\tconst childrenByType = boardAnalyzer.processChildren(children, env)\n\tconst itemChildren = childrenByType.filter(it => it.type === 'item').map(it => it.children)\n\treturn (<>\n\t\t<EntityListSubTree entities={entities} orderBy={orderBy} limit={limit} offset={offset}>\n\t\t\t<Field {...typeof discriminationField === 'string' ? { field: discriminationField } : discriminationField} />\n\t\t\t{sortableBy && <Field {...typeof sortableBy === 'string' ? { field: sortableBy } : sortableBy} />}\n\t\t\t{itemChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</EntityListSubTree>\n\t</>)\n})\n\n\nexport type BoardRelativeStaticProps =\n\t& BoardCommonProps\n\t& BoardStaticColumnsBindingProps\n\t& BoardRelativeItemsProps\n\nconst RelativeStaticBoard = Component<BoardRelativeStaticProps>(({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, sortScope, children }) => {\n\tconst itemsAccessor = useEntityList({ field, orderBy, limit, offset })\n\tconst [data, methods] = useStaticBoard({\n\t\titemEntities: itemsAccessor,\n\t\tcolumns,\n\t\tsortableBy,\n\t\tsortScope,\n\t\tdiscriminationField,\n\t})\n\treturn (\n\t\t<BoardMethodsContext.Provider value={methods}>\n\t\t\t<BoardColumnsContext.Provider value={data.columns}>\n\t\t\t\t{children}\n\t\t\t</BoardColumnsContext.Provider>\n\t\t</BoardMethodsContext.Provider>\n\t)\n}, ({ field, orderBy, limit, offset, columns, discriminationField, sortableBy, children }, env) => {\n\tconst childrenByType = boardAnalyzer.processChildren(children, env)\n\tconst itemChildren = childrenByType.filter(it => it.type === 'item').map(it => it.children)\n\treturn (<>\n\t\t<HasMany field={field} orderBy={orderBy} limit={limit} offset={offset}>\n\t\t\t<Field {...typeof discriminationField === 'string' ? { field: discriminationField } : discriminationField} />\n\t\t\t{sortableBy && <Field {...typeof sortableBy === 'string' ? { field: sortableBy } : sortableBy} />}\n\t\t\t{itemChildren.map((it, index) => <Fragment key={index}>{it}</Fragment>)}\n\t\t</HasMany>\n\t</>)\n})\n"],"names":["Component","jsx","useEntityListSubTree","useDynamicBoard","BoardMethodsContext","BoardColumnsContext","boardAnalyzer","jsxs","Fragment","EntityListSubTree","HasOne","Field","useEntityList","HasMany","useStaticBoard"],"mappings":"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"}
|