dotdata_widgets 0.1.10 → 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 (203) 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/column-analytic-type-icons/analytic-type-category.js +13 -0
  8. package/lib/components/column-analytic-type-icons/analytic-type-datatime.js +13 -0
  9. package/lib/components/column-analytic-type-icons/analytic-type-geo-latitude.js +13 -0
  10. package/lib/components/column-analytic-type-icons/analytic-type-geo-longitude.js +13 -0
  11. package/lib/components/column-analytic-type-icons/analytic-type-numeric.js +13 -0
  12. package/lib/components/column-analytic-type-icons/index.js +22 -0
  13. package/lib/components/{input → column-source-type-icons}/index.js +1 -1
  14. package/lib/components/column-source-type-icons/source-type-int.js +16 -0
  15. package/lib/feature/feature-details/FeatureCorrelatedFeaturesTable.js +1 -1
  16. package/lib/feature/feature-likes/{feature-likes.js → FeatureLikes.js} +3 -6
  17. package/lib/feature/feature-likes/index.js +1 -1
  18. package/lib/feature/feature-user-explanation/FeatureUserExplanation.js +14 -0
  19. package/lib/feature/feature-user-explanation/FeatureUserExplanationDisplay.js +23 -0
  20. package/lib/feature/feature-user-explanation/explanation-to-user-explanation.js +58 -0
  21. package/lib/{feature-descriptor/domains-descriptors-tree/context → feature/feature-user-explanation}/index.js +3 -2
  22. package/lib/feature-descriptor/domains-descriptions-tree/index.js +1 -0
  23. package/lib/feature-descriptor/domains-descriptions-tree/models/domains-descriptions-tree.model.js +2 -2
  24. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +206 -109
  25. package/lib/feature-descriptor/feature-descriptor-editor/FeatureDescriptorEditor.js +32 -21
  26. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +69 -61
  27. package/lib/feature-descriptor/feature-descriptor-editor/JoinEditor.js +50 -0
  28. package/lib/feature-descriptor/feature-descriptor-editor/components/EditorTemplateRenderer.js +14 -0
  29. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationTypeSelection.js +11 -11
  30. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/ColumnEditor.js +15 -0
  31. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +30 -13
  32. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/LastKEditor.js +17 -0
  33. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +19 -16
  34. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TopicEditor.js +16 -0
  35. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +8 -7
  36. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/BooleanField.js +31 -0
  37. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ChipField.js +27 -0
  38. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ColumnField.js +47 -0
  39. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +12 -20
  40. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +12 -20
  41. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableColumnField.js +30 -0
  42. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableField.js +17 -0
  43. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/_InlineEditorField.js +48 -0
  44. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +10 -7
  45. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTypeSelection.js +14 -11
  46. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +3 -5
  47. package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +7 -8
  48. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionEditor.js +96 -0
  49. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionTypeSelection.js +15 -0
  50. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinTableColumnSelector.js +15 -0
  51. package/lib/feature-descriptor/{domains-descriptors-tree/components → feature-descriptor-editor/components/join}/index.js +2 -1
  52. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor-context.js +38 -0
  53. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor.js +46 -0
  54. package/lib/feature-descriptor/{domains-descriptors-tree/models → feature-descriptor-editor/context}/index.js +2 -1
  55. package/lib/feature-descriptor/feature-descriptor-editor/index.js +5 -5
  56. package/lib/feature-descriptor/feature-descriptor-editor/models/aggregation-draft.js +351 -0
  57. package/lib/feature-descriptor/feature-descriptor-editor/models/common-field-draft.js +13 -0
  58. package/lib/feature-descriptor/feature-descriptor-editor/models/feature-descriptor-editor.js +29 -0
  59. package/lib/feature-descriptor/feature-descriptor-editor/models/filter-draft.js +79 -0
  60. package/lib/feature-descriptor/{context → feature-descriptor-editor/models}/index.js +4 -1
  61. package/lib/feature-descriptor/feature-descriptor-editor/models/join-draft.js +78 -0
  62. package/lib/models/column/column.js +59 -0
  63. package/lib/models/column/field.js +2 -4
  64. package/lib/models/column/index.js +3 -0
  65. package/lib/models/column/table-columns.js +27 -0
  66. package/lib/models/column/table.js +2 -4
  67. package/lib/models/feature/feature.js +13 -0
  68. package/lib/models/feature-descriptor/fd_data/aggregation.js +86 -46
  69. package/lib/models/feature-descriptor/fd_data/filter.js +32 -20
  70. package/lib/models/feature-descriptor/fd_data/index.js +5 -7
  71. package/lib/models/feature-descriptor/fd_data/join.js +20 -4
  72. package/lib/models/feature-descriptor/fd_data/utils.js +25 -0
  73. package/lib/models/feature-descriptor/feature-descriptor.js +2 -4
  74. package/lib/models/feature-descriptor/index.js +4 -6
  75. package/lib/utils/crypto.js +28 -0
  76. package/lib/utils/index.js +2 -0
  77. package/lib/utils/redux/action.js +35 -0
  78. package/lib/utils/redux/index.js +10 -0
  79. package/lib/{feature-descriptor/feature-descriptor-editor/components/field-widgets/widget-interface.js → utils/redux/models.js} +1 -1
  80. package/lib/utils/redux/reducer.js +30 -0
  81. package/lib/{feature-descriptor/feature-descriptor-editor/components/widgets/widget-interface.js → utils/types.js} +1 -1
  82. package/lib/utils/widget-api.js +47 -0
  83. package/lib/widgets/FeatureLeaderboardWidget.js +12 -2
  84. package/lib/widgets/FeatureSpaceWidget.js +1 -0
  85. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +40 -8
  86. package/lib/widgets/feature-leaderboard/components/{leaderboard-feature-likes.js → LeaderboardFeatureLikes.js} +4 -4
  87. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDrawer.js +88 -0
  88. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryFeatureEditor.js +31 -0
  89. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryHeader.js +15 -0
  90. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardUserExplanation.js +28 -0
  91. package/lib/widgets/feature-space/FeatureSpaceView.js +6 -6
  92. package/package.json +8 -10
  93. package/lib/components/input/input.js +0 -14
  94. package/lib/feature-descriptor/context/fd-domains-descriptions-selection.context.js +0 -37
  95. package/lib/feature-descriptor/domains-descriptors-tree/components/column-tree-item.js +0 -16
  96. package/lib/feature-descriptor/domains-descriptors-tree/components/descriptions-tree-item.js +0 -50
  97. package/lib/feature-descriptor/domains-descriptors-tree/components/tree-item-label.js +0 -56
  98. package/lib/feature-descriptor/domains-descriptors-tree/components/type-tree-item.js +0 -19
  99. package/lib/feature-descriptor/domains-descriptors-tree/config/index.js +0 -2
  100. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-config-context.js +0 -43
  101. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-context-provider.js +0 -53
  102. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-item-selection-context.js +0 -56
  103. package/lib/feature-descriptor/domains-descriptors-tree/domains-descriptions-tree.js +0 -44
  104. package/lib/feature-descriptor/domains-descriptors-tree/index.js +0 -21
  105. package/lib/feature-descriptor/domains-descriptors-tree/models/domains-descriptions-tree.model.js +0 -37
  106. package/lib/feature-descriptor/domains-descriptors-tree/utils/create-domain-predicate.js +0 -16
  107. package/lib/feature-descriptor/domains-descriptors-tree/utils/filter-domains-descriptions-tree.js +0 -23
  108. package/lib/feature-descriptor/domains-descriptors-tree/utils/index.js +0 -19
  109. package/lib/feature-descriptor/feature-descriptor-editor/components/ItemSelection.js +0 -14
  110. package/lib/feature-descriptor/feature-descriptor-editor/components/StringAutocomplete.js +0 -13
  111. package/lib/feature-descriptor/feature-descriptor-editor/components/ValueInput.js +0 -2
  112. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationSelection.js +0 -15
  113. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/aggregation-context.js +0 -37
  114. package/lib/feature-descriptor/feature-descriptor-editor/components/explainer.js +0 -15
  115. package/lib/feature-descriptor/feature-descriptor-editor/components/fd-operation-context.js +0 -19
  116. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/FieldLabel.js +0 -17
  117. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ItemSelection.js +0 -20
  118. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringSelectionField.js +0 -24
  119. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ValueInput.js +0 -19
  120. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ItemSelection.js +0 -20
  121. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/Label.js +0 -2
  122. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ValueInput.js +0 -19
  123. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/index.js +0 -19
  124. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +0 -22
  125. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +0 -218
  126. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +0 -44
  127. package/lib/feature-descriptor/feature-details/index.js +0 -20
  128. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +0 -48
  129. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +0 -36
  130. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +0 -12
  131. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +0 -12
  132. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +0 -11
  133. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +0 -10
  134. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +0 -10
  135. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +0 -10
  136. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +0 -10
  137. package/lib/feature-descriptors-domain/context/feature-domain-descriptions-selection.context.js +0 -37
  138. package/lib/feature-descriptors-domain/context/feature-domain-selection.context.js +0 -37
  139. package/lib/feature-descriptors-domain/context/index.js +0 -19
  140. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +0 -21
  141. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +0 -16
  142. package/lib/feature-descriptors-domain/exploration-path/index.js +0 -19
  143. package/lib/feature-descriptors-domain/fd-grouped-domain-tree.js +0 -81
  144. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/column-tree-item.js +0 -17
  145. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/descriptions-tree-item.js +0 -49
  146. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/index.js +0 -18
  147. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/selection-indicator-with-label.js +0 -40
  148. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/type-tree-item.js +0 -16
  149. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-context.js +0 -43
  150. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-tree.js +0 -57
  151. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/index.js +0 -18
  152. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/column-tree-item.js +0 -17
  153. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/description-tree-item.js +0 -2
  154. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/descriptions-tree-item.js +0 -49
  155. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/index.js +0 -18
  156. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/selection-indicator-with-label.js +0 -19
  157. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-item-label.js +0 -15
  158. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-level-item.js +0 -54
  159. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/type-tree-item.js +0 -16
  160. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.js +0 -55
  161. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.model.js +0 -2
  162. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/index.js +0 -18
  163. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/filter-domain-descriptions.js +0 -21
  164. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/index.js +0 -18
  165. package/lib/feature-descriptors-domain/feature-descriptor-grouped-domain-tree.js +0 -87
  166. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/column-tree-item.js +0 -16
  167. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/descriptions-tree-item.js +0 -50
  168. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/index.js +0 -18
  169. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/selection-indicator-with-label.js +0 -67
  170. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/type-tree-item.js +0 -19
  171. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-context.js +0 -37
  172. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-tree.js +0 -51
  173. package/lib/feature-descriptors-domain/feature-domain-descriptions/index.js +0 -18
  174. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-header.js +0 -38
  175. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-join-list.js +0 -36
  176. package/lib/feature-descriptors-domain/feature-exploration-path/index.js +0 -19
  177. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +0 -58
  178. package/lib/feature-descriptors-domain/selected-feature-domain-context.js +0 -2
  179. package/lib/feature-descriptors-domain/utils/filter-domain-descriptions.js +0 -23
  180. package/lib/feature-descriptors-domain/utils/filter-grouped-domain-descriptions.js +0 -23
  181. package/lib/feature-descriptors-domain/utils/index.js +0 -18
  182. package/lib/models/feature/feature-leaderboard.js +0 -3
  183. package/lib/models/feature-descriptor/feature-descriptors-domain.js +0 -3
  184. package/lib/models/feature-descriptors-domain/fd-domain-description.js +0 -9
  185. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +0 -3
  186. package/lib/models/feature-descriptors-domain/index.js +0 -19
  187. package/lib/models/feature-space/feature-space-description.js +0 -3
  188. package/lib/models/index.js +0 -2
  189. package/lib/utils/model-transform-hook.js +0 -21
  190. package/lib/utils/set.js +0 -14
  191. package/lib/utils/widget/index.js +0 -19
  192. package/lib/utils/widget/widget-model-context.js +0 -38
  193. package/lib/utils/widget/widget-model.js +0 -30
  194. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +0 -18
  195. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +0 -23
  196. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryHeader.js +0 -35
  197. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +0 -22
  198. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntry.js +0 -19
  199. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryRow.js +0 -23
  200. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-metric-slider.js +0 -2
  201. package/lib/widgets/feature-space/FeatureSpaceDomain.js +0 -75
  202. package/lib/widgets/feature-space/FeatureSpaceDomainDescriptions.js +0 -80
  203. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +0 -88
@@ -1,113 +1,210 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- define(["require", "exports", "react", "@models/feature-descriptor", "./components"], function (require, exports, react_1, feature_descriptor_1, components_1) {
5
- "use strict";
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.AggregationEditor = void 0;
8
- react_1 = __importDefault(react_1);
9
- const AggregationEditorTemplate = {
10
- [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeCountRecords]: components_1.TemporalChangeCountEditor,
11
- [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMax]: components_1.TemporalChangeEditor,
12
- [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMean]: components_1.TemporalChangeEditor,
13
- [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMin]: components_1.TemporalChangeEditor,
14
- [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeSum]: components_1.TemporalChangeEditor,
15
- [feature_descriptor_1.Aggregation.Type.TemporalChangeCountRecords]: components_1.TemporalChangeCountEditor,
16
- [feature_descriptor_1.Aggregation.Type.TemporalChangeMax]: components_1.TemporalChangeEditor,
17
- [feature_descriptor_1.Aggregation.Type.TemporalChangeMean]: components_1.TemporalChangeEditor,
18
- [feature_descriptor_1.Aggregation.Type.TemporalChangeMin]: components_1.TemporalChangeEditor,
19
- [feature_descriptor_1.Aggregation.Type.TemporalChangeSum]: components_1.TemporalChangeEditor,
20
- [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioCountRecords]: components_1.TemporalChangeCountEditor,
21
- [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMax]: components_1.TemporalChangeEditor,
22
- [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMean]: components_1.TemporalChangeEditor,
23
- [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMin]: components_1.TemporalChangeEditor,
24
- [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioSum]: components_1.TemporalChangeEditor,
25
- [feature_descriptor_1.Aggregation.Type.AsIs]: (props) => [
26
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
27
- ],
28
- [feature_descriptor_1.Aggregation.Type.C3]: (props) => [
29
- react_1.default.createElement(components_1.StringSelectionField, { field: "source_time_field", options: props.fields }),
30
- react_1.default.createElement(components_1.StringSelectionField, { field: "source_field", options: props.fields }),
31
- react_1.default.createElement(components_1.NumberField, { field: "lag" }),
32
- ],
33
- [feature_descriptor_1.Aggregation.Type.CWT]: (props) => [
34
- react_1.default.createElement(components_1.StringSelectionField, { field: "source_time_field", options: props.fields }),
35
- react_1.default.createElement(components_1.StringSelectionField, { field: "source_field", options: props.fields }),
36
- react_1.default.createElement(components_1.NumberField, { field: "index" }),
37
- react_1.default.createElement(components_1.NumberField, { field: "width" }),
38
- ],
39
- [feature_descriptor_1.Aggregation.Type.ClosestTimeDifference]: (props) => [
40
- react_1.default.createElement(components_1.StringSelectionField, { field: "source_field", options: props.fields }),
41
- react_1.default.createElement(components_1.StringSelectionField, { field: "target_field", options: props.fields }),
42
- react_1.default.createElement(components_1.StringField, { field: "shift" }),
43
- ],
44
- [feature_descriptor_1.Aggregation.Type.Count]: (props) => [
45
- react_1.default.createElement(components_1.StringSelectionField, { field: "field", options: props.fields }),
46
- ],
47
- [feature_descriptor_1.Aggregation.Type.CountRecords]: (props) => [
48
- react_1.default.createElement(components_1.StringSelectionField, { field: "table", options: props.tables }),
49
- ],
50
- [feature_descriptor_1.Aggregation.Type.CountUnique]: (props) => [
51
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
52
- ],
53
- [feature_descriptor_1.Aggregation.Type.DayOfWeek]: (props) => [
54
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
55
- ],
56
- [feature_descriptor_1.Aggregation.Type.Distance]: components_1.DistanceEditor,
57
- [feature_descriptor_1.Aggregation.Type.StdDistance]: components_1.DistanceEditor,
58
- [feature_descriptor_1.Aggregation.Type.SumDistance]: components_1.DistanceEditor,
59
- [feature_descriptor_1.Aggregation.Type.Exist]: (props) => [
60
- react_1.default.createElement(components_1.StringSelectionField, { field: "table", options: props.tables }),
61
- ],
62
- [feature_descriptor_1.Aggregation.Type.NullRatio]: (props) => [
63
- react_1.default.createElement(components_1.StringSelectionField, { field: "field", options: props.fields }),
64
- ],
65
- [feature_descriptor_1.Aggregation.Type.RatioOfValue]: (props) => [
66
- react_1.default.createElement(components_1.StringSelectionField, { field: "field", options: props.fields }),
67
- react_1.default.createElement(components_1.NumberField, { field: "ratio_value" }),
68
- // TODO null_inclusion boolean
69
- ],
70
- [feature_descriptor_1.Aggregation.Type.Std]: (props) => [
71
- react_1.default.createElement(components_1.StringSelectionField, { field: "field", options: props.fields }),
72
- ],
73
- [feature_descriptor_1.Aggregation.Type.SourceTimeDifference]: (props) => [
74
- react_1.default.createElement(components_1.StringSelectionField, { field: "column1", options: props.columns }),
75
- react_1.default.createElement(components_1.StringSelectionField, { field: "column2", options: props.columns }),
76
- react_1.default.createElement(components_1.StringField, { field: "unit" }),
77
- ],
78
- [feature_descriptor_1.Aggregation.Type.StdSourceTimeDifference]: (props) => [
79
- react_1.default.createElement(components_1.StringSelectionField, { field: "column1", options: props.columns }),
80
- react_1.default.createElement(components_1.StringSelectionField, { field: "column2", options: props.columns }),
81
- react_1.default.createElement(components_1.StringField, { field: "unit" }),
82
- ],
83
- [feature_descriptor_1.Aggregation.Type.Sum]: (props) => [
84
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
85
- ],
86
- [feature_descriptor_1.Aggregation.Type.TargetMeanEncode]: (props) => [
87
- react_1.default.createElement(components_1.StringSelectionField, { field: "field", options: props.fields }),
88
- react_1.default.createElement(components_1.NumberField, { field: "encoder_id" }),
89
- ],
90
- };
91
- const AggregationEditor = ({ aggregation }) => {
92
- var _a, _b;
93
- const [tmpAggregation, setTmpAggregation] = react_1.default.useState(() => aggregation);
94
- console.log('sss', AggregationEditorTemplate[tmpAggregation.type]);
95
- const template = (_b = (_a = AggregationEditorTemplate[tmpAggregation.type]) === null || _a === void 0 ? void 0 : _a.call(AggregationEditorTemplate, {
96
- columns: ['aaaa', 'ddddd', ' d3d3d', 'table-name'],
97
- fields: ['aaaa', 'ddddd', ' d3d3d', 'table-name'],
98
- tables: ['aaaa', 'ddddd', ' d3d3d', 'table-name'],
99
- })) !== null && _b !== void 0 ? _b : [];
100
- console.log(tmpAggregation);
101
- return (react_1.default.createElement(components_1.FdEditorOperationContext.Provider, { value: [tmpAggregation, x => setTmpAggregation(x)] },
102
- react_1.default.createElement("div", { style: {
103
- display: 'inline-flex',
104
- alignItems: 'center',
105
- flexWrap: 'wrap',
106
- gap: '5px 16px',
107
- } },
108
- react_1.default.createElement(components_1.AggregationTypeSelector, { selectedType: tmpAggregation.type, onTypeChange: type => setTmpAggregation({ type }) }),
109
- template.map((fieldWidget) => fieldWidget))));
110
- };
111
- exports.AggregationEditor = AggregationEditor;
112
- });
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AggregationEditor = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_descriptor_1 = require("../../models/feature-descriptor");
9
+ const components_1 = require("./components");
10
+ const context_1 = require("./context");
11
+ const AggregationEditorTemplate = {
12
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeCountRecords]: components_1.TemporalChangeCountEditor,
13
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMax]: components_1.TemporalChangeEditor,
14
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMean]: components_1.TemporalChangeEditor,
15
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMin]: components_1.TemporalChangeEditor,
16
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeSum]: components_1.TemporalChangeEditor,
17
+ [feature_descriptor_1.Aggregation.Type.AnyBetween]: props => [
18
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
19
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.lower_edge" }),
20
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.upper_edge" }),
21
+ ],
22
+ [feature_descriptor_1.Aggregation.Type.AnyValue]: props => [
23
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
24
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.value" }),
25
+ ],
26
+ [feature_descriptor_1.Aggregation.Type.AsIs]: props => [
27
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column", tableColumns: props.tableColumns }),
28
+ ],
29
+ [feature_descriptor_1.Aggregation.Type.C3]: props => [
30
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_time_field", tableColumns: props.tableColumns }),
31
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_field", tableColumns: props.tableColumns }),
32
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.lag" }),
33
+ ],
34
+ [feature_descriptor_1.Aggregation.Type.CWT]: props => [
35
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_time_field", tableColumns: props.tableColumns }),
36
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_field", tableColumns: props.tableColumns }),
37
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.index" }),
38
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.width" }),
39
+ ],
40
+ [feature_descriptor_1.Aggregation.Type.ClosestTimeDifference]: props => [
41
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_field", tableColumns: props.tableColumns }),
42
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.target_field", tableColumns: props.tableColumns }),
43
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.shift" }),
44
+ ],
45
+ [feature_descriptor_1.Aggregation.Type.Count]: props => [
46
+ react_1.default.createElement(components_1.TableInlineField, { field: "aggregation.field", tables: Object.keys(props.tableColumns) }),
47
+ ],
48
+ [feature_descriptor_1.Aggregation.Type.CountBetween]: props => [
49
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
50
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.lower_edge" }),
51
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.upper_edge" }),
52
+ ],
53
+ [feature_descriptor_1.Aggregation.Type.CountOfValue]: props => [
54
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
55
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.value" }),
56
+ ],
57
+ [feature_descriptor_1.Aggregation.Type.CountRecords]: props => [
58
+ react_1.default.createElement(components_1.TableInlineField, { field: "aggregation.table", tables: Object.keys(props.tableColumns) }),
59
+ ],
60
+ [feature_descriptor_1.Aggregation.Type.CountUnique]: (0, components_1.ColumnEditor)(),
61
+ [feature_descriptor_1.Aggregation.Type.DayOfWeek]: props => {
62
+ return [
63
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column", tableColumns: props.tableColumns }),
64
+ ];
65
+ },
66
+ [feature_descriptor_1.Aggregation.Type.Distance]: components_1.DistanceEditor,
67
+ [feature_descriptor_1.Aggregation.Type.Exist]: props => [
68
+ react_1.default.createElement(components_1.TableInlineField, { field: "aggregation.table", tables: Object.keys(props.tableColumns) }),
69
+ ],
70
+ [feature_descriptor_1.Aggregation.Type.GridTargetMeanEncode]: props => [
71
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.latitude_field", tableColumns: props.tableColumns }),
72
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.longitude_field", tableColumns: props.tableColumns }),
73
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.encoder_id" }),
74
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.distance" }),
75
+ ],
76
+ [feature_descriptor_1.Aggregation.Type.HistogramEqualityRatio]: props => [
77
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
78
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.value" }),
79
+ ],
80
+ [feature_descriptor_1.Aggregation.Type.Hour]: (0, components_1.ColumnEditor)(),
81
+ [feature_descriptor_1.Aggregation.Type.LatestKMax]: components_1.LastKEditor,
82
+ [feature_descriptor_1.Aggregation.Type.LatestKMaxMinusMin]: components_1.LastKEditor,
83
+ [feature_descriptor_1.Aggregation.Type.LatestKMean]: components_1.LastKEditor,
84
+ [feature_descriptor_1.Aggregation.Type.LatestKMin]: components_1.LastKEditor,
85
+ [feature_descriptor_1.Aggregation.Type.LatestKStd]: components_1.LastKEditor,
86
+ [feature_descriptor_1.Aggregation.Type.LatestKSum]: components_1.LastKEditor,
87
+ [feature_descriptor_1.Aggregation.Type.LatestTimeDifference]: props => [
88
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.target_field", tableColumns: props.tableColumns }),
89
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_field", tableColumns: props.tableColumns }),
90
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.shift" }),
91
+ ],
92
+ [feature_descriptor_1.Aggregation.Type.Max]: (0, components_1.ColumnEditor)(),
93
+ [feature_descriptor_1.Aggregation.Type.MaxDistance]: components_1.DistanceEditor,
94
+ [feature_descriptor_1.Aggregation.Type.MaxInterval]: (0, components_1.ColumnEditor)(),
95
+ [feature_descriptor_1.Aggregation.Type.Mean]: (0, components_1.ColumnEditor)('field'),
96
+ [feature_descriptor_1.Aggregation.Type.MeanDistance]: components_1.DistanceEditor,
97
+ [feature_descriptor_1.Aggregation.Type.MeanInterval]: (0, components_1.ColumnEditor)(),
98
+ [feature_descriptor_1.Aggregation.Type.MeanTimeDifference]: props => {
99
+ return [
100
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column1", tableColumns: props.tableColumns }),
101
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column2", tableColumns: props.tableColumns }),
102
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.unit" }),
103
+ ];
104
+ },
105
+ [feature_descriptor_1.Aggregation.Type.Min]: (0, components_1.ColumnEditor)(),
106
+ [feature_descriptor_1.Aggregation.Type.MinDistance]: components_1.DistanceEditor,
107
+ [feature_descriptor_1.Aggregation.Type.MinInterval]: (0, components_1.ColumnEditor)(),
108
+ [feature_descriptor_1.Aggregation.Type.Month]: (0, components_1.ColumnEditor)(),
109
+ [feature_descriptor_1.Aggregation.Type.N1RedundantMean]: (0, components_1.ColumnEditor)('field'),
110
+ [feature_descriptor_1.Aggregation.Type.N1RedundantNullRatio]: (0, components_1.ColumnEditor)('field'),
111
+ [feature_descriptor_1.Aggregation.Type.N1RedundantRatioOfValue]: props => [
112
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
113
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.ratio_value" }),
114
+ react_1.default.createElement(components_1.BooleanInlineField, { field: "aggregation.null_inclusion" }),
115
+ ],
116
+ [feature_descriptor_1.Aggregation.Type.N1RedundantSum]: (0, components_1.ColumnEditor)('field'),
117
+ [feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightMean]: props => [
118
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.text_topic_field", tableColumns: props.tableColumns }),
119
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.original_text_column_name", tableColumns: props.tableColumns }),
120
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.ratio_value" }),
121
+ ],
122
+ [feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightSum]: props => [
123
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.text_topic_field", tableColumns: props.tableColumns }),
124
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.original_text_column_name", tableColumns: props.tableColumns }),
125
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.ratio_value" }),
126
+ ],
127
+ [feature_descriptor_1.Aggregation.Type.NgramCount]: props => [
128
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
129
+ react_1.default.createElement(components_1.ChipInlineField, { field: "aggregation.ngram" }),
130
+ ],
131
+ [feature_descriptor_1.Aggregation.Type.NonBusinessDays]: (0, components_1.ColumnEditor)(),
132
+ [feature_descriptor_1.Aggregation.Type.NullRatio]: props => [
133
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
134
+ ],
135
+ [feature_descriptor_1.Aggregation.Type.RatioBetween]: props => [
136
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
137
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.lower_edge" }),
138
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.upper_edge" }),
139
+ ],
140
+ [feature_descriptor_1.Aggregation.Type.RatioOfValue]: props => [
141
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
142
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.ratio_value" }),
143
+ react_1.default.createElement(components_1.BooleanInlineField, { field: "aggregation.null_inclusion" }),
144
+ ],
145
+ [feature_descriptor_1.Aggregation.Type.Std]: (0, components_1.ColumnEditor)('field'),
146
+ [feature_descriptor_1.Aggregation.Type.StdDistance]: components_1.DistanceEditor,
147
+ [feature_descriptor_1.Aggregation.Type.StdInterval]: (0, components_1.ColumnEditor)(),
148
+ [feature_descriptor_1.Aggregation.Type.SumDistance]: components_1.DistanceEditor,
149
+ [feature_descriptor_1.Aggregation.Type.StdTimeDifference]: props => [
150
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column1", tableColumns: props.tableColumns }),
151
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column2", tableColumns: props.tableColumns }),
152
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.unit" }),
153
+ ],
154
+ [feature_descriptor_1.Aggregation.Type.Sum]: (0, components_1.ColumnEditor)(),
155
+ [feature_descriptor_1.Aggregation.Type.SumDistance]: components_1.DistanceEditor,
156
+ [feature_descriptor_1.Aggregation.Type.TargetMeanEncode]: props => [
157
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.field", tableColumns: props.tableColumns }),
158
+ react_1.default.createElement(components_1.NumberInlineField, { field: "aggregation.encoder_id" }),
159
+ ],
160
+ [feature_descriptor_1.Aggregation.Type.TargetTimeDifference]: props => [
161
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.source_field", tableColumns: props.tableColumns }),
162
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.target_field", tableColumns: props.tableColumns }),
163
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.shift" }),
164
+ ],
165
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeCountRecords]: components_1.TemporalChangeCountEditor,
166
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMax]: components_1.TemporalChangeEditor,
167
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMean]: components_1.TemporalChangeEditor,
168
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMin]: components_1.TemporalChangeEditor,
169
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeSum]: components_1.TemporalChangeEditor,
170
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioCountRecords]: components_1.TemporalChangeCountEditor,
171
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMax]: components_1.TemporalChangeEditor,
172
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMean]: components_1.TemporalChangeEditor,
173
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMin]: components_1.TemporalChangeEditor,
174
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioSum]: components_1.TemporalChangeEditor,
175
+ [feature_descriptor_1.Aggregation.Type.TimeDifference]: props => [
176
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column1", tableColumns: props.tableColumns }),
177
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "aggregation.column2", tableColumns: props.tableColumns }),
178
+ react_1.default.createElement(components_1.StringInlineField, { field: "aggregation.unit" }),
179
+ ],
180
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMax]: components_1.TopicEditor,
181
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMean]: components_1.TopicEditor,
182
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMin]: components_1.TopicEditor,
183
+ [feature_descriptor_1.Aggregation.Type.TopicWeightSum]: components_1.TopicEditor,
184
+ [feature_descriptor_1.Aggregation.Type.TopicWeightValue]: components_1.TopicEditor,
185
+ };
186
+ const AggregationEditor = ({ tableColumns }) => {
187
+ var _a;
188
+ const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
189
+ const aggregationDraft = state.aggregation;
190
+ const [isSummaryVisible, setIsSummaryVisible] = react_1.default.useState(true);
191
+ const templates = aggregationDraft.type
192
+ ? (_a = AggregationEditorTemplate[aggregationDraft.type]) === null || _a === void 0 ? void 0 : _a.call(AggregationEditorTemplate, {
193
+ tableColumns,
194
+ })
195
+ : [];
196
+ return (react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center' } },
197
+ react_1.default.createElement("div", { style: { display: 'inline-flex', height: '26px', alignItems: 'center' } }, isSummaryVisible ? (react_1.default.createElement("span", { className: "inline-displayed-value", onClick: () => setIsSummaryVisible(false) }, aggregationDraft.type)) : (react_1.default.createElement("span", { style: { width: '300px', marginTop: '6px' } },
198
+ react_1.default.createElement(components_1.AggregationTypeSelector, { onBlur: () => {
199
+ setIsSummaryVisible(true);
200
+ }, selectedType: state.aggregation.type, onTypeChange: aggregationType => {
201
+ dispatch(context_1.FeatureDescriptorEditorActions.Aggregation.setType({
202
+ aggregationType,
203
+ }));
204
+ } })))),
205
+ "(",
206
+ react_1.default.createElement(components_1.EditorTemplateRenderer, { templates: templates }),
207
+ ")"));
208
+ };
209
+ exports.AggregationEditor = AggregationEditor;
113
210
  //# sourceMappingURL=AggregationEditor.js.map
@@ -1,25 +1,36 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- define(["require", "exports", "react", "@models/feature-descriptor", "./AggregationEditor", "./FilterEditor"], function (require, exports, react_1, feature_descriptor_1, AggregationEditor_1, FilterEditor_1) {
5
- "use strict";
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.FeatureDescriptorEditor = void 0;
8
- react_1 = __importDefault(react_1);
9
- const FeatureDescriptorEditor = () => {
10
- const aggregation = {
11
- type: feature_descriptor_1.Aggregation.Type.CountRecords,
12
- table: 'table-name',
13
- };
14
- const filter = {
15
- type: feature_descriptor_1.Filter.Type.FullPass,
16
- };
17
- return (react_1.default.createElement(react_1.default.Fragment, null,
18
- react_1.default.createElement("p", null, "Aggregation:"),
19
- react_1.default.createElement(AggregationEditor_1.AggregationEditor, { aggregation: aggregation }),
20
- react_1.default.createElement("p", null, "Filter:"),
21
- react_1.default.createElement(FilterEditor_1.FilterEditor, { filter: filter })));
22
- };
23
- exports.FeatureDescriptorEditor = FeatureDescriptorEditor;
24
- });
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FeatureDescriptorEditor = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const AggregationEditor_1 = require("./AggregationEditor");
9
+ const FilterEditor_1 = require("./FilterEditor");
10
+ const JoinEditor_1 = require("./JoinEditor");
11
+ const FeatureOperationEditorWrapper = (props) => {
12
+ return (react_1.default.createElement("div", { style: { display: 'flex' } },
13
+ react_1.default.createElement("span", { style: {
14
+ width: '110px',
15
+ marginRight: '5px',
16
+ lineHeight: '26px',
17
+ display: 'flex',
18
+ justifyContent: 'space-between',
19
+ } },
20
+ react_1.default.createElement("span", { style: { marginLeft: '20px' } }, props.label),
21
+ react_1.default.createElement("span", { className: "equal-sign" }, "=")),
22
+ props.children));
23
+ };
24
+ const FeatureDescriptorEditor = (props) => {
25
+ return (react_1.default.createElement("div", { className: "feature-descriptor-editor" },
26
+ "FeatureDescriptor(",
27
+ react_1.default.createElement(FeatureOperationEditorWrapper, { label: "join" },
28
+ react_1.default.createElement(JoinEditor_1.JoinEditor, { tableColumns: props.tableColumns })),
29
+ react_1.default.createElement(FeatureOperationEditorWrapper, { label: "filter" },
30
+ react_1.default.createElement(FilterEditor_1.FilterEditor, { tableColumns: props.tableColumns })),
31
+ react_1.default.createElement(FeatureOperationEditorWrapper, { label: "aggregation" },
32
+ react_1.default.createElement(AggregationEditor_1.AggregationEditor, { tableColumns: props.tableColumns })),
33
+ ")"));
34
+ };
35
+ exports.FeatureDescriptorEditor = FeatureDescriptorEditor;
25
36
  //# sourceMappingURL=FeatureDescriptorEditor.js.map
@@ -1,65 +1,73 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- define(["require", "exports", "react", "@models/feature-descriptor", "./components"], function (require, exports, react_1, feature_descriptor_1, components_1) {
5
- "use strict";
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.FilterEditor = void 0;
8
- react_1 = __importDefault(react_1);
9
- const FilterEditorTemplate = {
10
- [feature_descriptor_1.Filter.Type.AboveValue]: (props) => [
11
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
12
- react_1.default.createElement(components_1.NumberField, { field: "min_inclusive" }),
13
- ],
14
- [feature_descriptor_1.Filter.Type.BelowValue]: (props) => [
15
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
16
- react_1.default.createElement(components_1.NumberField, { field: "max_exclusive" }),
17
- ],
18
- [feature_descriptor_1.Filter.Type.FullPass]: () => [],
19
- [feature_descriptor_1.Filter.Type.NgramFilter]: (props) => [
20
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
21
- // TODO string[]
22
- // <StringField field="ngram" />,
23
- ],
24
- [feature_descriptor_1.Filter.Type.RangeOfValues]: (props) => [
25
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
26
- react_1.default.createElement(components_1.NumberField, { field: "max_exclusive" }),
27
- react_1.default.createElement(components_1.NumberField, { field: "min_inclusive" }),
28
- ],
29
- [feature_descriptor_1.Filter.Type.HourOfDay]: (props) => [
30
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
31
- react_1.default.createElement(components_1.NumberField, { field: "min_hour_inclusive" }),
32
- react_1.default.createElement(components_1.NumberField, { field: "max_hour_exclusive" }),
33
- ],
34
- [feature_descriptor_1.Filter.Type.Value]: (props) => [
35
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
36
- react_1.default.createElement(components_1.StringField, { field: "value" }),
37
- ],
38
- [feature_descriptor_1.Filter.Type.Weekday]: (props) => [
39
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
40
- ],
41
- [feature_descriptor_1.Filter.Type.Weekend]: (props) => [
42
- react_1.default.createElement(components_1.StringSelectionField, { field: "column", options: props.columns }),
43
- ],
44
- };
45
- /* prettier-ignore-end */
46
- const FilterEditor = ({ filter }) => {
47
- var _a, _b;
48
- const [tmpFilter, setTmpFilter] = react_1.default.useState(() => filter);
49
- const template = (_b = (_a = FilterEditorTemplate[tmpFilter.type]) === null || _a === void 0 ? void 0 : _a.call(FilterEditorTemplate, {
50
- columns: ['aaaa', 'ddddd', ' d3d3d', 'table-name'],
51
- })) !== null && _b !== void 0 ? _b : [];
52
- console.log(tmpFilter);
53
- return (react_1.default.createElement(components_1.FdEditorOperationContext.Provider, { value: [tmpFilter, x => setTmpFilter(x)] },
54
- react_1.default.createElement("div", { style: {
55
- display: 'inline-flex',
56
- alignItems: 'center',
57
- flexWrap: 'wrap',
58
- gap: '5px 16px',
59
- } },
60
- react_1.default.createElement(components_1.FilterTypeSelector, { selectedType: tmpFilter.type, onTypeChange: type => setTmpFilter({ type }) }),
61
- template.map((fieldWidget) => fieldWidget))));
62
- };
63
- exports.FilterEditor = FilterEditor;
64
- });
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FilterEditor = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_descriptor_1 = require("../../models/feature-descriptor");
9
+ const context_1 = require("./context");
10
+ const components_1 = require("./components");
11
+ const FilterEditorTemplate = {
12
+ [feature_descriptor_1.Filter.Type.Above]: props => [
13
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
14
+ react_1.default.createElement(components_1.NumberInlineField, { key: Math.random(), field: "filter.min_inclusive" }),
15
+ ],
16
+ [feature_descriptor_1.Filter.Type.Below]: props => [
17
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
18
+ react_1.default.createElement(components_1.NumberInlineField, { field: "filter.max_exclusive" }),
19
+ ],
20
+ [feature_descriptor_1.Filter.Type.Between]: props => [
21
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
22
+ react_1.default.createElement(components_1.NumberInlineField, { field: "filter.min_inclusive" }),
23
+ react_1.default.createElement(components_1.NumberInlineField, { field: "filter.max_exclusive" }),
24
+ ],
25
+ [feature_descriptor_1.Filter.Type.FullPass]: () => [],
26
+ [feature_descriptor_1.Filter.Type.HourOfDay]: props => {
27
+ return [
28
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
29
+ react_1.default.createElement(components_1.NumberInlineField, { field: "filter.min_hour_inclusive" }),
30
+ react_1.default.createElement(components_1.NumberInlineField, { field: "filter.max_hour_exclusive" }),
31
+ ];
32
+ },
33
+ [feature_descriptor_1.Filter.Type.NgramFilter]: props => [
34
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
35
+ react_1.default.createElement(components_1.ChipInlineField, { field: "filter.ngram" }),
36
+ ],
37
+ [feature_descriptor_1.Filter.Type.Value]: props => [
38
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
39
+ react_1.default.createElement(components_1.StringInlineField, { field: "filter.value" }),
40
+ ],
41
+ [feature_descriptor_1.Filter.Type.Weekday]: props => {
42
+ return [
43
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
44
+ ];
45
+ },
46
+ [feature_descriptor_1.Filter.Type.Weekend]: props => {
47
+ return [
48
+ react_1.default.createElement(components_1.TableColumnInlineField, { field: "filter.column", tableColumns: props.tableColumns }),
49
+ ];
50
+ },
51
+ };
52
+ const FilterEditor = ({ tableColumns }) => {
53
+ var _a, _b, _c;
54
+ const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
55
+ const filterDraft = state.filter;
56
+ const [isSummaryVisible, setIsSummaryVisible] = react_1.default.useState(true);
57
+ const templates = (_c = (_b = ((filterDraft === null || filterDraft === void 0 ? void 0 : filterDraft.type) &&
58
+ ((_a = FilterEditorTemplate[filterDraft.type]) === null || _a === void 0 ? void 0 : _a.call(FilterEditorTemplate, {
59
+ tableColumns,
60
+ })))) !== null && _b !== void 0 ? _b : []) !== null && _c !== void 0 ? _c : [];
61
+ return (react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center' } },
62
+ react_1.default.createElement("div", { style: { display: 'inline-flex', height: '26px', alignItems: 'center' } }, isSummaryVisible ? (react_1.default.createElement("span", { className: "inline-displayed-value", onClick: () => setIsSummaryVisible(false) }, filterDraft.type)) : (react_1.default.createElement("span", { style: { width: '130px', marginTop: '6px' } },
63
+ react_1.default.createElement(components_1.FilterTypeSelector, { onBlur: () => {
64
+ setIsSummaryVisible(true);
65
+ }, selectedType: filterDraft.type, onTypeChange: filterType => {
66
+ dispatch(context_1.FeatureDescriptorEditorActions.Filter.setType({ filterType }));
67
+ } })))),
68
+ "(",
69
+ react_1.default.createElement(components_1.EditorTemplateRenderer, { templates: templates }),
70
+ ")"));
71
+ };
72
+ exports.FilterEditor = FilterEditor;
65
73
  //# sourceMappingURL=FilterEditor.js.map
@@ -0,0 +1,50 @@
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.JoinEditor = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
10
+ const components_1 = require("./components");
11
+ const context_1 = require("./context");
12
+ const JoinEditor = ({ tableColumns }) => {
13
+ const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
14
+ function addCondition() {
15
+ dispatch(context_1.FeatureDescriptorEditorActions.Join.addNewCondition());
16
+ }
17
+ function removeCondition(id) {
18
+ dispatch(context_1.FeatureDescriptorEditorActions.Join.removeCondition({ id }));
19
+ }
20
+ const tables = Object.keys(tableColumns);
21
+ return (react_1.default.createElement("div", { style: { display: 'inline-flex' } },
22
+ react_1.default.createElement("div", { style: {
23
+ height: '26px',
24
+ alignItems: 'center',
25
+ whiteSpace: 'nowrap',
26
+ } },
27
+ "Join(",
28
+ react_1.default.createElement(components_1.TableInlineField, { field: "join.target_table", tables: tables }),
29
+ ' ',
30
+ react_1.default.createElement("span", { style: { marginRight: '6px' } }, ","),
31
+ react_1.default.createElement(components_1.TableInlineField, { field: "join.source_table", tables: tables }),
32
+ ' ',
33
+ react_1.default.createElement("span", { style: { marginRight: '6px' } }, ","),
34
+ "join_conditions=["),
35
+ react_1.default.createElement("div", null,
36
+ react_1.default.createElement("div", null, react_1.default.createElement(react_1.default.Fragment, null, state.join.join_conditions.map((condition, idx) => {
37
+ return (react_1.default.createElement("div", { key: condition.id, style: {
38
+ display: 'flex',
39
+ alignItems: 'flex-start',
40
+ } },
41
+ react_1.default.createElement(material_1.IconButton, { color: "default", style: { height: '26px' }, onClick: () => removeCondition(condition.id) },
42
+ react_1.default.createElement(Delete_1.default, { style: { width: '16px' } })),
43
+ react_1.default.createElement(components_1.JoinConditionEditor, { conditionId: condition.id, tableColumns: tableColumns }),
44
+ idx + 1 === state.join.join_conditions.length && (react_1.default.createElement("span", { style: { alignSelf: 'center', marginLeft: '6px' } },
45
+ "])",
46
+ react_1.default.createElement(material_1.Button, { variant: "text", onClick: addCondition }, "+ add new join")))));
47
+ }))))));
48
+ };
49
+ exports.JoinEditor = JoinEditor;
50
+ //# sourceMappingURL=JoinEditor.js.map
@@ -0,0 +1,14 @@
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.EditorTemplateRenderer = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ function EditorTemplateRenderer(props) {
9
+ return (react_1.default.createElement(react_1.default.Fragment, null, props.templates.map((fieldWidget, idx) => (react_1.default.createElement(react_1.default.Fragment, null,
10
+ fieldWidget,
11
+ idx + 1 < props.templates.length ? (react_1.default.createElement("span", { style: { marginRight: '3px' } }, ",")) : null)))));
12
+ }
13
+ exports.EditorTemplateRenderer = EditorTemplateRenderer;
14
+ //# sourceMappingURL=EditorTemplateRenderer.js.map