dotdata_widgets 0.1.9 → 0.2.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.
Files changed (215) hide show
  1. package/README.md +71 -104
  2. package/css/widget.css +1 -1
  3. package/dist/index.js +5 -5
  4. package/dist/index.js.map +1 -1
  5. package/lib/components/ActionFooter.js +21 -0
  6. package/lib/components/WithLabel.js +20 -0
  7. package/lib/components/accordion/Accordion.js +4 -4
  8. package/lib/components/column-analytic-type-icons/analytic-type-category.js +13 -0
  9. package/lib/components/column-analytic-type-icons/analytic-type-datatime.js +13 -0
  10. package/lib/components/column-analytic-type-icons/analytic-type-geo-latitude.js +13 -0
  11. package/lib/components/column-analytic-type-icons/analytic-type-geo-longitude.js +13 -0
  12. package/lib/components/column-analytic-type-icons/analytic-type-numeric.js +13 -0
  13. package/lib/components/column-analytic-type-icons/index.js +22 -0
  14. package/lib/{feature-descriptor/domains-descriptors-tree/components → components/column-source-type-icons}/index.js +1 -1
  15. package/lib/components/column-source-type-icons/source-type-int.js +16 -0
  16. package/lib/{components/input/index.js → embed.js} +2 -2
  17. package/lib/extension.js +32 -19
  18. package/lib/feature/feature-details/FeatureCorrelatedFeaturesTable.js +1 -1
  19. package/lib/feature/feature-details/FeatureDistributionChart.js +1 -6
  20. package/lib/feature/feature-explanation/FeatureExplanation.js +8 -11
  21. package/lib/feature/feature-likes/{feature-likes.js → FeatureLikes.js} +3 -6
  22. package/lib/feature/feature-likes/index.js +1 -1
  23. package/lib/feature/feature-user-explanation/FeatureUserExplanation.js +14 -0
  24. package/lib/feature/feature-user-explanation/FeatureUserExplanationDisplay.js +23 -0
  25. package/lib/feature/feature-user-explanation/explanation-to-user-explanation.js +58 -0
  26. package/lib/{feature-descriptor/domains-descriptors-tree/context → feature/feature-user-explanation}/index.js +3 -2
  27. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-selection-context.js +1 -1
  28. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-tree-config-context.js +2 -1
  29. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-tree-item-selection-context.js +14 -6
  30. package/lib/feature-descriptor/domains-descriptions-tree/domains-descriptions-tree.js +1 -1
  31. package/lib/feature-descriptor/domains-descriptions-tree/index.js +1 -0
  32. package/lib/feature-descriptor/domains-descriptions-tree/models/domains-descriptions-tree.model.js +3 -6
  33. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +206 -109
  34. package/lib/feature-descriptor/feature-descriptor-editor/FeatureDescriptorEditor.js +32 -21
  35. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +69 -61
  36. package/lib/feature-descriptor/feature-descriptor-editor/JoinEditor.js +50 -0
  37. package/lib/feature-descriptor/feature-descriptor-editor/components/EditorTemplateRenderer.js +14 -0
  38. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationTypeSelection.js +11 -11
  39. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/ColumnEditor.js +15 -0
  40. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +30 -13
  41. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/LastKEditor.js +17 -0
  42. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +19 -16
  43. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TopicEditor.js +16 -0
  44. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +8 -7
  45. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/BooleanField.js +31 -0
  46. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ChipField.js +27 -0
  47. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ColumnField.js +47 -0
  48. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +12 -20
  49. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +12 -20
  50. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableColumnField.js +30 -0
  51. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableField.js +17 -0
  52. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/_InlineEditorField.js +48 -0
  53. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +10 -7
  54. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTypeSelection.js +14 -11
  55. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +3 -5
  56. package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +7 -8
  57. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionEditor.js +96 -0
  58. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionTypeSelection.js +15 -0
  59. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinTableColumnSelector.js +15 -0
  60. package/lib/feature-descriptor/{domains-descriptors-tree/models → feature-descriptor-editor/components/join}/index.js +2 -1
  61. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor-context.js +38 -0
  62. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor.js +46 -0
  63. package/lib/feature-descriptor/{context → feature-descriptor-editor/context}/index.js +2 -1
  64. package/lib/feature-descriptor/feature-descriptor-editor/index.js +5 -5
  65. package/lib/feature-descriptor/feature-descriptor-editor/models/aggregation-draft.js +351 -0
  66. package/lib/feature-descriptor/feature-descriptor-editor/models/common-field-draft.js +13 -0
  67. package/lib/feature-descriptor/feature-descriptor-editor/models/feature-descriptor-editor.js +29 -0
  68. package/lib/feature-descriptor/feature-descriptor-editor/models/filter-draft.js +79 -0
  69. package/lib/feature-descriptor/feature-descriptor-editor/models/index.js +21 -0
  70. package/lib/feature-descriptor/feature-descriptor-editor/models/join-draft.js +78 -0
  71. package/lib/models/column/column.js +59 -0
  72. package/lib/models/column/field.js +2 -4
  73. package/lib/models/column/index.js +3 -0
  74. package/lib/models/column/table-columns.js +27 -0
  75. package/lib/models/column/table.js +2 -4
  76. package/lib/models/feature/feature.js +13 -0
  77. package/lib/models/feature-descriptor/fd_data/aggregation.js +86 -46
  78. package/lib/models/feature-descriptor/fd_data/filter.js +32 -20
  79. package/lib/models/feature-descriptor/fd_data/index.js +5 -7
  80. package/lib/models/feature-descriptor/fd_data/join.js +20 -4
  81. package/lib/models/feature-descriptor/fd_data/utils.js +25 -0
  82. package/lib/models/feature-descriptor/feature-descriptor.js +2 -4
  83. package/lib/models/feature-descriptor/index.js +4 -6
  84. package/lib/{feature-descriptors-domain/feature-descriptor-domain-descriptions/components/index.js → notebook.js} +2 -2
  85. package/lib/utils/asserations.js +1 -1
  86. package/lib/utils/crypto.js +28 -0
  87. package/lib/utils/index.js +2 -0
  88. package/lib/utils/localize.js +1 -1
  89. package/lib/utils/redux/action.js +35 -0
  90. package/lib/utils/redux/index.js +10 -0
  91. package/lib/{feature-descriptor/feature-descriptor-editor/components/field-widgets/widget-interface.js → utils/redux/models.js} +1 -1
  92. package/lib/utils/redux/reducer.js +30 -0
  93. package/lib/{feature-descriptor/feature-descriptor-editor/components/widgets/widget-interface.js → utils/types.js} +1 -1
  94. package/lib/utils/widget-api.js +47 -0
  95. package/lib/utils/widget-model/widget-model-context.js +1 -1
  96. package/lib/widgets/FeatureLeaderboardWidget.js +14 -21
  97. package/lib/widgets/FeatureSpaceWidget.js +3 -19
  98. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +45 -10
  99. package/lib/widgets/feature-leaderboard/components/{leaderboard-feature-likes.js → LeaderboardFeatureLikes.js} +4 -4
  100. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDrawer.js +88 -0
  101. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryFeatureEditor.js +31 -0
  102. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryHeader.js +15 -0
  103. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardUserExplanation.js +28 -0
  104. package/lib/widgets/feature-space/FeatureSpaceView.js +6 -6
  105. package/package.json +8 -10
  106. package/lib/components/input/input.js +0 -14
  107. package/lib/feature-descriptor/context/fd-domains-descriptions-selection.context.js +0 -37
  108. package/lib/feature-descriptor/domains-descriptors-tree/components/column-tree-item.js +0 -16
  109. package/lib/feature-descriptor/domains-descriptors-tree/components/descriptions-tree-item.js +0 -50
  110. package/lib/feature-descriptor/domains-descriptors-tree/components/tree-item-label.js +0 -56
  111. package/lib/feature-descriptor/domains-descriptors-tree/components/type-tree-item.js +0 -19
  112. package/lib/feature-descriptor/domains-descriptors-tree/config/index.js +0 -2
  113. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-config-context.js +0 -43
  114. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-context-provider.js +0 -53
  115. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-item-selection-context.js +0 -56
  116. package/lib/feature-descriptor/domains-descriptors-tree/domains-descriptions-tree.js +0 -44
  117. package/lib/feature-descriptor/domains-descriptors-tree/index.js +0 -21
  118. package/lib/feature-descriptor/domains-descriptors-tree/models/domains-descriptions-tree.model.js +0 -37
  119. package/lib/feature-descriptor/domains-descriptors-tree/utils/create-domain-predicate.js +0 -16
  120. package/lib/feature-descriptor/domains-descriptors-tree/utils/filter-domains-descriptions-tree.js +0 -23
  121. package/lib/feature-descriptor/domains-descriptors-tree/utils/index.js +0 -19
  122. package/lib/feature-descriptor/feature-descriptor-editor/components/ItemSelection.js +0 -14
  123. package/lib/feature-descriptor/feature-descriptor-editor/components/StringAutocomplete.js +0 -13
  124. package/lib/feature-descriptor/feature-descriptor-editor/components/ValueInput.js +0 -2
  125. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationSelection.js +0 -15
  126. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/aggregation-context.js +0 -37
  127. package/lib/feature-descriptor/feature-descriptor-editor/components/explainer.js +0 -15
  128. package/lib/feature-descriptor/feature-descriptor-editor/components/fd-operation-context.js +0 -19
  129. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/FieldLabel.js +0 -17
  130. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ItemSelection.js +0 -20
  131. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringSelectionField.js +0 -24
  132. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ValueInput.js +0 -19
  133. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ItemSelection.js +0 -20
  134. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/Label.js +0 -2
  135. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ValueInput.js +0 -19
  136. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/index.js +0 -19
  137. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +0 -22
  138. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +0 -218
  139. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +0 -44
  140. package/lib/feature-descriptor/feature-details/index.js +0 -20
  141. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +0 -48
  142. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +0 -36
  143. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +0 -12
  144. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +0 -12
  145. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +0 -11
  146. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +0 -10
  147. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +0 -10
  148. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +0 -10
  149. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +0 -10
  150. package/lib/feature-descriptors-domain/context/feature-domain-descriptions-selection.context.js +0 -37
  151. package/lib/feature-descriptors-domain/context/feature-domain-selection.context.js +0 -37
  152. package/lib/feature-descriptors-domain/context/index.js +0 -19
  153. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +0 -21
  154. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +0 -16
  155. package/lib/feature-descriptors-domain/exploration-path/index.js +0 -19
  156. package/lib/feature-descriptors-domain/fd-grouped-domain-tree.js +0 -81
  157. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/column-tree-item.js +0 -17
  158. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/descriptions-tree-item.js +0 -49
  159. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/selection-indicator-with-label.js +0 -40
  160. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/type-tree-item.js +0 -16
  161. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-context.js +0 -43
  162. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-tree.js +0 -57
  163. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/index.js +0 -18
  164. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/column-tree-item.js +0 -17
  165. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/description-tree-item.js +0 -2
  166. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/descriptions-tree-item.js +0 -49
  167. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/index.js +0 -18
  168. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/selection-indicator-with-label.js +0 -19
  169. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-item-label.js +0 -15
  170. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-level-item.js +0 -54
  171. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/type-tree-item.js +0 -16
  172. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.js +0 -55
  173. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.model.js +0 -2
  174. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/index.js +0 -18
  175. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/filter-domain-descriptions.js +0 -21
  176. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/index.js +0 -18
  177. package/lib/feature-descriptors-domain/feature-descriptor-grouped-domain-tree.js +0 -87
  178. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/column-tree-item.js +0 -16
  179. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/descriptions-tree-item.js +0 -50
  180. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/index.js +0 -18
  181. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/selection-indicator-with-label.js +0 -67
  182. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/type-tree-item.js +0 -19
  183. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-context.js +0 -37
  184. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-tree.js +0 -51
  185. package/lib/feature-descriptors-domain/feature-domain-descriptions/index.js +0 -18
  186. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-header.js +0 -38
  187. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-join-list.js +0 -36
  188. package/lib/feature-descriptors-domain/feature-exploration-path/index.js +0 -19
  189. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +0 -58
  190. package/lib/feature-descriptors-domain/selected-feature-domain-context.js +0 -2
  191. package/lib/feature-descriptors-domain/utils/filter-domain-descriptions.js +0 -23
  192. package/lib/feature-descriptors-domain/utils/filter-grouped-domain-descriptions.js +0 -23
  193. package/lib/feature-descriptors-domain/utils/index.js +0 -18
  194. package/lib/models/feature/feature-leaderboard.js +0 -3
  195. package/lib/models/feature-descriptor/feature-descriptors-domain.js +0 -3
  196. package/lib/models/feature-descriptors-domain/fd-domain-description.js +0 -9
  197. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +0 -3
  198. package/lib/models/feature-descriptors-domain/index.js +0 -19
  199. package/lib/models/feature-space/feature-space-description.js +0 -3
  200. package/lib/models/index.js +0 -2
  201. package/lib/utils/model-transform-hook.js +0 -21
  202. package/lib/utils/set.js +0 -14
  203. package/lib/utils/widget/index.js +0 -19
  204. package/lib/utils/widget/widget-model-context.js +0 -38
  205. package/lib/utils/widget/widget-model.js +0 -30
  206. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +0 -18
  207. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +0 -23
  208. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryHeader.js +0 -35
  209. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +0 -22
  210. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntry.js +0 -19
  211. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryRow.js +0 -23
  212. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-metric-slider.js +0 -2
  213. package/lib/widgets/feature-space/FeatureSpaceDomain.js +0 -75
  214. package/lib/widgets/feature-space/FeatureSpaceDomainDescriptions.js +0 -80
  215. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +0 -88
@@ -20,16 +20,16 @@ const Divider = () => (react_1.default.createElement("div", { style: {
20
20
  const FeatureSpaceView = props => {
21
21
  const [featureSpace] = (0, widget_model_1.useModelState)('value');
22
22
  const [configuration] = (0, widget_model_1.useModelState)('configuration');
23
+ const selectedJoinsModel = (0, widget_model_1.useModelState)('_selected_joins');
23
24
  const selectedFiltersModel = (0, widget_model_1.useModelState)('_selected_filters');
24
25
  const selectedAggregationsModel = (0, widget_model_1.useModelState)('_selected_aggregations');
25
- const [selectedJoinIds, setSelectedJoinIds] = react_1.default.useState(() => []);
26
26
  const [filterDescriptionsTree, setFilterDescriptionsTree] = react_1.default.useState(() => ({ types: [] }));
27
27
  const [aggregationDescriptionsTree, setAggregationDescriptionsTree] = react_1.default.useState(() => ({ types: [] }));
28
28
  react_1.default.useEffect(() => {
29
- setFilterDescriptionsTree(domains_descriptions_tree_1.DescriptionsTree.appendGroupId(featureSpace.filters, 'f'));
29
+ setFilterDescriptionsTree(domains_descriptions_tree_1.DescriptionsTree.appendNodeId(featureSpace.filters, 'f'));
30
30
  }, [featureSpace.filters]);
31
31
  react_1.default.useEffect(() => {
32
- setAggregationDescriptionsTree(domains_descriptions_tree_1.DescriptionsTree.appendGroupId(featureSpace.aggregations, 'a'));
32
+ setAggregationDescriptionsTree(domains_descriptions_tree_1.DescriptionsTree.appendNodeId(featureSpace.aggregations, 'a'));
33
33
  }, [featureSpace.aggregations]);
34
34
  const descriptionTreeConfig = react_1.default.useMemo(() => ({
35
35
  isWithCheckboxes: configuration.selectable,
@@ -38,15 +38,15 @@ const FeatureSpaceView = props => {
38
38
  return (react_1.default.createElement(styles_1.ThemeProvider, { theme: widget_theme_1.theme },
39
39
  react_1.default.createElement(domains_descriptions_tree_1.DomainsDescriptionsTreeConfigContextProvider, { configuration: descriptionTreeConfig },
40
40
  react_1.default.createElement(domains_descriptions_tree_1.DomainsDescriptionsTreeItemSelectionContextProvider, null,
41
- react_1.default.createElement(FeatureExplorationPaths_1.FeatureExplorationPaths, { explorationPaths: featureSpace.explorationPaths, selectedJoinIds: selectedJoinIds, setSelectedJoinIds: setSelectedJoinIds }),
41
+ react_1.default.createElement(FeatureExplorationPaths_1.FeatureExplorationPaths, { explorationPaths: featureSpace.explorationPaths, selectedJoinIds: selectedJoinsModel[0], setSelectedJoinIds: selectedJoinsModel[1] }),
42
42
  react_1.default.createElement(Divider, null),
43
43
  react_1.default.createElement(material_1.Grid, { container: true, spacing: 6 },
44
44
  react_1.default.createElement(material_1.Grid, { item: true, xs: 6 },
45
45
  react_1.default.createElement(domains_descriptions_tree_1.DomainsDescriptionsSelectionContextProvider, { selectedDomainDescriptionIds: selectedFiltersModel[0], setSelectedDomainDescriptionIds: selectedFiltersModel[1] },
46
- react_1.default.createElement(FeatureDomainsDescriptions_1.FeatureDomainsDescriptions, { domainName: "Filters", descriptionsTree: filterDescriptionsTree, selectedJoinIds: selectedJoinIds }))),
46
+ react_1.default.createElement(FeatureDomainsDescriptions_1.FeatureDomainsDescriptions, { domainName: "Filters", descriptionsTree: filterDescriptionsTree, selectedJoinIds: selectedJoinsModel[0] }))),
47
47
  react_1.default.createElement(material_1.Grid, { item: true, xs: 6, sx: { overflow: 'hidden' } },
48
48
  react_1.default.createElement(domains_descriptions_tree_1.DomainsDescriptionsSelectionContextProvider, { selectedDomainDescriptionIds: selectedAggregationsModel[0], setSelectedDomainDescriptionIds: selectedAggregationsModel[1] },
49
- react_1.default.createElement(FeatureDomainsDescriptions_1.FeatureDomainsDescriptions, { domainName: "Aggregations", descriptionsTree: aggregationDescriptionsTree, selectedJoinIds: selectedJoinIds }))))))));
49
+ react_1.default.createElement(FeatureDomainsDescriptions_1.FeatureDomainsDescriptions, { domainName: "Aggregations", descriptionsTree: aggregationDescriptionsTree, selectedJoinIds: selectedJoinsModel[0] }))))))));
50
50
  };
51
51
  exports.FeatureSpaceView = FeatureSpaceView;
52
52
  //# sourceMappingURL=FeatureSpaceView.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dotdata_widgets",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "A dotdata widget",
5
5
  "keywords": [
6
6
  "dotdata",
@@ -33,7 +33,7 @@
33
33
  "scripts": {
34
34
  "build": "yarn run build:lib && yarn run build:nbextension && yarn run build:labextension:dev",
35
35
  "build:prod": "yarn run build:lib && yarn run build:nbextension && yarn run build:labextension",
36
- "build:labextension": "jupyter labextension build .",
36
+ "build:labextension": "jupyter labextension build . && touch dotdata_widgets/labextension/static/__init__.py && touch dotdata_widgets/labextension/__init__.py",
37
37
  "build:labextension:dev": "jupyter labextension build --development True .",
38
38
  "build:lib": "tsc && tsc-alias",
39
39
  "build:nbextension": "webpack",
@@ -58,10 +58,13 @@
58
58
  "@mui/lab": "^5.0.0-alpha.120",
59
59
  "@mui/material": "^5.11.9",
60
60
  "@tanstack/react-virtual": "^3.0.0-beta.48",
61
+ "dompurify": "^3.0.1",
61
62
  "lodash": "^4.17.21",
62
63
  "react": "17.0.2",
63
64
  "react-dom": "17.0.2",
64
- "vega": "^5.22.1"
65
+ "ts-pattern": "^4.2.2",
66
+ "vega": "^5.22.1",
67
+ "zod": "^3.21.4"
65
68
  },
66
69
  "devDependencies": {
67
70
  "@babel/core": "^7.20.12",
@@ -69,6 +72,7 @@
69
72
  "@babel/preset-react": "^7.18.6",
70
73
  "@babel/preset-typescript": "^7.18.6",
71
74
  "@jupyterlab/builder": "^3.6.1",
75
+ "@types/dompurify": "^3.0.0",
72
76
  "@types/jest": "^29.4.0",
73
77
  "@types/react": "17.0.53",
74
78
  "@types/react-dom": "17.0.18",
@@ -109,12 +113,6 @@
109
113
  },
110
114
  "jupyterlab": {
111
115
  "extension": "lib/plugin",
112
- "outputDir": "dotdata_widgets/labextension/",
113
- "sharedPackages": {
114
- "@jupyter-widgets/base": {
115
- "bundled": false,
116
- "singleton": true
117
- }
118
- }
116
+ "outputDir": "dotdata_widgets/labextension/"
119
117
  }
120
118
  }
@@ -1,14 +0,0 @@
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.Input = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- function Input(props) {
9
- const { onValueChange, inputSize, ...restProps } = props;
10
- const isSmall = inputSize === 'small';
11
- return (react_1.default.createElement("input", { type: "text", ...restProps, className: `dd-input ${restProps.className ?? ''} ${isSmall ? 'small' : ''}`, onChange: event => onValueChange(event.target.value) }));
12
- }
13
- exports.Input = Input;
14
- //# sourceMappingURL=input.js.map
@@ -1,37 +0,0 @@
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.useFdDomainsDescriptionsSelection = exports.FdDomainsDescriptionsSelectionContext = void 0;
27
- const React = __importStar(require("react"));
28
- exports.FdDomainsDescriptionsSelectionContext = React.createContext(undefined);
29
- function useFdDomainsDescriptionsSelection() {
30
- const context = React.useContext(exports.FdDomainsDescriptionsSelectionContext);
31
- if (context === undefined) {
32
- throw new Error('useFdDomainsDescriptionsSelection must be used within a FdDomainsDescriptionsSelectionContext');
33
- }
34
- return context;
35
- }
36
- exports.useFdDomainsDescriptionsSelection = useFdDomainsDescriptionsSelection;
37
- //# sourceMappingURL=fd-domains-descriptions-selection.context.js.map
@@ -1,16 +0,0 @@
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 tree_item_label_1 = require("./tree-item-label");
11
- const ColumnTreeItem = ({ column }) => {
12
- 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: column.nodeId, label: react_1.default.createElement(tree_item_label_1.TreeItemLabel, { label: column.summary, nodeId: column.nodeId, managedDescriptions: column.descriptions }) },
13
- react_1.default.createElement(descriptions_tree_item_1.DescriptionsTreeItem, { descriptions: column.descriptions })));
14
- };
15
- exports.ColumnTreeItem = ColumnTreeItem;
16
- //# sourceMappingURL=column-tree-item.js.map
@@ -1,50 +0,0 @@
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 tree_item_label_1 = require("./tree-item-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
- right: 0,
32
- left: listLeftIndentation,
33
- height: `${virtualRow.size}px`,
34
- transform: `translateY(${virtualRow.start}px)`,
35
- } },
36
- react_1.default.createElement(tree_item_label_1.TreeItemLabel, { label: descriptions[virtualRow.index].description, nodeId: descriptions[virtualRow.index].nodeId, managedDescriptions: [descriptions[virtualRow.index]] })))))));
37
- };
38
- const DescriptionsList = ({ descriptions }) => {
39
- return (react_1.default.createElement(react_1.default.Fragment, null, descriptions.map(description => (react_1.default.createElement(tree_item_label_1.TreeItemLabel, { key: description.id, label: description.description, nodeId: description.nodeId, managedDescriptions: [description] })))));
40
- };
41
- const DescriptionsTreeItem = ({ descriptions, }) => {
42
- const [isVirtualListVisible, setIsVirtualListVisible] = react_1.default.useState(() => false);
43
- const [limitedDescriptions] = react_1.default.useState(() => descriptions.length < 6 ? descriptions : descriptions.slice(0, 3));
44
- const isWithShowMore = descriptions.length >= 6;
45
- return isVirtualListVisible ? (react_1.default.createElement(DescriptionsVirtualList, { descriptions: descriptions })) : (react_1.default.createElement("div", { style: { marginLeft: listLeftIndentation } },
46
- react_1.default.createElement(DescriptionsList, { descriptions: limitedDescriptions }),
47
- isWithShowMore ? (react_1.default.createElement(material_1.Button, { sx: { textTransform: 'lowercase', display: 'block' }, size: "small", onClick: () => setIsVirtualListVisible(true) }, "more")) : null));
48
- };
49
- exports.DescriptionsTreeItem = DescriptionsTreeItem;
50
- //# sourceMappingURL=descriptions-tree-item.js.map
@@ -1,56 +0,0 @@
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 lodash_1 = require("lodash");
10
- const _utils_1 = require("../../../utils");
11
- const context_1 = require("../../context");
12
- const context_2 = require("../context");
13
- var SelectionIndicator;
14
- (function (SelectionIndicator) {
15
- SelectionIndicator["Checked"] = "checked";
16
- SelectionIndicator["Unchecked"] = "unchecked";
17
- SelectionIndicator["Indeterminate"] = "indeterminate";
18
- })(SelectionIndicator || (SelectionIndicator = {}));
19
- const TreeItemLabel = props => {
20
- const [checked, setChecked] = react_1.default.useState(() => SelectionIndicator.Checked);
21
- const [selectedDomainDescriptionsIds, setSelectedDomainDescriptionsIds] = (0, context_1.useFdDomainsDescriptionsSelection)();
22
- const [selectedTreeItems, { toggleTreeItemSelection }] = (0, context_2.useDomainsDescriptionsTreeItemSelection)();
23
- const handleChange = (isChecked) => {
24
- const ids = isChecked
25
- ? (0, lodash_1.union)([
26
- ...selectedDomainDescriptionsIds,
27
- ...props.managedDescriptions.map((0, _utils_1.extractProperty)('id')),
28
- ])
29
- : (0, lodash_1.without)(selectedDomainDescriptionsIds, ...props.managedDescriptions.map((0, _utils_1.extractProperty)('id')));
30
- setSelectedDomainDescriptionsIds(ids);
31
- };
32
- react_1.default.useEffect(() => {
33
- const managedNotSelectedIds = (0, lodash_1.without)(props.managedDescriptions.map((0, _utils_1.extractProperty)('id')), ...selectedDomainDescriptionsIds).length;
34
- const areAllChecked = managedNotSelectedIds === 0;
35
- const areAllUnselected = managedNotSelectedIds === props.managedDescriptions.length;
36
- setChecked(areAllChecked
37
- ? SelectionIndicator.Checked
38
- : areAllUnselected
39
- ? SelectionIndicator.Unchecked
40
- : SelectionIndicator.Indeterminate);
41
- }, [selectedDomainDescriptionsIds]);
42
- function isSelected() {
43
- return (0, _utils_1.isSet)(selectedTreeItems[props.nodeId]);
44
- }
45
- return (react_1.default.createElement(material_1.FormControlLabel, { className: `text-ellipsis selection-indicator ${isSelected() ? 'selected' : ''}`, sx: { display: 'block' }, control: react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, checked: checked === SelectionIndicator.Checked, indeterminate: checked === SelectionIndicator.Indeterminate, onClick: event => {
46
- event.stopPropagation();
47
- handleChange(event.target
48
- .checked);
49
- } }), label: props.label, onClick: event => {
50
- toggleTreeItemSelection(props.nodeId, props.managedDescriptions.flatMap((0, _utils_1.extractProperty)('domains')));
51
- event.stopPropagation();
52
- event.preventDefault();
53
- } }));
54
- };
55
- exports.TreeItemLabel = TreeItemLabel;
56
- //# sourceMappingURL=tree-item-label.js.map
@@ -1,19 +0,0 @@
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 _utils_1 = require("../../../utils");
10
- const column_tree_item_1 = require("./column-tree-item");
11
- const tree_item_label_1 = require("./tree-item-label");
12
- const TypeTreeItem = ({ type }) => {
13
- return type.columns.length === 1 ? (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { column: type.columns[0] })) : (react_1.default.createElement(TreeItem_1.default, { nodeId: type.nodeId, classes: {
14
- focused: 'tree-item-focused',
15
- selected: 'tree-item-focused',
16
- }, label: react_1.default.createElement(tree_item_label_1.TreeItemLabel, { label: type.summary, nodeId: type.nodeId, managedDescriptions: type.columns.flatMap((0, _utils_1.extractProperty)('descriptions')) }) }, type.columns.map((column, idx) => (react_1.default.createElement(column_tree_item_1.ColumnTreeItem, { key: column.nodeId, column: column })))));
17
- };
18
- exports.TypeTreeItem = TypeTreeItem;
19
- //# sourceMappingURL=type-tree-item.js.map
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=index.js.map
@@ -1,43 +0,0 @@
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.DomainsDescriptionsTreeConfigContextProvider = exports.useDomainsDescriptionsTreeConfig = exports.DomainsDescriptionsTreeConfigContext = void 0;
27
- const React = __importStar(require("react"));
28
- exports.DomainsDescriptionsTreeConfigContext = React.createContext({
29
- isSelectable: true,
30
- });
31
- function useDomainsDescriptionsTreeConfig() {
32
- const context = React.useContext(exports.DomainsDescriptionsTreeConfigContext);
33
- if (context === undefined) {
34
- throw new Error('useDomainsDescriptionsTreeConfig must be used within a DomainsDescriptionsTreeConfigContext');
35
- }
36
- return context;
37
- }
38
- exports.useDomainsDescriptionsTreeConfig = useDomainsDescriptionsTreeConfig;
39
- function DomainsDescriptionsTreeConfigContextProvider(props) {
40
- return (React.createElement(exports.DomainsDescriptionsTreeConfigContext.Provider, { value: props.configuration, ...props }));
41
- }
42
- exports.DomainsDescriptionsTreeConfigContextProvider = DomainsDescriptionsTreeConfigContextProvider;
43
- //# sourceMappingURL=domains-descriptions-tree-config-context.js.map
@@ -1,53 +0,0 @@
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.DomainsDescriptionsTreeItemSelectionContextProvider = void 0;
27
- const React = __importStar(require("react"));
28
- const _utils_1 = require("../../../utils");
29
- const lodash_1 = require("lodash");
30
- const domains_descriptions_tree_item_selection_context_1 = require("./domains-descriptions-tree-item-selection-context");
31
- const domains_descriptions_tree_config_context_1 = require("./domains-descriptions-tree-config-context");
32
- function DomainsDescriptionsTreeItemSelectionContextProvider(
33
- // props: React.PropsWithChildren<Record<'selectedJoinIds', JoinDescriptionId[]>>
34
- props) {
35
- const { configuration, ...restProps } = props;
36
- const [selectedTreeItems, setSelectedTreeItems] = React.useState(() => ({}));
37
- function toggleTreeItemSelection(nodeId, domains) {
38
- if ((0, _utils_1.isSet)(selectedTreeItems[nodeId])) {
39
- const { [nodeId]: _remove, ...rest } = selectedTreeItems;
40
- setSelectedTreeItems(rest);
41
- }
42
- else {
43
- setSelectedTreeItems({
44
- ...selectedTreeItems,
45
- [nodeId]: (0, lodash_1.uniqBy)(domains, JSON.stringify),
46
- });
47
- }
48
- }
49
- return (React.createElement(domains_descriptions_tree_config_context_1.DomainsDescriptionsTreeConfigContext.Provider, { value: configuration },
50
- React.createElement(domains_descriptions_tree_item_selection_context_1.DomainsDescriptionsTreeItemSelectionContext.Provider, { value: [selectedTreeItems, { toggleTreeItemSelection }], ...restProps })));
51
- }
52
- exports.DomainsDescriptionsTreeItemSelectionContextProvider = DomainsDescriptionsTreeItemSelectionContextProvider;
53
- //# sourceMappingURL=domains-descriptions-tree-context-provider.js.map
@@ -1,56 +0,0 @@
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.DomainsDescriptionsTreeItemSelectionContextProvider = exports.useDomainsDescriptionsTreeItemSelection = exports.DomainsDescriptionsTreeItemSelectionContext = void 0;
27
- const lodash_1 = require("lodash");
28
- const React = __importStar(require("react"));
29
- const _utils_1 = require("../../../utils");
30
- exports.DomainsDescriptionsTreeItemSelectionContext = React.createContext(undefined);
31
- function useDomainsDescriptionsTreeItemSelection() {
32
- const context = React.useContext(exports.DomainsDescriptionsTreeItemSelectionContext);
33
- if (context === undefined) {
34
- throw new Error('useDomainsDescriptionsTreeItemSelection must be used within a DomainsDescriptionsTreeItemSelectionContext');
35
- }
36
- return context;
37
- }
38
- exports.useDomainsDescriptionsTreeItemSelection = useDomainsDescriptionsTreeItemSelection;
39
- function DomainsDescriptionsTreeItemSelectionContextProvider(props) {
40
- const [selectedTreeItems, setSelectedTreeItems] = React.useState(() => ({}));
41
- function toggleTreeItemSelection(nodeId, domains) {
42
- if ((0, _utils_1.isSet)(selectedTreeItems[nodeId])) {
43
- const { [nodeId]: _remove, ...rest } = selectedTreeItems;
44
- setSelectedTreeItems(rest);
45
- }
46
- else {
47
- setSelectedTreeItems({
48
- ...selectedTreeItems,
49
- [nodeId]: (0, lodash_1.uniqBy)(domains, JSON.stringify),
50
- });
51
- }
52
- }
53
- return (React.createElement(exports.DomainsDescriptionsTreeItemSelectionContext.Provider, { value: [selectedTreeItems, { toggleTreeItemSelection }], ...props }));
54
- }
55
- exports.DomainsDescriptionsTreeItemSelectionContextProvider = DomainsDescriptionsTreeItemSelectionContextProvider;
56
- //# sourceMappingURL=domains-descriptions-tree-item-selection-context.js.map
@@ -1,44 +0,0 @@
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.DomainsDescriptionsTree = exports.FeatureDomainDescriptionsTreeHeader = void 0;
7
- const lodash_1 = require("lodash");
8
- const react_1 = __importDefault(require("react"));
9
- const TreeView_1 = __importDefault(require("@mui/lab/TreeView"));
10
- const material_1 = require("@mui/material");
11
- const UnfoldLess_1 = __importDefault(require("@mui/icons-material/UnfoldLess"));
12
- const UnfoldMore_1 = __importDefault(require("@mui/icons-material/UnfoldMore"));
13
- const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
14
- const ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight"));
15
- const _utils_1 = require("../../utils");
16
- const components_1 = require("./components");
17
- const ToggleIcon = (props) => props.allNodeIds.length === props.expandedNodes.length ? (react_1.default.createElement(UnfoldLess_1.default, { sx: { marginRight: '-10px' } })) : (react_1.default.createElement(UnfoldMore_1.default, { sx: { marginRight: '-10px' } }));
18
- const FeatureDomainDescriptionsTreeHeader = (props) => react_1.default.createElement(react_1.default.Fragment, null, props.children);
19
- exports.FeatureDomainDescriptionsTreeHeader = FeatureDomainDescriptionsTreeHeader;
20
- const DomainsDescriptionsTree = ({ descriptionsTree, children }) => {
21
- const [allNodeIds, setAllNodeIds] = react_1.default.useState(() => getAllNodeIds(descriptionsTree));
22
- const [expandedNodes, setExpandedNodes] = react_1.default.useState(() => []);
23
- react_1.default.useEffect(() => {
24
- setAllNodeIds(getAllNodeIds(descriptionsTree));
25
- }, [descriptionsTree]);
26
- return (react_1.default.createElement("div", { className: "domains-descriptions-tree" },
27
- react_1.default.createElement("div", { className: "domains-descriptions-tree-header" },
28
- react_1.default.createElement(material_1.Button, { className: "toggle-all-nodes-btn", variant: "outlined", startIcon: react_1.default.createElement(ToggleIcon, { allNodeIds: allNodeIds, expandedNodes: expandedNodes }), onClick: () => setExpandedNodes((0, lodash_1.isEmpty)(expandedNodes) ? allNodeIds : []) }),
29
- react_1.default.Children.toArray(children)
30
- .filter(react_1.default.isValidElement)
31
- .filter(child => child?.type === exports.FeatureDomainDescriptionsTreeHeader)),
32
- react_1.default.createElement("div", null,
33
- 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, expanded: expandedNodes, onNodeToggle: (_, nodeIds) => setExpandedNodes(nodeIds) }, descriptionsTree.types.map(type => (react_1.default.createElement(components_1.TypeTreeItem, { key: type.nodeId, type: type })))))));
34
- };
35
- exports.DomainsDescriptionsTree = DomainsDescriptionsTree;
36
- function getAllNodeIds(tree) {
37
- return tree.types
38
- .map(({ columns, nodeId }, typeIdx) => [
39
- nodeId,
40
- columns.map((0, _utils_1.extractProperty)('nodeId')),
41
- ])
42
- .flat(2);
43
- }
44
- //# sourceMappingURL=domains-descriptions-tree.js.map
@@ -1,21 +0,0 @@
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("./domains-descriptions-tree"), exports);
18
- __exportStar(require("./models"), exports);
19
- __exportStar(require("./context"), exports);
20
- __exportStar(require("./utils"), exports);
21
- //# sourceMappingURL=index.js.map
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DescriptionsTree = void 0;
4
- const _utils_1 = require("../../../utils");
5
- var DescriptionsTree;
6
- (function (DescriptionsTree) {
7
- function appendGroupId(groups, prefix) {
8
- const id = DescriptionsTree.createGroupId(prefix);
9
- return {
10
- types: groups.types.map((type, typeIdx) => {
11
- return {
12
- nodeId: id({ typeIdx }),
13
- summary: type.summary,
14
- columns: type.columns.map((column, columnIdx) => ({
15
- nodeId: id({ typeIdx, columnIdx }),
16
- summary: column.summary,
17
- descriptions: column.descriptions.map((description, descriptionIdx) => ({
18
- ...description,
19
- nodeId: id({ typeIdx, columnIdx, descriptionIdx }),
20
- })),
21
- })),
22
- };
23
- }),
24
- };
25
- }
26
- DescriptionsTree.appendGroupId = appendGroupId;
27
- function createGroupId(prefix) {
28
- return (props) => [
29
- (0, _utils_1.isSet)(prefix) && `${prefix}_`,
30
- (0, _utils_1.isSet)(props.typeIdx) && `t${props.typeIdx}`,
31
- (0, _utils_1.isSet)(props.columnIdx) && `c${props.columnIdx}`,
32
- (0, _utils_1.isSet)(props.descriptionIdx) && `d${props.descriptionIdx}`,
33
- ].join('');
34
- }
35
- DescriptionsTree.createGroupId = createGroupId;
36
- })(DescriptionsTree = exports.DescriptionsTree || (exports.DescriptionsTree = {}));
37
- //# sourceMappingURL=domains-descriptions-tree.model.js.map
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDomainPredicate = void 0;
4
- function createDomainPredicate(selectedDomains, selectedJoinIds) {
5
- const joinIds = new Set(selectedJoinIds);
6
- const domainIds = Object.values(selectedDomains).flatMap(d => d.filter(({ joinId }) => (joinIds.size ? joinIds.has(joinId) : true)));
7
- return (description) => {
8
- return domainIds.length
9
- ? description.domains.some(x => domainIds.find(({ domainIdx, joinId }) => x.joinId === joinId && x.domainIdx === domainIdx))
10
- : joinIds.size
11
- ? description.domains.some(({ joinId }) => joinIds.has(joinId))
12
- : true;
13
- };
14
- }
15
- exports.createDomainPredicate = createDomainPredicate;
16
- //# sourceMappingURL=create-domain-predicate.js.map
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterDomainsDescriptionsTree = void 0;
4
- const isNotEmpty = (arr) => arr.length > 0;
5
- function filterDomainsDescriptionsTree(domains, predicateFn) {
6
- return {
7
- types: domains.types
8
- .map(({ summary, columns, nodeId }) => ({
9
- summary,
10
- nodeId,
11
- columns: columns
12
- .map(column => ({
13
- summary: column.summary,
14
- nodeId: column.nodeId,
15
- descriptions: column.descriptions.filter(predicateFn),
16
- }))
17
- .filter(({ descriptions }) => isNotEmpty(descriptions)),
18
- }))
19
- .filter(({ columns }) => isNotEmpty(columns)),
20
- };
21
- }
22
- exports.filterDomainsDescriptionsTree = filterDomainsDescriptionsTree;
23
- //# sourceMappingURL=filter-domains-descriptions-tree.js.map
@@ -1,19 +0,0 @@
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("./filter-domains-descriptions-tree"), exports);
18
- __exportStar(require("./create-domain-predicate"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1,14 +0,0 @@
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.ItemSelection = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const material_1 = require("@mui/material");
9
- function ItemSelection(props) {
10
- const { onValueChange, ...restProps } = props;
11
- return (react_1.default.createElement(material_1.Autocomplete, { ...restProps, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => value && onValueChange(value), renderInput: params => react_1.default.createElement(material_1.TextField, { ...params, variant: "standard" }) }));
12
- }
13
- exports.ItemSelection = ItemSelection;
14
- //# sourceMappingURL=ItemSelection.js.map