dotdata_widgets 0.1.8 → 0.1.10

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 (62) 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/components/accordion/Accordion.js +4 -4
  5. package/lib/embed.js +18 -0
  6. package/lib/extension.js +32 -19
  7. package/lib/feature/feature-details/FeatureDistributionChart.js +1 -6
  8. package/lib/feature/feature-explanation/FeatureExplanation.js +8 -11
  9. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-selection-context.js +1 -1
  10. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-tree-config-context.js +2 -1
  11. package/lib/feature-descriptor/domains-descriptions-tree/context/domains-descriptions-tree-item-selection-context.js +14 -6
  12. package/lib/feature-descriptor/domains-descriptions-tree/domains-descriptions-tree.js +1 -1
  13. package/lib/feature-descriptor/domains-descriptions-tree/models/domains-descriptions-tree.model.js +11 -10
  14. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +109 -8
  15. package/lib/feature-descriptor/feature-descriptor-editor/FeatureDescriptorEditor.js +21 -8
  16. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +65 -0
  17. package/lib/feature-descriptor/feature-descriptor-editor/components/ItemSelection.js +14 -0
  18. package/lib/feature-descriptor/feature-descriptor-editor/components/StringAutocomplete.js +13 -0
  19. package/lib/feature-descriptor/feature-descriptor-editor/components/ValueInput.js +2 -0
  20. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationSelection.js +15 -0
  21. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationTypeSelection.js +15 -0
  22. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +18 -0
  23. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +23 -0
  24. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/aggregation-context.js +37 -0
  25. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +22 -0
  26. package/lib/feature-descriptor/feature-descriptor-editor/components/explainer.js +15 -0
  27. package/lib/feature-descriptor/feature-descriptor-editor/components/fd-operation-context.js +19 -0
  28. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/FieldLabel.js +17 -0
  29. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ItemSelection.js +20 -0
  30. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +24 -0
  31. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +24 -0
  32. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringSelectionField.js +24 -0
  33. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ValueInput.js +19 -0
  34. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +22 -0
  35. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/widget-interface.js +3 -0
  36. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTypeSelection.js +15 -0
  37. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +20 -0
  38. package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +23 -0
  39. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ItemSelection.js +20 -0
  40. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/Label.js +2 -0
  41. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ValueInput.js +19 -0
  42. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/index.js +19 -0
  43. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/widget-interface.js +3 -0
  44. package/lib/feature-descriptor/feature-descriptor-editor/index.js +5 -3
  45. package/lib/models/column/field.js +4 -2
  46. package/lib/models/column/table.js +4 -2
  47. package/lib/models/feature-descriptor/fd_data/aggregation.js +46 -24
  48. package/lib/models/feature-descriptor/fd_data/filter.js +20 -18
  49. package/lib/models/feature-descriptor/fd_data/index.js +7 -5
  50. package/lib/models/feature-descriptor/fd_data/join.js +4 -2
  51. package/lib/models/feature-descriptor/feature-descriptor.js +4 -2
  52. package/lib/models/feature-descriptor/index.js +6 -4
  53. package/lib/notebook.js +18 -0
  54. package/lib/utils/asserations.js +1 -1
  55. package/lib/utils/localize.js +1 -1
  56. package/lib/utils/widget-model/widget-model-context.js +1 -1
  57. package/lib/widgets/FeatureLeaderboardWidget.js +3 -19
  58. package/lib/widgets/FeatureSpaceWidget.js +3 -19
  59. package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +2 -2
  60. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +5 -2
  61. package/lib/widgets/feature-space/FeatureDomainsDescriptions.js +1 -1
  62. package/package.json +2 -1
@@ -32,17 +32,17 @@ exports.AccordionHeader = AccordionHeader;
32
32
  const AccordionDetails = ({ children, }) => react_1.default.createElement(react_1.default.Fragment, null, children);
33
33
  exports.AccordionDetails = AccordionDetails;
34
34
  exports.Accordion = (0, react_1.forwardRef)(({ children, initialState, className }, ref) => {
35
- const [isExpanded, setIsExpanded] = (0, react_1.useState)(() => initialState ?? false);
35
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(() => initialState !== null && initialState !== void 0 ? initialState : false);
36
36
  const components = react_1.default.Children.toArray(children).filter(react_1.default.isValidElement);
37
- const Header = components.find(child => child?.type === exports.AccordionHeader);
38
- const Details = components.find(child => child?.type === exports.AccordionDetails);
37
+ const Header = components.find(child => (child === null || child === void 0 ? void 0 : child.type) === exports.AccordionHeader);
38
+ const Details = components.find(child => (child === null || child === void 0 ? void 0 : child.type) === exports.AccordionDetails);
39
39
  (0, react_1.useImperativeHandle)(ref, () => ({
40
40
  collapse() {
41
41
  setIsExpanded(false);
42
42
  },
43
43
  }));
44
44
  const accordionClasses = (defaultClassNames) => `${defaultClassNames} ${isExpanded ? 'expanded' : 'collapsed'}`;
45
- return (react_1.default.createElement("div", { className: accordionClasses(`dotdata-accordion ${className ?? ''}`) },
45
+ return (react_1.default.createElement("div", { className: accordionClasses(`dotdata-accordion ${className !== null && className !== void 0 ? className : ''}`) },
46
46
  react_1.default.createElement("div", { className: accordionClasses('dotdata-accordion-header') },
47
47
  react_1.default.createElement("div", { className: accordionClasses('dotdata-accordion-header-toggle'), onClick: () => setIsExpanded(!isExpanded) }, "\u25B6"),
48
48
  Header),
package/lib/embed.js ADDED
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./index"), exports);
18
+ //# sourceMappingURL=embed.js.map
package/lib/extension.js CHANGED
@@ -1,21 +1,8 @@
1
1
  "use strict";
2
2
  // Copyright (c) Jupyter Development Team.
3
3
  // Distributed under the terms of the Modified BSD License.
4
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- var desc = Object.getOwnPropertyDescriptor(m, k);
7
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
- desc = { enumerable: true, get: function() { return m[k]; } };
9
- }
10
- Object.defineProperty(o, k2, desc);
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
- };
18
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.load_ipython_extension = void 0;
19
6
  // Entry point for the notebook bundle containing custom model definitions.
20
7
  //
21
8
  // Setup notebook base URL
@@ -23,9 +10,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
10
  // Some static assets may be required by the custom widget javascript. The base
24
11
  // url for the notebook is not known at build time and is therefore computed
25
12
  // dynamically.
26
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
27
- window.__webpack_public_path__ =
28
- document.querySelector('body').getAttribute('data-base-url') +
29
- 'nbextensions/dotdata_widgets';
30
- __exportStar(require("./index"), exports);
13
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
+ // @ts-ignore
15
+ if (window.require) {
16
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
+ // @ts-ignore
18
+ window.require.config({
19
+ map: {
20
+ '*': {
21
+ // prettier-ignore
22
+ 'dotdata_widgets': 'nbextensions/dotdata_widgets/index',
23
+ },
24
+ },
25
+ });
26
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
+ // @ts-ignore
28
+ window.requirejs.config({
29
+ map: {
30
+ '*': {
31
+ // prettier-ignore
32
+ 'dotdata_widgets': 'nbextensions/dotdata_widgets/index',
33
+ },
34
+ },
35
+ });
36
+ }
37
+ exports.default = {
38
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
39
+ load_ipython_extension: function () { },
40
+ };
41
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
42
+ function load_ipython_extension() { }
43
+ exports.load_ipython_extension = load_ipython_extension;
31
44
  //# sourceMappingURL=extension.js.map
@@ -36,12 +36,7 @@ const FeatureDistributionChart = ({ histogram }) => {
36
36
  const histogramSpec = feature_1.ContinuousHistogram.isTypeOf(histogram)
37
37
  ? createContinuousHistogramSpec(histogram)
38
38
  : createDiscreteHistogramSpec(histogram);
39
- const view = new vega.View(vega.parse({
40
- width: elemRef.current.clientWidth,
41
- height: 140,
42
- padding: 5,
43
- ...histogramSpec,
44
- }), {
39
+ const view = new vega.View(vega.parse(Object.assign({ width: elemRef.current.clientWidth, height: 140, padding: 5 }, histogramSpec)), {
45
40
  renderer: 'canvas',
46
41
  hover: true,
47
42
  container: elemRef.current,
@@ -16,31 +16,28 @@ const UnknownExplanationBlock_1 = require("./components/UnknownExplanationBlock"
16
16
  const FeatureExplanationInternal = ({ explanationBlocks, }) => {
17
17
  return (react_1.default.createElement(react_1.default.Fragment, null, explanationBlocks.map(block => {
18
18
  if (feature_explanation_1.FeatureExplanationBlock.isTextExplanationBlock(block)) {
19
- return react_1.default.createElement(TextExplanationBlock_1.TextExplanationBlock, { ...block });
19
+ return react_1.default.createElement(TextExplanationBlock_1.TextExplanationBlock, Object.assign({}, block));
20
20
  }
21
21
  else if (feature_explanation_1.FeatureExplanationBlock.isColumnExplanationBlock(block)) {
22
- return react_1.default.createElement(ColumnExplanationBlock_1.ColumnExplanationBlock, { ...block });
22
+ return react_1.default.createElement(ColumnExplanationBlock_1.ColumnExplanationBlock, Object.assign({}, block));
23
23
  }
24
24
  else if (feature_explanation_1.FeatureExplanationBlock.isDataSlotExplanationBlock(block)) {
25
- return react_1.default.createElement(DataSlotExplanationBlock_1.DataSlotExplanationBlock, { ...block });
25
+ return react_1.default.createElement(DataSlotExplanationBlock_1.DataSlotExplanationBlock, Object.assign({}, block));
26
26
  }
27
27
  else if (feature_explanation_1.FeatureExplanationBlock.isPetExplanationBlock(block)) {
28
- return react_1.default.createElement(PetExplanationBlock_1.PetExplanationBlock, { ...block });
28
+ return react_1.default.createElement(PetExplanationBlock_1.PetExplanationBlock, Object.assign({}, block));
29
29
  }
30
30
  else if (feature_explanation_1.FeatureExplanationBlock.isTextWithDataSlotContextExplanationBlock(block)) {
31
- return react_1.default.createElement(TextWithDataSlotContextExplanationBlock_1.TextWithDataSlotContextExplanationBlock, { ...block });
31
+ return react_1.default.createElement(TextWithDataSlotContextExplanationBlock_1.TextWithDataSlotContextExplanationBlock, Object.assign({}, block));
32
32
  }
33
33
  else if (feature_explanation_1.FeatureExplanationBlock.isTopicExplanationBlock(block)) {
34
- return react_1.default.createElement(TopicExplanationBlock_1.TopicExplanationBlock, { ...block });
34
+ return react_1.default.createElement(TopicExplanationBlock_1.TopicExplanationBlock, Object.assign({}, block));
35
35
  }
36
36
  else if (feature_explanation_1.FeatureExplanationBlock.isOperatorExplanationBlock(block)) {
37
- return (react_1.default.createElement(FeatureExplanationInternal, { explanationBlocks: block.tokens.map(token => ({
38
- ...token,
39
- pathType: block.type,
40
- })) }));
37
+ return (react_1.default.createElement(FeatureExplanationInternal, { explanationBlocks: block.tokens.map(token => (Object.assign(Object.assign({}, token), { pathType: block.type }))) }));
41
38
  }
42
39
  else {
43
- return react_1.default.createElement(UnknownExplanationBlock_1.UnknownExplanationBlock, { ...block });
40
+ return react_1.default.createElement(UnknownExplanationBlock_1.UnknownExplanationBlock, Object.assign({}, block));
44
41
  }
45
42
  })));
46
43
  };
@@ -48,7 +48,7 @@ function DomainsDescriptionsSelectionContextProvider(props) {
48
48
  });
49
49
  props.setSelectedDomainDescriptionIds(Array.from(selectedDomainDescriptionsIds.values()));
50
50
  }
51
- return (React.createElement(exports.DomainsDescriptionsSelectionContext.Provider, { value: [selectedDomainDescriptionsIds, { toggleSelection }], ...props }));
51
+ return (React.createElement(exports.DomainsDescriptionsSelectionContext.Provider, Object.assign({ value: [selectedDomainDescriptionsIds, { toggleSelection }] }, props)));
52
52
  }
53
53
  exports.DomainsDescriptionsSelectionContextProvider = DomainsDescriptionsSelectionContextProvider;
54
54
  //# sourceMappingURL=domains-descriptions-selection-context.js.map
@@ -36,7 +36,8 @@ function useDomainsDescriptionsTreeConfig() {
36
36
  }
37
37
  exports.useDomainsDescriptionsTreeConfig = useDomainsDescriptionsTreeConfig;
38
38
  function DomainsDescriptionsTreeConfigContextProvider(props) {
39
- return (React.createElement(exports.DomainsDescriptionsTreeConfigContext.Provider, { value: props.configuration ?? config_1.DomainsDescriptionsTreeConfig.DEFAULT, ...props }));
39
+ var _a;
40
+ return (React.createElement(exports.DomainsDescriptionsTreeConfigContext.Provider, Object.assign({ value: (_a = props.configuration) !== null && _a !== void 0 ? _a : config_1.DomainsDescriptionsTreeConfig.DEFAULT }, props)));
40
41
  }
41
42
  exports.DomainsDescriptionsTreeConfigContextProvider = DomainsDescriptionsTreeConfigContextProvider;
42
43
  //# sourceMappingURL=domains-descriptions-tree-config-context.js.map
@@ -22,6 +22,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
25
36
  Object.defineProperty(exports, "__esModule", { value: true });
26
37
  exports.DomainsDescriptionsTreeItemSelectionContextProvider = exports.useDomainsDescriptionsTreeItemSelection = exports.DomainsDescriptionsTreeItemSelectionContext = void 0;
27
38
  const lodash_1 = require("lodash");
@@ -40,17 +51,14 @@ function DomainsDescriptionsTreeItemSelectionContextProvider(props) {
40
51
  const [selectedTreeItems, setSelectedTreeItems] = React.useState(() => ({}));
41
52
  function toggleTreeItemSelection(nodeId, domains) {
42
53
  if ((0, _utils_1.isSet)(selectedTreeItems[nodeId])) {
43
- const { [nodeId]: _remove, ...rest } = selectedTreeItems;
54
+ const _a = selectedTreeItems, _b = nodeId, _remove = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
44
55
  setSelectedTreeItems(rest);
45
56
  }
46
57
  else {
47
- setSelectedTreeItems({
48
- ...selectedTreeItems,
49
- [nodeId]: (0, lodash_1.uniqBy)(domains, JSON.stringify),
50
- });
58
+ setSelectedTreeItems(Object.assign(Object.assign({}, selectedTreeItems), { [nodeId]: (0, lodash_1.uniqBy)(domains, JSON.stringify) }));
51
59
  }
52
60
  }
53
- return (React.createElement(exports.DomainsDescriptionsTreeItemSelectionContext.Provider, { value: [selectedTreeItems, { toggleTreeItemSelection }], ...props }));
61
+ return (React.createElement(exports.DomainsDescriptionsTreeItemSelectionContext.Provider, Object.assign({ value: [selectedTreeItems, { toggleTreeItemSelection }] }, props)));
54
62
  }
55
63
  exports.DomainsDescriptionsTreeItemSelectionContextProvider = DomainsDescriptionsTreeItemSelectionContextProvider;
56
64
  //# sourceMappingURL=domains-descriptions-tree-item-selection-context.js.map
@@ -28,7 +28,7 @@ const DomainsDescriptionsTree = ({ descriptionsTree, children }) => {
28
28
  react_1.default.createElement(material_1.Button, { className: "toggle-all-nodes-btn", variant: "outlined", startIcon: react_1.default.createElement(ToggleIcon, { allNodeIds: allNodeIds, expandedNodes: expandedNodes }), onClick: () => setExpandedNodes((0, lodash_1.isEmpty)(expandedNodes) ? allNodeIds : []) }),
29
29
  react_1.default.Children.toArray(children)
30
30
  .filter(react_1.default.isValidElement)
31
- .filter(child => child?.type === exports.FeatureDomainDescriptionsTreeHeader)),
31
+ .filter(child => (child === null || child === void 0 ? void 0 : child.type) === exports.FeatureDomainDescriptionsTreeHeader)),
32
32
  react_1.default.createElement("div", null,
33
33
  react_1.default.createElement(TreeView_1.default, { defaultCollapseIcon: react_1.default.createElement(ExpandMore_1.default, null), defaultExpandIcon: react_1.default.createElement(ChevronRight_1.default, null), disabledItemsFocusable: false, multiSelect: true, expanded: expandedNodes, onNodeToggle: (_, nodeIds) => setExpandedNodes(nodeIds) }, descriptionsTree.types.map(type => (react_1.default.createElement(components_1.TypeTreeItem, { key: type.nodeId, type: type })))))));
34
34
  };
@@ -14,10 +14,7 @@ var DescriptionsTree;
14
14
  columns: type.columns.map((column, columnIdx) => ({
15
15
  nodeId: id({ typeIdx, columnIdx }),
16
16
  summary: column.summary,
17
- descriptions: column.descriptions.map((description, descriptionIdx) => ({
18
- ...description,
19
- nodeId: id({ typeIdx, columnIdx, descriptionIdx }),
20
- })),
17
+ descriptions: column.descriptions.map((description, descriptionIdx) => (Object.assign(Object.assign({}, description), { nodeId: id({ typeIdx, columnIdx, descriptionIdx }) }))),
21
18
  })),
22
19
  };
23
20
  }),
@@ -25,12 +22,16 @@ var DescriptionsTree;
25
22
  }
26
23
  DescriptionsTree.appendGroupId = appendGroupId;
27
24
  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('');
25
+ return (props) => {
26
+ return [
27
+ (0, _utils_1.isSet)(prefix) && `${prefix}`,
28
+ (0, _utils_1.isSet)(props.typeIdx) && `t${props.typeIdx}`,
29
+ (0, _utils_1.isSet)(props.columnIdx) && `c${props.columnIdx}`,
30
+ (0, _utils_1.isSet)(props.descriptionIdx) && `d${props.descriptionIdx}`,
31
+ ]
32
+ .filter(Boolean)
33
+ .join('_');
34
+ };
34
35
  }
35
36
  DescriptionsTree.createGroupId = createGroupId;
36
37
  })(DescriptionsTree = exports.DescriptionsTree || (exports.DescriptionsTree = {}));
@@ -1,12 +1,113 @@
1
- "use strict";
2
1
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
2
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
3
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AggregationEditor = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const AggregationEditor = ({ aggregation }) => {
9
- return react_1.default.createElement(react_1.default.Fragment, null, "AggregationEditor");
10
- };
11
- exports.AggregationEditor = AggregationEditor;
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
+ });
12
113
  //# sourceMappingURL=AggregationEditor.js.map
@@ -1,12 +1,25 @@
1
- "use strict";
2
1
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
2
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
3
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FeatureDescriptorEditor = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const FeatureDescriptorEditor = () => {
9
- return react_1.default.createElement(react_1.default.Fragment, null, "FeatureDescriptorEditor");
10
- };
11
- exports.FeatureDescriptorEditor = FeatureDescriptorEditor;
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
+ });
12
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