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
@@ -0,0 +1,96 @@
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.JoinConditionEditor = 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 JoinConditionTypeSelection_1 = require("./JoinConditionTypeSelection");
11
+ const JoinTableColumnSelector_1 = require("./JoinTableColumnSelector");
12
+ const EditorTemplateRenderer_1 = require("../EditorTemplateRenderer");
13
+ const field_widgets_1 = require("../field-widgets");
14
+ const _utils_1 = require("../../../../utils");
15
+ const joinConditionEditorTemplate = {
16
+ [feature_descriptor_1.JoinCondition.Type.Geo]: () => [],
17
+ [feature_descriptor_1.JoinCondition.Type.Same]: props => {
18
+ var _a, _b;
19
+ const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
20
+ return [
21
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, Object.assign({ field: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [] }, props)),
22
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, Object.assign({ field: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [] }, props)),
23
+ ];
24
+ },
25
+ [feature_descriptor_1.JoinCondition.Type.Time]: props => {
26
+ var _a, _b;
27
+ const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
28
+ const from_value = 'from_value' in props.joinCondition
29
+ ? props.joinCondition.from_value
30
+ : null;
31
+ const to_value = 'to_value' in props.joinCondition ? props.joinCondition.to_value : null;
32
+ return [
33
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, { field: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [], joinCondition: props.joinCondition, onJoinConditionChange: props.onJoinConditionChange }),
34
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, { field: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [], joinCondition: props.joinCondition, onJoinConditionChange: props.onJoinConditionChange }),
35
+ react_1.default.createElement(field_widgets_1.InlineEditor, { label: "from_value", value: from_value, onValueChange: from_value => {
36
+ props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { from_value }));
37
+ }, widget: field_widgets_1.StringWidget }),
38
+ react_1.default.createElement(field_widgets_1.InlineEditor, { label: "to_value", value: to_value, onValueChange: to_value => {
39
+ props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { to_value }));
40
+ }, widget: field_widgets_1.StringWidget }),
41
+ ];
42
+ },
43
+ [feature_descriptor_1.JoinCondition.Type.PeriodicTime]: props => {
44
+ var _a, _b;
45
+ const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
46
+ const periodic_unit = 'periodic_unit' in props.joinCondition
47
+ ? props.joinCondition.periodic_unit
48
+ : null;
49
+ const num_cycles = 'num_cycles' in props.joinCondition
50
+ ? props.joinCondition.num_cycles
51
+ : null;
52
+ return [
53
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, Object.assign({ field: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [] }, props)),
54
+ react_1.default.createElement(JoinTableColumnSelector_1.JoinTableColumnSelector, Object.assign({ field: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [] }, props)),
55
+ react_1.default.createElement(field_widgets_1.InlineEditor, { label: "periodic_unit", value: periodic_unit, onValueChange: periodic_unit => {
56
+ props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { periodic_unit }));
57
+ }, widget: field_widgets_1.StringWidget }),
58
+ react_1.default.createElement(field_widgets_1.InlineEditor, { label: "num_cycles", value: num_cycles, onValueChange: num_cycles => {
59
+ props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { num_cycles }));
60
+ }, widget: field_widgets_1.NumberWidget }),
61
+ ];
62
+ },
63
+ };
64
+ const JoinConditionEditor = (props) => {
65
+ var _a;
66
+ const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
67
+ const joinCondition = (_a = state.join.join_conditions.find((c) => c.id === props.conditionId)) !== null && _a !== void 0 ? _a : { id: props.conditionId };
68
+ const [isSummaryVisible, setIsSummaryVisible] = react_1.default.useState(() => (0, _utils_1.isSet)(joinCondition.type));
69
+ const setJoinConditionDraft = (params) => {
70
+ const join = Object.assign(Object.assign({}, state.join), { join_conditions: state.join.join_conditions.map((draft) => draft.id === props.conditionId ? params : draft) });
71
+ dispatch(context_1.FeatureDescriptorEditorActions.setDraftField({
72
+ field: 'join',
73
+ value: join,
74
+ }));
75
+ };
76
+ const templates = joinCondition.type
77
+ ? joinConditionEditorTemplate[joinCondition.type]({
78
+ tableColumns: props.tableColumns,
79
+ joinCondition,
80
+ onJoinConditionChange: setJoinConditionDraft,
81
+ })
82
+ : [];
83
+ return (react_1.default.createElement("div", { style: {
84
+ display: 'inline-flex',
85
+ } },
86
+ 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) }, joinCondition.type)) : (react_1.default.createElement("span", { style: { width: '130px', marginTop: '6px' } },
87
+ react_1.default.createElement(JoinConditionTypeSelection_1.JoinConditionSelectionType, { onBlur: () => {
88
+ setIsSummaryVisible(true);
89
+ }, value: joinCondition.type, onValueChange: type => setJoinConditionDraft({ type, id: props.conditionId }) })))),
90
+ react_1.default.createElement("div", { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center' } },
91
+ "(",
92
+ react_1.default.createElement(EditorTemplateRenderer_1.EditorTemplateRenderer, { templates: templates }),
93
+ ")")));
94
+ };
95
+ exports.JoinConditionEditor = JoinConditionEditor;
96
+ //# sourceMappingURL=JoinConditionEditor.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.JoinConditionSelectionType = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ const feature_descriptor_1 = require("../../../../models/feature-descriptor");
10
+ const JoinConditionSelectionType = (props) => {
11
+ var _a;
12
+ return (react_1.default.createElement(material_1.Autocomplete, { style: { width: '150px' }, options: (_a = props.types) !== null && _a !== void 0 ? _a : Object.values(feature_descriptor_1.JoinCondition.Type), value: props.value, size: "small", autoComplete: true, disableClearable: true, blurOnSelect: true, openOnFocus: true, forcePopupIcon: false, onBlur: props.onBlur, onChange: (e, value) => value && props.onValueChange(value), renderInput: params => (react_1.default.createElement(material_1.TextField, Object.assign({}, params, { variant: "standard", autoFocus: true }))) }));
13
+ };
14
+ exports.JoinConditionSelectionType = JoinConditionSelectionType;
15
+ //# sourceMappingURL=JoinConditionTypeSelection.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.JoinTableColumnSelector = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const field_widgets_1 = require("../field-widgets");
9
+ const _InlineEditorField_1 = require("../field-widgets/_InlineEditorField");
10
+ function JoinTableColumnSelector(props) {
11
+ var _a, _b;
12
+ return (react_1.default.createElement(_InlineEditorField_1.InlineEditor, { label: props.field, widget: field_widgets_1.ColumnWidget, value: (_b = (_a = props.joinCondition) === null || _a === void 0 ? void 0 : _a[props.field]) === null || _b === void 0 ? void 0 : _b.name, widgetProps: { columns: props.columns }, onValueChange: column => props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { [props.field]: column })) }));
13
+ }
14
+ exports.JoinTableColumnSelector = JoinTableColumnSelector;
15
+ //# sourceMappingURL=JoinTableColumnSelector.js.map
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./type-tree-item"), exports);
17
+ __exportStar(require("./JoinConditionTypeSelection"), exports);
18
+ __exportStar(require("./JoinConditionEditor"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,38 @@
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.FeatureDescriptorEditorContextProvider = exports.useFeatureDescriptorEditorContext = exports.FeatureDescriptorEditorContext = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_descriptor_editor_1 = require("./feature-descriptor-editor");
9
+ const models_1 = require("../models");
10
+ exports.FeatureDescriptorEditorContext = react_1.default.createContext(undefined);
11
+ function useFeatureDescriptorEditorContext() {
12
+ const context = react_1.default.useContext(exports.FeatureDescriptorEditorContext);
13
+ if (context === undefined) {
14
+ throw new Error('useFeatureDescriptorEditorContext must be used within a FeatureDescriptorEditorContextProvider');
15
+ }
16
+ return context;
17
+ }
18
+ exports.useFeatureDescriptorEditorContext = useFeatureDescriptorEditorContext;
19
+ function FeatureDescriptorEditorContextProvider(props) {
20
+ const featureDescriptorDraft = react_1.default.useMemo(() => {
21
+ var _a, _b, _c;
22
+ return props.initFeatureDescriptor
23
+ ? {
24
+ join: models_1.JoinDraft.fromJoin((_a = props.initFeatureDescriptor) === null || _a === void 0 ? void 0 : _a.join, props.tableColumns),
25
+ aggregation: models_1.AggregationDraft.fromAggregation((_b = props.initFeatureDescriptor) === null || _b === void 0 ? void 0 : _b.aggregation, props.tableColumns),
26
+ filter: models_1.FilterDraft.fromFilter((_c = props.initFeatureDescriptor) === null || _c === void 0 ? void 0 : _c.filter, props.tableColumns),
27
+ }
28
+ : {
29
+ join: {},
30
+ filter: {},
31
+ aggregation: {},
32
+ };
33
+ }, [props.initFeatureDescriptor]);
34
+ const [state, dispatch] = react_1.default.useReducer(feature_descriptor_editor_1.featureDescriptorEditorReducer, Object.assign(Object.assign({}, featureDescriptorDraft), { errors: {} }));
35
+ return (react_1.default.createElement(exports.FeatureDescriptorEditorContext.Provider, Object.assign({ value: [state, dispatch] }, props)));
36
+ }
37
+ exports.FeatureDescriptorEditorContextProvider = FeatureDescriptorEditorContextProvider;
38
+ //# sourceMappingURL=feature-descriptor-editor-context.js.map
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.featureDescriptorEditorReducer = exports.FeatureDescriptorEditorActions = void 0;
4
+ const redux_1 = require("../../../utils/redux");
5
+ var FeatureDescriptorEditorActions;
6
+ (function (FeatureDescriptorEditorActions) {
7
+ FeatureDescriptorEditorActions.setDraftField = (0, redux_1.createAction)('SetDraftField', (0, redux_1.props)());
8
+ let Join;
9
+ (function (Join) {
10
+ Join.addNewCondition = (0, redux_1.createAction)('Join:AddNewCondition');
11
+ Join.setCondition = (0, redux_1.createAction)('Join:SetCondition', (0, redux_1.props)());
12
+ Join.patchCondition = (0, redux_1.createAction)('Join:PatchCondition', (0, redux_1.props)());
13
+ Join.removeCondition = (0, redux_1.createAction)('Join:RemoveCondition', (0, redux_1.props)());
14
+ })(Join = FeatureDescriptorEditorActions.Join || (FeatureDescriptorEditorActions.Join = {}));
15
+ let Aggregation;
16
+ (function (Aggregation) {
17
+ Aggregation.setType = (0, redux_1.createAction)('Aggregation:SetType', (0, redux_1.props)());
18
+ })(Aggregation = FeatureDescriptorEditorActions.Aggregation || (FeatureDescriptorEditorActions.Aggregation = {}));
19
+ let Filter;
20
+ (function (Filter) {
21
+ Filter.setType = (0, redux_1.createAction)('Filter:SetType', (0, redux_1.props)());
22
+ })(Filter = FeatureDescriptorEditorActions.Filter || (FeatureDescriptorEditorActions.Filter = {}));
23
+ })(FeatureDescriptorEditorActions = exports.FeatureDescriptorEditorActions || (exports.FeatureDescriptorEditorActions = {}));
24
+ exports.featureDescriptorEditorReducer = (0, redux_1.createReducer)((0, redux_1.on)(FeatureDescriptorEditorActions.Join.addNewCondition, updateDraftField('join', joinState => {
25
+ var _a;
26
+ return (Object.assign(Object.assign({}, joinState), { join_conditions: [
27
+ ...((_a = joinState.join_conditions) !== null && _a !== void 0 ? _a : []),
28
+ { id: Math.random() },
29
+ ] }));
30
+ })), (0, redux_1.on)(FeatureDescriptorEditorActions.Join.setCondition, updateDraftField('join', (joinState, action) => (Object.assign(Object.assign({}, joinState), { join_conditions: joinState.join_conditions.map((condition) => condition.id === action.condition.id ? action.condition : condition) })))), (0, redux_1.on)(FeatureDescriptorEditorActions.Join.patchCondition, updateDraftField('join', (joinState, action) => (Object.assign(Object.assign({}, joinState), { join_conditions: joinState.join_conditions.map((condition) => condition.id === action.condition.id
31
+ ? Object.assign(Object.assign({}, condition), action.condition) : condition) })))), (0, redux_1.on)(FeatureDescriptorEditorActions.Join.removeCondition, updateDraftField('join', (joinState, action) => (Object.assign(Object.assign({}, joinState), { join_conditions: joinState.join_conditions.filter((condition) => condition.id !== action.id) })))), (0, redux_1.on)(FeatureDescriptorEditorActions.Filter.setType, updateDraftField('filter', (_, { filterType }) => ({
32
+ type: filterType,
33
+ }))), (0, redux_1.on)(FeatureDescriptorEditorActions.Aggregation.setType, updateDraftField('aggregation', (_, { aggregationType }) => ({
34
+ type: aggregationType,
35
+ }))), (0, redux_1.on)(FeatureDescriptorEditorActions.setDraftField, setDraftField));
36
+ function updateDraftField(field, fn) {
37
+ return function (state, action) {
38
+ return Object.assign(Object.assign({}, state), { [field]: fn(state[field], action) });
39
+ };
40
+ }
41
+ function setDraftField(state, action) {
42
+ const [operation, field] = action.field.split('.');
43
+ return Object.assign(Object.assign({}, state), { [operation]: field
44
+ ? Object.assign(Object.assign({}, state[operation]), { [field]: action.value }) : action.value });
45
+ }
46
+ //# sourceMappingURL=feature-descriptor-editor.js.map
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./domains-descriptions-tree.model"), exports);
17
+ __exportStar(require("./feature-descriptor-editor-context"), exports);
18
+ __exportStar(require("./feature-descriptor-editor"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
3
  if (k2 === undefined) k2 = k;
3
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -12,9 +13,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
12
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
15
  };
15
- define(["require", "exports", "./FeatureDescriptorEditor"], function (require, exports, FeatureDescriptorEditor_1) {
16
- "use strict";
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- __exportStar(FeatureDescriptorEditor_1, exports);
19
- });
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./FeatureDescriptorEditor"), exports);
18
+ __exportStar(require("./context/feature-descriptor-editor-context"), exports);
19
+ __exportStar(require("./models/feature-descriptor-editor"), exports);
20
20
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregationDraft = void 0;
4
+ const zod_1 = require("zod");
5
+ const feature_descriptor_1 = require("../../../models/feature-descriptor");
6
+ const column_1 = require("../../../models/column");
7
+ const common_field_draft_1 = require("./common-field-draft");
8
+ const DisctanceDraft = zod_1.z.object({
9
+ latitutde_1_column: common_field_draft_1.ColumnDraft,
10
+ longitude_1_column: common_field_draft_1.ColumnDraft,
11
+ latitutde_2_column: common_field_draft_1.ColumnDraft,
12
+ longitude_2_column: common_field_draft_1.ColumnDraft,
13
+ });
14
+ const TemporalChangeDraft = zod_1.z.object({
15
+ source_time_column: common_field_draft_1.ColumnDraft,
16
+ target_time_column: common_field_draft_1.ColumnDraft,
17
+ source_column: common_field_draft_1.ColumnDraft,
18
+ upper_bound: zod_1.z.string(),
19
+ lower_bound: zod_1.z.string(),
20
+ range_shift: zod_1.z.number(),
21
+ });
22
+ const LatestKDraft = zod_1.z.object({
23
+ source_time_filed: common_field_draft_1.ColumnDraft,
24
+ source_field: common_field_draft_1.ColumnDraft,
25
+ k: zod_1.z.number(),
26
+ });
27
+ const TopicWeightDraft = zod_1.z.object({
28
+ text_topic_field: common_field_draft_1.ColumnDraft,
29
+ original_text_column_name: common_field_draft_1.ColumnDraft,
30
+ index: zod_1.z.number(),
31
+ });
32
+ const AggregationDrafts = {
33
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeCountRecords]: TemporalChangeDraft.omit({ source_column: true }).merge(zod_1.z.object({
34
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeCountRecords),
35
+ })),
36
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMax]: TemporalChangeDraft.merge(zod_1.z.object({
37
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMax),
38
+ })),
39
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMean]: TemporalChangeDraft.merge(zod_1.z.object({
40
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMean),
41
+ })),
42
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMin]: TemporalChangeDraft.merge(zod_1.z.object({
43
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeMin),
44
+ })),
45
+ [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeSum]: TemporalChangeDraft.merge(zod_1.z.object({
46
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeSum),
47
+ })),
48
+ [feature_descriptor_1.Aggregation.Type.AnyBetween]: zod_1.z.object({
49
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AnyBetween),
50
+ field: common_field_draft_1.ColumnDraft,
51
+ lower_edge: zod_1.z.number(),
52
+ upper_edge: zod_1.z.number(),
53
+ }),
54
+ [feature_descriptor_1.Aggregation.Type.AnyValue]: zod_1.z.object({
55
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AnyValue),
56
+ field: common_field_draft_1.ColumnDraft,
57
+ value: zod_1.z.number(),
58
+ }),
59
+ [feature_descriptor_1.Aggregation.Type.AsIs]: zod_1.z.object({
60
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AsIs),
61
+ column: common_field_draft_1.ColumnDraft,
62
+ }),
63
+ [feature_descriptor_1.Aggregation.Type.C3]: zod_1.z.object({
64
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.C3),
65
+ source_time_field: common_field_draft_1.ColumnDraft,
66
+ source_field: common_field_draft_1.ColumnDraft,
67
+ lag: zod_1.z.number(),
68
+ }),
69
+ [feature_descriptor_1.Aggregation.Type.CWT]: zod_1.z.object({
70
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CWT),
71
+ source_time_field: common_field_draft_1.ColumnDraft,
72
+ source_field: common_field_draft_1.ColumnDraft,
73
+ index: zod_1.z.number(),
74
+ width: zod_1.z.number(),
75
+ }),
76
+ [feature_descriptor_1.Aggregation.Type.ClosestTimeDifference]: zod_1.z.object({
77
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.ClosestTimeDifference),
78
+ source_field: common_field_draft_1.ColumnDraft,
79
+ target_field: common_field_draft_1.ColumnDraft,
80
+ shift: zod_1.z.string(),
81
+ }),
82
+ [feature_descriptor_1.Aggregation.Type.Count]: zod_1.z.object({
83
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Count),
84
+ field: common_field_draft_1.ColumnDraft,
85
+ }),
86
+ [feature_descriptor_1.Aggregation.Type.CountBetween]: zod_1.z.object({
87
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountBetween),
88
+ field: common_field_draft_1.ColumnDraft,
89
+ lower_edge: zod_1.z.number(),
90
+ upper_edge: zod_1.z.number(),
91
+ }),
92
+ [feature_descriptor_1.Aggregation.Type.CountOfValue]: zod_1.z.object({
93
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountOfValue),
94
+ field: common_field_draft_1.ColumnDraft,
95
+ value: zod_1.z.number(),
96
+ }),
97
+ [feature_descriptor_1.Aggregation.Type.CountRecords]: zod_1.z.object({
98
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountRecords),
99
+ table: zod_1.z.string(),
100
+ }),
101
+ [feature_descriptor_1.Aggregation.Type.CountUnique]: zod_1.z.object({
102
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountUnique),
103
+ column: common_field_draft_1.ColumnDraft,
104
+ }),
105
+ [feature_descriptor_1.Aggregation.Type.DayOfWeek]: zod_1.z.object({
106
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.DayOfWeek),
107
+ column: common_field_draft_1.ColumnDraft,
108
+ }),
109
+ [feature_descriptor_1.Aggregation.Type.Distance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Distance) })),
110
+ [feature_descriptor_1.Aggregation.Type.Exist]: zod_1.z.object({
111
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Exist),
112
+ table: zod_1.z.string(),
113
+ }),
114
+ [feature_descriptor_1.Aggregation.Type.GridTargetMeanEncode]: zod_1.z.object({
115
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.GridTargetMeanEncode),
116
+ latitude_field: common_field_draft_1.ColumnDraft,
117
+ longitude_field: common_field_draft_1.ColumnDraft,
118
+ encoder_id: zod_1.z.number(),
119
+ distance: zod_1.z.string(),
120
+ }),
121
+ [feature_descriptor_1.Aggregation.Type.HistogramEqualityRatio]: zod_1.z.object({
122
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.HistogramEqualityRatio),
123
+ field: common_field_draft_1.ColumnDraft,
124
+ value: zod_1.z.number(),
125
+ }),
126
+ [feature_descriptor_1.Aggregation.Type.Hour]: zod_1.z.object({
127
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Hour),
128
+ column: common_field_draft_1.ColumnDraft,
129
+ }),
130
+ [feature_descriptor_1.Aggregation.Type.LatestKMax]: LatestKDraft.merge(zod_1.z.object({
131
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKMax),
132
+ })),
133
+ [feature_descriptor_1.Aggregation.Type.LatestKMaxMinusMin]: LatestKDraft.merge(zod_1.z.object({
134
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKMaxMinusMin),
135
+ })),
136
+ [feature_descriptor_1.Aggregation.Type.LatestKMean]: LatestKDraft.merge(zod_1.z.object({
137
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKMean),
138
+ })),
139
+ [feature_descriptor_1.Aggregation.Type.LatestKMin]: LatestKDraft.merge(zod_1.z.object({
140
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKMin),
141
+ })),
142
+ [feature_descriptor_1.Aggregation.Type.LatestKStd]: LatestKDraft.merge(zod_1.z.object({
143
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKStd),
144
+ })),
145
+ [feature_descriptor_1.Aggregation.Type.LatestKSum]: LatestKDraft.merge(zod_1.z.object({
146
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestKSum),
147
+ })),
148
+ [feature_descriptor_1.Aggregation.Type.LatestTimeDifference]: zod_1.z.object({
149
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.LatestTimeDifference),
150
+ source_field: common_field_draft_1.ColumnDraft,
151
+ target_field: common_field_draft_1.ColumnDraft,
152
+ shift: zod_1.z.string(),
153
+ }),
154
+ [feature_descriptor_1.Aggregation.Type.Max]: zod_1.z.object({
155
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Max),
156
+ column: common_field_draft_1.ColumnDraft,
157
+ }),
158
+ [feature_descriptor_1.Aggregation.Type.MaxDistance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MaxDistance) })),
159
+ [feature_descriptor_1.Aggregation.Type.MaxInterval]: zod_1.z.object({
160
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MaxInterval),
161
+ column: common_field_draft_1.ColumnDraft,
162
+ }),
163
+ [feature_descriptor_1.Aggregation.Type.Mean]: zod_1.z.object({
164
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Mean),
165
+ field: common_field_draft_1.ColumnDraft,
166
+ }),
167
+ [feature_descriptor_1.Aggregation.Type.MeanDistance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MeanDistance) })),
168
+ [feature_descriptor_1.Aggregation.Type.MeanInterval]: zod_1.z.object({
169
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MeanInterval),
170
+ column: common_field_draft_1.ColumnDraft,
171
+ }),
172
+ [feature_descriptor_1.Aggregation.Type.MeanTimeDifference]: zod_1.z.object({
173
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MeanTimeDifference),
174
+ column1: common_field_draft_1.ColumnDraft,
175
+ column2: common_field_draft_1.ColumnDraft,
176
+ unit: zod_1.z.string(),
177
+ }),
178
+ [feature_descriptor_1.Aggregation.Type.Min]: zod_1.z.object({
179
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Min),
180
+ column: common_field_draft_1.ColumnDraft,
181
+ }),
182
+ [feature_descriptor_1.Aggregation.Type.MinDistance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MinDistance) })),
183
+ [feature_descriptor_1.Aggregation.Type.MinInterval]: zod_1.z.object({
184
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.MinInterval),
185
+ field: common_field_draft_1.ColumnDraft,
186
+ }),
187
+ [feature_descriptor_1.Aggregation.Type.Month]: zod_1.z.object({
188
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Month),
189
+ field: common_field_draft_1.ColumnDraft,
190
+ }),
191
+ [feature_descriptor_1.Aggregation.Type.N1RedundantMean]: zod_1.z.object({
192
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantMean),
193
+ field: common_field_draft_1.ColumnDraft,
194
+ }),
195
+ [feature_descriptor_1.Aggregation.Type.N1RedundantNullRatio]: zod_1.z.object({
196
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantNullRatio),
197
+ field: common_field_draft_1.ColumnDraft,
198
+ }),
199
+ [feature_descriptor_1.Aggregation.Type.N1RedundantRatioOfValue]: zod_1.z.object({
200
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantRatioOfValue),
201
+ field: common_field_draft_1.ColumnDraft,
202
+ ratio_value: zod_1.z.union([zod_1.z.number(), zod_1.z.string(), zod_1.z.boolean()]),
203
+ null_inclusion: zod_1.z.boolean(),
204
+ }),
205
+ [feature_descriptor_1.Aggregation.Type.N1RedundantSum]: zod_1.z.object({
206
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantSum),
207
+ field: common_field_draft_1.ColumnDraft,
208
+ }),
209
+ [feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightMean]: zod_1.z.object({
210
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightMean),
211
+ text_topic_field: common_field_draft_1.ColumnDraft,
212
+ original_text_column_name: common_field_draft_1.ColumnDraft,
213
+ index: zod_1.z.number(),
214
+ }),
215
+ [feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightSum]: zod_1.z.object({
216
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightSum),
217
+ text_topic_field: common_field_draft_1.ColumnDraft,
218
+ original_text_column_name: common_field_draft_1.ColumnDraft,
219
+ index: zod_1.z.number(),
220
+ }),
221
+ [feature_descriptor_1.Aggregation.Type.NgramCount]: zod_1.z.object({
222
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.NgramCount),
223
+ field: common_field_draft_1.ColumnDraft,
224
+ ngram: zod_1.z.array(zod_1.z.string()),
225
+ }),
226
+ [feature_descriptor_1.Aggregation.Type.NonBusinessDays]: zod_1.z.object({
227
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.NonBusinessDays),
228
+ column: common_field_draft_1.ColumnDraft,
229
+ }),
230
+ [feature_descriptor_1.Aggregation.Type.NullRatio]: zod_1.z.object({
231
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.NullRatio),
232
+ field: common_field_draft_1.ColumnDraft,
233
+ }),
234
+ [feature_descriptor_1.Aggregation.Type.RatioBetween]: zod_1.z.object({
235
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.RatioBetween),
236
+ field: common_field_draft_1.ColumnDraft,
237
+ lower_edge: zod_1.z.number(),
238
+ upper_edge: zod_1.z.number(),
239
+ }),
240
+ [feature_descriptor_1.Aggregation.Type.RatioOfValue]: zod_1.z.object({
241
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.RatioOfValue),
242
+ field: common_field_draft_1.ColumnDraft,
243
+ ratio_value: zod_1.z.union([zod_1.z.number(), zod_1.z.string(), zod_1.z.boolean()]),
244
+ null_inclusion: zod_1.z.boolean(),
245
+ }),
246
+ [feature_descriptor_1.Aggregation.Type.Std]: zod_1.z.object({
247
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Std),
248
+ field: common_field_draft_1.ColumnDraft,
249
+ }),
250
+ [feature_descriptor_1.Aggregation.Type.StdDistance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.StdDistance) })),
251
+ [feature_descriptor_1.Aggregation.Type.StdInterval]: zod_1.z.object({
252
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.StdInterval),
253
+ column: common_field_draft_1.ColumnDraft,
254
+ }),
255
+ [feature_descriptor_1.Aggregation.Type.StdTimeDifference]: zod_1.z.object({
256
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.StdInterval),
257
+ column1: common_field_draft_1.ColumnDraft,
258
+ column2: common_field_draft_1.ColumnDraft,
259
+ unit: zod_1.z.string(),
260
+ }),
261
+ [feature_descriptor_1.Aggregation.Type.Sum]: zod_1.z.object({
262
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Sum),
263
+ column: common_field_draft_1.ColumnDraft,
264
+ }),
265
+ [feature_descriptor_1.Aggregation.Type.SumDistance]: DisctanceDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.SumDistance) })),
266
+ [feature_descriptor_1.Aggregation.Type.TargetMeanEncode]: zod_1.z.object({
267
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TargetMeanEncode),
268
+ field: common_field_draft_1.ColumnDraft,
269
+ encode_field: zod_1.z.number(),
270
+ }),
271
+ [feature_descriptor_1.Aggregation.Type.TargetTimeDifference]: zod_1.z.object({
272
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TargetTimeDifference),
273
+ source_field: common_field_draft_1.ColumnDraft,
274
+ target_field: common_field_draft_1.ColumnDraft,
275
+ shift: zod_1.z.string(),
276
+ }),
277
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeCountRecords]: TemporalChangeDraft.omit({
278
+ source_column: true,
279
+ }).merge(zod_1.z.object({
280
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeCountRecords),
281
+ })),
282
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMax]: TemporalChangeDraft.merge(zod_1.z.object({
283
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeMax),
284
+ })),
285
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMean]: TemporalChangeDraft.merge(zod_1.z.object({
286
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeMean),
287
+ })),
288
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeMin]: TemporalChangeDraft.merge(zod_1.z.object({
289
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeMin),
290
+ })),
291
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeSum]: TemporalChangeDraft.merge(zod_1.z.object({
292
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeSum),
293
+ })),
294
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioCountRecords]: TemporalChangeDraft.omit({
295
+ source_column: true,
296
+ }).merge(zod_1.z.object({
297
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeRatioCountRecords),
298
+ })),
299
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMax]: TemporalChangeDraft.merge(zod_1.z.object({
300
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMax),
301
+ })),
302
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMean]: TemporalChangeDraft.merge(zod_1.z.object({
303
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMean),
304
+ })),
305
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMin]: TemporalChangeDraft.merge(zod_1.z.object({
306
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeRatioMin),
307
+ })),
308
+ [feature_descriptor_1.Aggregation.Type.TemporalChangeRatioSum]: TemporalChangeDraft.merge(zod_1.z.object({
309
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TemporalChangeRatioSum),
310
+ })),
311
+ [feature_descriptor_1.Aggregation.Type.TimeDifference]: zod_1.z.object({
312
+ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TimeDifference),
313
+ column1: common_field_draft_1.ColumnDraft,
314
+ column2: common_field_draft_1.ColumnDraft,
315
+ unit: zod_1.z.string(),
316
+ }),
317
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMax]: TopicWeightDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TopicWeightMax) })),
318
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMean]: TopicWeightDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TopicWeightMean) })),
319
+ [feature_descriptor_1.Aggregation.Type.TopicWeightMin]: TopicWeightDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TopicWeightMin) })),
320
+ [feature_descriptor_1.Aggregation.Type.TopicWeightSum]: TopicWeightDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TopicWeightSum) })),
321
+ [feature_descriptor_1.Aggregation.Type.TopicWeightValue]: TopicWeightDraft.merge(zod_1.z.object({ type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TopicWeightValue) })),
322
+ };
323
+ var AggregationDraft;
324
+ (function (AggregationDraft) {
325
+ function fromAggregation(aggregation, tableColumns) {
326
+ const schema = AggregationDrafts[aggregation.type];
327
+ const aggr = aggregation;
328
+ const columnFields = Object.entries(schema.shape)
329
+ .filter(([_, field]) => field.description === 'Column')
330
+ .map(([colName]) => colName);
331
+ // console.log(z.instanceof(z.number));
332
+ console.log('columnFields', Object.entries(schema.shape));
333
+ return Object.assign(Object.assign({}, aggr), Object.fromEntries(columnFields.map(field => {
334
+ var _a;
335
+ return [
336
+ field,
337
+ (_a = column_1.Column.fromFullName(aggr[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
338
+ ];
339
+ })));
340
+ }
341
+ AggregationDraft.fromAggregation = fromAggregation;
342
+ function validate(aggregationDraft) {
343
+ if (!aggregationDraft.type) {
344
+ return null;
345
+ }
346
+ const schema = AggregationDrafts[aggregationDraft.type];
347
+ return schema === null || schema === void 0 ? void 0 : schema.safeParse(aggregationDraft);
348
+ }
349
+ AggregationDraft.validate = validate;
350
+ })(AggregationDraft = exports.AggregationDraft || (exports.AggregationDraft = {}));
351
+ //# sourceMappingURL=aggregation-draft.js.map
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberDraft = exports.ColumnDraft = void 0;
4
+ const zod_1 = require("zod");
5
+ const column_1 = require("../../../models/column");
6
+ exports.ColumnDraft = zod_1.z
7
+ .object({
8
+ table: zod_1.z.string(),
9
+ name: zod_1.z.string(),
10
+ }, { description: 'Column' })
11
+ .transform(column_1.FullColumnName.create);
12
+ exports.NumberDraft = zod_1.z.number({ description: 'Number' });
13
+ //# sourceMappingURL=common-field-draft.js.map