@contember/react-board 1.3.0-alpha.11 → 1.3.0-alpha.14
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/dist/development/components/Board.cjs +118 -0
- package/dist/development/components/Board.cjs.map +1 -0
- package/dist/development/components/Board.js +118 -0
- package/dist/development/components/Board.js.map +1 -0
- package/dist/development/components/BoardColumn.cjs +7 -0
- package/dist/development/components/BoardColumn.cjs.map +1 -0
- package/dist/development/components/BoardColumn.js +7 -0
- package/dist/development/components/BoardColumn.js.map +1 -0
- package/dist/development/components/BoardColumnLabel.cjs +9 -0
- package/dist/development/components/BoardColumnLabel.cjs.map +1 -0
- package/dist/development/components/BoardColumnLabel.js +9 -0
- package/dist/development/components/BoardColumnLabel.js.map +1 -0
- package/dist/development/components/BoardEachColumn.cjs +22 -0
- package/dist/development/components/BoardEachColumn.cjs.map +1 -0
- package/dist/development/components/BoardEachColumn.js +22 -0
- package/dist/development/components/BoardEachColumn.js.map +1 -0
- package/dist/development/components/BoardEachItem.cjs +33 -0
- package/dist/development/components/BoardEachItem.cjs.map +1 -0
- package/dist/development/components/BoardEachItem.js +33 -0
- package/dist/development/components/BoardEachItem.js.map +1 -0
- package/dist/development/components/BoardItem.cjs +8 -0
- package/dist/development/components/BoardItem.cjs.map +1 -0
- package/dist/development/components/BoardItem.js +8 -0
- package/dist/development/components/BoardItem.js.map +1 -0
- package/dist/development/components/BoardNullColumn.cjs +14 -0
- package/dist/development/components/BoardNullColumn.cjs.map +1 -0
- package/dist/development/components/BoardNullColumn.js +14 -0
- package/dist/development/components/BoardNullColumn.js.map +1 -0
- package/dist/development/contexts.cjs +24 -0
- package/dist/development/contexts.cjs.map +1 -0
- package/dist/development/contexts.js +24 -0
- package/dist/development/contexts.js.map +1 -0
- package/dist/development/index.cjs +23 -6
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +23 -6
- package/dist/development/index.js.map +1 -1
- package/dist/development/internal/boardAnalyzer.cjs +16 -0
- package/dist/development/internal/boardAnalyzer.cjs.map +1 -0
- package/dist/development/internal/boardAnalyzer.js +16 -0
- package/dist/development/internal/boardAnalyzer.js.map +1 -0
- package/dist/development/internal/useBoardItemsMethods.cjs.map +1 -1
- package/dist/development/internal/useBoardItemsMethods.js.map +1 -1
- package/dist/development/internal/{useBoardColumns.cjs → useCreateBoardColumns.cjs} +10 -24
- package/dist/development/internal/useCreateBoardColumns.cjs.map +1 -0
- package/dist/development/internal/{useBoardColumns.js → useCreateBoardColumns.js} +10 -24
- package/dist/development/internal/useCreateBoardColumns.js.map +1 -0
- package/dist/{production → development/internal}/useDynamicBoard.cjs +14 -18
- package/dist/development/internal/useDynamicBoard.cjs.map +1 -0
- package/dist/{production → development/internal}/useDynamicBoard.js +14 -18
- package/dist/development/internal/useDynamicBoard.js.map +1 -0
- package/dist/{production → development/internal}/useStaticBoard.cjs +8 -16
- package/dist/development/internal/useStaticBoard.cjs.map +1 -0
- package/dist/{production → development/internal}/useStaticBoard.js +9 -17
- package/dist/development/internal/useStaticBoard.js.map +1 -0
- package/dist/production/components/Board.cjs +118 -0
- package/dist/production/components/Board.cjs.map +1 -0
- package/dist/production/components/Board.js +118 -0
- package/dist/production/components/Board.js.map +1 -0
- package/dist/production/components/BoardColumn.cjs +7 -0
- package/dist/production/components/BoardColumn.cjs.map +1 -0
- package/dist/production/components/BoardColumn.js +7 -0
- package/dist/production/components/BoardColumn.js.map +1 -0
- package/dist/production/components/BoardColumnLabel.cjs +9 -0
- package/dist/production/components/BoardColumnLabel.cjs.map +1 -0
- package/dist/production/components/BoardColumnLabel.js +9 -0
- package/dist/production/components/BoardColumnLabel.js.map +1 -0
- package/dist/production/components/BoardEachColumn.cjs +22 -0
- package/dist/production/components/BoardEachColumn.cjs.map +1 -0
- package/dist/production/components/BoardEachColumn.js +22 -0
- package/dist/production/components/BoardEachColumn.js.map +1 -0
- package/dist/production/components/BoardEachItem.cjs +33 -0
- package/dist/production/components/BoardEachItem.cjs.map +1 -0
- package/dist/production/components/BoardEachItem.js +33 -0
- package/dist/production/components/BoardEachItem.js.map +1 -0
- package/dist/production/components/BoardItem.cjs +8 -0
- package/dist/production/components/BoardItem.cjs.map +1 -0
- package/dist/production/components/BoardItem.js +8 -0
- package/dist/production/components/BoardItem.js.map +1 -0
- package/dist/production/components/BoardNullColumn.cjs +14 -0
- package/dist/production/components/BoardNullColumn.cjs.map +1 -0
- package/dist/production/components/BoardNullColumn.js +14 -0
- package/dist/production/components/BoardNullColumn.js.map +1 -0
- package/dist/production/contexts.cjs +24 -0
- package/dist/production/contexts.cjs.map +1 -0
- package/dist/production/contexts.js +24 -0
- package/dist/production/contexts.js.map +1 -0
- package/dist/production/index.cjs +23 -6
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +23 -6
- package/dist/production/index.js.map +1 -1
- package/dist/production/internal/boardAnalyzer.cjs +16 -0
- package/dist/production/internal/boardAnalyzer.cjs.map +1 -0
- package/dist/production/internal/boardAnalyzer.js +16 -0
- package/dist/production/internal/boardAnalyzer.js.map +1 -0
- package/dist/production/internal/useBoardItemsMethods.cjs.map +1 -1
- package/dist/production/internal/useBoardItemsMethods.js.map +1 -1
- package/dist/production/internal/{useBoardColumns.cjs → useCreateBoardColumns.cjs} +10 -24
- package/dist/production/internal/useCreateBoardColumns.cjs.map +1 -0
- package/dist/production/internal/{useBoardColumns.js → useCreateBoardColumns.js} +10 -24
- package/dist/production/internal/useCreateBoardColumns.js.map +1 -0
- package/dist/{development → production/internal}/useDynamicBoard.cjs +14 -18
- package/dist/production/internal/useDynamicBoard.cjs.map +1 -0
- package/dist/{development → production/internal}/useDynamicBoard.js +14 -18
- package/dist/production/internal/useDynamicBoard.js.map +1 -0
- package/dist/{development → production/internal}/useStaticBoard.cjs +8 -16
- package/dist/production/internal/useStaticBoard.cjs.map +1 -0
- package/dist/{development → production/internal}/useStaticBoard.js +9 -17
- package/dist/production/internal/useStaticBoard.js.map +1 -0
- package/dist/types/{types.d.ts → components/Board.d.ts} +5 -8
- package/dist/types/components/Board.d.ts.map +1 -0
- package/dist/types/components/BoardColumn.d.ts +5 -0
- package/dist/types/components/BoardColumn.d.ts.map +1 -0
- package/dist/types/components/BoardColumnLabel.d.ts +2 -0
- package/dist/types/components/BoardColumnLabel.d.ts.map +1 -0
- package/dist/types/components/BoardEachColumn.d.ts +10 -0
- package/dist/types/components/BoardEachColumn.d.ts.map +1 -0
- package/dist/types/components/BoardEachItem.d.ts +10 -0
- package/dist/types/components/BoardEachItem.d.ts.map +1 -0
- package/dist/types/components/BoardItem.d.ts +8 -0
- package/dist/types/components/BoardItem.d.ts.map +1 -0
- package/dist/types/components/BoardNullColumn.d.ts +7 -0
- package/dist/types/components/BoardNullColumn.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +8 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/contexts.d.ts +18 -0
- package/dist/types/contexts.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/internal/boardAnalyzer.d.ts +6 -0
- package/dist/types/internal/boardAnalyzer.d.ts.map +1 -0
- package/dist/types/internal/useBoardItemsMethods.d.ts +1 -1
- package/dist/types/internal/useBoardItemsMethods.d.ts.map +1 -1
- package/dist/types/internal/useCreateBoardColumns.d.ts +10 -0
- package/dist/types/internal/useCreateBoardColumns.d.ts.map +1 -0
- package/dist/types/{useDynamicBoard.d.ts → internal/useDynamicBoard.d.ts} +4 -3
- package/dist/types/internal/useDynamicBoard.d.ts.map +1 -0
- package/dist/types/{useStaticBoard.d.ts → internal/useStaticBoard.d.ts} +4 -3
- package/dist/types/internal/useStaticBoard.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types/BoardColumnNode.d.ts +15 -0
- package/dist/types/types/BoardColumnNode.d.ts.map +1 -0
- package/dist/types/types/BoardData.d.ts +5 -0
- package/dist/types/types/BoardData.d.ts.map +1 -0
- package/dist/types/types/BoardItemNode.d.ts +7 -0
- package/dist/types/types/BoardItemNode.d.ts.map +1 -0
- package/dist/types/{BoardBindingProps.d.ts → types/BoardMethods.d.ts} +4 -23
- package/dist/types/types/BoardMethods.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +5 -2
- package/src/components/Board.tsx +219 -0
- package/src/components/BoardColumn.tsx +7 -0
- package/src/components/BoardColumnLabel.tsx +6 -0
- package/src/components/BoardEachColumn.tsx +30 -0
- package/src/components/BoardEachItem.tsx +46 -0
- package/src/components/BoardItem.tsx +8 -0
- package/src/components/BoardNullColumn.tsx +20 -0
- package/src/components/index.ts +7 -0
- package/src/contexts.ts +23 -0
- package/src/index.ts +2 -4
- package/src/internal/boardAnalyzer.ts +25 -0
- package/src/internal/useBoardItemsMethods.ts +1 -1
- package/src/internal/{useBoardColumns.ts → useCreateBoardColumns.ts} +11 -28
- package/src/{useDynamicBoard.ts → internal/useDynamicBoard.ts} +21 -18
- package/src/{useStaticBoard.ts → internal/useStaticBoard.ts} +13 -18
- package/src/tsconfig.json +3 -0
- package/src/types/BoardColumnNode.ts +16 -0
- package/src/types/BoardData.ts +6 -0
- package/src/types/BoardItemNode.ts +7 -0
- package/src/{BoardBindingProps.ts → types/BoardMethods.ts} +3 -29
- package/src/types/index.ts +3 -0
- package/dist/development/Board.cjs +0 -116
- package/dist/development/Board.cjs.map +0 -1
- package/dist/development/Board.js +0 -116
- package/dist/development/Board.js.map +0 -1
- package/dist/development/internal/useBoardColumns.cjs.map +0 -1
- package/dist/development/internal/useBoardColumns.js.map +0 -1
- package/dist/development/useDynamicBoard.cjs.map +0 -1
- package/dist/development/useDynamicBoard.js.map +0 -1
- package/dist/development/useStaticBoard.cjs.map +0 -1
- package/dist/development/useStaticBoard.js.map +0 -1
- package/dist/production/Board.cjs +0 -116
- package/dist/production/Board.cjs.map +0 -1
- package/dist/production/Board.js +0 -116
- package/dist/production/Board.js.map +0 -1
- package/dist/production/internal/useBoardColumns.cjs.map +0 -1
- package/dist/production/internal/useBoardColumns.js.map +0 -1
- package/dist/production/useDynamicBoard.cjs.map +0 -1
- package/dist/production/useDynamicBoard.js.map +0 -1
- package/dist/production/useStaticBoard.cjs.map +0 -1
- package/dist/production/useStaticBoard.js.map +0 -1
- package/dist/types/Board.d.ts +0 -10
- package/dist/types/Board.d.ts.map +0 -1
- package/dist/types/BoardBindingProps.d.ts.map +0 -1
- package/dist/types/internal/useBoardColumns.d.ts +0 -11
- package/dist/types/internal/useBoardColumns.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/useDynamicBoard.d.ts.map +0 -1
- package/dist/types/useStaticBoard.d.ts.map +0 -1
- package/src/Board.tsx +0 -156
- package/src/types.ts +0 -64
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequiredContext } from "@contember/react-utils";
|
|
2
|
+
const _BoardMethodsContext = createRequiredContext("BoardMethodsContext");
|
|
3
|
+
const BoardMethodsContext = _BoardMethodsContext[0];
|
|
4
|
+
const useBoardMethods = _BoardMethodsContext[1];
|
|
5
|
+
const BoardColumnsContext_ = createRequiredContext("BoardColumnsContext");
|
|
6
|
+
const BoardColumnsContext = BoardColumnsContext_[0];
|
|
7
|
+
const useBoardColumns = BoardColumnsContext_[1];
|
|
8
|
+
const _BoardColumnContext = createRequiredContext("BoardCurrentColumnContext");
|
|
9
|
+
const BoardCurrentColumnContext = _BoardColumnContext[0];
|
|
10
|
+
const useBoardCurrentColumn = _BoardColumnContext[1];
|
|
11
|
+
const BoardCurrentItemContext_ = createRequiredContext("BoardCurrentItemContext");
|
|
12
|
+
const BoardCurrentItemContext = BoardCurrentItemContext_[0];
|
|
13
|
+
const useBoardCurrentItem = BoardCurrentItemContext_[1];
|
|
14
|
+
export {
|
|
15
|
+
BoardColumnsContext,
|
|
16
|
+
BoardCurrentColumnContext,
|
|
17
|
+
BoardCurrentItemContext,
|
|
18
|
+
BoardMethodsContext,
|
|
19
|
+
useBoardColumns,
|
|
20
|
+
useBoardCurrentColumn,
|
|
21
|
+
useBoardCurrentItem,
|
|
22
|
+
useBoardMethods
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts.js","sources":["../../src/contexts.ts"],"sourcesContent":["import { createRequiredContext } from '@contember/react-utils'\nimport { BoardColumnNode, BoardColumnValue, BoardItemNode, BoardMethods } from './types'\n\nconst _BoardMethodsContext = createRequiredContext<BoardMethods<any>>('BoardMethodsContext')\n/** @internal */\nexport const BoardMethodsContext = _BoardMethodsContext[0]\nexport const useBoardMethods = _BoardMethodsContext[1] as <T extends BoardColumnValue = BoardColumnValue>() => BoardMethods<T>\n\n\nconst BoardColumnsContext_ = createRequiredContext<BoardColumnNode[]>('BoardColumnsContext')\n/** @internal */\nexport const BoardColumnsContext = BoardColumnsContext_[0]\nexport const useBoardColumns = BoardColumnsContext_[1] as <T extends BoardColumnValue = BoardColumnValue>() => BoardColumnNode<T>[]\n\nconst _BoardColumnContext = createRequiredContext<BoardColumnNode>('BoardCurrentColumnContext')\n/** @internal*/\nexport const BoardCurrentColumnContext = _BoardColumnContext[0]\nexport const useBoardCurrentColumn = _BoardColumnContext[1]\n\nconst BoardCurrentItemContext_ = createRequiredContext<BoardItemNode & { column: BoardColumnNode }>('BoardCurrentItemContext')\n/** @internal*/\nexport const BoardCurrentItemContext = BoardCurrentItemContext_[0]\nexport const useBoardCurrentItem = BoardCurrentItemContext_[1]\n"],"names":[],"mappings":";AAGA,MAAM,uBAAuB,sBAAyC,qBAAqB;AAE9E,MAAA,sBAAsB,qBAAqB,CAAC;AAC5C,MAAA,kBAAkB,qBAAqB,CAAC;AAGrD,MAAM,uBAAuB,sBAAyC,qBAAqB;AAE9E,MAAA,sBAAsB,qBAAqB,CAAC;AAC5C,MAAA,kBAAkB,qBAAqB,CAAC;AAErD,MAAM,sBAAsB,sBAAuC,2BAA2B;AAEjF,MAAA,4BAA4B,oBAAoB,CAAC;AACjD,MAAA,wBAAwB,oBAAoB,CAAC;AAE1D,MAAM,2BAA2B,sBAAmE,yBAAyB;AAEhH,MAAA,0BAA0B,yBAAyB,CAAC;AACpD,MAAA,sBAAsB,yBAAyB,CAAC;"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const Board = require("./Board.cjs");
|
|
4
3
|
const _const = require("./const.cjs");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
4
|
+
const contexts = require("./contexts.cjs");
|
|
5
|
+
const Board = require("./components/Board.cjs");
|
|
6
|
+
const BoardColumn = require("./components/BoardColumn.cjs");
|
|
7
|
+
const BoardItem = require("./components/BoardItem.cjs");
|
|
8
|
+
const BoardEachColumn = require("./components/BoardEachColumn.cjs");
|
|
9
|
+
const BoardEachItem = require("./components/BoardEachItem.cjs");
|
|
10
|
+
const BoardNullColumn = require("./components/BoardNullColumn.cjs");
|
|
11
|
+
const BoardColumnLabel = require("./components/BoardColumnLabel.cjs");
|
|
8
12
|
exports.BoardNullColumnPlaceholder = _const.BoardNullColumnPlaceholder;
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
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;
|
|
11
28
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
import { createBoard } from "./Board.js";
|
|
2
1
|
import { BoardNullColumnPlaceholder } from "./const.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { BoardColumnsContext, BoardCurrentColumnContext, BoardCurrentItemContext, BoardMethodsContext, useBoardColumns, useBoardCurrentColumn, useBoardCurrentItem, useBoardMethods } from "./contexts.js";
|
|
3
|
+
import { Board } from "./components/Board.js";
|
|
4
|
+
import { BoardColumn } from "./components/BoardColumn.js";
|
|
5
|
+
import { BoardItem } from "./components/BoardItem.js";
|
|
6
|
+
import { BoardEachColumn } from "./components/BoardEachColumn.js";
|
|
7
|
+
import { BoardEachItem } from "./components/BoardEachItem.js";
|
|
8
|
+
import { BoardNullColumn } from "./components/BoardNullColumn.js";
|
|
9
|
+
import { BoardColumnLabel } from "./components/BoardColumnLabel.js";
|
|
5
10
|
export {
|
|
11
|
+
Board,
|
|
12
|
+
BoardColumn,
|
|
13
|
+
BoardColumnLabel,
|
|
14
|
+
BoardColumnsContext,
|
|
15
|
+
BoardCurrentColumnContext,
|
|
16
|
+
BoardCurrentItemContext,
|
|
17
|
+
BoardEachColumn,
|
|
18
|
+
BoardEachItem,
|
|
19
|
+
BoardItem,
|
|
20
|
+
BoardMethodsContext,
|
|
21
|
+
BoardNullColumn,
|
|
6
22
|
BoardNullColumnPlaceholder,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
23
|
+
useBoardColumns,
|
|
24
|
+
useBoardCurrentColumn,
|
|
25
|
+
useBoardCurrentItem,
|
|
26
|
+
useBoardMethods
|
|
10
27
|
};
|
|
11
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactMultipassRendering = require("@contember/react-multipass-rendering");
|
|
4
|
+
const BoardItem = require("../components/BoardItem.cjs");
|
|
5
|
+
const BoardColumn = require("../components/BoardColumn.cjs");
|
|
6
|
+
const itemLeaf = new reactMultipassRendering.Leaf((node) => node.props.children, BoardItem.BoardItem);
|
|
7
|
+
const columnLeaf = new reactMultipassRendering.Leaf((node) => node.props.children, BoardColumn.BoardColumn);
|
|
8
|
+
const boardColumnsAnalyzer = new reactMultipassRendering.ChildrenAnalyzer([columnLeaf], {
|
|
9
|
+
staticRenderFactoryName: "staticRender"
|
|
10
|
+
});
|
|
11
|
+
const boardItemsAnalyzer = new reactMultipassRendering.ChildrenAnalyzer([itemLeaf], {
|
|
12
|
+
staticRenderFactoryName: "staticRender"
|
|
13
|
+
});
|
|
14
|
+
exports.boardColumnsAnalyzer = boardColumnsAnalyzer;
|
|
15
|
+
exports.boardItemsAnalyzer = boardItemsAnalyzer;
|
|
16
|
+
//# sourceMappingURL=boardAnalyzer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardAnalyzer.cjs","sources":["../../../src/internal/boardAnalyzer.ts"],"sourcesContent":["import { Environment } from '@contember/binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\nimport { BoardItem } from '../components/BoardItem'\nimport { ReactNode } from 'react'\nimport { BoardColumn } from '../components/BoardColumn'\n\nconst itemLeaf = new Leaf(node => node.props.children, BoardItem)\nconst columnLeaf = new Leaf(node => node.props.children, BoardColumn)\n\n\nexport const boardColumnsAnalyzer = new ChildrenAnalyzer<\n\tReactNode,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n})\n\nexport const boardItemsAnalyzer = new ChildrenAnalyzer<\n\tReactNode,\n\tnever,\n\tEnvironment\n>([itemLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n})\n"],"names":["Leaf","BoardItem","BoardColumn","ChildrenAnalyzer"],"mappings":";;;;;AAMA,MAAM,WAAW,IAAIA,wBAAA,KAAK,UAAQ,KAAK,MAAM,UAAUC,UAAAA,SAAS;AAChE,MAAM,aAAa,IAAID,wBAAA,KAAK,UAAQ,KAAK,MAAM,UAAUE,YAAAA,WAAW;AAG7D,MAAM,uBAAuB,IAAIC,wBAAAA,iBAItC,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAC1B,CAAC;AAEM,MAAM,qBAAqB,IAAIA,wBAAAA,iBAIpC,CAAC,QAAQ,GAAG;AAAA,EACb,yBAAyB;AAC1B,CAAC;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Leaf, ChildrenAnalyzer } from "@contember/react-multipass-rendering";
|
|
2
|
+
import { BoardItem } from "../components/BoardItem.js";
|
|
3
|
+
import { BoardColumn } from "../components/BoardColumn.js";
|
|
4
|
+
const itemLeaf = new Leaf((node) => node.props.children, BoardItem);
|
|
5
|
+
const columnLeaf = new Leaf((node) => node.props.children, BoardColumn);
|
|
6
|
+
const boardColumnsAnalyzer = new ChildrenAnalyzer([columnLeaf], {
|
|
7
|
+
staticRenderFactoryName: "staticRender"
|
|
8
|
+
});
|
|
9
|
+
const boardItemsAnalyzer = new ChildrenAnalyzer([itemLeaf], {
|
|
10
|
+
staticRenderFactoryName: "staticRender"
|
|
11
|
+
});
|
|
12
|
+
export {
|
|
13
|
+
boardColumnsAnalyzer,
|
|
14
|
+
boardItemsAnalyzer
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=boardAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardAnalyzer.js","sources":["../../../src/internal/boardAnalyzer.ts"],"sourcesContent":["import { Environment } from '@contember/binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\nimport { BoardItem } from '../components/BoardItem'\nimport { ReactNode } from 'react'\nimport { BoardColumn } from '../components/BoardColumn'\n\nconst itemLeaf = new Leaf(node => node.props.children, BoardItem)\nconst columnLeaf = new Leaf(node => node.props.children, BoardColumn)\n\n\nexport const boardColumnsAnalyzer = new ChildrenAnalyzer<\n\tReactNode,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n})\n\nexport const boardItemsAnalyzer = new ChildrenAnalyzer<\n\tReactNode,\n\tnever,\n\tEnvironment\n>([itemLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n})\n"],"names":[],"mappings":";;;AAMA,MAAM,WAAW,IAAI,KAAK,UAAQ,KAAK,MAAM,UAAU,SAAS;AAChE,MAAM,aAAa,IAAI,KAAK,UAAQ,KAAK,MAAM,UAAU,WAAW;AAG7D,MAAM,uBAAuB,IAAI,iBAItC,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAC1B,CAAC;AAEM,MAAM,qBAAqB,IAAI,iBAIpC,CAAC,QAAQ,GAAG;AAAA,EACb,yBAAyB;AAC1B,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBoardItemsMethods.cjs","sources":["../../../src/internal/useBoardItemsMethods.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useBoardItemsMethods.cjs","sources":["../../../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":";;;;;AA0BO,MAAM,uBAAuB,CAAuC;AAAA,EAC1E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACb,MAA8E;AAE7E,QAAM,6BAA6B,aAAa;AAE1C,QAAA,oBAAoBA,kBAAY,CAAC,WAAmC;AACzE,UAAMC,gBAAe;AACrB,WAAO,cAAc,WAClB,mBAAmBA,aAAY,EAAE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAA,IACzDC,aAAAA,aAAa,MAAM,KAAKD,aAAY,GAAG,wBAAwB;AAAA,KAChE,CAAC,0BAA0B,oBAAoB,4BAA4B,SAAS,CAAC;AAExF,QAAM,qBAAqBD,MAAAA,YAAY,CAAC,QAAgC,UAA8B;AACrG,QAAI,UAAU,QAAW;AACjB,aAAA;AAAA,IACR;AACA,QAAI,cAAc,UAAU;AACpB,aAAA;AAAA,IACR;AACM,UAAA,cAAc,mBAAmB,YAAY,EAAE,IAAI,MAAM,GAAG,MAAM,KAAK;AACvE,UAAA,gBAAgB,YAAY,KAAK;AACvC,QAAI,CAAC,eAAe;AACZ,aAAA;AAAA,IACR;AAEM,UAAA,iBAAiB,kBAAkB,MAAM;AACxC,WAAA,eAAe,UAAU,CAAM,OAAA,GAAG,OAAO,cAAc,EAAE,KAAK,eAAe;AAAA,KAClF,CAAC,mBAAmB,oBAAoB,cAAc,SAAS,CAAC;AAEnE,QAAM,UAAUA,MAAA,YAA6C,CAAC,QAAQ,OAAO,eAAe;AAC3F,UAAMC,gBAAe;AACf,UAAA,qBAAqB,CAAC,aAAmC,YAAiC;AAC3E,0BAAA,eAAe,MAAM;AACzC,mBAAa,aAAa,OAAO;AAAA,IAAA;AAElC,QAAI,CAAC,0BAA0B;AAC9B,UAAI,UAAU,QAAW;AACjBA,eAAAA,cAAa,gBAAgB,kBAAkB;AAAA,MACvD;AACM,YAAA,IAAIE,aAAAA,aAAa,4DAA4D;AAAA,IACpF;AACA,UAAM,WAAW,SAAS,eAAe,MAAM,IAAI;AAC7C,UAAA,iBAAiB,kBAAkB,QAAQ;AAEjD,UAAM,gBAAgB,mBAAmB,UAAU,KAAK,KAAK,eAAe;AAG5EF,kBAAa,gBAAgB,CAAC,WAAW,YAAY;AACpD,qBAAe,OAAO,eAAe,GAAG,UAAW,CAAA;AACnDG,uCAAoB,0BAA0B,cAAc;AAC5D,2BAAqB,WAAW,OAAO;AAAA,IAAA,CACvC;AAAA,EAAA,GACC,CAAC,gBAAgB,qBAAqB,0BAA0B,mBAAmB,4BAA4B,kBAAkB,CAAC;AAG/H,QAAA,WAAWC,MAAAA,QAAsD,MAAM;AAC5E,QAAI,CAAC,0BAA0B;AACvB,aAAA;AAAA,IACR;AACO,WAAA,CAAC,QAAQ,QAAQ,UAAU;AAC3B,YAAA,gBAAgB,sBAAsB,MAAM;AAClD,YAAM,WAAW,SAAS,eAAe,MAAM,IAAI;AAEnD,0BAAoB,QAAQ,MAAM;AAE9B,UAAA,kBAAkB,YAAY,cAAc,SAAS;AAClD,cAAA,iBAAiB,kBAAkB,QAAQ;AACjD,cAAMC,gBAAe,eAAe,UAAU,QAAM,GAAG,OAAO,OAAO,EAAE;AACvE,cAAM,gBAAgB,mBAAmB,UAAU,KAAK,KAAK,eAAe;AAC5E,cAAM,gBAAgBC,UAAA,UAAU,gBAAgBD,eAAc,aAAa;AAC3EF,yCAAoB,0BAA0B,aAAa;AAC3D;AAAA,MACD;AAIA,YAAMH,gBAAe;AACf,YAAA,eAAe,mBAAmBA,aAAY;AAE9C,YAAA,qBAAqB,aAAa,IAAI,iBAAiB,IAAI,GAAG,WAAW;AAC/E,YAAM,eAAe,mBAAmB,UAAU,QAAM,GAAG,OAAO,OAAO,EAAE;AACxD,yBAAA,OAAO,cAAc,CAAC;AACzCG,uCAAoB,0BAA0B,kBAAkB;AAEhE,YAAM,iBAAiB,aAAa,IAAI,QAAQ,GAAG,WAAW;AAC/C,qBAAA,OAAO,OAAO,GAAG,MAAM;AACtCA,uCAAoB,0BAA0B,cAAc;AAAA,IAAA;AAAA,EAG9D,GAAG,CAAC,gBAAgB,qBAAqB,0BAA0B,uBAAuB,mBAAmB,oBAAoB,4BAA4B,oBAAoB,SAAS,CAAC;AAErL,QAAA,aAAaJ,kBAAmC,CAAU,WAAA;AAC/D,QAAI,0BAA0B;AACvB,YAAA,gBAAgB,sBAAsB,MAAM;AAC5C,YAAA,iBAAiB,kBAAkB,aAAa;AACtD,YAAM,eAAe,eAAe,UAAU,QAAM,GAAG,OAAO,OAAO,EAAE;AACxD,qBAAA,OAAO,cAAc,CAAC;AACrCI,uCAAoB,0BAA0B,cAAc;AAAA,IAC7D;AACA,WAAO,aAAa;AAAA,EAClB,GAAA,CAAC,0BAA0B,uBAAuB,iBAAiB,CAAC;AAEhE,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBoardItemsMethods.js","sources":["../../../src/internal/useBoardItemsMethods.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useBoardItemsMethods.js","sources":["../../../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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"}
|
|
@@ -2,30 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const react = require("react");
|
|
4
4
|
const _const = require("../const.cjs");
|
|
5
|
-
const
|
|
5
|
+
const useCreateBoardColumns = ({ groupItemsByColumn, items, columns, columnIdGetter }) => {
|
|
6
6
|
return react.useMemo(() => {
|
|
7
7
|
const itemsByColumn = groupItemsByColumn(items);
|
|
8
|
-
const result = [];
|
|
9
|
-
let index = 0;
|
|
10
8
|
const nullItems = itemsByColumn.get(null) ?? [];
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (nullColumn === "auto" && nullItems.length === 0) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
result.push({
|
|
9
|
+
const result = [
|
|
10
|
+
{
|
|
19
11
|
id: _const.BoardNullColumnPlaceholder,
|
|
20
|
-
index:
|
|
12
|
+
index: Number.MAX_SAFE_INTEGER,
|
|
21
13
|
value: null,
|
|
22
14
|
items: nullItems.map((it, index2) => ({ value: it, id: it.id, index: index2 }))
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
index--;
|
|
27
|
-
pushNullColumn();
|
|
28
|
-
}
|
|
15
|
+
}
|
|
16
|
+
];
|
|
17
|
+
let index = 0;
|
|
29
18
|
for (const column of columns) {
|
|
30
19
|
result.push({
|
|
31
20
|
id: columnIdGetter(column),
|
|
@@ -34,11 +23,8 @@ const useBoardColumns = ({ groupItemsByColumn, items, columns, nullColumn, nullC
|
|
|
34
23
|
items: itemsByColumn.get(columnIdGetter(column))?.map((it, index2) => ({ value: it, id: it.id, index: index2 })) ?? []
|
|
35
24
|
});
|
|
36
25
|
}
|
|
37
|
-
if (nullColumnPlacement !== "start") {
|
|
38
|
-
pushNullColumn();
|
|
39
|
-
}
|
|
40
26
|
return result;
|
|
41
|
-
}, [columnIdGetter, columns, groupItemsByColumn, items
|
|
27
|
+
}, [columnIdGetter, columns, groupItemsByColumn, items]);
|
|
42
28
|
};
|
|
43
|
-
exports.
|
|
44
|
-
//# sourceMappingURL=
|
|
29
|
+
exports.useCreateBoardColumns = useCreateBoardColumns;
|
|
30
|
+
//# sourceMappingURL=useCreateBoardColumns.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateBoardColumns.cjs","sources":["../../../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,CAAA;AAC7C,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,OAAQ,EAAA;AAAA,MACtE;AAAA,IAAA;AAED,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,SAAQ,KAAK,CAAC;AAAA,MAAA,CAC5G;AAAA,IACF;AACO,WAAA;AAAA,KAEL,CAAC,gBAAgB,SAAS,oBAAoB,KAAK,CAAC;AACxD;;"}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { BoardNullColumnPlaceholder } from "../const.js";
|
|
3
|
-
const
|
|
3
|
+
const useCreateBoardColumns = ({ groupItemsByColumn, items, columns, columnIdGetter }) => {
|
|
4
4
|
return useMemo(() => {
|
|
5
5
|
const itemsByColumn = groupItemsByColumn(items);
|
|
6
|
-
const result = [];
|
|
7
|
-
let index = 0;
|
|
8
6
|
const nullItems = itemsByColumn.get(null) ?? [];
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (nullColumn === "auto" && nullItems.length === 0) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
result.push({
|
|
7
|
+
const result = [
|
|
8
|
+
{
|
|
17
9
|
id: BoardNullColumnPlaceholder,
|
|
18
|
-
index:
|
|
10
|
+
index: Number.MAX_SAFE_INTEGER,
|
|
19
11
|
value: null,
|
|
20
12
|
items: nullItems.map((it, index2) => ({ value: it, id: it.id, index: index2 }))
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
index--;
|
|
25
|
-
pushNullColumn();
|
|
26
|
-
}
|
|
13
|
+
}
|
|
14
|
+
];
|
|
15
|
+
let index = 0;
|
|
27
16
|
for (const column of columns) {
|
|
28
17
|
result.push({
|
|
29
18
|
id: columnIdGetter(column),
|
|
@@ -32,13 +21,10 @@ const useBoardColumns = ({ groupItemsByColumn, items, columns, nullColumn, nullC
|
|
|
32
21
|
items: itemsByColumn.get(columnIdGetter(column))?.map((it, index2) => ({ value: it, id: it.id, index: index2 })) ?? []
|
|
33
22
|
});
|
|
34
23
|
}
|
|
35
|
-
if (nullColumnPlacement !== "start") {
|
|
36
|
-
pushNullColumn();
|
|
37
|
-
}
|
|
38
24
|
return result;
|
|
39
|
-
}, [columnIdGetter, columns, groupItemsByColumn, items
|
|
25
|
+
}, [columnIdGetter, columns, groupItemsByColumn, items]);
|
|
40
26
|
};
|
|
41
27
|
export {
|
|
42
|
-
|
|
28
|
+
useCreateBoardColumns
|
|
43
29
|
};
|
|
44
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=useCreateBoardColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateBoardColumns.js","sources":["../../../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,CAAA;AAC7C,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,OAAQ,EAAA;AAAA,MACtE;AAAA,IAAA;AAED,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,SAAQ,KAAK,CAAC;AAAA,MAAA,CAC5G;AAAA,IACF;AACO,WAAA;AAAA,KAEL,CAAC,gBAAgB,SAAS,oBAAoB,KAAK,CAAC;AACxD;"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const react = require("react");
|
|
4
4
|
const reactBinding = require("@contember/react-binding");
|
|
5
|
-
const useGroupItemsByColumn = require("./
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
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
9
|
const useGetSortedColumns = (desugaredColumnSortableByField) => {
|
|
10
10
|
return react.useCallback((columnEntities) => {
|
|
11
11
|
return reactBinding.sortEntities(Array.from(columnEntities), desugaredColumnSortableByField);
|
|
@@ -17,9 +17,7 @@ const useDynamicBoard = ({
|
|
|
17
17
|
columnsSortableBy,
|
|
18
18
|
discriminationField,
|
|
19
19
|
columnEntities,
|
|
20
|
-
itemEntities
|
|
21
|
-
nullColumnPlacement = "end",
|
|
22
|
-
nullColumn = "auto"
|
|
20
|
+
itemEntities
|
|
23
21
|
}) => {
|
|
24
22
|
const desugaredSortableByField = reactBinding.useDesugaredRelativeSingleField(sortableBy);
|
|
25
23
|
const desugaredColumnSortableByField = reactBinding.useDesugaredRelativeSingleField(columnsSortableBy);
|
|
@@ -32,13 +30,11 @@ const useDynamicBoard = ({
|
|
|
32
30
|
}, [desugaredDiscriminationField, exitingColumnIds]);
|
|
33
31
|
const groupItemsByColumn = useGroupItemsByColumn.useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
|
|
34
32
|
const getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField);
|
|
35
|
-
const columnsResult =
|
|
33
|
+
const columnsResult = useCreateBoardColumns.useCreateBoardColumns({
|
|
36
34
|
columns: getSortedColumns(columnEntities),
|
|
37
35
|
columnIdGetter: (it) => it.id,
|
|
38
36
|
groupItemsByColumn,
|
|
39
|
-
items: itemEntities
|
|
40
|
-
nullColumn,
|
|
41
|
-
nullColumnPlacement
|
|
37
|
+
items: itemEntities
|
|
42
38
|
});
|
|
43
39
|
const addColumn = react.useCallback((index, preprocess) => {
|
|
44
40
|
const columnEntities2 = columnEntitiesGetter();
|
|
@@ -85,15 +81,15 @@ const useDynamicBoard = ({
|
|
|
85
81
|
groupItemsByColumn,
|
|
86
82
|
itemEntities
|
|
87
83
|
});
|
|
88
|
-
|
|
89
|
-
columns: columnsResult,
|
|
90
|
-
addColumn,
|
|
84
|
+
const methods = react.useMemo(() => ({
|
|
91
85
|
addItem,
|
|
92
|
-
moveColumn,
|
|
93
86
|
moveItem,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
removeItem,
|
|
88
|
+
moveColumn,
|
|
89
|
+
addColumn,
|
|
90
|
+
removeColumn
|
|
91
|
+
}), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn]);
|
|
92
|
+
return [{ columns: columnsResult }, methods];
|
|
97
93
|
};
|
|
98
94
|
exports.useDynamicBoard = useDynamicBoard;
|
|
99
95
|
//# sourceMappingURL=useDynamicBoard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDynamicBoard.cjs","sources":["../../../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.getRelativeSingleEntity(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.getRelativeSingleEntity({ 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,9 +1,9 @@
|
|
|
1
1
|
import { useMemo, useCallback } from "react";
|
|
2
2
|
import { useDesugaredRelativeSingleField, useDesugaredRelativeSingleEntity, BindingError, addEntityAtIndex, repairEntitiesOrder, sortEntities } from "@contember/react-binding";
|
|
3
|
-
import { useGroupItemsByColumn } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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
7
|
const useGetSortedColumns = (desugaredColumnSortableByField) => {
|
|
8
8
|
return useCallback((columnEntities) => {
|
|
9
9
|
return sortEntities(Array.from(columnEntities), desugaredColumnSortableByField);
|
|
@@ -15,9 +15,7 @@ const useDynamicBoard = ({
|
|
|
15
15
|
columnsSortableBy,
|
|
16
16
|
discriminationField,
|
|
17
17
|
columnEntities,
|
|
18
|
-
itemEntities
|
|
19
|
-
nullColumnPlacement = "end",
|
|
20
|
-
nullColumn = "auto"
|
|
18
|
+
itemEntities
|
|
21
19
|
}) => {
|
|
22
20
|
const desugaredSortableByField = useDesugaredRelativeSingleField(sortableBy);
|
|
23
21
|
const desugaredColumnSortableByField = useDesugaredRelativeSingleField(columnsSortableBy);
|
|
@@ -30,13 +28,11 @@ const useDynamicBoard = ({
|
|
|
30
28
|
}, [desugaredDiscriminationField, exitingColumnIds]);
|
|
31
29
|
const groupItemsByColumn = useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
|
|
32
30
|
const getSortedColumns = useGetSortedColumns(desugaredColumnSortableByField);
|
|
33
|
-
const columnsResult =
|
|
31
|
+
const columnsResult = useCreateBoardColumns({
|
|
34
32
|
columns: getSortedColumns(columnEntities),
|
|
35
33
|
columnIdGetter: (it) => it.id,
|
|
36
34
|
groupItemsByColumn,
|
|
37
|
-
items: itemEntities
|
|
38
|
-
nullColumn,
|
|
39
|
-
nullColumnPlacement
|
|
35
|
+
items: itemEntities
|
|
40
36
|
});
|
|
41
37
|
const addColumn = useCallback((index, preprocess) => {
|
|
42
38
|
const columnEntities2 = columnEntitiesGetter();
|
|
@@ -83,15 +79,15 @@ const useDynamicBoard = ({
|
|
|
83
79
|
groupItemsByColumn,
|
|
84
80
|
itemEntities
|
|
85
81
|
});
|
|
86
|
-
|
|
87
|
-
columns: columnsResult,
|
|
88
|
-
addColumn,
|
|
82
|
+
const methods = useMemo(() => ({
|
|
89
83
|
addItem,
|
|
90
|
-
moveColumn,
|
|
91
84
|
moveItem,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
85
|
+
removeItem,
|
|
86
|
+
moveColumn,
|
|
87
|
+
addColumn,
|
|
88
|
+
removeColumn
|
|
89
|
+
}), [addItem, moveItem, removeItem, moveColumn, addColumn, removeColumn]);
|
|
90
|
+
return [{ columns: columnsResult }, methods];
|
|
95
91
|
};
|
|
96
92
|
export {
|
|
97
93
|
useDynamicBoard
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDynamicBoard.js","sources":["../../../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.getRelativeSingleEntity(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.getRelativeSingleEntity({ 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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"}
|
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const react = require("react");
|
|
4
4
|
const reactBinding = require("@contember/react-binding");
|
|
5
|
-
const useGroupItemsByColumn = require("./
|
|
6
|
-
const
|
|
7
|
-
const useBoardItemsMethods = require("./
|
|
5
|
+
const useGroupItemsByColumn = require("./useGroupItemsByColumn.cjs");
|
|
6
|
+
const useCreateBoardColumns = require("./useCreateBoardColumns.cjs");
|
|
7
|
+
const useBoardItemsMethods = require("./useBoardItemsMethods.cjs");
|
|
8
8
|
const useStaticBoard = ({
|
|
9
9
|
sortableBy,
|
|
10
10
|
sortScope,
|
|
11
11
|
columns,
|
|
12
12
|
discriminationField,
|
|
13
|
-
itemEntities
|
|
14
|
-
nullColumnPlacement = "end",
|
|
15
|
-
nullColumn = "auto"
|
|
13
|
+
itemEntities
|
|
16
14
|
}) => {
|
|
17
15
|
const desugaredSortableByField = reactBinding.useDesugaredRelativeSingleField(sortableBy);
|
|
18
16
|
const desugaredDiscriminationField = reactBinding.useDesugaredRelativeSingleField(discriminationField);
|
|
@@ -20,13 +18,11 @@ const useStaticBoard = ({
|
|
|
20
18
|
return entity.getRelativeSingleField(desugaredDiscriminationField).value;
|
|
21
19
|
}, [desugaredDiscriminationField]);
|
|
22
20
|
const groupItemsByColumn = useGroupItemsByColumn.useGroupItemsByColumn(getDiscriminatorValue, desugaredSortableByField);
|
|
23
|
-
const columnsResult =
|
|
21
|
+
const columnsResult = useCreateBoardColumns.useCreateBoardColumns({
|
|
24
22
|
columns,
|
|
25
23
|
columnIdGetter: (it) => it.value,
|
|
26
24
|
groupItemsByColumn,
|
|
27
|
-
items: itemEntities
|
|
28
|
-
nullColumn,
|
|
29
|
-
nullColumnPlacement
|
|
25
|
+
items: itemEntities
|
|
30
26
|
});
|
|
31
27
|
const connectItemToColumn = react.useCallback((item, column) => {
|
|
32
28
|
item.getRelativeSingleField(desugaredDiscriminationField).updateValue(column?.value ?? null);
|
|
@@ -40,12 +36,8 @@ const useStaticBoard = ({
|
|
|
40
36
|
sortScope,
|
|
41
37
|
getDiscriminatorValue
|
|
42
38
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
addItem,
|
|
46
|
-
moveItem,
|
|
47
|
-
removeItem
|
|
48
|
-
};
|
|
39
|
+
const methods = react.useMemo(() => ({ addItem, moveItem, removeItem }), [addItem, moveItem, removeItem]);
|
|
40
|
+
return [{ columns: columnsResult }, methods];
|
|
49
41
|
};
|
|
50
42
|
exports.useStaticBoard = useStaticBoard;
|
|
51
43
|
//# sourceMappingURL=useStaticBoard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStaticBoard.cjs","sources":["../../../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.getRelativeSingleField<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.getRelativeSingleField(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,uBAA+B,4BAA4B,EAAE;AAAA,EAAA,GACzE,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,uBAAuB,4BAA4B,EAAE,YAAY,QAAQ,SAAS,IAAI;AAAA,EAAA,GACzF,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,iBAAiB,OAAO;AAC5C;;"}
|