dotdata_widgets 0.2.2 → 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
@@ -18,7 +18,7 @@ const PeriodicTimeJoinConditionDraft = zod_1.z.object({
18
18
  target_side_column: common_field_draft_1.ColumnDraft,
19
19
  source_side_column: common_field_draft_1.ColumnDraft,
20
20
  periodic_unit: zod_1.z.string(),
21
- num_cycles: zod_1.z.number(),
21
+ num_cycles: common_field_draft_1.NumberDraft,
22
22
  });
23
23
  const TimeJoinConditionDraft = zod_1.z.object({
24
24
  type: zod_1.z.literal(feature_descriptor_1.JoinCondition.Type.Time),
@@ -41,7 +41,6 @@ var JoinDraft;
41
41
  source_table: join.source_table,
42
42
  join_conditions: join.join_conditions.map((condition) => {
43
43
  const schema = JoinConditionsDrafts[condition.type];
44
- const _condition = condition;
45
44
  const columnFields = Object.entries(schema.shape)
46
45
  .filter(([_, field]) => field.description === 'Column')
47
46
  .map(([colName]) => colName);
@@ -49,7 +48,7 @@ var JoinDraft;
49
48
  var _a;
50
49
  return [
51
50
  field,
52
- (_a = column_1.Column.fromFullName(_condition[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
51
+ (_a = column_1.Column.fromFullName(condition[field], tableColumns)) !== null && _a !== void 0 ? _a : {},
53
52
  ];
54
53
  })));
55
54
  }),
@@ -14,10 +14,6 @@ const ExplorationPathHeader = props => {
14
14
  gap: '8px',
15
15
  background: 'var(--c-catskill-white)',
16
16
  } },
17
- react_1.default.createElement("h4", { className: "grey-label", style: { margin: 0 } },
18
- "[#",
19
- props.explorationPathIndex,
20
- "]"),
21
17
  react_1.default.createElement("div", null,
22
18
  targetTable,
23
19
  "[",
@@ -37,22 +37,21 @@ const FeatureLeaderboardView = ({ model }) => {
37
37
  minWidth: '100%',
38
38
  marginBottom: '2px',
39
39
  } }, featureEntries.map(featureEntry => (react_1.default.createElement(react_1.default.Fragment, null,
40
- react_1.default.createElement(FeatureLeaderboardEntryDrawer_1.FeatureLeaderboardEntryDrawer, { key: featureEntry.feature.id, featureEntry: featureEntry, tableColumn: tableColumns, isWithAssessment: isWithAssessment, onModelChange: mode => {
40
+ react_1.default.createElement(FeatureLeaderboardEntryDrawer_1.FeatureLeaderboardEntryDrawer, { key: featureEntry.feature.id, featureEntry: featureEntry, originFeatureId: featureEntry.feature.id, tableColumn: tableColumns, isWithAssessment: isWithAssessment, onModelChange: mode => {
41
41
  if (mode === FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy) {
42
42
  const originId = feature_1.FeatureId.getOriginId(featureEntry.feature.id);
43
43
  (0, _utils_1.sha256)(`${new Date()}_${featureEntry.feature.id}`, 8).then(id => {
44
44
  const feature = Object.assign(Object.assign({}, featureEntry), { isAssessed: false, feature: Object.assign(Object.assign({}, featureEntry.feature), { id: `${originId}_${id}` }) });
45
45
  setCopiedFeature({
46
- feature,
46
+ feature: Object.assign(Object.assign({}, feature), { signalConfidence: 0 }),
47
47
  parentId: featureEntry.feature.id,
48
48
  });
49
49
  });
50
50
  }
51
51
  return mode !== FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy;
52
52
  }, isWithActions: isWithActions(featureEntry, isWithAssessment) }),
53
- (copiedFeature === null || copiedFeature === void 0 ? void 0 : copiedFeature.parentId) === featureEntry.feature.id ? (react_1.default.createElement("div", { style: { marginLeft: '30px' } },
54
- react_1.default.createElement(FeatureLeaderboardEntryDrawer_1.FeatureLeaderboardEntryDrawer, { featureEntry: copiedFeature.feature, tableColumn: tableColumns, isWithAssessment: false, initMode: FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy, onCancel: () => setCopiedFeature(undefined), isWithLikes: false, isWithActions: false }),
55
- react_1.default.createElement("br", null))) : null))))));
53
+ (copiedFeature === null || copiedFeature === void 0 ? void 0 : copiedFeature.parentId) === featureEntry.feature.id ? (react_1.default.createElement("div", { style: { marginBottom: '20px' } },
54
+ react_1.default.createElement(FeatureLeaderboardEntryDrawer_1.FeatureLeaderboardEntryDrawer, { featureEntry: copiedFeature.feature, originFeatureId: copiedFeature.parentId, tableColumn: tableColumns, isWithAssessment: isWithAssessment, initMode: FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy, onCancel: () => setCopiedFeature(undefined), isWithLikes: false, isWithActions: false }))) : null))))));
56
55
  };
57
56
  exports.FeatureLeaderboardView = FeatureLeaderboardView;
58
57
  function isWithActions(featureEntry, isWithAssessment) {
@@ -43,7 +43,7 @@ const FeatureLeaderboardEntryDrawer = (props) => {
43
43
  react_1.default.createElement("div", { className: "feature-leaderboard-entry-drawer-details" },
44
44
  react_1.default.createElement(material_1.Collapse, { in: mode === DrawerMode.Code || mode === DrawerMode.Copy, unmountOnExit: true },
45
45
  react_1.default.createElement("br", null),
46
- react_1.default.createElement(FeatureLeaderboardEntryFeatureEditor_1.FeatureLeaderboardEntryFeatureEditor, { featureId: props.featureEntry.feature.id, featureDescriptor: props.featureEntry.featureDescriptor, tableColumns: props.tableColumn, onClose: onCancel })),
46
+ react_1.default.createElement(FeatureLeaderboardEntryFeatureEditor_1.FeatureLeaderboardEntryFeatureEditor, { mode: mode, featureId: props.featureEntry.feature.id, originFeatureId: props.originFeatureId, featureDescriptor: props.featureEntry.featureDescriptor, tableColumns: props.tableColumn, onClose: onCancel })),
47
47
  react_1.default.createElement(material_1.Collapse, { in: mode === DrawerMode.Details, unmountOnExit: true },
48
48
  react_1.default.createElement(FeatureLeaderboardEntryDetails_1.FeatureLeaderboardEntryDetails, { entry: props.featureEntry })))));
49
49
  };
@@ -9,14 +9,19 @@ const widget_model_1 = require("../../../utils/widget-model");
9
9
  const widget_api_1 = require("../../../utils/widget-api");
10
10
  const ActionFooter_1 = require("../../../components/ActionFooter");
11
11
  const feature_descriptor_editor_1 = require("../../../feature-descriptor/feature-descriptor-editor");
12
+ const FeatureLeaderboardEntryDrawer_1 = require("./FeatureLeaderboardEntryDrawer");
12
13
  const Footer = (props) => {
14
+ const [featureLeaderboard] = (0, widget_model_1.useModelState)('value');
13
15
  const Widget = widget_api_1.WidgetApi.init((0, widget_model_1.useWidgetModelContext)());
14
16
  const [editor] = (0, feature_descriptor_editor_1.useFeatureDescriptorEditorContext)();
15
17
  const validatedDraft = react_1.default.useMemo(() => feature_descriptor_editor_1.FeatureDescriptorDraft.validate(editor), [editor]);
16
18
  return (react_1.default.createElement(ActionFooter_1.ActionFooter, { primaryButton: { label: 'Save', isDisabled: !validatedDraft.success }, tertiaryButton: { label: 'Cancel' }, onTertiaryButtonClick: props.onClose, onPrimaryButtonClick: () => {
19
+ const entriesPositions = getEntriesPositions(featureLeaderboard, props.featureId, props.originFeatureId, props.mode);
20
+ console.log(props.mode, entriesPositions);
17
21
  Widget.callMethod('save_feature', {
18
22
  id: props.featureId,
19
23
  descriptor: validatedDraft.data,
24
+ entries_positions: entriesPositions,
20
25
  })
21
26
  .then(() => props.onClose())
22
27
  .catch(e => console.error(e));
@@ -25,7 +30,14 @@ const Footer = (props) => {
25
30
  const FeatureLeaderboardEntryFeatureEditor = (props) => {
26
31
  return (react_1.default.createElement(feature_descriptor_editor_1.FeatureDescriptorEditorContextProvider, { initFeatureDescriptor: props.featureDescriptor, tableColumns: props.tableColumns },
27
32
  react_1.default.createElement(feature_descriptor_editor_1.FeatureDescriptorEditor, { featureDescriptor: props.featureDescriptor, tableColumns: props.tableColumns }),
28
- react_1.default.createElement(Footer, { featureId: props.featureId, onClose: props.onClose })));
33
+ react_1.default.createElement(Footer, { mode: props.mode, featureId: props.featureId, originFeatureId: props.originFeatureId, onClose: props.onClose })));
29
34
  };
30
35
  exports.FeatureLeaderboardEntryFeatureEditor = FeatureLeaderboardEntryFeatureEditor;
36
+ function getEntriesPositions(featureLeaderboard, featureId, originFeatureId, mode) {
37
+ return featureLeaderboard.allEntries.map(group => group
38
+ .map(feature => mode === FeatureLeaderboardEntryDrawer_1.DrawerMode.Code || feature.feature.id !== originFeatureId
39
+ ? feature.feature.id
40
+ : [feature.feature.id, featureId])
41
+ .flat());
42
+ }
31
43
  //# sourceMappingURL=FeatureLeaderboardEntryFeatureEditor.js.map
@@ -27,7 +27,9 @@ const FeatureLeaderboardEntryDrawerHeader = (props) => {
27
27
  react_1.default.createElement(FeatureLabel, { featureEntry: props.featureEntry }),
28
28
  isWithAssessment ? (react_1.default.createElement("span", { className: "confidence-label", style: {
29
29
  '--fill': `${props.featureEntry.signalConfidence * 100}%`,
30
- } }, _utils_1.Localize.formatNumber(props.featureEntry.signalConfidence))) : null,
30
+ } }, props.featureEntry.signalConfidence
31
+ ? _utils_1.Localize.formatNumber(props.featureEntry.signalConfidence)
32
+ : '')) : null,
31
33
  react_1.default.createElement(FeatureLeaderboardEntryExplanation_1.FeatureLeaderboardEntryExplanation, { feature: props.featureEntry.feature, isEdited: props.mode === FeatureLeaderboardEntryDrawer_1.DrawerMode.Edit, onClose: props.onCancel }),
32
34
  react_1.default.createElement(FeatureLeaderboardEntryActions_1.FeatureLeaderboardEntryActions, Object.assign({}, props))));
33
35
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dotdata_widgets",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "A dotdata widget",
5
5
  "keywords": [
6
6
  "dotdata",
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ColumnEditor = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const field_widgets_1 = require("../field-widgets");
9
- const ColumnEditor = (columnField = 'column') => (props) => {
10
- return [
11
- react_1.default.createElement(field_widgets_1.TableColumnInlineField, { key: "text_topic_field", field: `aggregation.${columnField}`, tableColumns: props.tableColumns }),
12
- ];
13
- };
14
- exports.ColumnEditor = ColumnEditor;
15
- //# sourceMappingURL=ColumnEditor.js.map
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FilterTableColumnInlineEditor = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const field_widgets_1 = require("../field-widgets");
9
- const FilterTableColumnInlineEditor = (props) => {
10
- return (react_1.default.createElement(field_widgets_1.TableColumnInlineEditor, { label: "column", value: props.filter.column, onValueChange: column => props.onFilterChange(Object.assign(Object.assign({}, props.filter), { column })), tableColumns: props.tableColumns }));
11
- };
12
- exports.FilterTableColumnInlineEditor = FilterTableColumnInlineEditor;
13
- //# sourceMappingURL=FilterTableColumnInlineEditor.js.map
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.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