@itwin/components-react 5.27.0 → 5.28.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/CHANGELOG.md +21 -0
- package/lib/cjs/components-react/common/HighlightedText.scss +8 -0
- package/lib/components-react/abstract-types.d.ts +8 -0
- package/lib/components-react/abstract-types.d.ts.map +1 -0
- package/lib/components-react/abstract-types.js +6 -0
- package/lib/components-react/abstract-types.js.map +1 -0
- package/lib/components-react/common/HighlightedText.d.ts +6 -0
- package/lib/components-react/common/HighlightedText.d.ts.map +1 -1
- package/lib/components-react/common/HighlightedText.js +7 -4
- package/lib/components-react/common/HighlightedText.js.map +1 -1
- package/lib/components-react/common/HighlightedText.scss +8 -0
- package/lib/components-react/common/selection/SelectionHandler.d.ts +3 -0
- package/lib/components-react/common/selection/SelectionHandler.d.ts.map +1 -1
- package/lib/components-react/common/selection/SelectionHandler.js.map +1 -1
- package/lib/components-react/common/selection/SelectionModes.d.ts +3 -0
- package/lib/components-react/common/selection/SelectionModes.d.ts.map +1 -1
- package/lib/components-react/common/selection/SelectionModes.js +4 -0
- package/lib/components-react/common/selection/SelectionModes.js.map +1 -1
- package/lib/components-react/editors/CustomNumberEditor.d.ts +1 -0
- package/lib/components-react/editors/CustomNumberEditor.d.ts.map +1 -1
- package/lib/components-react/editors/CustomNumberEditor.js +9 -2
- package/lib/components-react/editors/CustomNumberEditor.js.map +1 -1
- package/lib/components-react/editors/NumericInputEditor.d.ts +1 -0
- package/lib/components-react/editors/NumericInputEditor.d.ts.map +1 -1
- package/lib/components-react/editors/NumericInputEditor.js +7 -0
- package/lib/components-react/editors/NumericInputEditor.js.map +1 -1
- package/lib/components-react/editors/TextEditor.d.ts +1 -0
- package/lib/components-react/editors/TextEditor.d.ts.map +1 -1
- package/lib/components-react/editors/TextEditor.js +9 -2
- package/lib/components-react/editors/TextEditor.js.map +1 -1
- package/lib/components-react/editors/TextareaEditor.d.ts +1 -0
- package/lib/components-react/editors/TextareaEditor.d.ts.map +1 -1
- package/lib/components-react/editors/TextareaEditor.js +7 -0
- package/lib/components-react/editors/TextareaEditor.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.d.ts.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.js +3 -0
- package/lib/components-react/new-editors/interop/old-editors/CustomNumber.js.map +1 -1
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.js +3 -0
- package/lib/components-react/new-editors/interop/old-editors/NumericInput.js.map +1 -1
- package/lib/components-react/tree/HighlightingEngine.d.ts +5 -0
- package/lib/components-react/tree/HighlightingEngine.d.ts.map +1 -1
- package/lib/components-react/tree/HighlightingEngine.js +3 -0
- package/lib/components-react/tree/HighlightingEngine.js.map +1 -1
- package/lib/components-react/tree/ImageLoader.d.ts +2 -0
- package/lib/components-react/tree/ImageLoader.d.ts.map +1 -1
- package/lib/components-react/tree/ImageLoader.js +1 -0
- package/lib/components-react/tree/ImageLoader.js.map +1 -1
- package/lib/components-react/tree/SimpleTreeDataProvider.d.ts +2 -0
- package/lib/components-react/tree/SimpleTreeDataProvider.d.ts.map +1 -1
- package/lib/components-react/tree/SimpleTreeDataProvider.js +1 -0
- package/lib/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
- package/lib/components-react/tree/TreeDataProvider.d.ts +14 -0
- package/lib/components-react/tree/TreeDataProvider.d.ts.map +1 -1
- package/lib/components-react/tree/TreeDataProvider.js +5 -0
- package/lib/components-react/tree/TreeDataProvider.js.map +1 -1
- package/lib/components-react/tree/controlled/Observable.d.ts +9 -0
- package/lib/components-react/tree/controlled/Observable.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/Observable.js +2 -0
- package/lib/components-react/tree/controlled/Observable.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeActions.d.ts +1 -0
- package/lib/components-react/tree/controlled/TreeActions.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeActions.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeEventHandler.d.ts +3 -0
- package/lib/components-react/tree/controlled/TreeEventHandler.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeEventHandler.js +2 -0
- package/lib/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeEvents.d.ts +7 -0
- package/lib/components-react/tree/controlled/TreeEvents.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeEvents.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeHooks.d.ts +5 -0
- package/lib/components-react/tree/controlled/TreeHooks.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeHooks.js +6 -2
- package/lib/components-react/tree/controlled/TreeHooks.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeModel.d.ts +18 -0
- package/lib/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeModel.js +7 -0
- package/lib/components-react/tree/controlled/TreeModel.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeModelSource.d.ts +2 -0
- package/lib/components-react/tree/controlled/TreeModelSource.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeModelSource.js +1 -0
- package/lib/components-react/tree/controlled/TreeModelSource.js.map +1 -1
- package/lib/components-react/tree/controlled/TreeNodeLoader.d.ts +9 -0
- package/lib/components-react/tree/controlled/TreeNodeLoader.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/TreeNodeLoader.js +4 -1
- package/lib/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
- package/lib/components-react/tree/controlled/component/ControlledTree.d.ts +3 -0
- package/lib/components-react/tree/controlled/component/ControlledTree.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/component/ControlledTree.js +4 -3
- package/lib/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
- package/lib/components-react/tree/controlled/component/NodeContent.d.ts +2 -1
- package/lib/components-react/tree/controlled/component/NodeContent.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/component/NodeContent.js +3 -4
- package/lib/components-react/tree/controlled/component/NodeContent.js.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeNodeEditor.d.ts +3 -0
- package/lib/components-react/tree/controlled/component/TreeNodeEditor.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeNodeEditor.js +2 -0
- package/lib/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeNodeRenderer.d.ts +3 -0
- package/lib/components-react/tree/controlled/component/TreeNodeRenderer.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeNodeRenderer.js +5 -7
- package/lib/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeRenderer.d.ts +4 -0
- package/lib/components-react/tree/controlled/component/TreeRenderer.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/component/TreeRenderer.js +3 -6
- package/lib/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
- package/lib/components-react/tree/controlled/internal/SparseTree.d.ts +1 -0
- package/lib/components-react/tree/controlled/internal/SparseTree.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/internal/SparseTree.js +2 -0
- package/lib/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
- package/lib/components-react/tree/controlled/internal/TreeModelMutator.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/internal/TreeModelMutator.js +1 -0
- package/lib/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
- package/lib/components-react/tree/controlled/internal/TreeSelectionManager.d.ts.map +1 -1
- package/lib/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
- package/lib/components-react.d.ts +2 -0
- package/lib/components-react.d.ts.map +1 -1
- package/lib/components-react.js +1 -0
- package/lib/components-react.js.map +1 -1
- package/lib/esm/components-react/common/HighlightedText.scss +8 -0
- package/package.json +41 -38
|
@@ -8,11 +8,13 @@ import type { ITreeDataProvider, TreeNodeItem } from "./TreeDataProvider.js";
|
|
|
8
8
|
* key - Parent id.
|
|
9
9
|
* value - Child tree node items.
|
|
10
10
|
* @public
|
|
11
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
11
12
|
*/
|
|
12
13
|
export type SimpleTreeDataProviderHierarchy = Map<string | undefined, TreeNodeItem[]>;
|
|
13
14
|
/**
|
|
14
15
|
* A tree data provider using [[SimpleTreeDataProviderHierarchy]].
|
|
15
16
|
* @public
|
|
17
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
16
18
|
*/
|
|
17
19
|
export declare class SimpleTreeDataProvider implements ITreeDataProvider {
|
|
18
20
|
private _hierarchy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTreeDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"SimpleTreeDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,MAAM,+BAA+B,GAAG,GAAG,CAC/C,MAAM,GAAG,SAAS,EAClB,YAAY,EAAE,CACf,CAAC;AAEF;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,UAAU,CAAkC;gBAEjC,SAAS,EAAE,+BAA+B;IAI7D,OAAO,CAAC,kBAAkB;IAkBb,QAAQ,CACnB,MAAM,CAAC,EAAE,YAAY,EACrB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC;IAIb,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAGnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;
|
|
1
|
+
{"version":3,"file":"SimpleTreeDataProvider.js","sourceRoot":"","sources":["../../../src/components-react/tree/SimpleTreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAmBH;;;;GAIG;AACH,MAAM,OAAO,sBAAsB;IACzB,UAAU,CAAkC;IAEpD,YAAmB,SAA0C;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CACxB,QAAiB,EACjB,WAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpC,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7D,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YAChC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAqB,EACrB,WAAyB;QAEzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport type { PageOptions } from \"../common/PageOptions.js\";\nimport type { ITreeDataProvider, TreeNodeItem } from \"./TreeDataProvider.js\";\n\n/**\n * Used by [[SimpleTreeDataProvider]].\n * key - Parent id.\n * value - Child tree node items.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport type SimpleTreeDataProviderHierarchy = Map<\n string | undefined,\n TreeNodeItem[]\n>;\n\n/**\n * A tree data provider using [[SimpleTreeDataProviderHierarchy]].\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport class SimpleTreeDataProvider implements ITreeDataProvider {\n private _hierarchy: SimpleTreeDataProviderHierarchy;\n\n public constructor(hierarchy: SimpleTreeDataProviderHierarchy) {\n this._hierarchy = hierarchy;\n }\n\n private getNodesByParentId(\n parentId?: string,\n pageOptions?: PageOptions\n ): TreeNodeItem[] {\n const nodes = this._hierarchy.get(parentId);\n\n if (!nodes) return [];\n\n if (!pageOptions) return [...nodes];\n\n let pageEndIndex: number | undefined;\n if (pageOptions.size !== undefined && pageOptions.size !== 0) {\n pageEndIndex = pageOptions.size;\n pageEndIndex += pageOptions.start ? pageOptions.start : 0;\n }\n return nodes.slice(pageOptions.start, pageEndIndex);\n }\n\n public async getNodes(\n parent?: TreeNodeItem,\n pageOptions?: PageOptions\n ): Promise<TreeNodeItem[]> {\n return this.getNodesByParentId(parent ? parent.id : undefined, pageOptions);\n }\n\n public async getNodesCount(parent?: TreeNodeItem): Promise<number> {\n return this.getNodesByParentId(parent ? parent.id : undefined).length;\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ import type { CheckBoxState } from "../common/CheckBoxState.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* A node item which can be displayed in a tree.
|
|
10
10
|
* @public
|
|
11
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
11
12
|
*/
|
|
12
13
|
export interface TreeNodeItem {
|
|
13
14
|
id: string;
|
|
@@ -32,30 +33,36 @@ export interface TreeNodeItem {
|
|
|
32
33
|
}
|
|
33
34
|
/** A [[TreeNodeItem]] for immediately loaded trees
|
|
34
35
|
* @public
|
|
36
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
35
37
|
*/
|
|
36
38
|
export interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {
|
|
37
39
|
children?: TreeNodeItem[];
|
|
38
40
|
}
|
|
39
41
|
/** A [[TreeNodeItem]] for delay-loaded trees
|
|
40
42
|
* @public
|
|
43
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
41
44
|
*/
|
|
42
45
|
export interface DelayLoadedTreeNodeItem extends TreeNodeItem {
|
|
43
46
|
hasChildren?: boolean;
|
|
44
47
|
}
|
|
45
48
|
/** Array of tree node data elements
|
|
46
49
|
* @public
|
|
50
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
47
51
|
*/
|
|
48
52
|
export type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];
|
|
49
53
|
/** A Promise for TreeDataProviderRaw
|
|
50
54
|
* @public
|
|
55
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
51
56
|
*/
|
|
52
57
|
export type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;
|
|
53
58
|
/** Signature for a method that returns TreeDataProviderPromise for supplied parent node
|
|
54
59
|
* @public
|
|
60
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
55
61
|
*/
|
|
56
62
|
export type TreeDataProviderMethod = (node?: TreeNodeItem) => Promise<DelayLoadedTreeNodeItem[]>;
|
|
57
63
|
/** Interface for a tree data provider class
|
|
58
64
|
* @public
|
|
65
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
59
66
|
*/
|
|
60
67
|
export interface ITreeDataProvider {
|
|
61
68
|
getNodesCount(parent?: TreeNodeItem): Promise<number>;
|
|
@@ -63,22 +70,27 @@ export interface ITreeDataProvider {
|
|
|
63
70
|
}
|
|
64
71
|
/** Type definition for all Tree data providers
|
|
65
72
|
* @public
|
|
73
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
66
74
|
*/
|
|
67
75
|
export type TreeDataProvider = TreeDataProviderRaw | TreeDataProviderPromise | TreeDataProviderMethod | ITreeDataProvider;
|
|
68
76
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]
|
|
69
77
|
* @public
|
|
78
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
70
79
|
*/
|
|
71
80
|
export declare const isTreeDataProviderRaw: (provider: TreeDataProvider) => provider is TreeDataProviderRaw;
|
|
72
81
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]
|
|
73
82
|
* @public
|
|
83
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
74
84
|
*/
|
|
75
85
|
export declare const isTreeDataProviderPromise: (provider: TreeDataProvider) => provider is TreeDataProviderPromise;
|
|
76
86
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]
|
|
77
87
|
* @public
|
|
88
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
78
89
|
*/
|
|
79
90
|
export declare const isTreeDataProviderMethod: (provider: TreeDataProvider) => provider is TreeDataProviderMethod;
|
|
80
91
|
/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]
|
|
81
92
|
* @public
|
|
93
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
82
94
|
*/
|
|
83
95
|
export declare const isTreeDataProviderInterface: (provider: TreeDataProvider) => provider is ITreeDataProvider;
|
|
84
96
|
/**
|
|
@@ -86,11 +98,13 @@ export declare const isTreeDataProviderInterface: (provider: TreeDataProvider) =
|
|
|
86
98
|
* @param node node to check
|
|
87
99
|
* @returns whether node has children
|
|
88
100
|
* @public
|
|
101
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
89
102
|
*/
|
|
90
103
|
export declare const hasChildren: (node: TreeNodeItem) => boolean;
|
|
91
104
|
/**
|
|
92
105
|
* EditableTreeDataProvider provides cell editing processing for the Tree.
|
|
93
106
|
* @public
|
|
107
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
94
108
|
*/
|
|
95
109
|
export interface EditableTreeDataProvider extends ITreeDataProvider {
|
|
96
110
|
updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"TreeDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,6BAA6B,EAAE,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,CAAC,EAAE,YAAY,KAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CACN,MAAM,CAAC,EAAE,YAAY,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aACtB,gBAAgB,KACzB,QAAQ,IAAI,mBAEd,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,aAC1B,gBAAgB,KACzB,QAAQ,IAAI,uBAEd,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,aACzB,gBAAgB,KACzB,QAAQ,IAAI,sBAEd,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,aAC5B,gBAAgB,KACzB,QAAQ,IAAI,iBAKd,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,SAAU,YAAY,YAW7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7D"}
|
|
@@ -7,24 +7,28 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]
|
|
9
9
|
* @public
|
|
10
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
10
11
|
*/
|
|
11
12
|
export const isTreeDataProviderRaw = (provider) => {
|
|
12
13
|
return Array.isArray(provider);
|
|
13
14
|
};
|
|
14
15
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]
|
|
15
16
|
* @public
|
|
17
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
16
18
|
*/
|
|
17
19
|
export const isTreeDataProviderPromise = (provider) => {
|
|
18
20
|
return undefined !== provider.then;
|
|
19
21
|
};
|
|
20
22
|
/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]
|
|
21
23
|
* @public
|
|
24
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
22
25
|
*/
|
|
23
26
|
export const isTreeDataProviderMethod = (provider) => {
|
|
24
27
|
return typeof provider === "function";
|
|
25
28
|
};
|
|
26
29
|
/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]
|
|
27
30
|
* @public
|
|
31
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
28
32
|
*/
|
|
29
33
|
export const isTreeDataProviderInterface = (provider) => {
|
|
30
34
|
const candidate = provider;
|
|
@@ -35,6 +39,7 @@ export const isTreeDataProviderInterface = (provider) => {
|
|
|
35
39
|
* @param node node to check
|
|
36
40
|
* @returns whether node has children
|
|
37
41
|
* @public
|
|
42
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
38
43
|
*/
|
|
39
44
|
export const hasChildren = (node) => {
|
|
40
45
|
const nodeAsImmediate = node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;
|
|
1
|
+
{"version":3,"file":"TreeDataProvider.js","sourceRoot":"","sources":["../../../src/components-react/tree/TreeDataProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AA4FH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA0B,EACO,EAAE;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACW,EAAE;IACvC,OAAO,SAAS,KAAM,QAAoC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AACF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,QAA0B,EACU,EAAE;IACtC,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC,CAAC;AACF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,QAA0B,EACK,EAAE;IACjC,MAAM,SAAS,GAAG,QAA6B,CAAC;IAChD,OAAO,CACL,SAAS,KAAK,SAAS,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC,aAAa,CAC1E,CAAC;AACJ,CAAC,CAAC;AACF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,IAAqC,CAAC;IAC9D,IACE,UAAU,IAAI,eAAe;QAC7B,eAAe,CAAC,QAAQ;QACxB,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAA+B,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport type { PageOptions } from \"../common/PageOptions.js\";\nimport type { ItemStyle } from \"../properties/ItemStyle.js\";\nimport type { CheckBoxState } from \"../common/CheckBoxState.js\";\n\n/**\n * A node item which can be displayed in a tree.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface TreeNodeItem {\n id: string;\n parentId?: string;\n label: PropertyRecord;\n description?: string;\n autoExpand?: boolean;\n icon?: string;\n isSelectionDisabled?: boolean;\n isCheckboxVisible?: boolean;\n isCheckboxDisabled?: boolean;\n checkBoxState?: CheckBoxState;\n isEditable?: boolean;\n style?: ItemStyle;\n /**\n * A key-value pairs data structure that can be used by data provider\n * to store some custom data for this node item.\n */\n extendedData?: { [key: string]: any };\n}\n\n/** A [[TreeNodeItem]] for immediately loaded trees\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface ImmediatelyLoadedTreeNodeItem extends TreeNodeItem {\n children?: TreeNodeItem[];\n}\n\n/** A [[TreeNodeItem]] for delay-loaded trees\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface DelayLoadedTreeNodeItem extends TreeNodeItem {\n hasChildren?: boolean;\n}\n\n/** Array of tree node data elements\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport type TreeDataProviderRaw = ImmediatelyLoadedTreeNodeItem[];\n\n/** A Promise for TreeDataProviderRaw\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport type TreeDataProviderPromise = Promise<TreeDataProviderRaw>;\n\n/** Signature for a method that returns TreeDataProviderPromise for supplied parent node\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport type TreeDataProviderMethod = (\n node?: TreeNodeItem\n) => Promise<DelayLoadedTreeNodeItem[]>;\n\n/** Interface for a tree data provider class\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface ITreeDataProvider {\n getNodesCount(parent?: TreeNodeItem): Promise<number>;\n getNodes(\n parent?: TreeNodeItem,\n page?: PageOptions\n ): Promise<DelayLoadedTreeNodeItem[]>;\n}\n\n/** Type definition for all Tree data providers\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport type TreeDataProvider =\n | TreeDataProviderRaw\n | TreeDataProviderPromise\n | TreeDataProviderMethod\n | ITreeDataProvider;\n\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderRaw]]\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport const isTreeDataProviderRaw = (\n provider: TreeDataProvider\n): provider is TreeDataProviderRaw => {\n return Array.isArray(provider);\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderPromise]]\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport const isTreeDataProviderPromise = (\n provider: TreeDataProvider\n): provider is TreeDataProviderPromise => {\n return undefined !== (provider as TreeDataProviderPromise).then;\n};\n/** Checks if [[TreeDataProvider]] is a [[TreeDataProviderMethod]]\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport const isTreeDataProviderMethod = (\n provider: TreeDataProvider\n): provider is TreeDataProviderMethod => {\n return typeof provider === \"function\";\n};\n/** Checks if [[TreeDataProvider]] is an [[ITreeDataProvider]]\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport const isTreeDataProviderInterface = (\n provider: TreeDataProvider\n): provider is ITreeDataProvider => {\n const candidate = provider as ITreeDataProvider;\n return (\n undefined !== candidate.getNodes && undefined !== candidate.getNodesCount\n );\n};\n/**\n * Determines whether node has children\n * @param node node to check\n * @returns whether node has children\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport const hasChildren = (node: TreeNodeItem) => {\n const nodeAsImmediate = node as ImmediatelyLoadedTreeNodeItem;\n if (\n \"children\" in nodeAsImmediate &&\n nodeAsImmediate.children &&\n nodeAsImmediate.children.length > 0\n )\n return true;\n const nodeAsDelayed = node as DelayLoadedTreeNodeItem;\n if (\"hasChildren\" in nodeAsDelayed && nodeAsDelayed.hasChildren) return true;\n return false;\n};\n\n/**\n * EditableTreeDataProvider provides cell editing processing for the Tree.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface EditableTreeDataProvider extends ITreeDataProvider {\n updateLabel(nodeItem: TreeNodeItem, newLabel: string): void;\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import { Observable as RxjsObservable } from "rxjs";
|
|
|
5
5
|
/**
|
|
6
6
|
* Helper method that creates an Observable from Iterable or Promise.
|
|
7
7
|
* @public
|
|
8
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
8
9
|
*/
|
|
9
10
|
export declare function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T>;
|
|
10
11
|
/**
|
|
@@ -21,6 +22,7 @@ export declare function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observa
|
|
|
21
22
|
* ```
|
|
22
23
|
*
|
|
23
24
|
* @public
|
|
25
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
24
26
|
*/
|
|
25
27
|
export interface Observable<T> extends Subscribable<T> {
|
|
26
28
|
}
|
|
@@ -28,6 +30,7 @@ export interface Observable<T> extends Subscribable<T> {
|
|
|
28
30
|
* Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
29
31
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
30
32
|
* @public
|
|
33
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
31
34
|
*/
|
|
32
35
|
export interface Subscribable<T> {
|
|
33
36
|
subscribe(observer?: Observer<T>): Subscription;
|
|
@@ -40,12 +43,14 @@ export interface Subscribable<T> {
|
|
|
40
43
|
* Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
41
44
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
42
45
|
* @public
|
|
46
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
43
47
|
*/
|
|
44
48
|
export declare type Observer<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
|
|
45
49
|
/**
|
|
46
50
|
* Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
47
51
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
48
52
|
* @public
|
|
53
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
49
54
|
*/
|
|
50
55
|
export interface Unsubscribable {
|
|
51
56
|
unsubscribe(): void;
|
|
@@ -54,6 +59,7 @@ export interface Unsubscribable {
|
|
|
54
59
|
* Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
55
60
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
56
61
|
* @public
|
|
62
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
57
63
|
*/
|
|
58
64
|
export interface Subscription extends Unsubscribable {
|
|
59
65
|
readonly closed: boolean;
|
|
@@ -64,6 +70,7 @@ export interface Subscription extends Unsubscribable {
|
|
|
64
70
|
* NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
65
71
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
66
72
|
* @public
|
|
73
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
67
74
|
*/
|
|
68
75
|
export interface NextObserver<T> {
|
|
69
76
|
closed?: boolean;
|
|
@@ -75,6 +82,7 @@ export interface NextObserver<T> {
|
|
|
75
82
|
* ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
76
83
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
77
84
|
* @public
|
|
85
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
78
86
|
*/
|
|
79
87
|
export interface ErrorObserver<T> {
|
|
80
88
|
closed?: boolean;
|
|
@@ -86,6 +94,7 @@ export interface ErrorObserver<T> {
|
|
|
86
94
|
* CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)
|
|
87
95
|
* This interface ensures that consumers are not required to have rxjs as dependency.
|
|
88
96
|
* @public
|
|
97
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
89
98
|
*/
|
|
90
99
|
export interface CompletionObserver<T> {
|
|
91
100
|
closed?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Tree
|
|
7
7
|
*/
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
8
9
|
import { from as rxjsFrom, Observable as RxjsObservable } from "rxjs";
|
|
9
10
|
/**
|
|
10
11
|
* Helper method that creates an Observable from Iterable or Promise.
|
|
11
12
|
* @public
|
|
13
|
+
* @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.
|
|
12
14
|
*/
|
|
13
15
|
export function from(iterable) {
|
|
14
16
|
return rxjsFrom(iterable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAEtE
|
|
1
|
+
{"version":3,"file":"Observable.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/Observable.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,qDAAqD;AAErD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAEtE;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAI,QAAsC;IAC5D,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AA2HD,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAC9B,UAAyB;IAEzB,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;QACvC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport { from as rxjsFrom, Observable as RxjsObservable } from \"rxjs\";\n\n/**\n * Helper method that creates an Observable from Iterable or Promise.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport function from<T>(iterable: Iterable<T> | PromiseLike<T>): Observable<T> {\n return rxjsFrom(iterable);\n}\n\n/**\n * Observable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n *\n * To use it with [rxjs](https://github.com/ReactiveX/rxjs) operators wrap it inside\n * `Observable` from [rxjs](https://github.com/ReactiveX/rxjs). Example:\n *\n * ```\n * import { Observable as RxjsObservable } from \"rxjs\";\n *\n * new RxjsObservable((subscriber) => thisObservable.subscribe(subscriber));\n * ```\n *\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface Observable<T> extends Subscribable<T> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * Subscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface Subscribable<T> {\n subscribe(observer?: Observer<T>): Subscription;\n subscribe(\n next: null | undefined,\n error: null | undefined,\n complete: () => void\n ): Subscription;\n subscribe(\n next: null | undefined,\n error: (error: any) => void,\n complete?: () => void\n ): Subscription;\n subscribe(\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n next: (value: T) => void,\n error: null | undefined,\n complete: () => void\n ): Subscription;\n subscribe(\n next?: (value: T) => void,\n error?: (error: any) => void,\n complete?: () => void\n ): Subscription;\n}\n\n/**\n * Observer interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport declare type Observer<T> =\n | NextObserver<T>\n | ErrorObserver<T>\n | CompletionObserver<T>;\n\n/**\n * Unsubscribable interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface Unsubscribable {\n unsubscribe(): void;\n}\n\n/**\n * Subscription interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface Subscription extends Unsubscribable {\n readonly closed: boolean;\n unsubscribe(): void;\n add(tearDown: Unsubscribable | (() => void) | void): void;\n}\n\n/**\n * NextObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface NextObserver<T> {\n closed?: boolean;\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * ErrorObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface ErrorObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error: (err: any) => void;\n complete?: () => void;\n}\n\n/**\n * CompletionObserver interface compatible with [rxjs](https://github.com/ReactiveX/rxjs)\n * This interface ensures that consumers are not required to have rxjs as dependency.\n * @public\n * @deprecated in 5.28.0. Use [rxjs](https://github.com/ReactiveX/rxjs) directly.\n */\nexport interface CompletionObserver<T> {\n closed?: boolean;\n next?: (value: T) => void;\n error?: (err: any) => void;\n complete: () => void;\n}\n\n/** @internal */\nexport function toRxjsObservable<T>(\n observable: Observable<T>\n): RxjsObservable<T> {\n return new RxjsObservable((subscriber) => {\n observable.subscribe(subscriber);\n });\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import type { CheckBoxState } from "../../common/CheckBoxState.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Tree actions that can be performed on tree.
|
|
7
7
|
* @public
|
|
8
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
8
9
|
*/
|
|
9
10
|
export interface TreeActions {
|
|
10
11
|
onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeActions.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"TreeActions.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACzE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { CheckBoxState } from \"../../common/CheckBoxState.js\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeActions.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeActions.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { CheckBoxState } from \"../../common/CheckBoxState.js\";\n\n/**\n * Tree actions that can be performed on tree.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface TreeActions {\n onNodeCheckboxClicked: (nodeId: string, newState: CheckBoxState) => void;\n onNodeExpanded: (nodeId: string) => void;\n onNodeCollapsed: (nodeId: string) => void;\n onNodeClicked: (nodeId: string, event: React.MouseEvent) => void;\n onNodeMouseDown: (nodeId: string) => void;\n onNodeMouseMove: (nodeId: string) => void;\n onNodeEditorActivated: (nodeId: string) => void;\n onTreeKeyDown: (event: React.KeyboardEvent) => void;\n onTreeKeyUp: (event: React.KeyboardEvent) => void;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"TreeEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAwBH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAU9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,iBAAiB,CAKrB;gBAGF,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,eAAe,EAC3B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,gBAAgB;IAgFlC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAqC7D,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,eAAe,CAAC,MAAM,EAAE,MAAM;IAK9B,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAuBvC,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,qBAAqB,CAAC,MAAM,EAAE,MAAM;IAapC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAI/C,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IAIpD,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAE,mBAAmB;IA4B5B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,oBAAoB,EACpB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,KAAK,EACL,QAAQ,EACR,EAAE,EACF,WAAW,EACX,WAAW,EACX,OAAO,GACR,MAAM,MAAM,CAAC;AAOd,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACtB,WAAW,CAAa;IACxB,WAAW,CAAkB;IAC7B,gBAAgB,CAAyB;IAEzC,iBAAiB,CAAuB;IAExC,iBAAiB,GAAG,IAAI,GAAG,EAKhC,CAAC;IAEJ,YACE,UAAsB,EACtB,UAA2B,EAC3B,aAA4B,EAC5B,eAAuC;QAEvC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,CAC/C,aAAa,EACb,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAChD,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACvB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CACzC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,EAAE,CACzC,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAClD,SAAS,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAC7D,OAAO,EAAE,EACT,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACrB,iBAAiB,EAAE,YAAY;gBAC/B,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;aAC5D,CAAC,CAAC,CACJ,CACF,EACD,SAAS,EAAE,EACX,WAAW,CAAC;gBACV,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,KAAK,SAAS;gBACpD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,WAAW,CACnD,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,KAAK,CACzB,KAAK,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,EACF,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,eAAe,CAAC,CAC7D,CAAC,IAAI,CACJ,QAAQ,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC,CAAC,EACF,WAAW,CAAC;gBACV,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,KAAK,SAAS;gBACpD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CACpD,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YACtB,MAAM,YAAY,GAAG,KAAK,CACxB,KAAK,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,EACF,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,EAAE,CAAC,CAClD,CAAC,IAAI,CACJ,QAAQ,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9C,CAAC,CAAC,EACF,WAAW,CAAC;gBACV,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,KAAK,SAAS;gBACpD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAAC,MAAc,EAAE,QAAuB;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO;QAEtC,MAAM,qBAAqB,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IACE,eAAe,CAAC,IAAI,CAAC;oBACrB,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE;oBAC1B,IAAI,CAAC,UAAU;oBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;oBACD,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CACzB,EAAE,CAAC,qBAAqB,CAAC,EACzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC/B,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAChE,CACF,CACF,CAAC,IAAI,CACJ,WAAW,CAAC;YACV,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,CAAC,sBAAsB,KAAK,SAAS;YACvD,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS;YAC/C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,SAAS;YAChD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAEM,aAAa,CAClB,MAAc,EACd,KAA4C;QAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;QAE/C,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,iBAAiB,KAAK,SAAS,EAChD,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAE/C,mFAAmF;YACnF,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,gEAAgE;QAChE,IAAI,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEM,qBAAqB,CAAC,MAAc;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtD,iEAAiE;QACjE,IACE,cAAc;YACd,IAAI,CAAC,WAAW,CAAC,qBAAqB,KAAK,SAAS,EACpD,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,KAA0B;QAC7C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEM,WAAW,CAAC,KAA0B;QAC3C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEO,uBAAuB,CAC7B,SAA+C,EAC/C,WAAgC;QAKhC,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAChE,GAAG,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE;gBAC/B,OAAO;oBACL,iBAAiB;oBACjB,mBAAmB,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;iBACxD,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC;YACR,iBAAiB,EAAE,aAAa;YAChC,mBAAmB,EAAE,eAAe;SACrC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CACzB,OAAe,EACf,OAAe;QAEf,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAC7B,mBAAmB,CAAC,wBAAwB,CAC1C,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAC3C,CAAC;QAEJ,MAAM,mBAAmB,GAAG,IAAI,CAC9B,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ;gBAC9B,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC3D,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,UAAU;gBACf,CAAC,CAAC,gBAAgB,CACd,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CACvD;gBACH,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,CACH,CAAC,IAAI;QACJ,qEAAqE;QACrE,qEAAqE;QACrE,gGAAgG;QAChG,6EAA6E;QAC7E,QAAQ,EAAE,EACV,oBAAoB,EAAE,CACvB,CAAC;QAEF,OAAO,MAAM,CACX,EAAE,CACA,UAAU;aACP,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,EACD,mBAAmB,CAAC,IAAI,CACtB,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CACtB,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACxD,CACF,CACF,CAAC,IAAI,CACJ,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,oFAAoF;QACpF,WAAW,CAAC,aAAa,CAAC,CAC3B,CAAC;IACJ,CAAC;IAEO,CAAC,mBAAmB,CAC1B,OAAe,EACf,OAAe;QAEf,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC3C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC;YACb,CAAC;YAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,IAAI,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC/C,MAAM,IAAI,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC/C,IAAI,cAAc,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBAED,cAAc,GAAG,IAAI,CAAC;oBACtB,MAAM,IAAI,CAAC;gBACb,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAiB;QACxC,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,wBAAwB,CACrC,KAAyD;QAEzD,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\nimport type { Observable } from \"rxjs\";\nimport {\n asapScheduler,\n concat,\n concatAll,\n concatMap,\n defer,\n distinctUntilChanged,\n EMPTY,\n filter,\n finalize,\n from,\n map,\n merge,\n mergeAll,\n of,\n shareReplay,\n subscribeOn,\n toArray,\n} from \"rxjs\";\nimport type { SelectionMode } from \"../../common/selection/SelectionModes.js\";\nimport type { TreeNodeItem } from \"../TreeDataProvider.js\";\nimport type {\n IndividualSelection,\n RangeSelection,\n} from \"./internal/TreeSelectionManager.js\";\nimport {\n isRangeSelection,\n TreeSelectionManager,\n} from \"./internal/TreeSelectionManager.js\";\nimport type { TreeActions } from \"./TreeActions.js\";\nimport type { TreeEvents } from \"./TreeEvents.js\";\nimport type {\n TreeModelNode,\n TreeModelNodePlaceholder,\n VisibleTreeNodes,\n} from \"./TreeModel.js\";\nimport { isTreeModelNode } from \"./TreeModel.js\";\nimport type { ITreeNodeLoader } from \"./TreeNodeLoader.js\";\nimport { toRxjsObservable } from \"./Observable.js\";\nimport type { CheckBoxState } from \"../../common/CheckBoxState.js\";\n\n/**\n * Default event dispatcher that emits tree events according performed actions.\n * It converts low level tree events into TreeEvents.\n * @internal\n */\nexport class TreeEventDispatcher implements TreeActions {\n private _treeEvents: TreeEvents;\n private _nodeLoader: ITreeNodeLoader;\n private _getVisibleNodes: () => VisibleTreeNodes;\n\n private _selectionManager: TreeSelectionManager;\n\n private _activeSelections = new Set<\n Observable<{\n selectedNodeItems: TreeNodeItem[];\n deselectedNodeItems?: TreeNodeItem[];\n }>\n >();\n\n constructor(\n treeEvents: TreeEvents,\n nodeLoader: ITreeNodeLoader,\n selectionMode: SelectionMode,\n getVisibleNodes: () => VisibleTreeNodes\n ) {\n this._treeEvents = treeEvents;\n this._nodeLoader = nodeLoader;\n this._getVisibleNodes = getVisibleNodes;\n\n this._selectionManager = new TreeSelectionManager(\n selectionMode,\n this._getVisibleNodes\n );\n\n this._selectionManager.onDragSelection.addListener(\n ({ selectionChanges }) => {\n const modifications = selectionChanges.pipe(\n map(({ selectedNodes, deselectedNodes }) =>\n this.collectSelectionChanges(selectedNodes, []).pipe(\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\n toArray(),\n map((collectedIds) => ({\n selectedNodeItems: collectedIds,\n deselectedNodeItems: this.collectNodeItems(deselectedNodes),\n }))\n )\n ),\n concatAll(),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n }\n );\n\n this._selectionManager.onSelectionChanged.addListener(\n ({ selectedNodes, deselectedNodes }) => {\n const modifications = merge(\n defer(() => {\n this._activeSelections.add(modifications);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodes, deselectedNodes)\n ).pipe(\n finalize(() => {\n this._activeSelections.delete(modifications);\n }),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n }\n );\n\n this._selectionManager.onSelectionReplaced.addListener(\n ({ selectedNodeIds }) => {\n const replacements = merge(\n defer(() => {\n this._activeSelections.add(replacements);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodeIds, [])\n ).pipe(\n finalize(() => {\n this._activeSelections.delete(replacements);\n }),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionReplaced !== undefined)\n this._treeEvents.onSelectionReplaced({ replacements });\n }\n );\n }\n\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\n const visibleNodes = this._getVisibleNodes();\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\n if (clickedNode === undefined) return;\n\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\n if (clickedNode.isSelected) {\n for (const node of visibleNodes) {\n if (\n isTreeModelNode(node) &&\n node.id !== clickedNode.id &&\n node.isSelected &&\n node.checkbox.state !== newState\n ) {\n immediateStateChanges.push({ nodeItem: node.item, newState });\n }\n }\n }\n\n const stateChanges = concat(\n of(immediateStateChanges),\n from(this._activeSelections).pipe(\n mergeAll(),\n map(({ selectedNodeItems }) =>\n selectedNodeItems.map((item) => ({ nodeItem: item, newState }))\n )\n )\n ).pipe(\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\n }\n\n public onNodeExpanded(nodeId: string) {\n if (this._treeEvents.onNodeExpanded !== undefined)\n this._treeEvents.onNodeExpanded({ nodeId });\n }\n\n public onNodeCollapsed(nodeId: string) {\n if (this._treeEvents.onNodeCollapsed !== undefined)\n this._treeEvents.onNodeCollapsed({ nodeId });\n }\n\n public onNodeClicked(\n nodeId: string,\n event: React.MouseEvent<Element, MouseEvent>\n ) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n const isNodeSelected = node && node.isSelected;\n\n if (\n event.detail === 2 &&\n this._treeEvents.onNodeDoubleClick !== undefined\n ) {\n this._treeEvents.onNodeDoubleClick({ nodeId });\n\n // trigger onNodeClicked as to not lose highlight of the node when double clicking.\n !isNodeSelected && this._selectionManager.onNodeClicked(nodeId, event);\n } else {\n this._selectionManager.onNodeClicked(nodeId, event);\n }\n\n // if clicked node was already selected fire delayed click event\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\n this._treeEvents.onDelayedNodeClick({ nodeId });\n }\n }\n\n public onNodeMouseDown(nodeId: string) {\n this._selectionManager.onNodeMouseDown(nodeId);\n }\n\n public onNodeMouseMove(nodeId: string) {\n this._selectionManager.onNodeMouseMove(nodeId);\n }\n\n public onNodeEditorActivated(nodeId: string) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n const isNodeSelected = node ? node.isSelected : false;\n\n // if node was already selected, fire onNodeEditorActivated event\n if (\n isNodeSelected &&\n this._treeEvents.onNodeEditorActivated !== undefined\n ) {\n this._treeEvents.onNodeEditorActivated({ nodeId });\n }\n }\n\n public onTreeKeyDown(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyDown(event, this);\n }\n\n public onTreeKeyUp(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyUp(event, this);\n }\n\n private collectSelectionChanges(\n selection: IndividualSelection | RangeSelection,\n deselection: IndividualSelection\n ): Observable<{\n selectedNodeItems: TreeNodeItem[];\n deselectedNodeItems: TreeNodeItem[];\n }> {\n const deselectedItems = this.collectNodeItems(deselection);\n if (isRangeSelection(selection)) {\n return this.collectNodesBetween(selection.from, selection.to).pipe(\n map((selectedNodeItems, index) => {\n return {\n selectedNodeItems,\n deselectedNodeItems: index === 0 ? deselectedItems : [],\n };\n })\n );\n }\n\n const selectedItems = this.collectNodeItems(selection);\n return of({\n selectedNodeItems: selectedItems,\n deselectedNodeItems: deselectedItems,\n });\n }\n\n private collectNodesBetween(\n nodeId1: string,\n nodeId2: string\n ): Observable<TreeNodeItem[]> {\n const [readyNodes, nodesToLoad] =\n TreeEventDispatcher.groupNodesByLoadingState(\n this.iterateNodesBetween(nodeId1, nodeId2)\n );\n\n const loadedSelectedNodes = from(\n nodesToLoad.map((node) => {\n const parentNode = node.parentId\n ? this._getVisibleNodes().getModel().getNode(node.parentId)\n : this._getVisibleNodes().getModel().getRootNode();\n return parentNode\n ? toRxjsObservable(\n this._nodeLoader.loadNode(parentNode, node.childIndex)\n )\n : EMPTY;\n })\n ).pipe(\n // We have requested multiple nodes that may belong to the same page.\n // When the page loads we only want to process the loaded nodes once.\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\n mergeAll(),\n distinctUntilChanged()\n );\n\n return concat(\n of(\n readyNodes\n .filter((node) => !node.isSelectionDisabled)\n .map((node) => node.item)\n ),\n loadedSelectedNodes.pipe(\n map(({ loadedNodes }) =>\n loadedNodes.filter((item) => !item.isSelectionDisabled)\n )\n )\n ).pipe(\n filter((nodeItems) => nodeItems.length > 0),\n // Give enough time for multiple subscribers to subscribe before any emissions begin\n subscribeOn(asapScheduler)\n );\n }\n\n private *iterateNodesBetween(\n nodeId1: string,\n nodeId2: string\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\n let firstNodeFound = false;\n for (const node of this._getVisibleNodes()) {\n if (firstNodeFound) {\n yield node;\n }\n\n if (isTreeModelNode(node)) {\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\n yield node;\n return;\n }\n\n if (node.id === nodeId1 || node.id === nodeId2) {\n if (firstNodeFound) {\n return;\n }\n\n firstNodeFound = true;\n yield node;\n }\n }\n }\n }\n\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\n const items: TreeNodeItem[] = [];\n for (const nodeId of nodeIds) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n if (node !== undefined && !node.isSelectionDisabled) {\n items.push(node.item);\n }\n }\n return items;\n }\n\n private static groupNodesByLoadingState(\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>\n ): [TreeModelNode[], TreeModelNodePlaceholder[]] {\n const loadedNodeItems: TreeModelNode[] = [];\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\n for (const node of nodes) {\n if (isTreeModelNode(node)) {\n loadedNodeItems.push(node);\n } else {\n nodesToLoad.push(node);\n }\n }\n\n return [loadedNodeItems, nodesToLoad];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TreeEventDispatcher.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventDispatcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport type { Observable } from \"rxjs\";\nimport {\n asapScheduler,\n concat,\n concatAll,\n concatMap,\n defer,\n distinctUntilChanged,\n EMPTY,\n filter,\n finalize,\n from,\n map,\n merge,\n mergeAll,\n of,\n shareReplay,\n subscribeOn,\n toArray,\n} from \"rxjs\";\nimport type { SelectionMode } from \"../../common/selection/SelectionModes.js\";\nimport type { TreeNodeItem } from \"../TreeDataProvider.js\";\nimport type {\n IndividualSelection,\n RangeSelection,\n} from \"./internal/TreeSelectionManager.js\";\nimport {\n isRangeSelection,\n TreeSelectionManager,\n} from \"./internal/TreeSelectionManager.js\";\nimport type { TreeActions } from \"./TreeActions.js\";\nimport type { TreeEvents } from \"./TreeEvents.js\";\nimport type {\n TreeModelNode,\n TreeModelNodePlaceholder,\n VisibleTreeNodes,\n} from \"./TreeModel.js\";\nimport { isTreeModelNode } from \"./TreeModel.js\";\nimport type { ITreeNodeLoader } from \"./TreeNodeLoader.js\";\nimport { toRxjsObservable } from \"./Observable.js\";\nimport type { CheckBoxState } from \"../../common/CheckBoxState.js\";\n\n/**\n * Default event dispatcher that emits tree events according performed actions.\n * It converts low level tree events into TreeEvents.\n * @internal\n */\nexport class TreeEventDispatcher implements TreeActions {\n private _treeEvents: TreeEvents;\n private _nodeLoader: ITreeNodeLoader;\n private _getVisibleNodes: () => VisibleTreeNodes;\n\n private _selectionManager: TreeSelectionManager;\n\n private _activeSelections = new Set<\n Observable<{\n selectedNodeItems: TreeNodeItem[];\n deselectedNodeItems?: TreeNodeItem[];\n }>\n >();\n\n constructor(\n treeEvents: TreeEvents,\n nodeLoader: ITreeNodeLoader,\n selectionMode: SelectionMode,\n getVisibleNodes: () => VisibleTreeNodes\n ) {\n this._treeEvents = treeEvents;\n this._nodeLoader = nodeLoader;\n this._getVisibleNodes = getVisibleNodes;\n\n this._selectionManager = new TreeSelectionManager(\n selectionMode,\n this._getVisibleNodes\n );\n\n this._selectionManager.onDragSelection.addListener(\n ({ selectionChanges }) => {\n const modifications = selectionChanges.pipe(\n map(({ selectedNodes, deselectedNodes }) =>\n this.collectSelectionChanges(selectedNodes, []).pipe(\n concatMap(({ selectedNodeItems }) => from(selectedNodeItems)),\n toArray(),\n map((collectedIds) => ({\n selectedNodeItems: collectedIds,\n deselectedNodeItems: this.collectNodeItems(deselectedNodes),\n }))\n )\n ),\n concatAll(),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n }\n );\n\n this._selectionManager.onSelectionChanged.addListener(\n ({ selectedNodes, deselectedNodes }) => {\n const modifications = merge(\n defer(() => {\n this._activeSelections.add(modifications);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodes, deselectedNodes)\n ).pipe(\n finalize(() => {\n this._activeSelections.delete(modifications);\n }),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionModified !== undefined)\n this._treeEvents.onSelectionModified({ modifications });\n }\n );\n\n this._selectionManager.onSelectionReplaced.addListener(\n ({ selectedNodeIds }) => {\n const replacements = merge(\n defer(() => {\n this._activeSelections.add(replacements);\n return EMPTY;\n }),\n this.collectSelectionChanges(selectedNodeIds, [])\n ).pipe(\n finalize(() => {\n this._activeSelections.delete(replacements);\n }),\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onSelectionReplaced !== undefined)\n this._treeEvents.onSelectionReplaced({ replacements });\n }\n );\n }\n\n public onNodeCheckboxClicked(nodeId: string, newState: CheckBoxState) {\n const visibleNodes = this._getVisibleNodes();\n const clickedNode = visibleNodes.getModel().getNode(nodeId);\n if (clickedNode === undefined) return;\n\n const immediateStateChanges = [{ nodeItem: clickedNode.item, newState }];\n if (clickedNode.isSelected) {\n for (const node of visibleNodes) {\n if (\n isTreeModelNode(node) &&\n node.id !== clickedNode.id &&\n node.isSelected &&\n node.checkbox.state !== newState\n ) {\n immediateStateChanges.push({ nodeItem: node.item, newState });\n }\n }\n }\n\n const stateChanges = concat(\n of(immediateStateChanges),\n from(this._activeSelections).pipe(\n mergeAll(),\n map(({ selectedNodeItems }) =>\n selectedNodeItems.map((item) => ({ nodeItem: item, newState }))\n )\n )\n ).pipe(\n shareReplay({\n refCount: true,\n })\n );\n\n if (this._treeEvents.onCheckboxStateChanged !== undefined)\n this._treeEvents.onCheckboxStateChanged({ stateChanges });\n }\n\n public onNodeExpanded(nodeId: string) {\n if (this._treeEvents.onNodeExpanded !== undefined)\n this._treeEvents.onNodeExpanded({ nodeId });\n }\n\n public onNodeCollapsed(nodeId: string) {\n if (this._treeEvents.onNodeCollapsed !== undefined)\n this._treeEvents.onNodeCollapsed({ nodeId });\n }\n\n public onNodeClicked(\n nodeId: string,\n event: React.MouseEvent<Element, MouseEvent>\n ) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n const isNodeSelected = node && node.isSelected;\n\n if (\n event.detail === 2 &&\n this._treeEvents.onNodeDoubleClick !== undefined\n ) {\n this._treeEvents.onNodeDoubleClick({ nodeId });\n\n // trigger onNodeClicked as to not lose highlight of the node when double clicking.\n !isNodeSelected && this._selectionManager.onNodeClicked(nodeId, event);\n } else {\n this._selectionManager.onNodeClicked(nodeId, event);\n }\n\n // if clicked node was already selected fire delayed click event\n if (isNodeSelected && this._treeEvents.onDelayedNodeClick !== undefined) {\n this._treeEvents.onDelayedNodeClick({ nodeId });\n }\n }\n\n public onNodeMouseDown(nodeId: string) {\n this._selectionManager.onNodeMouseDown(nodeId);\n }\n\n public onNodeMouseMove(nodeId: string) {\n this._selectionManager.onNodeMouseMove(nodeId);\n }\n\n public onNodeEditorActivated(nodeId: string) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n const isNodeSelected = node ? node.isSelected : false;\n\n // if node was already selected, fire onNodeEditorActivated event\n if (\n isNodeSelected &&\n this._treeEvents.onNodeEditorActivated !== undefined\n ) {\n this._treeEvents.onNodeEditorActivated({ nodeId });\n }\n }\n\n public onTreeKeyDown(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyDown(event, this);\n }\n\n public onTreeKeyUp(event: React.KeyboardEvent): void {\n this._selectionManager.onTreeKeyUp(event, this);\n }\n\n private collectSelectionChanges(\n selection: IndividualSelection | RangeSelection,\n deselection: IndividualSelection\n ): Observable<{\n selectedNodeItems: TreeNodeItem[];\n deselectedNodeItems: TreeNodeItem[];\n }> {\n const deselectedItems = this.collectNodeItems(deselection);\n if (isRangeSelection(selection)) {\n return this.collectNodesBetween(selection.from, selection.to).pipe(\n map((selectedNodeItems, index) => {\n return {\n selectedNodeItems,\n deselectedNodeItems: index === 0 ? deselectedItems : [],\n };\n })\n );\n }\n\n const selectedItems = this.collectNodeItems(selection);\n return of({\n selectedNodeItems: selectedItems,\n deselectedNodeItems: deselectedItems,\n });\n }\n\n private collectNodesBetween(\n nodeId1: string,\n nodeId2: string\n ): Observable<TreeNodeItem[]> {\n const [readyNodes, nodesToLoad] =\n TreeEventDispatcher.groupNodesByLoadingState(\n this.iterateNodesBetween(nodeId1, nodeId2)\n );\n\n const loadedSelectedNodes = from(\n nodesToLoad.map((node) => {\n const parentNode = node.parentId\n ? this._getVisibleNodes().getModel().getNode(node.parentId)\n : this._getVisibleNodes().getModel().getRootNode();\n return parentNode\n ? toRxjsObservable(\n this._nodeLoader.loadNode(parentNode, node.childIndex)\n )\n : EMPTY;\n })\n ).pipe(\n // We have requested multiple nodes that may belong to the same page.\n // When the page loads we only want to process the loaded nodes once.\n // Making assumption that loaded nodes from the same page will be emitted without interruptions.\n // Maybe we could simplify this to `this._nodeLoader.loadNodes(nodesToLoad)`?\n mergeAll(),\n distinctUntilChanged()\n );\n\n return concat(\n of(\n readyNodes\n .filter((node) => !node.isSelectionDisabled)\n .map((node) => node.item)\n ),\n loadedSelectedNodes.pipe(\n map(({ loadedNodes }) =>\n loadedNodes.filter((item) => !item.isSelectionDisabled)\n )\n )\n ).pipe(\n filter((nodeItems) => nodeItems.length > 0),\n // Give enough time for multiple subscribers to subscribe before any emissions begin\n subscribeOn(asapScheduler)\n );\n }\n\n private *iterateNodesBetween(\n nodeId1: string,\n nodeId2: string\n ): Iterable<TreeModelNode | TreeModelNodePlaceholder> {\n let firstNodeFound = false;\n for (const node of this._getVisibleNodes()) {\n if (firstNodeFound) {\n yield node;\n }\n\n if (isTreeModelNode(node)) {\n if (nodeId1 === nodeId2 && node.id === nodeId1) {\n yield node;\n return;\n }\n\n if (node.id === nodeId1 || node.id === nodeId2) {\n if (firstNodeFound) {\n return;\n }\n\n firstNodeFound = true;\n yield node;\n }\n }\n }\n }\n\n private collectNodeItems(nodeIds: string[]): TreeNodeItem[] {\n const items: TreeNodeItem[] = [];\n for (const nodeId of nodeIds) {\n const node = this._getVisibleNodes().getModel().getNode(nodeId);\n if (node !== undefined && !node.isSelectionDisabled) {\n items.push(node.item);\n }\n }\n return items;\n }\n\n private static groupNodesByLoadingState(\n nodes: Iterable<TreeModelNode | TreeModelNodePlaceholder>\n ): [TreeModelNode[], TreeModelNodePlaceholder[]] {\n const loadedNodeItems: TreeModelNode[] = [];\n const nodesToLoad: TreeModelNodePlaceholder[] = [];\n for (const node of nodes) {\n if (isTreeModelNode(node)) {\n loadedNodeItems.push(node);\n } else {\n nodesToLoad.push(node);\n }\n }\n\n return [loadedNodeItems, nodesToLoad];\n }\n}\n"]}
|
|
@@ -10,6 +10,7 @@ import type { ITreeNodeLoader } from "./TreeNodeLoader.js";
|
|
|
10
10
|
/**
|
|
11
11
|
* Params used for tree node editing.
|
|
12
12
|
* @public
|
|
13
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
13
14
|
*/
|
|
14
15
|
export interface TreeEditingParams {
|
|
15
16
|
/** Callback that is called when node is updated. */
|
|
@@ -18,6 +19,7 @@ export interface TreeEditingParams {
|
|
|
18
19
|
/**
|
|
19
20
|
* Data structure that describes tree event handler params.
|
|
20
21
|
* @public
|
|
22
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
21
23
|
*/
|
|
22
24
|
export interface TreeEventHandlerParams {
|
|
23
25
|
/** Model source used to modify tree model while handling events. */
|
|
@@ -32,6 +34,7 @@ export interface TreeEventHandlerParams {
|
|
|
32
34
|
/**
|
|
33
35
|
* Default tree event handler.
|
|
34
36
|
* @public
|
|
37
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
35
38
|
*/
|
|
36
39
|
export declare class TreeEventHandler implements TreeEvents, Disposable {
|
|
37
40
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventHandler.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"TreeEventHandler.d.ts","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EACV,gCAAgC,EAChC,UAAU,EACV,iBAAiB,EACjB,kCAAkC,EAClC,iCAAiC,EAClC,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,aAAa,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAChE;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,WAAW,EAAE,eAAe,CAAC;IAC7B,+DAA+D;IAC/D,UAAU,EAAE,eAAe,CAAC;IAC5B,0FAA0F;IAC1F,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,wCAAwC;IACxC,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,UAAU,EAAE,UAAU;;IAC7D,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,kBAAkB,CAAuB;gBAErC,MAAM,EAAE,sBAAsB;IAa1C,+CAA+C;IACxC,CAAC,MAAM,CAAC,OAAO,CAAC;IAIvB;;OAEG;IACI,OAAO;IAId,IAAW,WAAW,oBAErB;IAED,gDAAgD;IACzC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB;IAMnD,qBAAqB;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB;IAIpD,kHAAkH;IAC3G,mBAAmB,CAAC,EACzB,aAAa,GACd,EAAE,kCAAkC,GAAG,YAAY,GAAG,SAAS;IAahE,gIAAgI;IACzH,mBAAmB,CAAC,EACzB,YAAY,GACb,EAAE,iCAAiC,GAAG,YAAY,GAAG,SAAS;IAkB/D,qCAAqC;IAC9B,sBAAsB,CAAC,EAC5B,YAAY,GACb,EAAE,gCAAgC,GAAG,YAAY,GAAG,SAAS;IAM9D,sFAAsF;IAC/E,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB;IAIvD,4FAA4F;IACrF,iBAAiB,CAAC,CAAC,EAAE,iBAAiB;IAE7C,sFAAsF;IAC/E,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB;IAI1D,sFAAsF;IACtF,OAAO,CAAC,cAAc;CAQvB"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Tree
|
|
7
7
|
*/
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
8
9
|
import "../../common/DisposePolyfill.js";
|
|
9
10
|
import { Subject, takeUntil } from "rxjs";
|
|
10
11
|
import { TreeModelMutator } from "./internal/TreeModelMutator.js";
|
|
@@ -12,6 +13,7 @@ import { toRxjsObservable } from "./Observable.js";
|
|
|
12
13
|
/**
|
|
13
14
|
* Default tree event handler.
|
|
14
15
|
* @public
|
|
16
|
+
* @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.
|
|
15
17
|
*/
|
|
16
18
|
export class TreeEventHandler {
|
|
17
19
|
_modelMutator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeEventHandler.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventHandler.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeEventHandler.js","sourceRoot":"","sources":["../../../../src/components-react/tree/controlled/TreeEventHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tree\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport \"../../common/DisposePolyfill.js\";\n\nimport { Subject, takeUntil } from \"rxjs\";\nimport { TreeModelMutator } from \"./internal/TreeModelMutator.js\";\nimport type { Subscription } from \"./Observable.js\";\nimport { toRxjsObservable } from \"./Observable.js\";\nimport type {\n TreeCheckboxStateChangeEventArgs,\n TreeEvents,\n TreeNodeEventArgs,\n TreeSelectionModificationEventArgs,\n TreeSelectionReplacementEventArgs,\n} from \"./TreeEvents.js\";\nimport type { TreeModelNode } from \"./TreeModel.js\";\nimport type { TreeModelSource } from \"./TreeModelSource.js\";\nimport type { ITreeNodeLoader } from \"./TreeNodeLoader.js\";\n\n/**\n * Params used for tree node editing.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface TreeEditingParams {\n /** Callback that is called when node is updated. */\n onNodeUpdated: (node: TreeModelNode, newValue: string) => void;\n}\n\n/**\n * Data structure that describes tree event handler params.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport interface TreeEventHandlerParams {\n /** Model source used to modify tree model while handling events. */\n modelSource: TreeModelSource;\n /** Node loader used to load children when node is expanded. */\n nodeLoader: ITreeNodeLoader;\n /** Specifies whether children should be disposed when parent node is collapsed or not. */\n collapsedChildrenDisposalEnabled?: boolean;\n /** Parameters used for node editing. */\n editingParams?: TreeEditingParams;\n}\n\n/**\n * Default tree event handler.\n * @public\n * @deprecated in 5.28.0. Use Tree component from `@stratakit/structures` instead.\n */\nexport class TreeEventHandler implements TreeEvents, Disposable {\n private _modelMutator: TreeModelMutator;\n private _editingParams?: TreeEditingParams;\n\n private _disposed = new Subject<void>();\n private _selectionReplaced = new Subject<void>();\n\n constructor(params: TreeEventHandlerParams) {\n this._modelMutator = new TreeModelMutator(\n params.modelSource,\n params.nodeLoader,\n !!params.collapsedChildrenDisposalEnabled\n );\n this._editingParams = params.editingParams;\n }\n\n #dispose() {\n this._disposed.next();\n }\n\n /** Destructor. Must be called to clean up. */\n public [Symbol.dispose]() {\n this.#dispose();\n }\n\n /** Disposes tree event handler.\n * @deprecated in 5.5.0. Use `[Symbol.dispose]` instead.\n */\n public dispose() {\n this.#dispose();\n }\n\n public get modelSource() {\n return this._modelMutator.modelSource;\n }\n\n /** Expands node and starts loading children. */\n public onNodeExpanded({ nodeId }: TreeNodeEventArgs) {\n toRxjsObservable(this._modelMutator.expandNode(nodeId))\n .pipe(takeUntil(this._disposed))\n .subscribe();\n }\n\n /** Collapses node */\n public onNodeCollapsed({ nodeId }: TreeNodeEventArgs) {\n this._modelMutator.collapseNode(nodeId);\n }\n\n /** Selects and deselects nodes until event is handled, handler is disposed or selection replaced event occurs. */\n public onSelectionModified({\n modifications,\n }: TreeSelectionModificationEventArgs): Subscription | undefined {\n return toRxjsObservable(modifications)\n .pipe(takeUntil(this._disposed), takeUntil(this._selectionReplaced))\n .subscribe({\n next: ({ selectedNodeItems, deselectedNodeItems }) => {\n this._modelMutator.modifySelection(\n selectedNodeItems,\n deselectedNodeItems\n );\n },\n });\n }\n\n /** Replaces currently selected nodes until event is handled, handler is disposed or another selection replaced event occurs. */\n public onSelectionReplaced({\n replacements,\n }: TreeSelectionReplacementEventArgs): Subscription | undefined {\n this._selectionReplaced.next();\n\n let firstEmission = true;\n return toRxjsObservable(replacements)\n .pipe(takeUntil(this._disposed), takeUntil(this._selectionReplaced))\n .subscribe({\n next: ({ selectedNodeItems }) => {\n if (firstEmission) {\n firstEmission = false;\n this._modelMutator.replaceSelection(selectedNodeItems);\n }\n\n this._modelMutator.modifySelection(selectedNodeItems, []);\n },\n });\n }\n\n /** Changes nodes checkbox states. */\n public onCheckboxStateChanged({\n stateChanges,\n }: TreeCheckboxStateChangeEventArgs): Subscription | undefined {\n return stateChanges.subscribe((changes) =>\n this._modelMutator.setCheckboxStates(changes)\n );\n }\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n public onDelayedNodeClick({ nodeId }: TreeNodeEventArgs) {\n this.activateEditor(nodeId);\n }\n\n /** This method is declared here to be overridden by classes that extend TreeEventHandler */\n public onNodeDoubleClick(_: TreeNodeEventArgs) {}\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n public onNodeEditorActivated({ nodeId }: TreeNodeEventArgs) {\n this.activateEditor(nodeId);\n }\n\n /** Activates node editing if editing parameters are supplied and node is editable. */\n private activateEditor(nodeId: string) {\n if (this._editingParams === undefined) return;\n\n this._modelMutator.activateEditing(\n nodeId,\n this._editingParams.onNodeUpdated\n );\n }\n}\n"]}
|