dotdata_widgets 0.1.2 → 0.1.4

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.
Files changed (173) hide show
  1. package/README.md +27 -3
  2. package/css/colors.css +4 -0
  3. package/css/typography.css +9 -0
  4. package/css/widget.css +39 -4
  5. package/dist/index.js +74 -1
  6. package/lib/components/accordion/Accordion.js +47 -13
  7. package/lib/components/accordion/index.js +18 -1
  8. package/lib/components/input/index.js +18 -1
  9. package/lib/components/input/input.js +11 -3
  10. package/lib/extension.js +18 -1
  11. package/lib/feature/feature-details/FeatureCorrelatedFeaturesTable.js +22 -0
  12. package/lib/feature/feature-details/FeatureDistributionChart.js +218 -0
  13. package/lib/feature/feature-details/FeatureStatisticsTable.js +44 -0
  14. package/lib/feature/feature-details/index.js +20 -0
  15. package/lib/feature/feature-explanation/FeatureExplanation.js +48 -0
  16. package/lib/feature/feature-explanation/components/ColoredExplanationBlock.js +36 -0
  17. package/lib/feature/feature-explanation/components/ColumnExplanationBlock.js +12 -0
  18. package/lib/feature/feature-explanation/components/DataSlotExplanationBlock.js +12 -0
  19. package/lib/feature/feature-explanation/components/PetExplanationBlock.js +11 -0
  20. package/lib/feature/feature-explanation/components/TextExplanationBlock.js +10 -0
  21. package/lib/feature/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +10 -0
  22. package/lib/feature/feature-explanation/components/TopicExplanationBlock.js +10 -0
  23. package/lib/feature/feature-explanation/components/UnknownExplanationBlock.js +10 -0
  24. package/lib/feature/feature-likes/feature-likes.js +38 -0
  25. package/lib/feature/feature-likes/index.js +18 -0
  26. package/lib/feature-descriptor/context/fd-domains-descriptions-selection.context.js +37 -0
  27. package/lib/feature-descriptor/context/index.js +18 -0
  28. package/lib/feature-descriptor/domains-descriptors-tree/components/column-tree-item.js +16 -0
  29. package/lib/feature-descriptor/domains-descriptors-tree/components/descriptions-tree-item.js +50 -0
  30. package/lib/feature-descriptor/domains-descriptors-tree/components/index.js +18 -0
  31. package/lib/feature-descriptor/domains-descriptors-tree/components/tree-item-label.js +56 -0
  32. package/lib/feature-descriptor/domains-descriptors-tree/components/type-tree-item.js +19 -0
  33. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-item-selection-context.js +56 -0
  34. package/lib/feature-descriptor/domains-descriptors-tree/context/index.js +18 -0
  35. package/lib/feature-descriptor/domains-descriptors-tree/domains-descriptions-tree.js +44 -0
  36. package/lib/feature-descriptor/domains-descriptors-tree/index.js +21 -0
  37. package/lib/feature-descriptor/domains-descriptors-tree/models/domains-descriptions-tree.model.js +37 -0
  38. package/lib/feature-descriptor/domains-descriptors-tree/models/index.js +18 -0
  39. package/lib/feature-descriptor/domains-descriptors-tree/utils/create-domain-predicate.js +16 -0
  40. package/lib/feature-descriptor/domains-descriptors-tree/utils/filter-domains-descriptions-tree.js +23 -0
  41. package/lib/feature-descriptor/domains-descriptors-tree/utils/index.js +19 -0
  42. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +21 -13
  43. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +36 -8
  44. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +25 -17
  45. package/lib/feature-descriptor/feature-details/index.js +20 -3
  46. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +40 -32
  47. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +17 -9
  48. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +12 -4
  49. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +12 -4
  50. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +11 -3
  51. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +10 -2
  52. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +10 -2
  53. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +10 -2
  54. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +10 -2
  55. package/lib/feature-descriptor/feature-exploration-path/exploration-path-header.js +38 -0
  56. package/lib/feature-descriptor/feature-exploration-path/exploration-path-join-list.js +28 -0
  57. package/lib/feature-descriptor/feature-exploration-path/index.js +19 -0
  58. package/lib/feature-descriptors-domain/context/feature-domain-descriptions-selection.context.js +37 -0
  59. package/lib/feature-descriptors-domain/context/feature-domain-selection.context.js +37 -0
  60. package/lib/feature-descriptors-domain/context/index.js +19 -0
  61. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +15 -7
  62. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +11 -3
  63. package/lib/feature-descriptors-domain/exploration-path/index.js +19 -2
  64. package/lib/feature-descriptors-domain/fd-grouped-domain-tree.js +81 -0
  65. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/column-tree-item.js +17 -0
  66. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/descriptions-tree-item.js +49 -0
  67. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/index.js +18 -0
  68. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/selection-indicator-with-label.js +40 -0
  69. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/type-tree-item.js +16 -0
  70. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-context.js +43 -0
  71. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-tree.js +57 -0
  72. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/index.js +18 -0
  73. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/column-tree-item.js +17 -0
  74. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/description-tree-item.js +2 -0
  75. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/descriptions-tree-item.js +49 -0
  76. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/index.js +18 -0
  77. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/selection-indicator-with-label.js +19 -0
  78. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-item-label.js +15 -0
  79. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-level-item.js +54 -0
  80. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/type-tree-item.js +16 -0
  81. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.js +55 -0
  82. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.model.js +2 -0
  83. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/index.js +18 -0
  84. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/filter-domain-descriptions.js +21 -0
  85. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/index.js +18 -0
  86. package/lib/feature-descriptors-domain/feature-descriptor-grouped-domain-tree.js +87 -0
  87. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/column-tree-item.js +16 -0
  88. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/descriptions-tree-item.js +50 -0
  89. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/index.js +18 -0
  90. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/selection-indicator-with-label.js +67 -0
  91. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/type-tree-item.js +19 -0
  92. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-context.js +37 -0
  93. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-tree.js +51 -0
  94. package/lib/feature-descriptors-domain/feature-domain-descriptions/index.js +18 -0
  95. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-header.js +38 -0
  96. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-join-list.js +36 -0
  97. package/lib/feature-descriptors-domain/feature-exploration-path/index.js +19 -0
  98. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +28 -17
  99. package/lib/feature-descriptors-domain/selected-feature-domain-context.js +2 -0
  100. package/lib/feature-descriptors-domain/utils/filter-domain-descriptions.js +23 -0
  101. package/lib/feature-descriptors-domain/utils/filter-grouped-domain-descriptions.js +23 -0
  102. package/lib/feature-descriptors-domain/utils/index.js +18 -0
  103. package/lib/index.js +19 -2
  104. package/lib/models/column/column.js +3 -1
  105. package/lib/models/column/index.js +18 -1
  106. package/lib/models/feature/feature-histogram.js +8 -4
  107. package/lib/models/feature/feature-leaderboard.js +3 -1
  108. package/lib/models/feature/feature-metric.js +16 -0
  109. package/lib/models/feature/feature.js +3 -12
  110. package/lib/models/feature/index.js +20 -2
  111. package/lib/models/feature-descriptor/feature-descriptor.js +3 -0
  112. package/lib/models/feature-descriptor/feature-descriptors-domain.js +3 -0
  113. package/lib/models/feature-descriptor-domain/fd-domains-description.js +3 -0
  114. package/lib/models/feature-descriptor-domain/fd-join-description.js +3 -0
  115. package/lib/models/feature-descriptor-domain/index.js +19 -0
  116. package/lib/models/feature-descriptors-domain/fd-domain-description.js +9 -1
  117. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +3 -1
  118. package/lib/models/feature-descriptors-domain/index.js +19 -2
  119. package/lib/models/feature-explanation/feature-explanation.model.js +6 -2
  120. package/lib/models/feature-explanation/index.js +18 -1
  121. package/lib/models/feature-leaderboard/feature-leaderboard.js +3 -1
  122. package/lib/models/feature-leaderboard/index.js +18 -1
  123. package/lib/models/feature-space/exploration-path.js +3 -0
  124. package/lib/models/feature-space/feature-space-description.js +3 -0
  125. package/lib/models/feature-space/feature-space.js +3 -1
  126. package/lib/models/feature-space/grouped-domains-descriptions.js +3 -0
  127. package/lib/models/feature-space/index.js +20 -1
  128. package/lib/models/index.js +1 -0
  129. package/lib/plugin.js +33 -7
  130. package/lib/utils/asserations.js +6 -1
  131. package/lib/utils/index.js +20 -3
  132. package/lib/utils/localize.js +8 -4
  133. package/lib/utils/model-transform-hook.js +21 -0
  134. package/lib/utils/object/extract-property.js +6 -1
  135. package/lib/utils/object/index.js +19 -2
  136. package/lib/utils/object/is-set.js +8 -2
  137. package/lib/utils/set.js +14 -0
  138. package/lib/utils/widget/index.js +19 -2
  139. package/lib/utils/widget/widget-model-context.js +36 -7
  140. package/lib/utils/widget/widget-model.js +14 -8
  141. package/lib/utils/widget-model/index.js +19 -0
  142. package/lib/utils/widget-model/widget-model-context.js +42 -0
  143. package/lib/utils/widget-model/widget-model.js +30 -0
  144. package/lib/utils/widget-theme/index.js +18 -0
  145. package/lib/utils/widget-theme/widget-theme.js +99 -0
  146. package/lib/version.js +6 -2
  147. package/lib/widgets/FeatureLeaderboardWidget.js +27 -15
  148. package/lib/widgets/FeatureSpaceWidget.js +27 -15
  149. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +17 -9
  150. package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +15 -18
  151. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +26 -14
  152. package/lib/widgets/feature-leaderboard/components/leaderboard-feature-likes.js +50 -0
  153. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +22 -14
  154. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryHeader.js +35 -0
  155. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +17 -15
  156. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntry.js +22 -0
  157. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDetails.js +23 -0
  158. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryRow.js +29 -0
  159. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-metric-slider.js +2 -0
  160. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-slider.js +62 -0
  161. package/lib/widgets/feature-space/FeatureDomainsDescriptions.js +82 -0
  162. package/lib/widgets/feature-space/FeatureExplorationPaths.js +14 -35
  163. package/lib/widgets/feature-space/FeatureSpaceDomain.js +75 -0
  164. package/lib/widgets/feature-space/FeatureSpaceDomainDescriptions.js +80 -0
  165. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +63 -28
  166. package/lib/widgets/feature-space/FeatureSpaceView.js +47 -10
  167. package/lib/widgets/index.js +20 -3
  168. package/package.json +8 -3
  169. package/LICENSE.txt +0 -27
  170. package/lib/hooks/index.js +0 -1
  171. package/lib/hooks/widget-model.js +0 -1
  172. package/lib/utils/widget/widget-context-wrapper.js +0 -9
  173. package/lib/widget.js +0 -34
@@ -1,2 +1,19 @@
1
- export * from './exploration-path-header';
2
- export * from './exploration-path-join-list';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./exploration-path-header"), exports);
18
+ __exportStar(require("./exploration-path-join-list"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FeatureDescriptorGroupedDomainTree = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
10
+ const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
11
+ const react_virtual_1 = require("@tanstack/react-virtual");
12
+ const TreeView_1 = __importDefault(require("@mui/lab/TreeView"));
13
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
14
+ const hasOnlyOneItem = (arr) => arr.length === 1;
15
+ const TypeLabel = props => {
16
+ return (react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, onClick: e => e.stopPropagation() }), label: props.type.summary, onClick: event => event.stopPropagation() }));
17
+ };
18
+ const ColumnLabel = props => {
19
+ return (react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, onClick: e => e.stopPropagation() }), label: props.column.summary, onClick: event => event.stopPropagation() }));
20
+ };
21
+ // const Descriptions: React.FC<{
22
+ // descriptions: GroupedDomainDescriptions['types'][number]['columns'][number]['descriptions'];
23
+ // }> = props => {
24
+ // return (
25
+ // <>
26
+ // {props.descriptions.map(description => (
27
+ // <div style={{ paddingLeft: '24px' }}>
28
+ // <FormControlLabel
29
+ // control={
30
+ // <Checkbox
31
+ // sx={{ paddingBlock: '2px' }}
32
+ // onClick={e => e.stopPropagation()}
33
+ // />
34
+ // }
35
+ // label={description.description}
36
+ // onClick={event => event.stopPropagation()}
37
+ // />
38
+ // </div>
39
+ // ))}
40
+ // </>
41
+ // );
42
+ // };
43
+ const Descriptions = props => {
44
+ const parentRef = react_1.default.useRef(null);
45
+ const rowVirtualizer = (0, react_virtual_1.useVirtualizer)({
46
+ count: props.descriptions.length,
47
+ getScrollElement: () => parentRef.current,
48
+ estimateSize: () => 25,
49
+ overscan: 5,
50
+ });
51
+ return (react_1.default.createElement("div", { ref: parentRef, className: "List", style: {
52
+ height: `${Math.min(25 * props.descriptions.length, 500)}px`,
53
+ overflowY: 'auto',
54
+ overflowX: 'hidden',
55
+ } },
56
+ react_1.default.createElement("div", { style: {
57
+ height: `${rowVirtualizer.getTotalSize()}px`,
58
+ position: 'relative',
59
+ } }, rowVirtualizer.getVirtualItems().map(virtualRow => (react_1.default.createElement("div", { key: virtualRow.index, style: {
60
+ position: 'absolute',
61
+ top: 0,
62
+ left: '31px',
63
+ width: '100%',
64
+ height: `${virtualRow.size}px`,
65
+ transform: `translateY(${virtualRow.start}px)`,
66
+ } },
67
+ react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, onClick: e => e.stopPropagation() }), label: props.descriptions[virtualRow.index].description, onClick: event => event.stopPropagation() })))))));
68
+ };
69
+ const ColumnTreeItem = ({ column, typeIdx, columnIdx }) => {
70
+ return hasOnlyOneItem(column.descriptions) ? (react_1.default.createElement(Descriptions, { descriptions: column.descriptions })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: `type_${typeIdx}_column${columnIdx}`, label: react_1.default.createElement(ColumnLabel, { column: column }) },
71
+ react_1.default.createElement(Descriptions, { descriptions: column.descriptions })));
72
+ };
73
+ const TypeTreeItem = ({ type, typeIdx }) => {
74
+ return hasOnlyOneItem(type.columns) ? (react_1.default.createElement(ColumnTreeItem, { typeIdx: typeIdx, columnIdx: 0, column: type.columns[0] })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: `type_${typeIdx}`, label: react_1.default.createElement(TypeLabel, { type: type }) }, type.columns.map((column, colIdx) => (react_1.default.createElement(ColumnTreeItem, { typeIdx: typeIdx, columnIdx: colIdx, column: column })))));
75
+ };
76
+ const FeatureDescriptorGroupedDomainTree = props => {
77
+ const { types } = props.groupedDomain;
78
+ return (react_1.default.createElement(TreeView_1.default, { defaultCollapseIcon: react_1.default.createElement(ExpandMore_1.default, null), defaultExpandIcon: react_1.default.createElement(ChevronRight_1.default, null), disabledItemsFocusable: false, disableSelection: true }, types.map((type, typeIdx) => (react_1.default.createElement(TypeTreeItem, { type: type, typeIdx: typeIdx })))));
79
+ };
80
+ exports.FeatureDescriptorGroupedDomainTree = FeatureDescriptorGroupedDomainTree;
81
+ //# sourceMappingURL=fd-grouped-domain-tree.js.map
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ColumnTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
9
+ const descriptions_tree_item_1 = require("./descriptions-tree-item");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const _utils_1 = require("../../../utils");
12
+ const ColumnTreeItem = ({ nodeId, column }) => {
13
+ return column.descriptions.length === 1 ? (react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: column.descriptions })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: nodeId, classes: {}, label: react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: column.summary, managedIds: column.descriptions.map((0, _utils_1.extractProperty)('id')) }) },
14
+ react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: column.descriptions })));
15
+ };
16
+ exports.ColumnTreeItem = ColumnTreeItem;
17
+ //# sourceMappingURL=column-tree-item.js.map
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DescriptionsTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_virtual_1 = require("@tanstack/react-virtual");
9
+ const material_1 = require("@mui/material");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const listLeftIndentation = '31px';
12
+ const DescriptionsVirtualList = ({ descriptions, }) => {
13
+ const parentRef = react_1.default.useRef(null);
14
+ const rowVirtualizer = (0, react_virtual_1.useVirtualizer)({
15
+ count: descriptions.length,
16
+ getScrollElement: () => parentRef.current,
17
+ estimateSize: () => 25,
18
+ overscan: 5,
19
+ });
20
+ return (react_1.default.createElement("div", { ref: parentRef, style: {
21
+ height: `${Math.min(25 * descriptions.length, 500)}px`,
22
+ overflowY: 'auto',
23
+ overflowX: 'hidden',
24
+ } },
25
+ react_1.default.createElement("div", { style: {
26
+ height: `${rowVirtualizer.getTotalSize()}px`,
27
+ position: 'relative',
28
+ } }, rowVirtualizer.getVirtualItems().map(virtualRow => (react_1.default.createElement("div", { key: virtualRow.index, style: {
29
+ position: 'absolute',
30
+ top: 0,
31
+ left: listLeftIndentation,
32
+ height: `${virtualRow.size}px`,
33
+ transform: `translateY(${virtualRow.start}px)`,
34
+ } },
35
+ react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: descriptions[virtualRow.index].description, managedIds: [descriptions[virtualRow.index].id] })))))));
36
+ };
37
+ const DescriptionsList = ({ descriptions }) => {
38
+ return (react_1.default.createElement(react_1.default.Fragment, null, descriptions.map(description => (react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { key: description.id, label: description.description, managedIds: [description.id] })))));
39
+ };
40
+ const DescriptionsTreeItem = ({ descriptions, }) => {
41
+ const [isVirtualListVisible, setIsVirtualListVisible] = react_1.default.useState(() => false);
42
+ const [limitedDescriptions] = react_1.default.useState(() => descriptions.length < 6 ? descriptions : descriptions.splice(0, 3));
43
+ const isWithShowMore = descriptions.length >= 6;
44
+ return isVirtualListVisible ? (react_1.default.createElement(DescriptionsVirtualList, { descriptions: descriptions })) : (react_1.default.createElement("div", { style: { marginLeft: listLeftIndentation } },
45
+ react_1.default.createElement(DescriptionsList, { descriptions: limitedDescriptions }),
46
+ isWithShowMore ? (react_1.default.createElement(material_1.Button, { sx: { textTransform: 'lowercase', display: 'block' }, size: "small", onClick: () => setIsVirtualListVisible(true) }, "more")) : null));
47
+ };
48
+ exports.DescriptionsTreeItem = DescriptionsTreeItem;
49
+ //# sourceMappingURL=descriptions-tree-item.js.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./type-tree-item"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SelectionIndicatorWithLabel = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const lodash_1 = require("lodash");
10
+ const feature_descriptor_domain_descriptions_context_1 = require("../feature-descriptor-domain-descriptions-context");
11
+ const SelectionIndicatorWithLabel = props => {
12
+ const [checked, setChecked] = react_1.default.useState(() => 'checked');
13
+ const [selectedDomains, setSelectedDomains] = (0, feature_descriptor_domain_descriptions_context_1.useFeatureDescriptorGroupedDomain)();
14
+ const handleChange = (event) => {
15
+ if (event.target.checked) {
16
+ setSelectedDomains((0, lodash_1.union)([...selectedDomains, ...props.managedIds]));
17
+ }
18
+ else {
19
+ setSelectedDomains((0, lodash_1.without)(selectedDomains, ...props.managedIds));
20
+ }
21
+ };
22
+ react_1.default.useEffect(() => {
23
+ if (Array.isArray(props.managedIds)) {
24
+ const inter = (0, lodash_1.intersection)(selectedDomains, props.managedIds);
25
+ setChecked(props.managedIds.length === inter.length
26
+ ? 'checked'
27
+ : inter.length === 0
28
+ ? 'unchecked'
29
+ : 'indeterminate');
30
+ }
31
+ else {
32
+ setChecked(selectedDomains.includes(props.managedIds) ? 'checked' : 'unchecked');
33
+ }
34
+ }, [selectedDomains]);
35
+ return (react_1.default.createElement(material_1.FormControlLabel, { className: "text-ellipsis", control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, checked: checked === 'checked', indeterminate: checked === 'indeterminate', onChange: handleChange }), label: props.label, onClick: event => {
36
+ event.stopPropagation();
37
+ } }));
38
+ };
39
+ exports.SelectionIndicatorWithLabel = SelectionIndicatorWithLabel;
40
+ //# sourceMappingURL=selection-indicator-with-label.js.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TypeTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
9
+ const column_tree_item_1 = require("./column-tree-item");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const _utils_1 = require("../../../utils");
12
+ const TypeTreeItem = ({ typeIdx, type }) => {
13
+ return type.columns.length === 1 ? (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { nodeId: `type_${typeIdx}_column_0`, column: type.columns[0] })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: `type_${typeIdx}`, label: react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: type.summary, managedIds: type.columns.flatMap(column => column.descriptions.map((0, _utils_1.extractProperty)('id'))) }) }, type.columns.map((column, idx) => (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { nodeId: `type_${typeIdx}_column_${idx}`, column: column })))));
14
+ };
15
+ exports.TypeTreeItem = TypeTreeItem;
16
+ //# sourceMappingURL=type-tree-item.js.map
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.useFeatureDescriptorGroupedDomain = exports.FeatureDescriptorGroupedDomainProvider = void 0;
27
+ const React = __importStar(require("react"));
28
+ const FeatureDescriptorGroupedDomainContext = React.createContext(undefined);
29
+ function FeatureDescriptorGroupedDomainProvider(props) {
30
+ const [selectedDomains, setSelectedDomains] = React.useState(() => []);
31
+ const value = [selectedDomains, setSelectedDomains];
32
+ return (React.createElement(FeatureDescriptorGroupedDomainContext.Provider, { value: value, ...props }));
33
+ }
34
+ exports.FeatureDescriptorGroupedDomainProvider = FeatureDescriptorGroupedDomainProvider;
35
+ function useFeatureDescriptorGroupedDomain() {
36
+ const context = React.useContext(FeatureDescriptorGroupedDomainContext);
37
+ if (context === undefined) {
38
+ throw new Error('useFeatureDescriptorGroupedDomain must be used within a FeatureDescriptorGroupedDomainProvider');
39
+ }
40
+ return context;
41
+ }
42
+ exports.useFeatureDescriptorGroupedDomain = useFeatureDescriptorGroupedDomain;
43
+ //# sourceMappingURL=feature-descriptor-domain-descriptions-context.js.map
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FeatureDescriptorGroupedDomainTree = exports.FeatureDescriptorGroupedDomainTreeHeader = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeView_1 = __importDefault(require("@mui/lab/TreeView"));
9
+ const material_1 = require("@mui/material");
10
+ const UnfoldLess_1 = __importDefault(require("@mui/icons-material/UnfoldLess"));
11
+ const UnfoldMore_1 = __importDefault(require("@mui/icons-material/UnfoldMore"));
12
+ const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
13
+ const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
14
+ const components_1 = require("./components");
15
+ const feature_descriptor_domain_descriptions_context_1 = require("./feature-descriptor-domain-descriptions-context");
16
+ const FeatureDescriptorGroupedDomainTreeHeader = (props) => react_1.default.createElement(react_1.default.Fragment, null, props.children);
17
+ exports.FeatureDescriptorGroupedDomainTreeHeader = FeatureDescriptorGroupedDomainTreeHeader;
18
+ const FeatureDescriptorGroupedDomainTree = props => {
19
+ const [allDomainGroupIds] = react_1.default.useState(() => getAllDomainGroupIds(props.groupedDomain));
20
+ const [expanded, setExpanded] = react_1.default.useState(() => []);
21
+ const { types } = props.groupedDomain;
22
+ const handleToggle = (event, nodeIds) => {
23
+ event.preventDefault();
24
+ event.stopPropagation();
25
+ // console.log(nodeIds);
26
+ setExpanded(nodeIds);
27
+ };
28
+ function toggleExpansion() {
29
+ if (expanded.length === 0) {
30
+ setExpanded(allDomainGroupIds);
31
+ }
32
+ else {
33
+ setExpanded([]);
34
+ }
35
+ }
36
+ return (react_1.default.createElement(feature_descriptor_domain_descriptions_context_1.FeatureDescriptorGroupedDomainProvider, null,
37
+ react_1.default.createElement("div", { className: "feature-space-domain-descriptions-tree" },
38
+ react_1.default.createElement("div", { className: "domain-descriptions-tree-header" },
39
+ react_1.default.createElement(material_1.Button, { className: "toggle-all-nodes-btn", variant: "outlined", startIcon: allDomainGroupIds.length === expanded.length ? (react_1.default.createElement(UnfoldLess_1.default, { sx: { marginRight: '-10px' } })) : (react_1.default.createElement(UnfoldMore_1.default, { sx: { marginRight: '-10px' } })), onClick: () => toggleExpansion() }),
40
+ react_1.default.Children.toArray(props.children)
41
+ .filter(react_1.default.isValidElement)
42
+ .filter(child => child?.type === exports.FeatureDescriptorGroupedDomainTreeHeader)),
43
+ react_1.default.createElement("div", null,
44
+ react_1.default.createElement(TreeView_1.default, { defaultCollapseIcon: react_1.default.createElement(ExpandMore_1.default, null), defaultExpandIcon: react_1.default.createElement(ChevronRight_1.default, null), disabledItemsFocusable: false, multiSelect: true,
45
+ // disableSelection={true}
46
+ expanded: expanded, onNodeToggle: handleToggle }, types.map((type, typeIdx) => (react_1.default.createElement(components_1.TypeTreeItem, { typeIdx: typeIdx, type: type }))))))));
47
+ };
48
+ exports.FeatureDescriptorGroupedDomainTree = FeatureDescriptorGroupedDomainTree;
49
+ function getAllDomainGroupIds(domains) {
50
+ return domains.types
51
+ .map(({ columns }, typeIdx) => [
52
+ `type_${typeIdx}`,
53
+ columns.map((_, columnIdx) => `type_${typeIdx}_column_${columnIdx}`),
54
+ ])
55
+ .flat(2);
56
+ }
57
+ //# sourceMappingURL=feature-descriptor-domain-descriptions-tree.js.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./feature-descriptor-domain-descriptions-tree"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ColumnTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
9
+ const descriptions_tree_item_1 = require("./descriptions-tree-item");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const _utils_1 = require("../../../utils");
12
+ const ColumnTreeItem = ({ nodeId, column }) => {
13
+ return column.descriptions.length === 1 ? (react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: column.descriptions })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: nodeId, classes: {}, label: react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: column.summary, managedIds: column.descriptions.map((0, _utils_1.extractProperty)('id')) }) },
14
+ react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: column.descriptions })));
15
+ };
16
+ exports.ColumnTreeItem = ColumnTreeItem;
17
+ //# sourceMappingURL=column-tree-item.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=description-tree-item.js.map
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DescriptionsTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_virtual_1 = require("@tanstack/react-virtual");
9
+ const material_1 = require("@mui/material");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const listLeftIndentation = '31px';
12
+ const DescriptionsVirtualList = ({ descriptions, }) => {
13
+ const parentRef = react_1.default.useRef(null);
14
+ const rowVirtualizer = (0, react_virtual_1.useVirtualizer)({
15
+ count: descriptions.length,
16
+ getScrollElement: () => parentRef.current,
17
+ estimateSize: () => 25,
18
+ overscan: 5,
19
+ });
20
+ return (react_1.default.createElement("div", { ref: parentRef, style: {
21
+ height: `${Math.min(25 * descriptions.length, 500)}px`,
22
+ overflowY: 'auto',
23
+ overflowX: 'hidden',
24
+ } },
25
+ react_1.default.createElement("div", { style: {
26
+ height: `${rowVirtualizer.getTotalSize()}px`,
27
+ position: 'relative',
28
+ } }, rowVirtualizer.getVirtualItems().map(virtualRow => (react_1.default.createElement("div", { key: virtualRow.index, style: {
29
+ position: 'absolute',
30
+ top: 0,
31
+ left: listLeftIndentation,
32
+ height: `${virtualRow.size}px`,
33
+ transform: `translateY(${virtualRow.start}px)`,
34
+ } },
35
+ react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: descriptions[virtualRow.index].description, managedIds: descriptions[virtualRow.index].id })))))));
36
+ };
37
+ const DescriptionsList = ({ descriptions }) => {
38
+ return (react_1.default.createElement(react_1.default.Fragment, null, descriptions.map(description => (react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { key: description.id, label: description.description, managedIds: description.id })))));
39
+ };
40
+ const DescriptionsTreeItem = ({ descriptions, }) => {
41
+ const [isVirtualListVisible, setIsVirtualListVisible] = react_1.default.useState(() => false);
42
+ const [limitedDescriptions] = react_1.default.useState(() => descriptions.length < 6 ? descriptions : descriptions.splice(0, 3));
43
+ const isWithShowMore = descriptions.length >= 6;
44
+ return isVirtualListVisible ? (react_1.default.createElement(DescriptionsVirtualList, { descriptions: descriptions })) : (react_1.default.createElement("div", { style: { marginLeft: listLeftIndentation } },
45
+ react_1.default.createElement(DescriptionsList, { descriptions: limitedDescriptions }),
46
+ isWithShowMore ? (react_1.default.createElement(material_1.Button, { sx: { textTransform: 'lowercase', display: 'block' }, size: "small", onClick: () => setIsVirtualListVisible(true) }, "more")) : null));
47
+ };
48
+ exports.DescriptionsTreeItem = DescriptionsTreeItem;
49
+ //# sourceMappingURL=descriptions-tree-item.js.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./type-tree-item"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SelectionIndicatorWithLabel = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const SelectionIndicatorWithLabel = props => {
10
+ const [checked, setChecked] = react_1.default.useState(true);
11
+ const handleChange = (event) => {
12
+ setChecked(event.target.checked);
13
+ };
14
+ return (react_1.default.createElement(material_1.FormControlLabel, { className: "text-ellipsis", control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, checked: checked, indeterminate: false, onChange: handleChange }), label: props.label, onClick: event => {
15
+ event.stopPropagation();
16
+ } }));
17
+ };
18
+ exports.SelectionIndicatorWithLabel = SelectionIndicatorWithLabel;
19
+ //# sourceMappingURL=selection-indicator-with-label.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TreeItemLabel = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const TreeItemLabel = props => {
10
+ return (react_1.default.createElement(material_1.FormControlLabel, { className: "text-ellipsis", control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, onClick: props.onCheckedChange }), label: props.label, onClick: event => {
11
+ event.stopPropagation();
12
+ } }));
13
+ };
14
+ exports.TreeItemLabel = TreeItemLabel;
15
+ //# sourceMappingURL=tree-item-label.js.map
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TreeLevelItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
9
+ const descriptions_tree_item_1 = require("./descriptions-tree-item");
10
+ const tree_item_label_1 = require("./tree-item-label");
11
+ // const ColumnTreeItem: React.FC<{
12
+ // nodeId: string;
13
+ // column: ColumnGroupDescriptions<DomainDescription>;
14
+ // onClick: (ids: any) => void;
15
+ // }> = ({ nodeId, column, onClick }) => {
16
+ // return (
17
+ // <TreeItem
18
+ // nodeId={`type_${nodeId}`}
19
+ // label={<TreeItemLabel label={column.summary} onClick={onClick} />}
20
+ // >
21
+ // <DescriptionsTreeItem
22
+ // descriptions={column.descriptions}
23
+ // onLabelClick={onClick}
24
+ // />
25
+ // </TreeItem>
26
+ // );
27
+ // };
28
+ //
29
+ // const TypeTreeItem: React.FC<{
30
+ // nodeId: string;
31
+ // type: TypeGroupDescriptions<DomainDescription>;
32
+ // onClick: (ids: any) => void;
33
+ // }> = ({ nodeId, type, onClick }) => {
34
+ // return (
35
+ // <TreeItem
36
+ // nodeId={`type_${nodeId}`}
37
+ // label={<TreeItemLabel label={type.summary} onClick={onClick} />}
38
+ // >
39
+ // {type.columns.map((column, idx) => (
40
+ // <ColumnTreeItem nodeId={'' + idx} column={column} onClick={onClick} />
41
+ // ))}
42
+ // </TreeItem>
43
+ // );
44
+ // }
45
+ // ;
46
+ const TreeLevelItem = (props) => {
47
+ return props.levelType === 'descriptions' ? (react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: props.items, onLabelClick: () => {
48
+ console.log('des');
49
+ } })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: props.nodeId, label: react_1.default.createElement(tree_item_label_1.TreeItemLabel, { label: props.label, onClick: () => {
50
+ console.log('');
51
+ } }) }, props.items.map((item, itemIdx) => (react_1.default.createElement(exports.TreeLevelItem, { ...props })))));
52
+ };
53
+ exports.TreeLevelItem = TreeLevelItem;
54
+ //# sourceMappingURL=tree-level-item.js.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TypeTreeItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeItem_1 = __importDefault(require("@mui/lab/TreeItem"));
9
+ const column_tree_item_1 = require("./column-tree-item");
10
+ const selection_indicator_with_label_1 = require("./selection-indicator-with-label");
11
+ const _utils_1 = require("../../../utils");
12
+ const TypeTreeItem = ({ typeIdx, type, }) => {
13
+ return type.columns.length === 1 ? (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { nodeId: `type_${typeIdx}_column_0`, column: type.columns[0] })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: `type_${typeIdx}`, label: react_1.default.createElement(selection_indicator_with_label_1.SelectionIndicatorWithLabel, { label: type.summary, managedIds: type.columns.flatMap(column => column.descriptions.map((0, _utils_1.extractProperty)('id'))) }) }, type.columns.map((column, idx) => (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { nodeId: `type_${typeIdx}_column_${idx}`, column: column })))));
14
+ };
15
+ exports.TypeTreeItem = TypeTreeItem;
16
+ //# sourceMappingURL=type-tree-item.js.map
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FeatureDescriptorGroupedDomainTree = exports.FeatureDescriptorGroupedDomainTreeHeader = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TreeView_1 = __importDefault(require("@mui/lab/TreeView"));
9
+ const material_1 = require("@mui/material");
10
+ const UnfoldLess_1 = __importDefault(require("@mui/icons-material/UnfoldLess"));
11
+ const UnfoldMore_1 = __importDefault(require("@mui/icons-material/UnfoldMore"));
12
+ const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
13
+ const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
14
+ const components_1 = require("./components");
15
+ const FeatureDescriptorGroupedDomainTreeHeader = (props) => react_1.default.createElement(react_1.default.Fragment, null, props.children);
16
+ exports.FeatureDescriptorGroupedDomainTreeHeader = FeatureDescriptorGroupedDomainTreeHeader;
17
+ const FeatureDescriptorGroupedDomainTree = props => {
18
+ const [allDomainGroupIds] = react_1.default.useState(() => getAllDomainGroupIds(props.groupedDomain));
19
+ const [expanded, setExpanded] = react_1.default.useState(() => []);
20
+ const { types } = props.groupedDomain;
21
+ const handleToggle = (event, nodeIds) => {
22
+ event.preventDefault();
23
+ event.stopPropagation();
24
+ // console.log(nodeIds);
25
+ setExpanded(nodeIds);
26
+ };
27
+ function toggleExpansion() {
28
+ if (expanded.length === 0) {
29
+ setExpanded(allDomainGroupIds);
30
+ }
31
+ else {
32
+ setExpanded([]);
33
+ }
34
+ }
35
+ return (react_1.default.createElement("div", { className: "feature-space-domain-descriptions-tree" },
36
+ react_1.default.createElement("div", { className: "domain-descriptions-tree-header" },
37
+ react_1.default.createElement(material_1.Button, { className: "toggle-all-nodes-btn", variant: "outlined", startIcon: allDomainGroupIds.length === expanded.length ? (react_1.default.createElement(UnfoldLess_1.default, { sx: { marginRight: '-10px' } })) : (react_1.default.createElement(UnfoldMore_1.default, { sx: { marginRight: '-10px' } })), onClick: () => toggleExpansion() }),
38
+ react_1.default.Children.toArray(props.children)
39
+ .filter(react_1.default.isValidElement)
40
+ .filter(child => child?.type === exports.FeatureDescriptorGroupedDomainTreeHeader)),
41
+ react_1.default.createElement("div", null,
42
+ react_1.default.createElement(TreeView_1.default, { defaultCollapseIcon: react_1.default.createElement(ExpandMore_1.default, null), defaultExpandIcon: react_1.default.createElement(ChevronRight_1.default, null), disabledItemsFocusable: false, multiSelect: true,
43
+ // disableSelection={true}
44
+ expanded: expanded, onNodeToggle: handleToggle }, types.map((type, typeIdx) => (react_1.default.createElement(components_1.TypeTreeItem, { typeIdx: typeIdx, type: type })))))));
45
+ };
46
+ exports.FeatureDescriptorGroupedDomainTree = FeatureDescriptorGroupedDomainTree;
47
+ function getAllDomainGroupIds(domains) {
48
+ return domains.types
49
+ .map(({ columns }, typeIdx) => [
50
+ `type_${typeIdx}`,
51
+ columns.map((_, columnIdx) => `type_${typeIdx}_column_${columnIdx}`),
52
+ ])
53
+ .flat(2);
54
+ }
55
+ //# sourceMappingURL=feature-descriptor-domain-descriptions-tree.js.map