dotdata_widgets 0.1.7 → 0.1.9

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 (51) hide show
  1. package/css/widget.css +3 -1
  2. package/dist/index.js +2 -2
  3. package/dist/index.js.map +1 -0
  4. package/lib/feature-descriptor/domains-descriptions-tree/components/tree-item-label.js +8 -2
  5. package/lib/feature-descriptor/domains-descriptions-tree/config/index.js +2 -1
  6. package/lib/feature-descriptor/domains-descriptions-tree/models/domains-descriptions-tree.model.js +10 -6
  7. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +113 -0
  8. package/lib/feature-descriptor/feature-descriptor-editor/FeatureDescriptorEditor.js +25 -0
  9. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +65 -0
  10. package/lib/feature-descriptor/feature-descriptor-editor/components/ItemSelection.js +14 -0
  11. package/lib/feature-descriptor/feature-descriptor-editor/components/StringAutocomplete.js +13 -0
  12. package/lib/feature-descriptor/feature-descriptor-editor/components/ValueInput.js +2 -0
  13. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationSelection.js +15 -0
  14. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationTypeSelection.js +15 -0
  15. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +18 -0
  16. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +23 -0
  17. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/aggregation-context.js +37 -0
  18. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +22 -0
  19. package/lib/feature-descriptor/feature-descriptor-editor/components/explainer.js +15 -0
  20. package/lib/feature-descriptor/feature-descriptor-editor/components/fd-operation-context.js +19 -0
  21. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/FieldLabel.js +17 -0
  22. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ItemSelection.js +20 -0
  23. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +24 -0
  24. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +24 -0
  25. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringSelectionField.js +24 -0
  26. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ValueInput.js +19 -0
  27. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +22 -0
  28. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/widget-interface.js +3 -0
  29. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTypeSelection.js +15 -0
  30. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +20 -0
  31. package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +23 -0
  32. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ItemSelection.js +20 -0
  33. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/Label.js +2 -0
  34. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ValueInput.js +19 -0
  35. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/index.js +19 -0
  36. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/widget-interface.js +3 -0
  37. package/lib/feature-descriptor/feature-descriptor-editor/index.js +20 -0
  38. package/lib/models/column/field.js +4 -2
  39. package/lib/models/column/table.js +5 -0
  40. package/lib/models/feature-descriptor/fd_data/aggregation.js +46 -10
  41. package/lib/models/feature-descriptor/fd_data/filter.js +20 -2
  42. package/lib/models/feature-descriptor/fd_data/index.js +22 -0
  43. package/lib/models/feature-descriptor/fd_data/join.js +4 -2
  44. package/lib/models/feature-descriptor/feature-descriptor.js +4 -2
  45. package/lib/models/feature-descriptor/index.js +20 -1
  46. package/lib/widgets/FeatureLeaderboardWidget.js +1 -0
  47. package/lib/widgets/FeatureSpaceWidget.js +2 -1
  48. package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +2 -2
  49. package/lib/widgets/feature-space/FeatureDomainsDescriptions.js +1 -1
  50. package/lib/widgets/feature-space/FeatureSpaceView.js +5 -1
  51. package/package.json +2 -1
@@ -16,7 +16,7 @@ var SelectionIndicator;
16
16
  SelectionIndicator["Indeterminate"] = "indeterminate";
17
17
  })(SelectionIndicator || (SelectionIndicator = {}));
18
18
  const TreeItemLabel = props => {
19
- const { selectable } = (0, context_1.useDomainsDescriptionsTreeConfig)();
19
+ const { isWithCheckboxes, areCheckboxesDisabled } = (0, context_1.useDomainsDescriptionsTreeConfig)();
20
20
  const [selectedTreeItems, { toggleTreeItemSelection }] = (0, context_1.useDomainsDescriptionsTreeItemSelection)();
21
21
  const [selectedDomainDescriptionsIds, { toggleSelection }] = (0, context_1.useDomainsDescriptionsSelectionContext)();
22
22
  const managedDescriptionIds = react_1.default.useMemo(() => feature_descriptor_domain_1.DomainsDescriptionId.listToMap(props.managedDescriptions.map((0, _utils_1.extractProperty)('id'))), []);
@@ -24,8 +24,14 @@ const TreeItemLabel = props => {
24
24
  function isSelected() {
25
25
  return (0, _utils_1.isSet)(selectedTreeItems[props.nodeId]);
26
26
  }
27
- return (react_1.default.createElement(material_1.FormControlLabel, { className: `text-ellipsis selection-indicator ${isSelected() ? 'selected' : ''}`, sx: { display: 'block', paddingLeft: selectable ? 'initial' : '10px' }, control: selectable ? (react_1.default.createElement(material_1.Checkbox, { sx: { paddingBlock: '2px' }, checked: checked === SelectionIndicator.Checked, indeterminate: checked === SelectionIndicator.Indeterminate, onClick: event => {
27
+ return (react_1.default.createElement(material_1.FormControlLabel, { className: `text-ellipsis selection-indicator ${isSelected() ? 'selected' : ''}`, sx: {
28
+ display: 'block',
29
+ paddingLeft: isWithCheckboxes ? 'initial' : '10px',
30
+ }, control: isWithCheckboxes ? (react_1.default.createElement(material_1.Checkbox, { className: areCheckboxesDisabled ? 'disabled' : '', sx: { paddingBlock: '2px' }, checked: checked === SelectionIndicator.Checked, indeterminate: checked === SelectionIndicator.Indeterminate, disableRipple: areCheckboxesDisabled, onClick: event => {
28
31
  event.stopPropagation();
32
+ if (areCheckboxesDisabled) {
33
+ return;
34
+ }
29
35
  const checked = event.target.checked;
30
36
  toggleSelection(checked, props.managedDescriptions.map((0, _utils_1.extractProperty)('id')));
31
37
  } })) : (react_1.default.createElement(react_1.default.Fragment, null)), label: props.label, onClick: event => {
@@ -4,7 +4,8 @@ exports.DomainsDescriptionsTreeConfig = void 0;
4
4
  var DomainsDescriptionsTreeConfig;
5
5
  (function (DomainsDescriptionsTreeConfig) {
6
6
  DomainsDescriptionsTreeConfig.DEFAULT = {
7
- selectable: true,
7
+ isWithCheckboxes: true,
8
+ areCheckboxesDisabled: false,
8
9
  };
9
10
  })(DomainsDescriptionsTreeConfig = exports.DomainsDescriptionsTreeConfig || (exports.DomainsDescriptionsTreeConfig = {}));
10
11
  //# sourceMappingURL=index.js.map
@@ -25,12 +25,16 @@ var DescriptionsTree;
25
25
  }
26
26
  DescriptionsTree.appendGroupId = appendGroupId;
27
27
  function createGroupId(prefix) {
28
- return (props) => [
29
- (0, _utils_1.isSet)(prefix) && `${prefix}_`,
30
- (0, _utils_1.isSet)(props.typeIdx) && `t${props.typeIdx}`,
31
- (0, _utils_1.isSet)(props.columnIdx) && `c${props.columnIdx}`,
32
- (0, _utils_1.isSet)(props.descriptionIdx) && `d${props.descriptionIdx}`,
33
- ].join('');
28
+ return (props) => {
29
+ return [
30
+ (0, _utils_1.isSet)(prefix) && `${prefix}`,
31
+ (0, _utils_1.isSet)(props.typeIdx) && `t${props.typeIdx}`,
32
+ (0, _utils_1.isSet)(props.columnIdx) && `c${props.columnIdx}`,
33
+ (0, _utils_1.isSet)(props.descriptionIdx) && `d${props.descriptionIdx}`,
34
+ ]
35
+ .filter(Boolean)
36
+ .join('_');
37
+ };
34
38
  }
35
39
  DescriptionsTree.createGroupId = createGroupId;
36
40
  })(DescriptionsTree = exports.DescriptionsTree || (exports.DescriptionsTree = {}));
@@ -0,0 +1,113 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
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
+ });
113
+ //# sourceMappingURL=AggregationEditor.js.map
@@ -0,0 +1,25 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
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
+ });
25
+ //# sourceMappingURL=FeatureDescriptorEditor.js.map
@@ -0,0 +1,65 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
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
+ });
65
+ //# sourceMappingURL=FilterEditor.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.ItemSelection = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ function ItemSelection(props) {
10
+ const { onValueChange, ...restProps } = props;
11
+ return (react_1.default.createElement(material_1.Autocomplete, { ...restProps, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => value && onValueChange(value), renderInput: params => react_1.default.createElement(material_1.TextField, { ...params, variant: "standard" }) }));
12
+ }
13
+ exports.ItemSelection = ItemSelection;
14
+ //# sourceMappingURL=ItemSelection.js.map
@@ -0,0 +1,13 @@
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.StringSelection = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ function StringSelection({ options }) {
10
+ return (react_1.default.createElement(material_1.Autocomplete, { options: options, size: "small", autoComplete: true, disableClearable: true, renderInput: params => react_1.default.createElement(material_1.TextField, { ...params, variant: "standard" }) }));
11
+ }
12
+ exports.StringSelection = StringSelection;
13
+ //# sourceMappingURL=StringAutocomplete.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=ValueInput.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.AggregationTypeSelector = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_descriptor_1 = require("../../../../models/feature-descriptor");
9
+ const material_1 = require("@mui/material");
10
+ const AggregationTypeSelector = (props) => {
11
+ const options = Object.values(feature_descriptor_1.Aggregation.Type);
12
+ return (react_1.default.createElement(material_1.Autocomplete, { style: { width: '300px' }, options: options, value: props.selectedType, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => value && props.onTypeChange(value), renderInput: params => react_1.default.createElement(material_1.TextField, { ...params, variant: "standard" }) }));
13
+ };
14
+ exports.AggregationTypeSelector = AggregationTypeSelector;
15
+ //# sourceMappingURL=AggregationSelection.js.map
@@ -0,0 +1,15 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "@models/feature-descriptor", "@mui/material"], function (require, exports, react_1, feature_descriptor_1, material_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AggregationTypeSelector = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ const AggregationTypeSelector = (props) => {
10
+ const options = Object.values(feature_descriptor_1.Aggregation.Type);
11
+ return (react_1.default.createElement(material_1.Autocomplete, { style: { width: '300px' }, options: options, value: props.selectedType, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => value && props.onTypeChange(value), renderInput: params => react_1.default.createElement(material_1.TextField, Object.assign({}, params, { variant: "standard" })) }));
12
+ };
13
+ exports.AggregationTypeSelector = AggregationTypeSelector;
14
+ });
15
+ //# sourceMappingURL=AggregationTypeSelection.js.map
@@ -0,0 +1,18 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "../field-widgets"], function (require, exports, react_1, field_widgets_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DistanceEditor = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ const DistanceEditor = (props) => [
10
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "source_time_column", options: props.latitutdeColumns }),
11
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "latitutde_1_column", options: props.latitutdeColumns }),
12
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "latitutde_2_column", options: props.latitutdeColumns }),
13
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "longitude_1_column", options: props.longitudeColumns }),
14
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "longitude_2_column", options: props.longitudeColumns }),
15
+ ];
16
+ exports.DistanceEditor = DistanceEditor;
17
+ });
18
+ //# sourceMappingURL=DistanceEditor.js.map
@@ -0,0 +1,23 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "../field-widgets"], function (require, exports, react_1, field_widgets_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TemporalChangeEditor = exports.TemporalChangeCountEditor = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ const TemporalChangeCountEditor = (props) => [
10
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "source_time_column", options: props.columns }),
11
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "target_time_column", options: props.columns }),
12
+ react_1.default.createElement(field_widgets_1.StringField, { field: "upper_bound" }),
13
+ react_1.default.createElement(field_widgets_1.StringField, { field: "lower_bound" }),
14
+ react_1.default.createElement(field_widgets_1.StringField, { field: "range_shift" }),
15
+ ];
16
+ exports.TemporalChangeCountEditor = TemporalChangeCountEditor;
17
+ const TemporalChangeEditor = (props) => [
18
+ ...(0, exports.TemporalChangeCountEditor)(props),
19
+ react_1.default.createElement(field_widgets_1.StringSelectionField, { field: "source_column", options: props.columns }),
20
+ ];
21
+ exports.TemporalChangeEditor = TemporalChangeEditor;
22
+ });
23
+ //# sourceMappingURL=TemporalChangeEditor.js.map
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.useFdEditorAggregationContext = exports.FdEditorAggregationContext = void 0;
27
+ const React = __importStar(require("react"));
28
+ exports.FdEditorAggregationContext = React.createContext(undefined);
29
+ function useFdEditorAggregationContext() {
30
+ const context = React.useContext(exports.FdEditorAggregationContext);
31
+ if (context === undefined) {
32
+ throw new Error('useFdEditorAggregationContext must be used within a FdEditorAggregationContext');
33
+ }
34
+ return context;
35
+ }
36
+ exports.useFdEditorAggregationContext = useFdEditorAggregationContext;
37
+ //# sourceMappingURL=aggregation-context.js.map
@@ -0,0 +1,22 @@
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
+ };
15
+ define(["require", "exports", "./AggregationTypeSelection", "./TemporalChangeEditor", "./DistanceEditor"], function (require, exports, AggregationTypeSelection_1, TemporalChangeEditor_1, DistanceEditor_1) {
16
+ "use strict";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(AggregationTypeSelection_1, exports);
19
+ __exportStar(TemporalChangeEditor_1, exports);
20
+ __exportStar(DistanceEditor_1, exports);
21
+ });
22
+ //# sourceMappingURL=index.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.Token = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ function Token(props) {
9
+ const { field, widget, item, ...widgetProps } = props;
10
+ return (react_1.default.createElement("div", null,
11
+ react_1.default.createElement("span", null, field),
12
+ widget(widgetProps)));
13
+ }
14
+ exports.Token = Token;
15
+ //# sourceMappingURL=explainer.js.map
@@ -0,0 +1,19 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react"], function (require, exports, react_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.useFdEditorOperationContext = exports.FdEditorOperationContext = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ exports.FdEditorOperationContext = react_1.default.createContext(undefined);
10
+ function useFdEditorOperationContext() {
11
+ const context = react_1.default.useContext(exports.FdEditorOperationContext);
12
+ if (context === undefined) {
13
+ throw new Error('useFdEditorOperationContext must be used within a FdEditorOperationContext');
14
+ }
15
+ return context;
16
+ }
17
+ exports.useFdEditorOperationContext = useFdEditorOperationContext;
18
+ });
19
+ //# sourceMappingURL=fd-operation-context.js.map
@@ -0,0 +1,17 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react"], function (require, exports, react_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FieldLabel = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ const Capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
10
+ const FieldLabel = (props) => {
11
+ return (react_1.default.createElement("span", { style: { marginRight: '6px' } },
12
+ Capitalize(props.field.replaceAll('_', ' ')),
13
+ ":"));
14
+ };
15
+ exports.FieldLabel = FieldLabel;
16
+ });
17
+ //# sourceMappingURL=FieldLabel.js.map
@@ -0,0 +1,20 @@
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.ColumnSelection = exports.ItemSelection = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ // Partial<Parameters<typeof Autocomplete<T, false, true, false>>[0]
10
+ // eslint-disable-next-line @typescript-eslint/ban-types
11
+ function ItemSelection(props) {
12
+ const { onValueChange, value, options } = props;
13
+ return (react_1.default.createElement(material_1.Autocomplete, { options: options, value: value, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => value && onValueChange(value), renderInput: params => react_1.default.createElement(material_1.TextField, { ...params, variant: "standard" }) }));
14
+ }
15
+ exports.ItemSelection = ItemSelection;
16
+ function ColumnSelection(props) {
17
+ return ItemSelection(props);
18
+ }
19
+ exports.ColumnSelection = ColumnSelection;
20
+ //# sourceMappingURL=ItemSelection.js.map
@@ -0,0 +1,24 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "@mui/material", "../fd-operation-context", "./FieldLabel"], function (require, exports, react_1, material_1, fd_operation_context_1, FieldLabel_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.NumberField = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ function NumberField(props) {
10
+ var _a;
11
+ const [item, setItem] = (0, fd_operation_context_1.useFdEditorOperationContext)();
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ const value = (_a = item[props.field]) !== null && _a !== void 0 ? _a : null;
15
+ return (react_1.default.createElement("span", { style: {
16
+ display: 'inline-flex',
17
+ alignItems: 'center',
18
+ } },
19
+ react_1.default.createElement(FieldLabel_1.FieldLabel, { field: props.field }),
20
+ react_1.default.createElement(material_1.TextField, { style: { width: '80px' }, value: value, variant: "standard", type: "number", onChange: e => setItem(Object.assign(Object.assign({}, item), { [props.field]: Number(e.target.value) })) })));
21
+ }
22
+ exports.NumberField = NumberField;
23
+ });
24
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1,24 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "@mui/material", "../fd-operation-context", "./FieldLabel"], function (require, exports, react_1, material_1, fd_operation_context_1, FieldLabel_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.StringField = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ function StringField(props) {
10
+ var _a;
11
+ const [item, setItem] = (0, fd_operation_context_1.useFdEditorOperationContext)();
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ const value = (_a = item[props.field]) !== null && _a !== void 0 ? _a : null;
15
+ return (react_1.default.createElement("span", { style: {
16
+ display: 'inline-flex',
17
+ alignItems: 'center',
18
+ } },
19
+ react_1.default.createElement(FieldLabel_1.FieldLabel, { field: props.field }),
20
+ react_1.default.createElement(material_1.TextField, { style: { width: '120px' }, value: value, variant: "standard", type: "number", onChange: e => setItem(Object.assign(Object.assign({}, item), { [props.field]: e.target.value })) })));
21
+ }
22
+ exports.StringField = StringField;
23
+ });
24
+ //# sourceMappingURL=StringField.js.map
@@ -0,0 +1,24 @@
1
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ };
4
+ define(["require", "exports", "react", "@mui/material", "../fd-operation-context", "./FieldLabel"], function (require, exports, react_1, material_1, fd_operation_context_1, FieldLabel_1) {
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.StringSelectionField = void 0;
8
+ react_1 = __importDefault(react_1);
9
+ function StringSelectionField(props) {
10
+ var _a;
11
+ const [item, setItem] = (0, fd_operation_context_1.useFdEditorOperationContext)();
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ const value = (_a = item[props.field]) !== null && _a !== void 0 ? _a : null;
15
+ return (react_1.default.createElement("span", { style: {
16
+ display: 'inline-flex',
17
+ alignItems: 'center',
18
+ } },
19
+ react_1.default.createElement(FieldLabel_1.FieldLabel, { field: props.field }),
20
+ react_1.default.createElement(material_1.Autocomplete, { style: { width: '200px' }, options: props.options, value: value, size: "small", autoComplete: true, disableClearable: true, onChange: (e, value) => setItem(Object.assign(Object.assign({}, item), { [props.field]: value })), renderInput: params => react_1.default.createElement(material_1.TextField, Object.assign({}, params, { variant: "standard" })) })));
21
+ }
22
+ exports.StringSelectionField = StringSelectionField;
23
+ });
24
+ //# sourceMappingURL=StringSelectionField.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NumberInput = exports.TextInput = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const material_1 = require("@mui/material");
9
+ function TextInput(props) {
10
+ const { onValueChange, value } = props;
11
+ return (react_1.default.createElement(material_1.TextField, { value: value, variant: "standard", onChange: e => onValueChange(e.target.value) }));
12
+ }
13
+ exports.TextInput = TextInput;
14
+ function NumberInput(props) {
15
+ const { onValueChange, value } = props;
16
+ return (react_1.default.createElement(material_1.TextField, { value: value, variant: "standard", type: "number", onChange: e => onValueChange(Number(e.target.value)) }));
17
+ }
18
+ exports.NumberInput = NumberInput;
19
+ //# sourceMappingURL=ValueInput.js.map