dotdata_widgets 0.2.3 → 0.3.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 (36) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +3 -3
  3. package/dist/index.js.map +1 -1
  4. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +159 -129
  5. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +21 -22
  6. package/lib/feature-descriptor/feature-descriptor-editor/JoinEditor.js +9 -4
  7. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +4 -4
  8. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/LastKEditor.js +3 -3
  9. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +6 -6
  10. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TopicEditor.js +2 -2
  11. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +0 -1
  12. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/BooleanField.js +6 -18
  13. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ChipField.js +3 -5
  14. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ColumnField.js +6 -4
  15. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/DraftEditors.js +51 -0
  16. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +6 -6
  17. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +3 -5
  18. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableColumnField.js +3 -5
  19. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableField.js +6 -4
  20. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/{_InlineEditorField.js → _InlineDraftEditor.js} +4 -22
  21. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +2 -1
  22. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +0 -1
  23. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionEditor.js +12 -31
  24. package/lib/feature-descriptor/feature-descriptor-editor/models/aggregation-draft.js +22 -23
  25. package/lib/feature-descriptor/feature-descriptor-editor/models/common-field-draft.js +18 -1
  26. package/lib/feature-descriptor/feature-descriptor-editor/models/filter-draft.js +8 -9
  27. package/lib/feature-descriptor/feature-descriptor-editor/models/join-draft.js +2 -3
  28. package/lib/feature-descriptor/feature-exploration-path/exploration-path-header.js +0 -4
  29. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +4 -5
  30. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDrawer.js +1 -1
  31. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryFeatureEditor.js +13 -1
  32. package/lib/widgets/feature-leaderboard/leaderboard-entry/feature-leaderboard-entry-drawer-header/FeatureLeaderboardEntryDrawerHeader.js +3 -1
  33. package/package.json +1 -1
  34. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/ColumnEditor.js +0 -15
  35. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTableColumnInlineEditor.js +0 -13
  36. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinTableColumnSelector.js +0 -15
@@ -3,29 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BooleanInlineField = exports.BooleanWidget = void 0;
6
+ exports.BooleanInlineEditor = exports.BooleanWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
- const lodash_1 = require("lodash");
9
- const context_1 = require("../../context");
10
8
  function BooleanWidget(props) {
11
9
  return (react_1.default.createElement("span", { style: { cursor: 'pointer' }, onDoubleClick: () => props.onValueChange(!props.value) }, props.value ? 'true' : 'false'));
12
10
  }
13
11
  exports.BooleanWidget = BooleanWidget;
14
- const BooleanInlineField = (props) => {
15
- var _a, _b;
16
- const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
17
- const value = (_a = (0, lodash_1.get)(state, props.field)) !== null && _a !== void 0 ? _a : null;
18
- const onValueChange = (value) => {
19
- dispatch(context_1.FeatureDescriptorEditorActions.setDraftField({
20
- field: props.field,
21
- value,
22
- }));
23
- };
24
- const label = (_b = props.field.split('.').pop()) !== null && _b !== void 0 ? _b : '';
25
- return (react_1.default.createElement("span", { className: "inline-editor", onClick: () => onValueChange(!value) },
26
- label,
12
+ const BooleanInlineEditor = (props) => {
13
+ return (react_1.default.createElement("span", { className: "inline-editor", onClick: () => props.onValueChange(!props.value) },
14
+ props.label,
27
15
  react_1.default.createElement("span", { className: "equal-sign" }, "="),
28
- react_1.default.createElement("span", { className: "inline-displayed-value boolean-value" }, value ? 'true' : 'false')));
16
+ react_1.default.createElement("span", { className: "inline-displayed-value boolean-value" }, props.value ? 'true' : 'false')));
29
17
  };
30
- exports.BooleanInlineField = BooleanInlineField;
18
+ exports.BooleanInlineEditor = BooleanInlineEditor;
31
19
  //# sourceMappingURL=BooleanField.js.map
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChipInlineField = exports.ChipInlineEditor = exports.ChipWidget = void 0;
6
+ exports.ChipInlineEditor = exports.ChipWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const material_1 = require("@mui/material");
9
- const _InlineEditorField_1 = require("./_InlineEditorField");
9
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
10
10
  function ChipWidget(props) {
11
11
  var _a;
12
12
  const values = ((_a = props.value) !== null && _a !== void 0 ? _a : []).join(',');
@@ -23,9 +23,7 @@ function ChipWidget(props) {
23
23
  }
24
24
  exports.ChipWidget = ChipWidget;
25
25
  const ChipInlineEditor = (props) => {
26
- return (react_1.default.createElement(_InlineEditorField_1.InlineEditor, Object.assign({}, props, { prettifyFn: chips => chips.join(', '), widget: ChipWidget })));
26
+ return (react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { prettifyFn: chips => chips.join(', '), widget: ChipWidget })));
27
27
  };
28
28
  exports.ChipInlineEditor = ChipInlineEditor;
29
- const ChipInlineField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { prettifyFn: chips => chips.join(', '), widget: ChipWidget })));
30
- exports.ChipInlineField = ChipInlineField;
31
29
  //# sourceMappingURL=ChipField.js.map
@@ -3,13 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ColumnInputField = exports.ColumnWidget = void 0;
6
+ exports.ColumnInlineEditor = exports.ColumnWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const material_1 = require("@mui/material");
9
9
  const column_1 = require("../../../../models/column");
10
10
  const _utils_1 = require("../../../../utils");
11
11
  const column_source_type_icons_1 = require("../../../../components/column-source-type-icons");
12
- const _InlineEditorField_1 = require("./_InlineEditorField");
12
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
13
13
  const sourceTypeIcon = {
14
14
  [column_1.Column.SourceType.Boolean]: react_1.default.createElement(column_source_type_icons_1.SourceTypeBoolean, { size: 20 }),
15
15
  [column_1.Column.SourceType.Date]: react_1.default.createElement(column_source_type_icons_1.SourceTypeDate, { size: 20 }),
@@ -51,6 +51,8 @@ const ColumnWidget = (props) => {
51
51
  }, renderInput: params => (react_1.default.createElement(material_1.TextField, Object.assign({}, params, { variant: "standard", placeholder: "Column" }))) })));
52
52
  };
53
53
  exports.ColumnWidget = ColumnWidget;
54
- const ColumnInputField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { widget: exports.ColumnWidget, widgetProps: { columns: props.columns } })));
55
- exports.ColumnInputField = ColumnInputField;
54
+ const ColumnInlineEditor = (props) => {
55
+ return (react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { widget: exports.ColumnWidget, widgetProps: { columns: props.columns }, prettifyFn: column => column === null || column === void 0 ? void 0 : column.name })));
56
+ };
57
+ exports.ColumnInlineEditor = ColumnInlineEditor;
56
58
  //# sourceMappingURL=ColumnField.js.map
@@ -0,0 +1,51 @@
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.BooleanEditor = exports.ChipEditor = exports.StringEditor = exports.NumberEditor = exports.TableEditor = exports.ColumnEditor = exports.TableColumnEditor = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const __1 = require("../");
9
+ function TableColumnEditor(props) {
10
+ const label = props.label;
11
+ const value = props.draft[label];
12
+ return (react_1.default.createElement(__1.TableColumnInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })), tableColumns: props.tableColumns }));
13
+ }
14
+ exports.TableColumnEditor = TableColumnEditor;
15
+ function ColumnEditor(props) {
16
+ const label = props.label;
17
+ const value = props.draft[label];
18
+ return (react_1.default.createElement(__1.ColumnInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })), columns: props.columns }));
19
+ }
20
+ exports.ColumnEditor = ColumnEditor;
21
+ function TableEditor(props) {
22
+ const label = props.label;
23
+ const value = props.draft[label];
24
+ return (react_1.default.createElement(__1.TableInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })), tables: props.tables }));
25
+ }
26
+ exports.TableEditor = TableEditor;
27
+ function NumberEditor(props) {
28
+ const label = props.label;
29
+ const value = props.draft[label];
30
+ return (react_1.default.createElement(__1.NumberInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })) }));
31
+ }
32
+ exports.NumberEditor = NumberEditor;
33
+ function StringEditor(props) {
34
+ const label = props.label;
35
+ const value = props.draft[label];
36
+ return (react_1.default.createElement(__1.StringInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })) }));
37
+ }
38
+ exports.StringEditor = StringEditor;
39
+ function ChipEditor(props) {
40
+ const label = props.label;
41
+ const value = props.draft[label];
42
+ return (react_1.default.createElement(__1.ChipInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })) }));
43
+ }
44
+ exports.ChipEditor = ChipEditor;
45
+ function BooleanEditor(props) {
46
+ const label = props.label;
47
+ const value = props.draft[label];
48
+ return (react_1.default.createElement(__1.BooleanInlineEditor, { label: label, value: value, onValueChange: value => props.onDraftChange(Object.assign(Object.assign({}, props.draft), { [label]: value })) }));
49
+ }
50
+ exports.BooleanEditor = BooleanEditor;
51
+ //# sourceMappingURL=DraftEditors.js.map
@@ -3,18 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NumberInlineField = exports.NumberInlineEditor = exports.NumberWidget = void 0;
6
+ exports.NumberInlineEditor = exports.NumberWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const material_1 = require("@mui/material");
9
- const _InlineEditorField_1 = require("./_InlineEditorField");
9
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
10
10
  function NumberWidget(props) {
11
- return (react_1.default.createElement(material_1.TextField, { style: { width: '80px' }, value: props.value, variant: "standard", type: "number", autoFocus: true, onBlur: props.onBlur, onChange: e => props.onValueChange(Number(e.target.value)) }));
11
+ return (react_1.default.createElement(material_1.TextField, { style: { width: '80px' }, value: props.value, variant: "standard", autoFocus: true, onBlur: props.onBlur, onChange: e => {
12
+ props.onValueChange(e.target.value);
13
+ } }));
12
14
  }
13
15
  exports.NumberWidget = NumberWidget;
14
16
  const NumberInlineEditor = (props) => {
15
- return react_1.default.createElement(_InlineEditorField_1.InlineEditor, Object.assign({}, props, { widget: NumberWidget }));
17
+ return react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { widget: NumberWidget, valueType: "number" }));
16
18
  };
17
19
  exports.NumberInlineEditor = NumberInlineEditor;
18
- const NumberInlineField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { widget: NumberWidget })));
19
- exports.NumberInlineField = NumberInlineField;
20
20
  //# sourceMappingURL=NumberField.js.map
@@ -3,18 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StringInlineField = exports.StringInlineEditor = exports.StringWidget = void 0;
6
+ exports.StringInlineEditor = exports.StringWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const material_1 = require("@mui/material");
9
- const _InlineEditorField_1 = require("./_InlineEditorField");
9
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
10
10
  function StringWidget(props) {
11
11
  return (react_1.default.createElement(material_1.TextField, { style: { width: '120px' }, value: props.value, variant: "standard", autoFocus: true, onBlur: props.onBlur, onChange: e => props.onValueChange(e.target.value) }));
12
12
  }
13
13
  exports.StringWidget = StringWidget;
14
14
  const StringInlineEditor = (props) => {
15
- return react_1.default.createElement(_InlineEditorField_1.InlineEditor, Object.assign({}, props, { widget: StringWidget }));
15
+ return react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { widget: StringWidget }));
16
16
  };
17
17
  exports.StringInlineEditor = StringInlineEditor;
18
- const StringInlineField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { widget: StringWidget })));
19
- exports.StringInlineField = StringInlineField;
20
18
  //# sourceMappingURL=StringField.js.map
@@ -3,13 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TableColumnInlineField = exports.TableColumnInlineEditor = exports.TableColumnWidget = void 0;
6
+ exports.TableColumnInlineEditor = exports.TableColumnWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const column_1 = require("../../../../models/column");
9
9
  const _utils_1 = require("../../../../utils");
10
10
  const ColumnField_1 = require("./ColumnField");
11
11
  const TableField_1 = require("./TableField");
12
- const _InlineEditorField_1 = require("./_InlineEditorField");
12
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
13
13
  const TableColumnWidget = (props) => {
14
14
  var _a, _b, _c;
15
15
  const columns = getAdtColumns(props.tableColumns, (_a = props.value) === null || _a === void 0 ? void 0 : _a.table);
@@ -22,11 +22,9 @@ const TableColumnWidget = (props) => {
22
22
  };
23
23
  exports.TableColumnWidget = TableColumnWidget;
24
24
  const TableColumnInlineEditor = (props) => {
25
- return (react_1.default.createElement(_InlineEditorField_1.InlineEditor, Object.assign({}, props, { widget: exports.TableColumnWidget, widgetProps: { tableColumns: props.tableColumns }, prettifyFn: column => column_1.FullColumnName.create(column) })));
25
+ return (react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { widget: exports.TableColumnWidget, widgetProps: { tableColumns: props.tableColumns }, prettifyFn: column => column_1.FullColumnName.create(column) })));
26
26
  };
27
27
  exports.TableColumnInlineEditor = TableColumnInlineEditor;
28
- const TableColumnInlineField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { widget: exports.TableColumnWidget, prettifyFn: column => column_1.FullColumnName.create(column), widgetProps: { tableColumns: props.tableColumns } })));
29
- exports.TableColumnInlineField = TableColumnInlineField;
30
28
  function getAdtColumns(tableColumns, tableName) {
31
29
  var _a;
32
30
  return (0, _utils_1.isSet)(tableName) ? (_a = tableColumns[tableName]) !== null && _a !== void 0 ? _a : [] : [];
@@ -3,15 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TableInlineField = exports.TableWidget = void 0;
6
+ exports.TableInlineEditor = exports.TableWidget = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const material_1 = require("@mui/material");
9
- const _InlineEditorField_1 = require("./_InlineEditorField");
9
+ const _InlineDraftEditor_1 = require("./_InlineDraftEditor");
10
10
  const TableWidget = (props) => {
11
11
  var _a;
12
12
  return (react_1.default.createElement(material_1.Autocomplete, { style: { width: '180px' }, options: props.tables, value: (_a = props.value) !== null && _a !== void 0 ? _a : null, size: "small", autoComplete: true, blurOnSelect: true, onBlur: props.onBlur, onChange: (e, value) => value && props.onValueChange(value), renderInput: params => (react_1.default.createElement(material_1.TextField, Object.assign({}, params, { variant: "standard", placeholder: "Table" }))) }));
13
13
  };
14
14
  exports.TableWidget = TableWidget;
15
- const TableInlineField = (props) => (react_1.default.createElement(_InlineEditorField_1.InlineEditorField, Object.assign({}, props, { widget: exports.TableWidget, widgetProps: { tables: props.tables } })));
16
- exports.TableInlineField = TableInlineField;
15
+ const TableInlineEditor = (props) => {
16
+ return (react_1.default.createElement(_InlineDraftEditor_1.InlineEditor, Object.assign({}, props, { widget: exports.TableWidget, widgetProps: { tables: props.tables } })));
17
+ };
18
+ exports.TableInlineEditor = TableInlineEditor;
17
19
  //# sourceMappingURL=TableField.js.map
@@ -3,13 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InlineEditorField = exports.InlineEditor = void 0;
6
+ exports.InlineEditor = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
- const lodash_1 = require("lodash");
9
8
  const _utils_1 = require("../../../../utils");
10
- const context_1 = require("../../context");
11
9
  function InlineEditor(props) {
12
- var _a;
10
+ var _a, _b;
13
11
  const value = (_a = props.value) !== null && _a !== void 0 ? _a : null;
14
12
  const onValueChange = props.onValueChange;
15
13
  const [isSummaryVisible, setIsSummaryVisible] = react_1.default.useState(() => true);
@@ -20,9 +18,7 @@ function InlineEditor(props) {
20
18
  const displayedValue = props.prettifyFn && (0, _utils_1.isSet)(value)
21
19
  ? props.prettifyFn(value)
22
20
  : `'${value !== null && value !== void 0 ? value : '...'}'`;
23
- const valueTypeClass = typeof value === 'string' || typeof value === 'object'
24
- ? 'string-value'
25
- : 'number-value';
21
+ const valueTypeClass = `${(_b = props.valueType) !== null && _b !== void 0 ? _b : 'string'}-value`;
26
22
  return (react_1.default.createElement("span", { className: "inline-editor" },
27
23
  props.label,
28
24
  react_1.default.createElement("span", { className: "equal-sign" }, "="),
@@ -31,18 +27,4 @@ function InlineEditor(props) {
31
27
  " "))));
32
28
  }
33
29
  exports.InlineEditor = InlineEditor;
34
- function InlineEditorField(props) {
35
- var _a, _b;
36
- const [state, dispatch] = (0, context_1.useFeatureDescriptorEditorContext)();
37
- const value = (_a = (0, lodash_1.get)(state, props.field)) !== null && _a !== void 0 ? _a : null;
38
- const onValueChange = (value) => {
39
- dispatch(context_1.FeatureDescriptorEditorActions.setDraftField({
40
- field: props.field,
41
- value,
42
- }));
43
- };
44
- const label = (_b = props.field.split('.').pop()) !== null && _b !== void 0 ? _b : '';
45
- return (react_1.default.createElement(InlineEditor, Object.assign({}, props, { label: label, value: value, onValueChange: onValueChange })));
46
- }
47
- exports.InlineEditorField = InlineEditorField;
48
- //# sourceMappingURL=_InlineEditorField.js.map
30
+ //# sourceMappingURL=_InlineDraftEditor.js.map
@@ -14,7 +14,8 @@ 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("./_InlineEditorField"), exports);
17
+ __exportStar(require("./_InlineDraftEditor"), exports);
18
+ __exportStar(require("./DraftEditors"), exports);
18
19
  __exportStar(require("./StringField"), exports);
19
20
  __exportStar(require("./NumberField"), exports);
20
21
  __exportStar(require("./ChipField"), exports);
@@ -15,5 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./FilterTypeSelection"), exports);
18
- __exportStar(require("./FilterTableColumnInlineEditor"), exports);
19
18
  //# sourceMappingURL=index.js.map
@@ -8,7 +8,6 @@ const react_1 = __importDefault(require("react"));
8
8
  const feature_descriptor_1 = require("../../../../models/feature-descriptor");
9
9
  const context_1 = require("../../context");
10
10
  const JoinConditionTypeSelection_1 = require("./JoinConditionTypeSelection");
11
- const JoinTableColumnSelector_1 = require("./JoinTableColumnSelector");
12
11
  const EditorWrapper_1 = require("../EditorWrapper");
13
12
  const field_widgets_1 = require("../field-widgets");
14
13
  const joinConditionEditorTemplate = {
@@ -17,46 +16,28 @@ const joinConditionEditorTemplate = {
17
16
  var _a, _b;
18
17
  const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
19
18
  return [
20
- 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)),
21
- 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)),
19
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [] }, props)),
20
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [] }, props)),
22
21
  ];
23
22
  },
24
23
  [feature_descriptor_1.JoinCondition.Type.Time]: props => {
25
24
  var _a, _b;
26
25
  const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
27
- const from_value = 'from_value' in props.joinCondition
28
- ? props.joinCondition.from_value
29
- : null;
30
- const to_value = 'to_value' in props.joinCondition ? props.joinCondition.to_value : null;
31
26
  return [
32
- 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 }),
33
- 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 }),
34
- react_1.default.createElement(field_widgets_1.StringInlineEditor, { label: "from_value", value: from_value, onValueChange: from_value => {
35
- props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { from_value }));
36
- } }),
37
- react_1.default.createElement(field_widgets_1.StringInlineEditor, { label: "to_value", value: to_value, onValueChange: to_value => {
38
- props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { to_value }));
39
- } }),
27
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [] }, props)),
28
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [] }, props)),
29
+ react_1.default.createElement(field_widgets_1.StringEditor, Object.assign({ label: "from_value" }, props)),
30
+ react_1.default.createElement(field_widgets_1.StringEditor, Object.assign({ label: "to_value" }, props)),
40
31
  ];
41
32
  },
42
33
  [feature_descriptor_1.JoinCondition.Type.PeriodicTime]: props => {
43
34
  var _a, _b;
44
35
  const [state] = (0, context_1.useFeatureDescriptorEditorContext)();
45
- const periodic_unit = 'periodic_unit' in props.joinCondition
46
- ? props.joinCondition.periodic_unit
47
- : null;
48
- const num_cycles = 'num_cycles' in props.joinCondition
49
- ? props.joinCondition.num_cycles
50
- : null;
51
36
  return [
52
- 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)),
53
- 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)),
54
- react_1.default.createElement(field_widgets_1.StringInlineEditor, { label: "periodic_unit", value: periodic_unit, onValueChange: periodic_unit => {
55
- props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { periodic_unit }));
56
- } }),
57
- react_1.default.createElement(field_widgets_1.NumberInlineEditor, { label: "num_cycles", value: num_cycles, onValueChange: num_cycles => {
58
- props.onJoinConditionChange(Object.assign(Object.assign({}, props.joinCondition), { num_cycles }));
59
- } }),
37
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "target_side_column", columns: (_a = props.tableColumns[state.join.target_table]) !== null && _a !== void 0 ? _a : [] }, props)),
38
+ react_1.default.createElement(field_widgets_1.ColumnEditor, Object.assign({ label: "source_side_column", columns: (_b = props.tableColumns[state.join.source_table]) !== null && _b !== void 0 ? _b : [] }, props)),
39
+ react_1.default.createElement(field_widgets_1.StringEditor, Object.assign({ label: "periodic_unit" }, props)),
40
+ react_1.default.createElement(field_widgets_1.NumberEditor, Object.assign({ label: "num_cycles" }, props)),
60
41
  ];
61
42
  },
62
43
  };
@@ -64,8 +45,8 @@ const InlineJoinConditionEditor = (props) => {
64
45
  const templates = props.joinCondition.type
65
46
  ? joinConditionEditorTemplate[props.joinCondition.type]({
66
47
  tableColumns: props.tableColumns,
67
- joinCondition: props.joinCondition,
68
- onJoinConditionChange: props.onJoinConditionChange,
48
+ draft: props.joinCondition,
49
+ onDraftChange: props.onJoinConditionChange,
69
50
  })
70
51
  : [];
71
52
  return (react_1.default.createElement(EditorWrapper_1.EditorWrapper, { templates: templates, selectorWidth: 130, selectedType: props.joinCondition.type },
@@ -22,12 +22,12 @@ const TemporalChangeDraft = zod_1.z.object({
22
22
  const LatestKDraft = zod_1.z.object({
23
23
  source_time_filed: common_field_draft_1.ColumnDraft,
24
24
  source_field: common_field_draft_1.ColumnDraft,
25
- k: zod_1.z.number(),
25
+ k: common_field_draft_1.NumberDraft,
26
26
  });
27
27
  const TopicWeightDraft = zod_1.z.object({
28
28
  text_topic_field: common_field_draft_1.ColumnDraft,
29
29
  original_text_column_name: common_field_draft_1.ColumnDraft,
30
- index: zod_1.z.number(),
30
+ index: common_field_draft_1.NumberDraft,
31
31
  });
32
32
  const AggregationDrafts = {
33
33
  [feature_descriptor_1.Aggregation.Type.AbsoluteTemporalChangeCountRecords]: TemporalChangeDraft.omit({ source_column: true }).merge(zod_1.z.object({
@@ -48,13 +48,13 @@ const AggregationDrafts = {
48
48
  [feature_descriptor_1.Aggregation.Type.AnyBetween]: zod_1.z.object({
49
49
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AnyBetween),
50
50
  field: common_field_draft_1.ColumnDraft,
51
- lower_edge: zod_1.z.number(),
52
- upper_edge: zod_1.z.number(),
51
+ lower_edge: common_field_draft_1.NumberDraft,
52
+ upper_edge: common_field_draft_1.NumberDraft,
53
53
  }),
54
54
  [feature_descriptor_1.Aggregation.Type.AnyValue]: zod_1.z.object({
55
55
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AnyValue),
56
56
  field: common_field_draft_1.ColumnDraft,
57
- value: zod_1.z.number(),
57
+ value: common_field_draft_1.NumberDraft,
58
58
  }),
59
59
  [feature_descriptor_1.Aggregation.Type.AsIs]: zod_1.z.object({
60
60
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.AsIs),
@@ -64,14 +64,14 @@ const AggregationDrafts = {
64
64
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.C3),
65
65
  source_time_field: common_field_draft_1.ColumnDraft,
66
66
  source_field: common_field_draft_1.ColumnDraft,
67
- lag: zod_1.z.number(),
67
+ lag: common_field_draft_1.NumberDraft,
68
68
  }),
69
69
  [feature_descriptor_1.Aggregation.Type.CWT]: zod_1.z.object({
70
70
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CWT),
71
71
  source_time_field: common_field_draft_1.ColumnDraft,
72
72
  source_field: common_field_draft_1.ColumnDraft,
73
- index: zod_1.z.number(),
74
- width: zod_1.z.number(),
73
+ index: common_field_draft_1.NumberDraft,
74
+ width: common_field_draft_1.NumberDraft,
75
75
  }),
76
76
  [feature_descriptor_1.Aggregation.Type.ClosestTimeDifference]: zod_1.z.object({
77
77
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.ClosestTimeDifference),
@@ -86,13 +86,13 @@ const AggregationDrafts = {
86
86
  [feature_descriptor_1.Aggregation.Type.CountBetween]: zod_1.z.object({
87
87
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountBetween),
88
88
  field: common_field_draft_1.ColumnDraft,
89
- lower_edge: zod_1.z.number(),
90
- upper_edge: zod_1.z.number(),
89
+ lower_edge: common_field_draft_1.NumberDraft,
90
+ upper_edge: common_field_draft_1.NumberDraft,
91
91
  }),
92
92
  [feature_descriptor_1.Aggregation.Type.CountOfValue]: zod_1.z.object({
93
93
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountOfValue),
94
94
  field: common_field_draft_1.ColumnDraft,
95
- value: zod_1.z.number(),
95
+ value: common_field_draft_1.NumberDraft,
96
96
  }),
97
97
  [feature_descriptor_1.Aggregation.Type.CountRecords]: zod_1.z.object({
98
98
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.CountRecords),
@@ -115,13 +115,13 @@ const AggregationDrafts = {
115
115
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.GridTargetMeanEncode),
116
116
  latitude_field: common_field_draft_1.ColumnDraft,
117
117
  longitude_field: common_field_draft_1.ColumnDraft,
118
- encoder_id: zod_1.z.number(),
118
+ encoder_id: common_field_draft_1.NumberDraft,
119
119
  distance: zod_1.z.string(),
120
120
  }),
121
121
  [feature_descriptor_1.Aggregation.Type.HistogramEqualityRatio]: zod_1.z.object({
122
122
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.HistogramEqualityRatio),
123
123
  field: common_field_draft_1.ColumnDraft,
124
- value: zod_1.z.number(),
124
+ value: common_field_draft_1.NumberDraft,
125
125
  }),
126
126
  [feature_descriptor_1.Aggregation.Type.Hour]: zod_1.z.object({
127
127
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.Hour),
@@ -199,7 +199,7 @@ const AggregationDrafts = {
199
199
  [feature_descriptor_1.Aggregation.Type.N1RedundantRatioOfValue]: zod_1.z.object({
200
200
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantRatioOfValue),
201
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()]),
202
+ ratio_value: zod_1.z.union([common_field_draft_1.NumberDraft, zod_1.z.string(), zod_1.z.boolean()]),
203
203
  null_inclusion: zod_1.z.boolean(),
204
204
  }),
205
205
  [feature_descriptor_1.Aggregation.Type.N1RedundantSum]: zod_1.z.object({
@@ -210,13 +210,13 @@ const AggregationDrafts = {
210
210
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightMean),
211
211
  text_topic_field: common_field_draft_1.ColumnDraft,
212
212
  original_text_column_name: common_field_draft_1.ColumnDraft,
213
- index: zod_1.z.number(),
213
+ index: common_field_draft_1.NumberDraft,
214
214
  }),
215
215
  [feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightSum]: zod_1.z.object({
216
216
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.N1RedundantTopicWeightSum),
217
217
  text_topic_field: common_field_draft_1.ColumnDraft,
218
218
  original_text_column_name: common_field_draft_1.ColumnDraft,
219
- index: zod_1.z.number(),
219
+ index: common_field_draft_1.NumberDraft,
220
220
  }),
221
221
  [feature_descriptor_1.Aggregation.Type.NgramCount]: zod_1.z.object({
222
222
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.NgramCount),
@@ -234,13 +234,13 @@ const AggregationDrafts = {
234
234
  [feature_descriptor_1.Aggregation.Type.RatioBetween]: zod_1.z.object({
235
235
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.RatioBetween),
236
236
  field: common_field_draft_1.ColumnDraft,
237
- lower_edge: zod_1.z.number(),
238
- upper_edge: zod_1.z.number(),
237
+ lower_edge: common_field_draft_1.NumberDraft,
238
+ upper_edge: common_field_draft_1.NumberDraft,
239
239
  }),
240
240
  [feature_descriptor_1.Aggregation.Type.RatioOfValue]: zod_1.z.object({
241
241
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.RatioOfValue),
242
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()]),
243
+ ratio_value: zod_1.z.union([common_field_draft_1.NumberDraft, zod_1.z.string(), zod_1.z.boolean()]),
244
244
  null_inclusion: zod_1.z.boolean(),
245
245
  }),
246
246
  [feature_descriptor_1.Aggregation.Type.Std]: zod_1.z.object({
@@ -266,7 +266,7 @@ const AggregationDrafts = {
266
266
  [feature_descriptor_1.Aggregation.Type.TargetMeanEncode]: zod_1.z.object({
267
267
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TargetMeanEncode),
268
268
  field: common_field_draft_1.ColumnDraft,
269
- encode_field: zod_1.z.number(),
269
+ encode_field: common_field_draft_1.NumberDraft,
270
270
  }),
271
271
  [feature_descriptor_1.Aggregation.Type.TargetTimeDifference]: zod_1.z.object({
272
272
  type: zod_1.z.literal(feature_descriptor_1.Aggregation.Type.TargetTimeDifference),
@@ -324,15 +324,14 @@ var AggregationDraft;
324
324
  (function (AggregationDraft) {
325
325
  function fromAggregation(aggregation, tableColumns) {
326
326
  const schema = AggregationDrafts[aggregation.type];
327
- const aggr = aggregation;
328
327
  const columnFields = Object.entries(schema.shape)
329
328
  .filter(([_, field]) => field.description === 'Column')
330
329
  .map(([colName]) => colName);
331
- return Object.assign(Object.assign({}, aggr), Object.fromEntries(columnFields.map(field => {
330
+ return Object.assign(Object.assign({}, aggregation), Object.fromEntries(columnFields.map(field => {
332
331
  var _a;
333
332
  return [
334
333
  field,
335
- (_a = column_1.Column.fromFullName(aggr[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
334
+ (_a = column_1.Column.fromFullName(aggregation[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
336
335
  ];
337
336
  })));
338
337
  }
@@ -9,5 +9,22 @@ exports.ColumnDraft = zod_1.z
9
9
  name: zod_1.z.string(),
10
10
  }, { description: 'Column' })
11
11
  .transform(column_1.FullColumnName.create);
12
- exports.NumberDraft = zod_1.z.number({ description: 'Number' });
12
+ exports.NumberDraft = zod_1.z
13
+ .union([
14
+ zod_1.z.literal('inf'),
15
+ zod_1.z.literal('-inf'),
16
+ zod_1.z.number(),
17
+ zod_1.z
18
+ .string()
19
+ .refine(val => val !== '' && !isNaN(Number(val)), {
20
+ message: "Invalid value, must be a number or 'inf' or '-inf'",
21
+ }),
22
+ ])
23
+ .transform(val => {
24
+ if (val === 'inf')
25
+ return 'inf';
26
+ if (val === '-inf')
27
+ return -'-inf';
28
+ return Number(val);
29
+ });
13
30
  //# sourceMappingURL=common-field-draft.js.map
@@ -8,18 +8,18 @@ const common_field_draft_1 = require("./common-field-draft");
8
8
  const AboveFilterDraft = zod_1.z.object({
9
9
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.Above),
10
10
  column: common_field_draft_1.ColumnDraft,
11
- min_inclusive: zod_1.z.number(),
11
+ min_inclusive: common_field_draft_1.NumberDraft,
12
12
  });
13
13
  const BelowFilterDraft = zod_1.z.object({
14
14
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.Below),
15
15
  column: common_field_draft_1.ColumnDraft,
16
- max_exclusive: zod_1.z.number(),
16
+ max_exclusive: common_field_draft_1.NumberDraft,
17
17
  });
18
18
  const BetweenFilterDraft = zod_1.z.object({
19
19
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.Between),
20
20
  column: common_field_draft_1.ColumnDraft,
21
- min_inclusive: zod_1.z.number(),
22
- max_exclusive: zod_1.z.number(),
21
+ min_inclusive: common_field_draft_1.NumberDraft,
22
+ max_exclusive: common_field_draft_1.NumberDraft,
23
23
  });
24
24
  const FullPassFilterDraft = zod_1.z.object({
25
25
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.FullPass),
@@ -27,8 +27,8 @@ const FullPassFilterDraft = zod_1.z.object({
27
27
  const HourOfDayFilterDraft = zod_1.z.object({
28
28
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.HourOfDay),
29
29
  column: common_field_draft_1.ColumnDraft,
30
- min_hour_inclusive: zod_1.z.number(),
31
- max_hour_exclusive: zod_1.z.number(),
30
+ min_hour_inclusive: common_field_draft_1.NumberDraft,
31
+ max_hour_exclusive: common_field_draft_1.NumberDraft,
32
32
  });
33
33
  const NgramFilterDraft = zod_1.z.object({
34
34
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.NgramFilter),
@@ -38,7 +38,7 @@ const NgramFilterDraft = zod_1.z.object({
38
38
  const ValueFilterDraft = zod_1.z.object({
39
39
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.Value),
40
40
  column: common_field_draft_1.ColumnDraft,
41
- value: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()]),
41
+ value: zod_1.z.union([zod_1.z.string(), common_field_draft_1.NumberDraft, zod_1.z.boolean()]),
42
42
  });
43
43
  const WeekdayFilterDraft = zod_1.z.object({
44
44
  type: zod_1.z.literal(feature_descriptor_1.Filter.Type.Weekday),
@@ -82,7 +82,6 @@ var FilterDraft;
82
82
  (function (FilterDraft) {
83
83
  function fromFilter(filter, tableColumns) {
84
84
  const schema = FilterDrafts[filter.type];
85
- const _filter = filter;
86
85
  const columnFields = Object.entries(schema.shape)
87
86
  .filter(([_, field]) => field.description === 'Column')
88
87
  .map(([colName]) => colName);
@@ -96,7 +95,7 @@ var FilterDraft;
96
95
  var _a;
97
96
  return [
98
97
  field,
99
- (_a = column_1.Column.fromFullName(_filter[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
98
+ (_a = column_1.Column.fromFullName(filter[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
100
99
  ];
101
100
  })));
102
101
  }