@mui/x-tree-view 7.2.0 → 7.3.1
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/CHANGELOG.md +204 -2
- package/TreeItem/TreeItem.js +1 -2
- package/TreeItem/TreeItemContent.js +1 -2
- package/TreeItem/useTreeItemState.js +1 -3
- package/TreeItem2/TreeItem2.js +1 -2
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -3
- package/index.js +1 -1
- package/internals/TreeViewProvider/useTreeViewContext.d.ts +1 -1
- package/internals/hooks/useInstanceEventHandler.d.ts +2 -2
- package/internals/models/treeView.d.ts +0 -6
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +6 -5
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +7 -7
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +31 -63
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +82 -94
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +32 -5
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +9 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +21 -0
- package/internals/useTreeView/useTreeView.types.d.ts +1 -1
- package/internals/useTreeView/useTreeViewModels.d.ts +1 -1
- package/internals/utils/extractPluginParamsFromProps.d.ts +1 -1
- package/internals/utils/publishTreeViewEvent.d.ts +1 -1
- package/internals/utils/tree.d.ts +17 -1
- package/internals/utils/tree.js +34 -4
- package/modern/TreeItem/TreeItem.js +1 -2
- package/modern/TreeItem/TreeItemContent.js +1 -2
- package/modern/TreeItem/useTreeItemState.js +1 -3
- package/modern/TreeItem2/TreeItem2.js +1 -2
- package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -3
- package/modern/index.js +1 -1
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +6 -5
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +7 -7
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +31 -63
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +82 -94
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +21 -0
- package/modern/internals/utils/tree.js +34 -4
- package/node/RichTreeView/RichTreeView.js +1 -1
- package/node/SimpleTreeView/SimpleTreeView.js +1 -1
- package/node/TreeItem/TreeItem.js +1 -1
- package/node/TreeItem/TreeItemContent.js +1 -1
- package/node/TreeItem/useTreeItemState.js +1 -3
- package/node/TreeItem2/TreeItem2.js +1 -1
- package/node/TreeItem2Icon/TreeItem2Icon.js +1 -1
- package/node/TreeView/TreeView.js +1 -1
- package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -3
- package/node/hooks/useTreeViewApiRef.js +1 -1
- package/node/icons/icons.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +1 -1
- package/node/internals/TreeViewProvider/TreeViewContext.js +1 -1
- package/node/internals/TreeViewProvider/TreeViewProvider.js +1 -1
- package/node/internals/TreeViewProvider/useTreeViewContext.js +1 -1
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +1 -1
- package/node/internals/hooks/useInstanceEventHandler.js +1 -1
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +1 -1
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +7 -6
- package/node/internals/plugins/useTreeViewId/useTreeViewId.js +1 -1
- package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +1 -1
- package/node/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +8 -8
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +32 -64
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +82 -94
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +29 -0
- package/node/internals/useTreeView/useTreeView.js +1 -1
- package/node/internals/useTreeView/useTreeViewModels.js +1 -1
- package/node/internals/utils/tree.js +37 -5
- package/package.json +3 -5
|
@@ -7,7 +7,7 @@ exports.useTreeViewContext = void 0;
|
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _TreeViewContext = require("./TreeViewContext");
|
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
11
|
const useTreeViewContext = () => {
|
|
12
12
|
const context = React.useContext(_TreeViewContext.TreeViewContext);
|
|
13
13
|
if (context == null) {
|
|
@@ -7,7 +7,7 @@ exports.useTreeViewInstanceEvents = void 0;
|
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _EventManager = require("../../utils/EventManager");
|
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
11
|
const isSyntheticEvent = event => {
|
|
12
12
|
return event.isPropagationStopped !== undefined;
|
|
13
13
|
};
|
|
@@ -9,7 +9,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _TimerBasedCleanupTracking = require("../utils/cleanupTracking/TimerBasedCleanupTracking");
|
|
10
10
|
var _FinalizationRegistryBasedCleanupTracking = require("../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking");
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
13
|
// We use class to make it easier to detect in heap snapshots by name
|
|
14
14
|
class ObjectToBeRetainedByReact {}
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
13
|
const useTreeViewExpansion = ({
|
|
14
14
|
instance,
|
|
15
15
|
params,
|
|
@@ -13,7 +13,7 @@ var _useInstanceEventHandler = require("../../hooks/useInstanceEventHandler");
|
|
|
13
13
|
var _utils = require("../../utils/utils");
|
|
14
14
|
var _tree = require("../../utils/tree");
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
17
|
const useTabbableItemId = (instance, selectedItems) => {
|
|
18
18
|
const isItemVisible = itemId => {
|
|
19
19
|
const itemMeta = instance.getItemMeta(itemId);
|
|
@@ -103,19 +103,20 @@ const useTreeViewFocus = ({
|
|
|
103
103
|
instance.focusDefaultItem(null);
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
|
-
const
|
|
106
|
+
const createRootHandleFocus = otherHandlers => event => {
|
|
107
107
|
otherHandlers.onFocus?.(event);
|
|
108
|
+
if (event.defaultMuiPrevented) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
108
112
|
// if the event bubbled (which is React specific) we don't want to steal focus
|
|
109
113
|
if (event.target === event.currentTarget) {
|
|
110
114
|
instance.focusDefaultItem(event);
|
|
111
115
|
}
|
|
112
116
|
};
|
|
113
|
-
const focusedItem = instance.getItemMeta(state.focusedItemId);
|
|
114
|
-
const activeDescendant = focusedItem ? instance.getTreeItemIdAttribute(focusedItem.id, focusedItem.idAttribute) : null;
|
|
115
117
|
return {
|
|
116
118
|
getRootProps: otherHandlers => ({
|
|
117
|
-
onFocus:
|
|
118
|
-
'aria-activedescendant': activeDescendant ?? undefined
|
|
119
|
+
onFocus: createRootHandleFocus(otherHandlers)
|
|
119
120
|
}),
|
|
120
121
|
publicAPI: {
|
|
121
122
|
focusItem
|
|
@@ -8,7 +8,7 @@ exports.useTreeViewId = void 0;
|
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
10
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
12
|
const useTreeViewId = ({
|
|
13
13
|
params
|
|
14
14
|
}) => {
|
|
@@ -10,7 +10,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _publishTreeViewEvent = require("../../utils/publishTreeViewEvent");
|
|
11
11
|
var _useTreeViewItems = require("./useTreeViewItems.utils");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
const updateItemsState = ({
|
|
15
15
|
items,
|
|
16
16
|
isItemDisabled,
|
|
@@ -16,7 +16,7 @@ var _TreeViewChildrenItemProvider = require("../../TreeViewProvider/TreeViewChil
|
|
|
16
16
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.utils");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
20
|
const useTreeViewJSXItems = ({
|
|
21
21
|
instance,
|
|
22
22
|
setState
|
|
@@ -96,6 +96,12 @@ const useTreeViewJSXItems = ({
|
|
|
96
96
|
};
|
|
97
97
|
};
|
|
98
98
|
exports.useTreeViewJSXItems = useTreeViewJSXItems;
|
|
99
|
+
const isItemExpandable = reactChildren => {
|
|
100
|
+
if (Array.isArray(reactChildren)) {
|
|
101
|
+
return reactChildren.length > 0 && reactChildren.some(isItemExpandable);
|
|
102
|
+
}
|
|
103
|
+
return Boolean(reactChildren);
|
|
104
|
+
};
|
|
99
105
|
const useTreeViewJSXItemsItemPlugin = ({
|
|
100
106
|
props,
|
|
101
107
|
rootRef,
|
|
@@ -120,13 +126,7 @@ const useTreeViewJSXItemsItemPlugin = ({
|
|
|
120
126
|
unregisterChild,
|
|
121
127
|
parentId
|
|
122
128
|
} = parentContext;
|
|
123
|
-
const
|
|
124
|
-
if (Array.isArray(reactChildren)) {
|
|
125
|
-
return reactChildren.length > 0 && reactChildren.some(isExpandable);
|
|
126
|
-
}
|
|
127
|
-
return Boolean(reactChildren);
|
|
128
|
-
};
|
|
129
|
-
const expandable = isExpandable(children);
|
|
129
|
+
const expandable = isItemExpandable(children);
|
|
130
130
|
const pluginContentRef = React.useRef(null);
|
|
131
131
|
const handleContentRef = (0, _useForkRef.default)(pluginContentRef, contentRef);
|
|
132
132
|
|
package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js
CHANGED
|
@@ -10,18 +10,10 @@ var _styles = require("@mui/material/styles");
|
|
|
10
10
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
11
11
|
var _tree = require("../../utils/tree");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
function isPrintableCharacter(string) {
|
|
15
15
|
return !!string && string.length === 1 && !!string.match(/\S/);
|
|
16
16
|
}
|
|
17
|
-
function findNextFirstChar(firstChars, startIndex, char) {
|
|
18
|
-
for (let i = startIndex; i < firstChars.length; i += 1) {
|
|
19
|
-
if (char === firstChars[i]) {
|
|
20
|
-
return i;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return -1;
|
|
24
|
-
}
|
|
25
17
|
const useTreeViewKeyboardNavigation = ({
|
|
26
18
|
instance,
|
|
27
19
|
params,
|
|
@@ -44,42 +36,29 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
44
36
|
Object.values(state.items.itemMetaMap).forEach(processItem);
|
|
45
37
|
firstCharMap.current = newFirstCharMap;
|
|
46
38
|
}, [state.items.itemMetaMap, params.getItemId, instance]);
|
|
47
|
-
const getFirstMatchingItem = (itemId,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
39
|
+
const getFirstMatchingItem = (itemId, query) => {
|
|
40
|
+
const cleanQuery = query.toLowerCase();
|
|
41
|
+
const getNextItem = itemIdToCheck => {
|
|
42
|
+
const nextItemId = (0, _tree.getNextNavigableItem)(instance, itemIdToCheck);
|
|
43
|
+
// We reached the end of the tree, check from the beginning
|
|
44
|
+
if (nextItemId === null) {
|
|
45
|
+
return (0, _tree.getFirstNavigableItem)(instance);
|
|
46
|
+
}
|
|
47
|
+
return nextItemId;
|
|
48
|
+
};
|
|
49
|
+
let matchingItemId = null;
|
|
50
|
+
let currentItemId = getNextItem(itemId);
|
|
51
|
+
const checkedItems = {};
|
|
52
|
+
// The "!checkedItems[currentItemId]" condition avoids an infinite loop when there is no matching item.
|
|
53
|
+
while (matchingItemId == null && !checkedItems[currentItemId]) {
|
|
54
|
+
if (firstCharMap.current[currentItemId] === cleanQuery) {
|
|
55
|
+
matchingItemId = currentItemId;
|
|
56
|
+
} else {
|
|
57
|
+
checkedItems[currentItemId] = true;
|
|
58
|
+
currentItemId = getNextItem(currentItemId);
|
|
61
59
|
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// Get start index for search based on position of currentItem
|
|
65
|
-
start = firstCharIds.indexOf(itemId) + 1;
|
|
66
|
-
if (start >= firstCharIds.length) {
|
|
67
|
-
start = 0;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Check remaining slots in the menu
|
|
71
|
-
index = findNextFirstChar(firstChars, start, lowercaseChar);
|
|
72
|
-
|
|
73
|
-
// If not found in remaining slots, check from beginning
|
|
74
|
-
if (index === -1) {
|
|
75
|
-
index = findNextFirstChar(firstChars, 0, lowercaseChar);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// If a match was found...
|
|
79
|
-
if (index > -1) {
|
|
80
|
-
return firstCharIds[index];
|
|
81
60
|
}
|
|
82
|
-
return
|
|
61
|
+
return matchingItemId;
|
|
83
62
|
};
|
|
84
63
|
const canToggleItemSelection = itemId => !params.disableSelection && !instance.isItemDisabled(itemId);
|
|
85
64
|
const canToggleItemExpansion = itemId => {
|
|
@@ -104,9 +83,7 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
104
83
|
{
|
|
105
84
|
event.preventDefault();
|
|
106
85
|
if (params.multiSelect && event.shiftKey) {
|
|
107
|
-
instance.
|
|
108
|
-
end: itemId
|
|
109
|
-
});
|
|
86
|
+
instance.expandSelectionRange(event, itemId);
|
|
110
87
|
} else if (params.multiSelect) {
|
|
111
88
|
instance.selectItem(event, itemId, true);
|
|
112
89
|
} else {
|
|
@@ -145,10 +122,7 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
145
122
|
// Multi select behavior when pressing Shift + ArrowDown
|
|
146
123
|
// Toggles the selection state of the next item
|
|
147
124
|
if (params.multiSelect && event.shiftKey && canToggleItemSelection(nextItem)) {
|
|
148
|
-
instance.
|
|
149
|
-
end: nextItem,
|
|
150
|
-
current: itemId
|
|
151
|
-
}, true);
|
|
125
|
+
instance.selectItemFromArrowNavigation(event, itemId, nextItem);
|
|
152
126
|
}
|
|
153
127
|
}
|
|
154
128
|
break;
|
|
@@ -165,10 +139,7 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
165
139
|
// Multi select behavior when pressing Shift + ArrowUp
|
|
166
140
|
// Toggles the selection state of the previous item
|
|
167
141
|
if (params.multiSelect && event.shiftKey && canToggleItemSelection(previousItem)) {
|
|
168
|
-
instance.
|
|
169
|
-
end: previousItem,
|
|
170
|
-
current: itemId
|
|
171
|
-
}, true);
|
|
142
|
+
instance.selectItemFromArrowNavigation(event, itemId, previousItem);
|
|
172
143
|
}
|
|
173
144
|
}
|
|
174
145
|
break;
|
|
@@ -211,12 +182,12 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
211
182
|
// Focuses the first item in the tree
|
|
212
183
|
case key === 'Home':
|
|
213
184
|
{
|
|
214
|
-
instance.focusItem(event, (0, _tree.getFirstNavigableItem)(instance));
|
|
215
|
-
|
|
216
185
|
// Multi select behavior when pressing Ctrl + Shift + Home
|
|
217
186
|
// Selects the focused item and all items up to the first item.
|
|
218
187
|
if (canToggleItemSelection(itemId) && params.multiSelect && ctrlPressed && event.shiftKey) {
|
|
219
|
-
instance.
|
|
188
|
+
instance.selectRangeFromStartToItem(event, itemId);
|
|
189
|
+
} else {
|
|
190
|
+
instance.focusItem(event, (0, _tree.getFirstNavigableItem)(instance));
|
|
220
191
|
}
|
|
221
192
|
event.preventDefault();
|
|
222
193
|
break;
|
|
@@ -225,12 +196,12 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
225
196
|
// Focuses the last item in the tree
|
|
226
197
|
case key === 'End':
|
|
227
198
|
{
|
|
228
|
-
instance.focusItem(event, (0, _tree.getLastNavigableItem)(instance));
|
|
229
|
-
|
|
230
199
|
// Multi select behavior when pressing Ctrl + Shirt + End
|
|
231
200
|
// Selects the focused item and all the items down to the last item.
|
|
232
201
|
if (canToggleItemSelection(itemId) && params.multiSelect && ctrlPressed && event.shiftKey) {
|
|
233
|
-
instance.
|
|
202
|
+
instance.selectRangeFromItemToEnd(event, itemId);
|
|
203
|
+
} else {
|
|
204
|
+
instance.focusItem(event, (0, _tree.getLastNavigableItem)(instance));
|
|
234
205
|
}
|
|
235
206
|
event.preventDefault();
|
|
236
207
|
break;
|
|
@@ -248,10 +219,7 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
248
219
|
// Selects all the items
|
|
249
220
|
case key === 'a' && ctrlPressed && params.multiSelect && !params.disableSelection:
|
|
250
221
|
{
|
|
251
|
-
instance.
|
|
252
|
-
start: (0, _tree.getFirstNavigableItem)(instance),
|
|
253
|
-
end: (0, _tree.getLastNavigableItem)(instance)
|
|
254
|
-
});
|
|
222
|
+
instance.selectAllNavigableItems(event);
|
|
255
223
|
event.preventDefault();
|
|
256
224
|
break;
|
|
257
225
|
}
|
|
@@ -8,16 +8,27 @@ exports.useTreeViewSelection = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _tree = require("../../utils/tree");
|
|
11
|
+
var _useTreeViewSelection = require("./useTreeViewSelection.utils");
|
|
11
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
14
|
const useTreeViewSelection = ({
|
|
14
15
|
instance,
|
|
15
16
|
params,
|
|
16
17
|
models
|
|
17
18
|
}) => {
|
|
18
19
|
const lastSelectedItem = React.useRef(null);
|
|
19
|
-
const
|
|
20
|
-
const
|
|
20
|
+
const lastSelectedRange = React.useRef({});
|
|
21
|
+
const selectedItemsMap = React.useMemo(() => {
|
|
22
|
+
const temp = new Map();
|
|
23
|
+
if (Array.isArray(models.selectedItems.value)) {
|
|
24
|
+
models.selectedItems.value.forEach(id => {
|
|
25
|
+
temp.set(id, true);
|
|
26
|
+
});
|
|
27
|
+
} else if (models.selectedItems.value != null) {
|
|
28
|
+
temp.set(models.selectedItems.value, true);
|
|
29
|
+
}
|
|
30
|
+
return temp;
|
|
31
|
+
}, [models.selectedItems.value]);
|
|
21
32
|
const setSelectedItems = (event, newSelectedItems) => {
|
|
22
33
|
if (params.onItemSelectionToggle) {
|
|
23
34
|
if (params.multiSelect) {
|
|
@@ -43,115 +54,90 @@ const useTreeViewSelection = ({
|
|
|
43
54
|
}
|
|
44
55
|
models.selectedItems.setControlledValue(newSelectedItems);
|
|
45
56
|
};
|
|
46
|
-
const isItemSelected = itemId =>
|
|
57
|
+
const isItemSelected = itemId => selectedItemsMap.has(itemId);
|
|
47
58
|
const selectItem = (event, itemId, multiple = false) => {
|
|
48
59
|
if (params.disableSelection) {
|
|
49
60
|
return;
|
|
50
61
|
}
|
|
62
|
+
let newSelected;
|
|
51
63
|
if (multiple) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
newSelected = [itemId].concat(models.selectedItems.value);
|
|
58
|
-
}
|
|
59
|
-
setSelectedItems(event, newSelected);
|
|
64
|
+
const cleanSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value);
|
|
65
|
+
if (instance.isItemSelected(itemId)) {
|
|
66
|
+
newSelected = cleanSelectedItems.filter(id => id !== itemId);
|
|
67
|
+
} else {
|
|
68
|
+
newSelected = [itemId].concat(cleanSelectedItems);
|
|
60
69
|
}
|
|
61
70
|
} else {
|
|
62
|
-
|
|
63
|
-
setSelectedItems(event, newSelected);
|
|
71
|
+
newSelected = params.multiSelect ? [itemId] : itemId;
|
|
64
72
|
}
|
|
73
|
+
setSelectedItems(event, newSelected);
|
|
65
74
|
lastSelectedItem.current = itemId;
|
|
66
|
-
|
|
67
|
-
currentRangeSelection.current = [];
|
|
75
|
+
lastSelectedRange.current = {};
|
|
68
76
|
};
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
const {
|
|
72
|
-
start,
|
|
73
|
-
next,
|
|
74
|
-
current
|
|
75
|
-
} = items;
|
|
76
|
-
if (!next || !current) {
|
|
77
|
+
const selectRange = (event, [start, end]) => {
|
|
78
|
+
if (params.disableSelection || !params.multiSelect) {
|
|
77
79
|
return;
|
|
78
80
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
currentRangeSelection.current = currentRangeSelection.current.filter(id => id === start || id !== current);
|
|
86
|
-
} else {
|
|
87
|
-
base.push(next);
|
|
88
|
-
currentRangeSelection.current.push(next);
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
base.push(next);
|
|
92
|
-
currentRangeSelection.current.push(current, next);
|
|
81
|
+
let newSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value).slice();
|
|
82
|
+
|
|
83
|
+
// If the last selection was a range selection,
|
|
84
|
+
// remove the items that were part of the last range from the model
|
|
85
|
+
if (Object.keys(lastSelectedRange.current).length > 0) {
|
|
86
|
+
newSelectedItems = newSelectedItems.filter(id => !lastSelectedRange.current[id]);
|
|
93
87
|
}
|
|
94
|
-
|
|
88
|
+
|
|
89
|
+
// Add to the model the items that are part of the new range and not already part of the model.
|
|
90
|
+
const selectedItemsLookup = (0, _useTreeViewSelection.getLookupFromArray)(newSelectedItems);
|
|
91
|
+
const range = (0, _tree.getNonDisabledItemsInRange)(instance, start, end);
|
|
92
|
+
const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);
|
|
93
|
+
newSelectedItems = newSelectedItems.concat(itemsToAddToModel);
|
|
94
|
+
setSelectedItems(event, newSelectedItems);
|
|
95
|
+
lastSelectedRange.current = (0, _useTreeViewSelection.getLookupFromArray)(range);
|
|
95
96
|
};
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
start,
|
|
100
|
-
end
|
|
101
|
-
} = items;
|
|
102
|
-
// If last selection was a range selection ignore items that were selected.
|
|
103
|
-
if (lastSelectionWasRange.current) {
|
|
104
|
-
base = base.filter(id => currentRangeSelection.current.indexOf(id) === -1);
|
|
97
|
+
const expandSelectionRange = (event, itemId) => {
|
|
98
|
+
if (lastSelectedItem.current != null) {
|
|
99
|
+
const [start, end] = (0, _tree.findOrderInTremauxTree)(instance, itemId, lastSelectedItem.current);
|
|
100
|
+
selectRange(event, [start, end]);
|
|
105
101
|
}
|
|
106
|
-
let range = (0, _tree.getNavigableItemsInRange)(instance, start, end);
|
|
107
|
-
range = range.filter(item => !instance.isItemDisabled(item));
|
|
108
|
-
currentRangeSelection.current = range;
|
|
109
|
-
let newSelected = base.concat(range);
|
|
110
|
-
newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);
|
|
111
|
-
setSelectedItems(event, newSelected);
|
|
112
102
|
};
|
|
113
|
-
const
|
|
114
|
-
|
|
103
|
+
const selectRangeFromStartToItem = (event, itemId) => {
|
|
104
|
+
selectRange(event, [(0, _tree.getFirstNavigableItem)(instance), itemId]);
|
|
105
|
+
};
|
|
106
|
+
const selectRangeFromItemToEnd = (event, itemId) => {
|
|
107
|
+
selectRange(event, [itemId, (0, _tree.getLastNavigableItem)(instance)]);
|
|
108
|
+
};
|
|
109
|
+
const selectAllNavigableItems = event => {
|
|
110
|
+
if (params.disableSelection || !params.multiSelect) {
|
|
115
111
|
return;
|
|
116
112
|
}
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
current
|
|
121
|
-
} = items;
|
|
122
|
-
if (stacked) {
|
|
123
|
-
handleRangeArrowSelect(event, {
|
|
124
|
-
start,
|
|
125
|
-
next: end,
|
|
126
|
-
current
|
|
127
|
-
});
|
|
128
|
-
} else if (start != null && end != null) {
|
|
129
|
-
handleRangeSelect(event, {
|
|
130
|
-
start,
|
|
131
|
-
end
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
lastSelectionWasRange.current = true;
|
|
113
|
+
const navigableItems = (0, _tree.getAllNavigableItems)(instance);
|
|
114
|
+
setSelectedItems(event, navigableItems);
|
|
115
|
+
lastSelectedRange.current = (0, _useTreeViewSelection.getLookupFromArray)(navigableItems);
|
|
135
116
|
};
|
|
136
|
-
const
|
|
137
|
-
if (!
|
|
138
|
-
|
|
117
|
+
const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
|
|
118
|
+
if (params.disableSelection || !params.multiSelect) {
|
|
119
|
+
return;
|
|
139
120
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
121
|
+
let newSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value).slice();
|
|
122
|
+
if (Object.keys(lastSelectedRange.current).length === 0) {
|
|
123
|
+
newSelectedItems.push(nextItem);
|
|
124
|
+
lastSelectedRange.current = {
|
|
125
|
+
[currentItem]: true,
|
|
126
|
+
[nextItem]: true
|
|
127
|
+
};
|
|
128
|
+
} else {
|
|
129
|
+
if (!lastSelectedRange.current[currentItem]) {
|
|
130
|
+
lastSelectedRange.current = {};
|
|
131
|
+
}
|
|
132
|
+
if (lastSelectedRange.current[nextItem]) {
|
|
133
|
+
newSelectedItems = newSelectedItems.filter(id => id !== currentItem);
|
|
134
|
+
delete lastSelectedRange.current[currentItem];
|
|
135
|
+
} else {
|
|
136
|
+
newSelectedItems.push(nextItem);
|
|
137
|
+
lastSelectedRange.current[nextItem] = true;
|
|
138
|
+
}
|
|
149
139
|
}
|
|
150
|
-
|
|
151
|
-
instance.selectRange(event, {
|
|
152
|
-
start,
|
|
153
|
-
end: (0, _tree.getLastNavigableItem)(instance)
|
|
154
|
-
});
|
|
140
|
+
setSelectedItems(event, newSelectedItems);
|
|
155
141
|
};
|
|
156
142
|
return {
|
|
157
143
|
getRootProps: () => ({
|
|
@@ -160,9 +146,11 @@ const useTreeViewSelection = ({
|
|
|
160
146
|
instance: {
|
|
161
147
|
isItemSelected,
|
|
162
148
|
selectItem,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
149
|
+
selectAllNavigableItems,
|
|
150
|
+
expandSelectionRange,
|
|
151
|
+
selectRangeFromStartToItem,
|
|
152
|
+
selectRangeFromItemToEnd,
|
|
153
|
+
selectItemFromArrowNavigation
|
|
166
154
|
},
|
|
167
155
|
contextValue: {
|
|
168
156
|
selection: {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getLookupFromArray = exports.convertSelectedItemsToArray = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Transform the `selectedItems` model to be an array if it was a string or null.
|
|
9
|
+
* @param {string[] | string | null} model The raw model.
|
|
10
|
+
* @returns {string[]} The converted model.
|
|
11
|
+
*/
|
|
12
|
+
const convertSelectedItemsToArray = model => {
|
|
13
|
+
if (Array.isArray(model)) {
|
|
14
|
+
return model;
|
|
15
|
+
}
|
|
16
|
+
if (model != null) {
|
|
17
|
+
return [model];
|
|
18
|
+
}
|
|
19
|
+
return [];
|
|
20
|
+
};
|
|
21
|
+
exports.convertSelectedItemsToArray = convertSelectedItemsToArray;
|
|
22
|
+
const getLookupFromArray = array => {
|
|
23
|
+
const lookup = {};
|
|
24
|
+
array.forEach(itemId => {
|
|
25
|
+
lookup[itemId] = true;
|
|
26
|
+
});
|
|
27
|
+
return lookup;
|
|
28
|
+
};
|
|
29
|
+
exports.getLookupFromArray = getLookupFromArray;
|
|
@@ -12,7 +12,7 @@ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
|
12
12
|
var _useTreeViewModels = require("./useTreeViewModels");
|
|
13
13
|
var _corePlugins = require("../corePlugins");
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
16
|
function useTreeViewApiInitialization(inputApiRef) {
|
|
17
17
|
const fallbackPublicApiRef = React.useRef({});
|
|
18
18
|
if (inputApiRef) {
|
|
@@ -8,7 +8,7 @@ exports.useTreeViewModels = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
12
|
/**
|
|
13
13
|
* Implements the same behavior as `useControlled` but for several models.
|
|
14
14
|
* The controlled models are never stored in the state and the state is only updated if the model is not controlled.
|