@mantine/core 7.11.1 → 7.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
- package/cjs/components/Burger/Burger.cjs +1 -0
- package/cjs/components/Burger/Burger.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerContent.cjs +1 -1
- package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
- package/cjs/components/FocusTrap/FocusTrap.cjs +3 -2
- package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
- package/cjs/components/ModalBase/ModalBaseContent.cjs +1 -2
- package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
- package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs +1 -2
- package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollArea.cjs +9 -0
- package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs +1 -0
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs +136 -0
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -0
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.module.css.cjs +7 -0
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.module.css.cjs.map +1 -0
- package/cjs/components/Tooltip/Tooltip.cjs +1 -0
- package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/cjs/components/Tree/Tree.cjs.map +1 -1
- package/cjs/components/Tree/TreeNode.cjs +1 -0
- package/cjs/components/Tree/TreeNode.cjs.map +1 -1
- package/cjs/components/Tree/get-all-checked-nodes/get-all-checked-nodes.cjs +39 -0
- package/cjs/components/Tree/get-all-checked-nodes/get-all-checked-nodes.cjs.map +1 -0
- package/cjs/components/Tree/get-children-nodes-values/get-children-nodes-values.cjs +38 -0
- package/cjs/components/Tree/get-children-nodes-values/get-children-nodes-values.cjs.map +1 -0
- package/cjs/components/Tree/is-node-checked/is-node-checked.cjs +32 -0
- package/cjs/components/Tree/is-node-checked/is-node-checked.cjs.map +1 -0
- package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs +29 -0
- package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs.map +1 -0
- package/cjs/components/Tree/use-tree.cjs +33 -3
- package/cjs/components/Tree/use-tree.cjs.map +1 -1
- package/cjs/core/utils/memoize/memoize.cjs +18 -0
- package/cjs/core/utils/memoize/memoize.cjs.map +1 -0
- package/cjs/index.cjs +4 -0
- package/cjs/index.cjs.map +1 -1
- package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs.map +1 -1
- package/esm/components/Burger/Burger.mjs +1 -0
- package/esm/components/Burger/Burger.mjs.map +1 -1
- package/esm/components/Drawer/DrawerContent.mjs +1 -1
- package/esm/components/Drawer/DrawerContent.mjs.map +1 -1
- package/esm/components/FocusTrap/FocusTrap.mjs +3 -2
- package/esm/components/FocusTrap/FocusTrap.mjs.map +1 -1
- package/esm/components/ModalBase/ModalBaseContent.mjs +1 -2
- package/esm/components/ModalBase/ModalBaseContent.mjs.map +1 -1
- package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs +1 -2
- package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
- package/esm/components/ScrollArea/ScrollArea.mjs +9 -0
- package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
- package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs +1 -0
- package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs.map +1 -1
- package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs +134 -0
- package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -0
- package/esm/components/SemiCircleProgress/SemiCircleProgress.module.css.mjs +5 -0
- package/esm/components/SemiCircleProgress/SemiCircleProgress.module.css.mjs.map +1 -0
- package/esm/components/Tooltip/Tooltip.mjs +1 -0
- package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/esm/components/Tree/Tree.mjs.map +1 -1
- package/esm/components/Tree/TreeNode.mjs +1 -0
- package/esm/components/Tree/TreeNode.mjs.map +1 -1
- package/esm/components/Tree/get-all-checked-nodes/get-all-checked-nodes.mjs +37 -0
- package/esm/components/Tree/get-all-checked-nodes/get-all-checked-nodes.mjs.map +1 -0
- package/esm/components/Tree/get-children-nodes-values/get-children-nodes-values.mjs +35 -0
- package/esm/components/Tree/get-children-nodes-values/get-children-nodes-values.mjs.map +1 -0
- package/esm/components/Tree/is-node-checked/is-node-checked.mjs +29 -0
- package/esm/components/Tree/is-node-checked/is-node-checked.mjs.map +1 -0
- package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs +26 -0
- package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs.map +1 -0
- package/esm/components/Tree/use-tree.mjs +33 -3
- package/esm/components/Tree/use-tree.mjs.map +1 -1
- package/esm/core/utils/memoize/memoize.mjs +16 -0
- package/esm/core/utils/memoize/memoize.mjs.map +1 -0
- package/esm/index.mjs +2 -0
- package/esm/index.mjs.map +1 -1
- package/lib/components/Accordion/AccordionPanel/AccordionPanel.d.ts +3 -1
- package/lib/components/FocusTrap/FocusTrap.d.ts +3 -1
- package/lib/components/ScrollArea/ScrollArea.d.ts +4 -0
- package/lib/components/SemiCircleProgress/SemiCircleProgress.d.ts +39 -0
- package/lib/components/SemiCircleProgress/index.d.ts +2 -0
- package/lib/components/Tree/Tree.d.ts +2 -0
- package/lib/components/Tree/get-all-checked-nodes/get-all-checked-nodes.d.ts +11 -0
- package/lib/components/Tree/get-children-nodes-values/get-children-nodes-values.d.ts +3 -0
- package/lib/components/Tree/index.d.ts +1 -0
- package/lib/components/Tree/is-node-checked/is-node-checked.d.ts +3 -0
- package/lib/components/Tree/is-node-indeterminate/is-node-indeterminate.d.ts +3 -0
- package/lib/components/Tree/use-tree.d.ts +13 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/core/utils/index.d.ts +1 -0
- package/lib/core/utils/memoize/memoize.d.ts +1 -0
- package/package.json +3 -3
- package/styles/Anchor.css +9 -0
- package/styles/Anchor.layer.css +9 -0
- package/styles/Combobox.css +4 -0
- package/styles/Combobox.layer.css +4 -0
- package/styles/Drawer.css +2 -2
- package/styles/Drawer.layer.css +2 -2
- package/styles/ModalBase.css +9 -0
- package/styles/ModalBase.layer.css +9 -0
- package/styles/NumberInput.css +0 -1
- package/styles/NumberInput.layer.css +0 -1
- package/styles/SemiCircleProgress.css +56 -0
- package/styles/SemiCircleProgress.layer.css +57 -0
- package/styles/Tooltip.css +4 -0
- package/styles/Tooltip.layer.css +4 -0
- package/styles.css +85 -3
- package/styles.layer.css +85 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-checked-nodes.mjs","sources":["../../../../src/components/Tree/get-all-checked-nodes/get-all-checked-nodes.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport interface CheckedNodeStatus {\n checked: boolean;\n indeterminate: boolean;\n hasChildren: boolean;\n value: string;\n}\n\nexport function getAllCheckedNodes(\n data: TreeNodeData[],\n checkedState: string[],\n acc: CheckedNodeStatus[] = []\n) {\n const currentTreeChecked: CheckedNodeStatus[] = [];\n\n for (const node of data) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n const innerChecked = getAllCheckedNodes(node.children, checkedState, acc);\n if (innerChecked.currentTreeChecked.length === node.children.length) {\n const isChecked = innerChecked.currentTreeChecked.every((item) => item.checked);\n const item = {\n checked: isChecked,\n indeterminate: !isChecked,\n value: node.value,\n hasChildren: true,\n };\n currentTreeChecked.push(item);\n acc.push(item);\n } else if (innerChecked.currentTreeChecked.length > 0) {\n const item = { checked: false, indeterminate: true, value: node.value, hasChildren: true };\n currentTreeChecked.push(item);\n acc.push(item);\n }\n } else if (checkedState.includes(node.value)) {\n const item: CheckedNodeStatus = {\n checked: true,\n indeterminate: false,\n value: node.value,\n hasChildren: false,\n };\n currentTreeChecked.push(item);\n acc.push(item);\n }\n }\n\n return { result: acc, currentTreeChecked };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function findTreeNode(value, data) {
|
|
3
|
+
for (const node of data) {
|
|
4
|
+
if (node.value === value) {
|
|
5
|
+
return node;
|
|
6
|
+
}
|
|
7
|
+
if (Array.isArray(node.children)) {
|
|
8
|
+
const childNode = findTreeNode(value, node.children);
|
|
9
|
+
if (childNode) {
|
|
10
|
+
return childNode;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
function getChildrenNodesValues(value, data, acc = []) {
|
|
17
|
+
const node = findTreeNode(value, data);
|
|
18
|
+
if (!node) {
|
|
19
|
+
return acc;
|
|
20
|
+
}
|
|
21
|
+
if (!Array.isArray(node.children) || node.children.length === 0) {
|
|
22
|
+
return [node.value];
|
|
23
|
+
}
|
|
24
|
+
node.children.forEach((child) => {
|
|
25
|
+
if (Array.isArray(child.children) && child.children.length > 0) {
|
|
26
|
+
getChildrenNodesValues(child.value, data, acc);
|
|
27
|
+
} else {
|
|
28
|
+
acc.push(child.value);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return acc;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { findTreeNode, getChildrenNodesValues };
|
|
35
|
+
//# sourceMappingURL=get-children-nodes-values.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-children-nodes-values.mjs","sources":["../../../../src/components/Tree/get-children-nodes-values/get-children-nodes-values.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport function findTreeNode(value: string, data: TreeNodeData[]): TreeNodeData | null {\n for (const node of data) {\n if (node.value === value) {\n return node;\n }\n\n if (Array.isArray(node.children)) {\n const childNode = findTreeNode(value, node.children);\n if (childNode) {\n return childNode;\n }\n }\n }\n\n return null;\n}\n\n// Returns values for all nested nodes which do not have children\nexport function getChildrenNodesValues(\n value: string,\n data: TreeNodeData[],\n acc: string[] = []\n): string[] {\n const node = findTreeNode(value, data);\n if (!node) {\n return acc;\n }\n\n if (!Array.isArray(node.children) || node.children.length === 0) {\n return [node.value];\n }\n\n node.children.forEach((child) => {\n if (Array.isArray(child.children) && child.children.length > 0) {\n getChildrenNodesValues(child.value, data, acc);\n } else {\n acc.push(child.value);\n }\n });\n\n return acc;\n}\n"],"names":[],"mappings":";AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AAC1C,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAE,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAI,IAAI,CAAI,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAE,CAAA,CAAA;AAC9B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AAClB,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;AACtC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAC3D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAE,CAAA,CAAA;AACrB,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SAAS,CAAC;AACzB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACP,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAG,CAAA,CAAA;AACH,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AACd,CAAC;AACM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA;AAC9D,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AACzC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AACb,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC;AACf,CAAG,CAAA,CAAA;AACH,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACnE,CAAA,CAAA,CAAA,CAAI,OAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACxB,CAAG,CAAA,CAAA;AACH,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAI,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAE,CAAA,CAAA;AACpE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC;AACrD,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AAC5B,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAG,CAAC,CAAC;AACL,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC;AACb,CAAA;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import 'react';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
import '@mantine/hooks';
|
|
5
|
+
import { memoize } from '../../../core/utils/memoize/memoize.mjs';
|
|
6
|
+
import 'clsx';
|
|
7
|
+
import '../../../core/MantineProvider/Mantine.context.mjs';
|
|
8
|
+
import '../../../core/MantineProvider/default-theme.mjs';
|
|
9
|
+
import '../../../core/MantineProvider/MantineProvider.mjs';
|
|
10
|
+
import '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';
|
|
11
|
+
import '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';
|
|
12
|
+
import '../../../core/Box/Box.mjs';
|
|
13
|
+
import '../../../core/DirectionProvider/DirectionProvider.mjs';
|
|
14
|
+
import { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes.mjs';
|
|
15
|
+
|
|
16
|
+
function isNodeChecked(value, data, checkedState) {
|
|
17
|
+
if (checkedState.length === 0) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (checkedState.includes(value)) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
const checkedNodes = getAllCheckedNodes(data, checkedState).result;
|
|
24
|
+
return checkedNodes.some((node) => node.value === value && node.checked);
|
|
25
|
+
}
|
|
26
|
+
const memoizedIsNodeChecked = memoize(isNodeChecked);
|
|
27
|
+
|
|
28
|
+
export { isNodeChecked, memoizedIsNodeChecked };
|
|
29
|
+
//# sourceMappingURL=is-node-checked.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-node-checked.mjs","sources":["../../../../src/components/Tree/is-node-checked/is-node-checked.ts"],"sourcesContent":["import { memoize } from '../../../core';\nimport { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes';\nimport type { TreeNodeData } from '../Tree';\n\nexport function isNodeChecked(\n value: string,\n data: TreeNodeData[],\n checkedState: string[]\n): boolean {\n if (checkedState.length === 0) {\n return false;\n }\n\n if (checkedState.includes(value)) {\n return true;\n }\n\n const checkedNodes = getAllCheckedNodes(data, checkedState).result;\n return checkedNodes.some((node) => node.value === value && node.checked);\n}\n\nexport const memoizedIsNodeChecked = memoize(isNodeChecked);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,YAAY,CAAE,CAAA,CAAA;AACzD,CAAA,CAAE,IAAI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;AACjB,CAAG,CAAA,CAAA;AACH,CAAA,CAAE,IAAI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACpC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AAChB,CAAG,CAAA,CAAA;AACH,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AACrE,CAAA,CAAE,OAAO,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAC,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AAC3E,CAAC;AACW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import 'react';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
import '@mantine/hooks';
|
|
5
|
+
import { memoize } from '../../../core/utils/memoize/memoize.mjs';
|
|
6
|
+
import 'clsx';
|
|
7
|
+
import '../../../core/MantineProvider/Mantine.context.mjs';
|
|
8
|
+
import '../../../core/MantineProvider/default-theme.mjs';
|
|
9
|
+
import '../../../core/MantineProvider/MantineProvider.mjs';
|
|
10
|
+
import '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';
|
|
11
|
+
import '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';
|
|
12
|
+
import '../../../core/Box/Box.mjs';
|
|
13
|
+
import '../../../core/DirectionProvider/DirectionProvider.mjs';
|
|
14
|
+
import { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes.mjs';
|
|
15
|
+
|
|
16
|
+
function isNodeIndeterminate(value, data, checkedState) {
|
|
17
|
+
if (checkedState.length === 0) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const checkedNodes = getAllCheckedNodes(data, checkedState).result;
|
|
21
|
+
return checkedNodes.some((node) => node.value === value && node.indeterminate);
|
|
22
|
+
}
|
|
23
|
+
const memoizedIsNodeIndeterminate = memoize(isNodeIndeterminate);
|
|
24
|
+
|
|
25
|
+
export { isNodeIndeterminate, memoizedIsNodeIndeterminate };
|
|
26
|
+
//# sourceMappingURL=is-node-indeterminate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-node-indeterminate.mjs","sources":["../../../../src/components/Tree/is-node-indeterminate/is-node-indeterminate.ts"],"sourcesContent":["import { memoize } from '../../../core';\nimport { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes';\nimport type { TreeNodeData } from '../Tree';\n\nexport function isNodeIndeterminate(\n value: string,\n data: TreeNodeData[],\n checkedState: string[]\n): boolean {\n if (checkedState.length === 0) {\n return false;\n }\n\n const checkedNodes = getAllCheckedNodes(data, checkedState).result;\n return checkedNodes.some((node) => node.value === value && node.indeterminate);\n}\n\nexport const memoizedIsNodeIndeterminate = memoize(isNodeIndeterminate);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,YAAY,CAAE,CAAA,CAAA;AAC/D,CAAA,CAAE,IAAI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;AACjB,CAAG,CAAA,CAAA;AACH,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AACrE,CAAA,CAAE,OAAO,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAC,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC;AACjF,CAAC;AACW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useState, useCallback } from 'react';
|
|
3
|
+
import { getAllCheckedNodes } from './get-all-checked-nodes/get-all-checked-nodes.mjs';
|
|
4
|
+
import { getChildrenNodesValues } from './get-children-nodes-values/get-children-nodes-values.mjs';
|
|
5
|
+
import { memoizedIsNodeChecked } from './is-node-checked/is-node-checked.mjs';
|
|
6
|
+
import { memoizedIsNodeIndeterminate } from './is-node-indeterminate/is-node-indeterminate.mjs';
|
|
3
7
|
|
|
4
8
|
function getInitialState(initialState, data, value, acc = {}) {
|
|
5
9
|
data.forEach((node) => {
|
|
@@ -15,13 +19,16 @@ function useTree({
|
|
|
15
19
|
initialExpandedState = {},
|
|
16
20
|
multiple = false
|
|
17
21
|
} = {}) {
|
|
22
|
+
const [data, setData] = useState([]);
|
|
18
23
|
const [expandedState, setExpandedState] = useState(initialExpandedState);
|
|
19
24
|
const [selectedState, setSelectedState] = useState(initialSelectedState);
|
|
25
|
+
const [checkedState, setCheckedState] = useState([]);
|
|
20
26
|
const [anchorNode, setAnchorNode] = useState(null);
|
|
21
27
|
const [hoveredNode, setHoveredNode] = useState(null);
|
|
22
28
|
const initialize = useCallback(
|
|
23
|
-
(
|
|
24
|
-
setExpandedState((current) => getInitialState(current,
|
|
29
|
+
(_data) => {
|
|
30
|
+
setExpandedState((current) => getInitialState(current, _data, selectedState));
|
|
31
|
+
setData(_data);
|
|
25
32
|
},
|
|
26
33
|
[selectedState]
|
|
27
34
|
);
|
|
@@ -85,10 +92,28 @@ function useTree({
|
|
|
85
92
|
setSelectedState([]);
|
|
86
93
|
setAnchorNode(null);
|
|
87
94
|
}, []);
|
|
95
|
+
const checkNode = useCallback(
|
|
96
|
+
(value) => {
|
|
97
|
+
const checkedNodes = getChildrenNodesValues(value, data);
|
|
98
|
+
setCheckedState((current) => Array.from(/* @__PURE__ */ new Set([...current, ...checkedNodes])));
|
|
99
|
+
},
|
|
100
|
+
[data]
|
|
101
|
+
);
|
|
102
|
+
const uncheckNode = useCallback(
|
|
103
|
+
(value) => {
|
|
104
|
+
const checkedNodes = getChildrenNodesValues(value, data);
|
|
105
|
+
setCheckedState((current) => current.filter((item) => !checkedNodes.includes(item)));
|
|
106
|
+
},
|
|
107
|
+
[data]
|
|
108
|
+
);
|
|
109
|
+
const getCheckedNodes = () => getAllCheckedNodes(data, checkedState).result;
|
|
110
|
+
const isNodeChecked = (value) => memoizedIsNodeChecked(value, data, checkedState);
|
|
111
|
+
const isNodeIndeterminate = (value) => memoizedIsNodeIndeterminate(value, data, checkedState);
|
|
88
112
|
return {
|
|
89
113
|
multiple,
|
|
90
114
|
expandedState,
|
|
91
115
|
selectedState,
|
|
116
|
+
checkedState,
|
|
92
117
|
anchorNode,
|
|
93
118
|
initialize,
|
|
94
119
|
toggleExpanded,
|
|
@@ -97,13 +122,18 @@ function useTree({
|
|
|
97
122
|
expandAllNodes,
|
|
98
123
|
collapseAllNodes,
|
|
99
124
|
setExpandedState,
|
|
125
|
+
checkNode,
|
|
126
|
+
uncheckNode,
|
|
100
127
|
toggleSelected,
|
|
101
128
|
select,
|
|
102
129
|
deselect,
|
|
103
130
|
clearSelected,
|
|
104
131
|
setSelectedState,
|
|
105
132
|
hoveredNode,
|
|
106
|
-
setHoveredNode
|
|
133
|
+
setHoveredNode,
|
|
134
|
+
getCheckedNodes,
|
|
135
|
+
isNodeChecked,
|
|
136
|
+
isNodeIndeterminate
|
|
107
137
|
};
|
|
108
138
|
}
|
|
109
139
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.mjs","sources":["../../../src/components/Tree/use-tree.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport type { TreeNodeData } from './Tree';\n\nexport type TreeExpandedState = Record<string, boolean>;\n\nfunction getInitialState(\n initialState: TreeExpandedState,\n data: TreeNodeData[],\n value: string | string[] | undefined,\n acc: TreeExpandedState = {}\n) {\n data.forEach((node) => {\n acc[node.value] = node.value in initialState ? initialState[node.value] : node.value === value;\n\n if (Array.isArray(node.children)) {\n getInitialState(initialState, node.children, value, acc);\n }\n });\n\n return acc;\n}\n\nexport interface UseTreeInput {\n /** Initial expanded state of all nodes */\n initialExpandedState?: TreeExpandedState;\n\n /** Initial selected state of nodes */\n initialSelectedState?: string[];\n\n /** Determines whether multiple node can be selected at a time */\n multiple?: boolean;\n}\n\nexport interface UseTreeReturnType {\n /** Determines whether multiple node can be selected at a time */\n multiple: boolean;\n\n /** A record of `node.value` and boolean values that represent nodes expanded state */\n expandedState: TreeExpandedState;\n\n /** An array of selected nodes values */\n selectedState: string[];\n\n /** A value of the node that was last clicked\n * Anchor node is used to determine range of selected nodes for multiple selection\n */\n anchorNode: string | null;\n\n /** Initializes tree state based on provided data, called automatically by the Tree component */\n initialize: (data: TreeNodeData[]) => void;\n\n /** Toggles expanded state of the node with provided value */\n toggleExpanded: (value: string) => void;\n\n /** Collapses node with provided value */\n collapse: (value: string) => void;\n\n /** Expands node with provided value */\n expand: (value: string) => void;\n\n /** Expands all nodes */\n expandAllNodes: () => void;\n\n /** Collapses all nodes */\n collapseAllNodes: () => void;\n\n /** Sets expanded state */\n setExpandedState: React.Dispatch<React.SetStateAction<TreeExpandedState>>;\n\n /** Toggles selected state of the node with provided value */\n toggleSelected: (value: string) => void;\n\n /** Selects node with provided value */\n select: (value: string) => void;\n\n /** Deselects node with provided value */\n deselect: (value: string) => void;\n\n /** Clears selected state */\n clearSelected: () => void;\n\n /** Sets selected state */\n setSelectedState: React.Dispatch<React.SetStateAction<string[]>>;\n\n /** A value of the node that is currently hovered */\n hoveredNode: string | null;\n\n /** Sets hovered node */\n setHoveredNode: React.Dispatch<React.SetStateAction<string | null>>;\n}\n\nexport function useTree({\n initialSelectedState = [],\n initialExpandedState = {},\n multiple = false,\n}: UseTreeInput = {}): UseTreeReturnType {\n const [expandedState, setExpandedState] = useState(initialExpandedState);\n const [selectedState, setSelectedState] = useState(initialSelectedState);\n const [anchorNode, setAnchorNode] = useState<string | null>(null);\n const [hoveredNode, setHoveredNode] = useState<string | null>(null);\n\n const initialize = useCallback(\n (data: TreeNodeData[]) => {\n setExpandedState((current) => getInitialState(current, data, selectedState));\n },\n [selectedState]\n );\n\n const toggleExpanded = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: !current[value] }));\n }, []);\n\n const collapse = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: false }));\n }, []);\n\n const expand = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: true }));\n }, []);\n\n const expandAllNodes = useCallback(() => {\n setExpandedState((current) => {\n const next = { ...current };\n Object.keys(next).forEach((key) => {\n next[key] = true;\n });\n\n return next;\n });\n }, []);\n\n const collapseAllNodes = useCallback(() => {\n setExpandedState((current) => {\n const next = { ...current };\n Object.keys(next).forEach((key) => {\n next[key] = false;\n });\n\n return next;\n });\n }, []);\n\n const toggleSelected = useCallback(\n (value: string) =>\n setSelectedState((current) => {\n if (!multiple) {\n if (current.includes(value)) {\n setAnchorNode(null);\n return [];\n }\n\n setAnchorNode(value);\n return [value];\n }\n\n if (current.includes(value)) {\n setAnchorNode(null);\n return current.filter((item) => item !== value);\n }\n\n setAnchorNode(value);\n\n return [...current, value];\n }),\n []\n );\n\n const select = useCallback((value: string) => {\n setAnchorNode(value);\n setSelectedState((current) =>\n multiple ? (current.includes(value) ? current : [...current, value]) : [value]\n );\n }, []);\n\n const deselect = useCallback((value: string) => {\n anchorNode === value && setAnchorNode(null);\n setSelectedState((current) => current.filter((item) => item !== value));\n }, []);\n\n const clearSelected = useCallback(() => {\n setSelectedState([]);\n setAnchorNode(null);\n }, []);\n\n return {\n multiple,\n expandedState,\n selectedState,\n anchorNode,\n initialize,\n\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n\n hoveredNode,\n setHoveredNode,\n };\n}\n\nexport type TreeController = ReturnType<typeof useTree>;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-tree.mjs","sources":["../../../src/components/Tree/use-tree.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport {\n CheckedNodeStatus,\n getAllCheckedNodes,\n} from './get-all-checked-nodes/get-all-checked-nodes';\nimport { getChildrenNodesValues } from './get-children-nodes-values/get-children-nodes-values';\nimport { memoizedIsNodeChecked } from './is-node-checked/is-node-checked';\nimport { memoizedIsNodeIndeterminate } from './is-node-indeterminate/is-node-indeterminate';\nimport type { TreeNodeData } from './Tree';\n\nexport type TreeExpandedState = Record<string, boolean>;\n\nfunction getInitialState(\n initialState: TreeExpandedState,\n data: TreeNodeData[],\n value: string | string[] | undefined,\n acc: TreeExpandedState = {}\n) {\n data.forEach((node) => {\n acc[node.value] = node.value in initialState ? initialState[node.value] : node.value === value;\n\n if (Array.isArray(node.children)) {\n getInitialState(initialState, node.children, value, acc);\n }\n });\n\n return acc;\n}\n\nexport interface UseTreeInput {\n /** Initial expanded state of all nodes */\n initialExpandedState?: TreeExpandedState;\n\n /** Initial selected state of nodes */\n initialSelectedState?: string[];\n\n /** Determines whether multiple node can be selected at a time */\n multiple?: boolean;\n}\n\nexport interface UseTreeReturnType {\n /** Determines whether multiple node can be selected at a time */\n multiple: boolean;\n\n /** A record of `node.value` and boolean values that represent nodes expanded state */\n expandedState: TreeExpandedState;\n\n /** An array of selected nodes values */\n selectedState: string[];\n\n /** An array of checked nodes values */\n checkedState: string[];\n\n /** A value of the node that was last clicked\n * Anchor node is used to determine range of selected nodes for multiple selection\n */\n anchorNode: string | null;\n\n /** Initializes tree state based on provided data, called automatically by the Tree component */\n initialize: (data: TreeNodeData[]) => void;\n\n /** Toggles expanded state of the node with provided value */\n toggleExpanded: (value: string) => void;\n\n /** Collapses node with provided value */\n collapse: (value: string) => void;\n\n /** Expands node with provided value */\n expand: (value: string) => void;\n\n /** Expands all nodes */\n expandAllNodes: () => void;\n\n /** Collapses all nodes */\n collapseAllNodes: () => void;\n\n /** Sets expanded state */\n setExpandedState: React.Dispatch<React.SetStateAction<TreeExpandedState>>;\n\n /** Toggles selected state of the node with provided value */\n toggleSelected: (value: string) => void;\n\n /** Selects node with provided value */\n select: (value: string) => void;\n\n /** Deselects node with provided value */\n deselect: (value: string) => void;\n\n /** Clears selected state */\n clearSelected: () => void;\n\n /** Sets selected state */\n setSelectedState: React.Dispatch<React.SetStateAction<string[]>>;\n\n /** A value of the node that is currently hovered */\n hoveredNode: string | null;\n\n /** Sets hovered node */\n setHoveredNode: React.Dispatch<React.SetStateAction<string | null>>;\n\n /** Checks node with provided value */\n checkNode: (value: string) => void;\n\n /** Unchecks node with provided value */\n uncheckNode: (value: string) => void;\n\n /** Returns all checked nodes with status */\n getCheckedNodes: () => CheckedNodeStatus[];\n\n /** Returns `true` if node with provided value is checked */\n isNodeChecked: (value: string) => boolean;\n\n /** Returns `true` if node with provided value is indeterminate */\n isNodeIndeterminate: (value: string) => boolean;\n}\n\nexport function useTree({\n initialSelectedState = [],\n initialExpandedState = {},\n multiple = false,\n}: UseTreeInput = {}): UseTreeReturnType {\n const [data, setData] = useState<TreeNodeData[]>([]);\n const [expandedState, setExpandedState] = useState(initialExpandedState);\n const [selectedState, setSelectedState] = useState(initialSelectedState);\n const [checkedState, setCheckedState] = useState<string[]>([]);\n const [anchorNode, setAnchorNode] = useState<string | null>(null);\n const [hoveredNode, setHoveredNode] = useState<string | null>(null);\n\n const initialize = useCallback(\n (_data: TreeNodeData[]) => {\n setExpandedState((current) => getInitialState(current, _data, selectedState));\n setData(_data);\n },\n [selectedState]\n );\n\n const toggleExpanded = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: !current[value] }));\n }, []);\n\n const collapse = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: false }));\n }, []);\n\n const expand = useCallback((value: string) => {\n setExpandedState((current) => ({ ...current, [value]: true }));\n }, []);\n\n const expandAllNodes = useCallback(() => {\n setExpandedState((current) => {\n const next = { ...current };\n Object.keys(next).forEach((key) => {\n next[key] = true;\n });\n\n return next;\n });\n }, []);\n\n const collapseAllNodes = useCallback(() => {\n setExpandedState((current) => {\n const next = { ...current };\n Object.keys(next).forEach((key) => {\n next[key] = false;\n });\n\n return next;\n });\n }, []);\n\n const toggleSelected = useCallback(\n (value: string) =>\n setSelectedState((current) => {\n if (!multiple) {\n if (current.includes(value)) {\n setAnchorNode(null);\n return [];\n }\n\n setAnchorNode(value);\n return [value];\n }\n\n if (current.includes(value)) {\n setAnchorNode(null);\n return current.filter((item) => item !== value);\n }\n\n setAnchorNode(value);\n\n return [...current, value];\n }),\n []\n );\n\n const select = useCallback((value: string) => {\n setAnchorNode(value);\n setSelectedState((current) =>\n multiple ? (current.includes(value) ? current : [...current, value]) : [value]\n );\n }, []);\n\n const deselect = useCallback((value: string) => {\n anchorNode === value && setAnchorNode(null);\n setSelectedState((current) => current.filter((item) => item !== value));\n }, []);\n\n const clearSelected = useCallback(() => {\n setSelectedState([]);\n setAnchorNode(null);\n }, []);\n\n const checkNode = useCallback(\n (value: string) => {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState((current) => Array.from(new Set([...current, ...checkedNodes])));\n },\n [data]\n );\n\n const uncheckNode = useCallback(\n (value: string) => {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState((current) => current.filter((item) => !checkedNodes.includes(item)));\n },\n [data]\n );\n\n const getCheckedNodes = () => getAllCheckedNodes(data, checkedState).result;\n const isNodeChecked = (value: string) => memoizedIsNodeChecked(value, data, checkedState);\n const isNodeIndeterminate = (value: string) =>\n memoizedIsNodeIndeterminate(value, data, checkedState);\n\n return {\n multiple,\n expandedState,\n selectedState,\n checkedState,\n anchorNode,\n initialize,\n\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n checkNode,\n uncheckNode,\n\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n\n hoveredNode,\n setHoveredNode,\n getCheckedNodes,\n isNodeChecked,\n isNodeIndeterminate,\n };\n}\n\nexport type TreeController = ReturnType<typeof useTree>;\n"],"names":[],"mappings":";;;;;;;AAQA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA;AAC9D,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACzB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AACnG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC;AAC/D,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAG,CAAC,CAAC;AACL,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC;AACb,CAAC;AACM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAO,CAAC,CAAA;AACxB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,GAAG,CAAE,CAAA,CAAA;AAC3B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,GAAG,CAAE,CAAA,CAAA;AAC3B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAK,CAAA,CAAA,CAAA,CAAA;AAClB,CAAC,CAAA,CAAA,CAAG,EAAE,CAAE,CAAA,CAAA;AACR,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;AACvC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAC3E,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAC3E,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;AACvD,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AACrD,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AACvD,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChC,CAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;AACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACrB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAC,aAAa,CAAC;AACnB,CAAA,CAAA,CAAG,CAAC;AACJ,CAAA,CAAE,MAAM,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAChD,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAE,CAAA,CAAA,CAAA,CAAG,OAAO,CAAE,CAAA,CAAC,KAAK,CAAG,CAAA,CAAA,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;AAC9E,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,MAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAI,gBAAgB,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAC,KAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAC,CAAC,CAAC;AACpE,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,MAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAI,gBAAgB,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAC,KAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAC,CAAC,CAAC;AACnE,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;AAClC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,IAAI,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AACT,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;AAClC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AACT,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,gBAAgB,CAAC,CAAC,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7C,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AAC9B,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;AACpB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACvB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACxD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAC,CAAA,CAAA,CAAG,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACjC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AACN,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA;AACN,CAAA,CAAA,CAAG,CAAC;AACJ,CAAA,CAAE,MAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACzB,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AAC/F,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AACN,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,MAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,aAAa,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;AAChD,CAAA,CAAA,CAAA,CAAI,gBAAgB,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;AAC5E,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;AACzB,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AACxB,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;AACT,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,CAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AAC/D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,OAAO,CAAE,CAAA,CAAA,CAAA,CAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC;AACV,CAAA,CAAA,CAAG,CAAC;AACJ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjC,CAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AAC/D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,CAAC,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,YAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC;AACV,CAAA,CAAA,CAAG,CAAC;AACJ,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AAC9E,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAG,CAAA,CAAA,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC;AACpF,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAG,CAAA,CAAA,CAAC,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC;AAChG,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAI,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA,CAAA,CAAA,CAAI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAI,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAI,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAI,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAI,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAI,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAI,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAG,CAAC;AACJ,CAAA;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function memoize(func) {
|
|
3
|
+
const cache = /* @__PURE__ */ new Map();
|
|
4
|
+
return (...args) => {
|
|
5
|
+
const key = JSON.stringify(args);
|
|
6
|
+
if (cache.has(key)) {
|
|
7
|
+
return cache.get(key);
|
|
8
|
+
}
|
|
9
|
+
const result = func(...args);
|
|
10
|
+
cache.set(key, result);
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { memoize };
|
|
16
|
+
//# sourceMappingURL=memoize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.mjs","sources":["../../../../src/core/utils/memoize/memoize.ts"],"sourcesContent":["export function memoize<T extends (...args: any[]) => any>(\n func: T\n): (...args: Parameters<T>) => ReturnType<T> {\n const cache = new Map<string, ReturnType<T>>();\n\n return (...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key) as ReturnType<T>;\n }\n\n const result = func(...args);\n cache.set(key, result);\n return result;\n };\n}\n"],"names":[],"mappings":";AACO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AAC9B,CAAA,CAAE,MAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAE,CAAC;AAC1C,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACtB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;AACrC,CAAA,CAAA,CAAA,CAAI,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAE,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AAC5B,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;AACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAG,CAAA,CAAA,CAAC,GAAG,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;AAC3B,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAC;AAClB,CAAA,CAAA,CAAG,CAAC;AACJ,CAAA;;"}
|
package/esm/index.mjs
CHANGED
|
@@ -24,6 +24,7 @@ export { getContextItemIndex } from './core/utils/get-context-item-index/get-con
|
|
|
24
24
|
export { useHovered } from './core/utils/use-hovered/use-hovered.mjs';
|
|
25
25
|
export { createUseExternalEvents } from './core/utils/create-use-external-events/create-use-external-events.mjs';
|
|
26
26
|
export { getEnv } from './core/utils/get-env/get-env.mjs';
|
|
27
|
+
export { memoize } from './core/utils/memoize/memoize.mjs';
|
|
27
28
|
export { createVarsResolver } from './core/styles-api/create-vars-resolver/create-vars-resolver.mjs';
|
|
28
29
|
export { resolveClassNames } from './core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.mjs';
|
|
29
30
|
export { resolveStyles } from './core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.mjs';
|
|
@@ -261,6 +262,7 @@ export { Rating } from './components/Rating/Rating.mjs';
|
|
|
261
262
|
export { RingProgress } from './components/RingProgress/RingProgress.mjs';
|
|
262
263
|
export { SegmentedControl } from './components/SegmentedControl/SegmentedControl.mjs';
|
|
263
264
|
export { Select } from './components/Select/Select.mjs';
|
|
265
|
+
export { SemiCircleProgress } from './components/SemiCircleProgress/SemiCircleProgress.mjs';
|
|
264
266
|
export { SimpleGrid } from './components/SimpleGrid/SimpleGrid.mjs';
|
|
265
267
|
export { Skeleton } from './components/Skeleton/Skeleton.mjs';
|
|
266
268
|
export { Slider } from './components/Slider/Slider/Slider.mjs';
|
package/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { BoxProps, CompoundStylesApiProps, ElementProps, Factory } from '../../../core';
|
|
2
2
|
export type AccordionPanelStylesNames = 'panel' | 'content';
|
|
3
|
-
export interface AccordionPanelProps extends BoxProps, CompoundStylesApiProps<AccordionPanelFactory>, ElementProps<'div'
|
|
3
|
+
export interface AccordionPanelProps extends BoxProps, CompoundStylesApiProps<AccordionPanelFactory>, ElementProps<'div'> {
|
|
4
|
+
/** Called when the panel animation completes */
|
|
5
|
+
onTransitionEnd?: () => void;
|
|
4
6
|
}
|
|
5
7
|
export type AccordionPanelFactory = Factory<{
|
|
6
8
|
props: AccordionPanelProps;
|
|
@@ -5,8 +5,10 @@ export interface FocusTrapProps {
|
|
|
5
5
|
active?: boolean;
|
|
6
6
|
/** Prop that should be used to access component ref */
|
|
7
7
|
refProp?: string;
|
|
8
|
+
/** Assigns element `ref` */
|
|
9
|
+
innerRef?: React.ForwardedRef<any>;
|
|
8
10
|
}
|
|
9
|
-
export declare function FocusTrap({ children, active, refProp, }: FocusTrapProps): React.ReactElement;
|
|
11
|
+
export declare function FocusTrap({ children, active, refProp, innerRef, }: FocusTrapProps): React.ReactElement;
|
|
10
12
|
export declare namespace FocusTrap {
|
|
11
13
|
var displayName: string;
|
|
12
14
|
var InitialFocus: typeof FocusTrapInitialFocus;
|
|
@@ -30,6 +30,10 @@ export interface ScrollAreaProps extends BoxProps, StylesApiProps<ScrollAreaFact
|
|
|
30
30
|
x: number;
|
|
31
31
|
y: number;
|
|
32
32
|
}) => void;
|
|
33
|
+
/** Called when scrollarea is scrolled all the way to the bottom */
|
|
34
|
+
onBottomReached?: () => void;
|
|
35
|
+
/** Called when scrollarea is scrolled all the way to the top */
|
|
36
|
+
onTopReached?: () => void;
|
|
33
37
|
}
|
|
34
38
|
export interface ScrollAreaAutosizeProps extends ScrollAreaProps {
|
|
35
39
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BoxProps, ElementProps, Factory, MantineColor, StylesApiProps } from '../../core';
|
|
2
|
+
export type SemiCircleProgressStylesNames = 'root' | 'svg' | 'emptySegment' | 'filledSegment' | 'label';
|
|
3
|
+
export type SemiCircleProgressCssVariables = {
|
|
4
|
+
root: '--scp-filled-segment-color' | '--scp-empty-segment-color' | '--scp-rotation' | '--scp-transition-duration' | '--scp-thickness';
|
|
5
|
+
};
|
|
6
|
+
export interface SemiCircleProgressProps extends BoxProps, StylesApiProps<SemiCircleProgressFactory>, ElementProps<'div'> {
|
|
7
|
+
/** Progress value from `0` to `100` */
|
|
8
|
+
value: number;
|
|
9
|
+
/** Diameter of the svg in px, `200` by default */
|
|
10
|
+
size?: number;
|
|
11
|
+
/** Circle thickness in px, `12` by default */
|
|
12
|
+
thickness?: number;
|
|
13
|
+
/** Orientation of the circle, `'up'` by default */
|
|
14
|
+
orientation?: 'up' | 'down';
|
|
15
|
+
/** Direction from which the circle is filled, `'left-to-right'` by default */
|
|
16
|
+
fillDirection?: 'right-to-left' | 'left-to-right';
|
|
17
|
+
/** Key of `theme.colors` or any valid CSS color value, `theme.primaryColor` by default */
|
|
18
|
+
filledSegmentColor?: MantineColor;
|
|
19
|
+
/** Key of `theme.colors` or any valid CSS color value, by default the value is determined based on the color scheme value */
|
|
20
|
+
emptySegmentColor?: MantineColor;
|
|
21
|
+
/** Transition duration of filled section styles changes in ms, `0` by default */
|
|
22
|
+
transitionDuration?: number;
|
|
23
|
+
/** Label rendered inside the circle */
|
|
24
|
+
label?: React.ReactNode;
|
|
25
|
+
/** Label position relative to the circle center, `'bottom'` by default */
|
|
26
|
+
labelPosition?: 'center' | 'bottom';
|
|
27
|
+
}
|
|
28
|
+
export type SemiCircleProgressFactory = Factory<{
|
|
29
|
+
props: SemiCircleProgressProps;
|
|
30
|
+
ref: HTMLDivElement;
|
|
31
|
+
stylesNames: SemiCircleProgressStylesNames;
|
|
32
|
+
vars: SemiCircleProgressCssVariables;
|
|
33
|
+
}>;
|
|
34
|
+
export declare const SemiCircleProgress: import("../../core").MantineComponent<{
|
|
35
|
+
props: SemiCircleProgressProps;
|
|
36
|
+
ref: HTMLDivElement;
|
|
37
|
+
stylesNames: SemiCircleProgressStylesNames;
|
|
38
|
+
vars: SemiCircleProgressCssVariables;
|
|
39
|
+
}>;
|
|
@@ -17,6 +17,8 @@ export interface RenderTreeNodePayload {
|
|
|
17
17
|
selected: boolean;
|
|
18
18
|
/** Node data from the `data` prop of `Tree` */
|
|
19
19
|
node: TreeNodeData;
|
|
20
|
+
/** Tree controller instance, return value of `useTree` hook */
|
|
21
|
+
tree: TreeController;
|
|
20
22
|
/** Props to spread into the root node element */
|
|
21
23
|
elementProps: {
|
|
22
24
|
className: string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TreeNodeData } from '../Tree';
|
|
2
|
+
export interface CheckedNodeStatus {
|
|
3
|
+
checked: boolean;
|
|
4
|
+
indeterminate: boolean;
|
|
5
|
+
hasChildren: boolean;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function getAllCheckedNodes(data: TreeNodeData[], checkedState: string[], acc?: CheckedNodeStatus[]): {
|
|
9
|
+
result: CheckedNodeStatus[];
|
|
10
|
+
currentTreeChecked: CheckedNodeStatus[];
|
|
11
|
+
};
|
|
@@ -2,3 +2,4 @@ export { Tree } from './Tree';
|
|
|
2
2
|
export { useTree } from './use-tree';
|
|
3
3
|
export type { TreeCssVariables, TreeFactory, TreeProps, TreeStylesNames, TreeNodeData, RenderTreeNodePayload, } from './Tree';
|
|
4
4
|
export type { UseTreeInput, UseTreeReturnType } from './use-tree';
|
|
5
|
+
export type { CheckedNodeStatus } from './get-all-checked-nodes/get-all-checked-nodes';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { TreeNodeData } from '../Tree';
|
|
2
|
+
export declare function isNodeIndeterminate(value: string, data: TreeNodeData[], checkedState: string[]): boolean;
|
|
3
|
+
export declare const memoizedIsNodeIndeterminate: (value: string, data: TreeNodeData[], checkedState: string[]) => boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CheckedNodeStatus } from './get-all-checked-nodes/get-all-checked-nodes';
|
|
1
2
|
import type { TreeNodeData } from './Tree';
|
|
2
3
|
export type TreeExpandedState = Record<string, boolean>;
|
|
3
4
|
export interface UseTreeInput {
|
|
@@ -15,6 +16,8 @@ export interface UseTreeReturnType {
|
|
|
15
16
|
expandedState: TreeExpandedState;
|
|
16
17
|
/** An array of selected nodes values */
|
|
17
18
|
selectedState: string[];
|
|
19
|
+
/** An array of checked nodes values */
|
|
20
|
+
checkedState: string[];
|
|
18
21
|
/** A value of the node that was last clicked
|
|
19
22
|
* Anchor node is used to determine range of selected nodes for multiple selection
|
|
20
23
|
*/
|
|
@@ -47,6 +50,16 @@ export interface UseTreeReturnType {
|
|
|
47
50
|
hoveredNode: string | null;
|
|
48
51
|
/** Sets hovered node */
|
|
49
52
|
setHoveredNode: React.Dispatch<React.SetStateAction<string | null>>;
|
|
53
|
+
/** Checks node with provided value */
|
|
54
|
+
checkNode: (value: string) => void;
|
|
55
|
+
/** Unchecks node with provided value */
|
|
56
|
+
uncheckNode: (value: string) => void;
|
|
57
|
+
/** Returns all checked nodes with status */
|
|
58
|
+
getCheckedNodes: () => CheckedNodeStatus[];
|
|
59
|
+
/** Returns `true` if node with provided value is checked */
|
|
60
|
+
isNodeChecked: (value: string) => boolean;
|
|
61
|
+
/** Returns `true` if node with provided value is indeterminate */
|
|
62
|
+
isNodeIndeterminate: (value: string) => boolean;
|
|
50
63
|
}
|
|
51
64
|
export declare function useTree({ initialSelectedState, initialExpandedState, multiple, }?: UseTreeInput): UseTreeReturnType;
|
|
52
65
|
export type TreeController = ReturnType<typeof useTree>;
|
|
@@ -77,6 +77,7 @@ export * from './Rating';
|
|
|
77
77
|
export * from './RingProgress';
|
|
78
78
|
export * from './SegmentedControl';
|
|
79
79
|
export * from './Select';
|
|
80
|
+
export * from './SemiCircleProgress';
|
|
80
81
|
export * from './SimpleGrid';
|
|
81
82
|
export * from './Skeleton';
|
|
82
83
|
export * from './Slider';
|
|
@@ -22,3 +22,4 @@ export { getContextItemIndex } from './get-context-item-index/get-context-item-i
|
|
|
22
22
|
export { useHovered } from './use-hovered/use-hovered';
|
|
23
23
|
export { createUseExternalEvents } from './create-use-external-events/create-use-external-events';
|
|
24
24
|
export { getEnv } from './get-env/get-env';
|
|
25
|
+
export { memoize } from './memoize/memoize';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function memoize<T extends (...args: any[]) => any>(func: T): (...args: Parameters<T>) => ReturnType<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/core",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.12.0",
|
|
4
4
|
"description": "React components library focused on usability, accessibility and developer experience",
|
|
5
5
|
"homepage": "https://mantine.dev/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"directory": "packages/@mantine/core"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@mantine/hooks": "7.
|
|
46
|
+
"@mantine/hooks": "7.12.0",
|
|
47
47
|
"react": "^18.2.0",
|
|
48
48
|
"react-dom": "^18.2.0"
|
|
49
49
|
},
|
|
@@ -57,6 +57,6 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@mantine-tests/core": "1.1.0",
|
|
60
|
-
"@mantine/hooks": "7.
|
|
60
|
+
"@mantine/hooks": "7.12.0"
|
|
61
61
|
}
|
|
62
62
|
}
|
package/styles/Anchor.css
CHANGED
|
@@ -27,3 +27,12 @@
|
|
|
27
27
|
.m_849cf0da:where([data-underline='always']) {
|
|
28
28
|
text-decoration: underline;
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
.m_849cf0da:where([data-variant='gradient']),
|
|
32
|
+
.m_849cf0da:where([data-variant='gradient']):hover {
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.m_849cf0da:where([data-line-clamp]) {
|
|
37
|
+
display: -webkit-box;
|
|
38
|
+
}
|
package/styles/Anchor.layer.css
CHANGED
|
@@ -27,4 +27,13 @@
|
|
|
27
27
|
.m_849cf0da:where([data-underline='always']) {
|
|
28
28
|
text-decoration: underline;
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
.m_849cf0da:where([data-variant='gradient']),
|
|
32
|
+
.m_849cf0da:where([data-variant='gradient']):hover {
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.m_849cf0da:where([data-line-clamp]) {
|
|
37
|
+
display: -webkit-box;
|
|
38
|
+
}
|
|
30
39
|
}
|