dotdata_widgets 0.1.2 → 0.1.3

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 (164) hide show
  1. package/README.md +27 -3
  2. package/css/colors.css +4 -0
  3. package/css/typography.css +9 -0
  4. package/css/widget.css +26 -4
  5. package/dist/index.js +74 -1
  6. package/lib/components/accordion/Accordion.js +47 -13
  7. package/lib/components/accordion/index.js +18 -1
  8. package/lib/components/input/index.js +18 -1
  9. package/lib/components/input/input.js +11 -3
  10. package/lib/extension.js +18 -1
  11. package/lib/feature/feature-details/FeatureCorrelatedFeaturesTable.js +22 -0
  12. package/lib/feature/feature-details/FeatureDistributionChart.js +218 -0
  13. package/lib/feature/feature-details/FeatureStatisticsTable.js +44 -0
  14. package/lib/feature/feature-details/index.js +20 -0
  15. package/lib/feature/feature-explanation/FeatureExplanation.js +48 -0
  16. package/lib/feature/feature-explanation/components/ColoredExplanationBlock.js +36 -0
  17. package/lib/feature/feature-explanation/components/ColumnExplanationBlock.js +12 -0
  18. package/lib/feature/feature-explanation/components/DataSlotExplanationBlock.js +12 -0
  19. package/lib/feature/feature-explanation/components/PetExplanationBlock.js +11 -0
  20. package/lib/feature/feature-explanation/components/TextExplanationBlock.js +10 -0
  21. package/lib/feature/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +10 -0
  22. package/lib/feature/feature-explanation/components/TopicExplanationBlock.js +10 -0
  23. package/lib/feature/feature-explanation/components/UnknownExplanationBlock.js +10 -0
  24. package/lib/feature-descriptor/context/fd-domains-descriptions-selection.context.js +37 -0
  25. package/lib/feature-descriptor/context/index.js +18 -0
  26. package/lib/feature-descriptor/domains-descriptors-tree/components/column-tree-item.js +16 -0
  27. package/lib/feature-descriptor/domains-descriptors-tree/components/descriptions-tree-item.js +50 -0
  28. package/lib/feature-descriptor/domains-descriptors-tree/components/index.js +18 -0
  29. package/lib/feature-descriptor/domains-descriptors-tree/components/tree-item-label.js +56 -0
  30. package/lib/feature-descriptor/domains-descriptors-tree/components/type-tree-item.js +19 -0
  31. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-item-selection-context.js +56 -0
  32. package/lib/feature-descriptor/domains-descriptors-tree/context/index.js +18 -0
  33. package/lib/feature-descriptor/domains-descriptors-tree/domains-descriptions-tree.js +44 -0
  34. package/lib/feature-descriptor/domains-descriptors-tree/index.js +21 -0
  35. package/lib/feature-descriptor/domains-descriptors-tree/models/domains-descriptions-tree.model.js +37 -0
  36. package/lib/feature-descriptor/domains-descriptors-tree/models/index.js +18 -0
  37. package/lib/feature-descriptor/domains-descriptors-tree/utils/create-domain-predicate.js +16 -0
  38. package/lib/feature-descriptor/domains-descriptors-tree/utils/filter-domains-descriptions-tree.js +23 -0
  39. package/lib/feature-descriptor/domains-descriptors-tree/utils/index.js +19 -0
  40. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +21 -13
  41. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +36 -8
  42. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +25 -17
  43. package/lib/feature-descriptor/feature-details/index.js +20 -3
  44. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +40 -32
  45. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +17 -9
  46. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +12 -4
  47. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +12 -4
  48. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +11 -3
  49. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +10 -2
  50. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +10 -2
  51. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +10 -2
  52. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +10 -2
  53. package/lib/feature-descriptor/feature-exploration-path/exploration-path-header.js +38 -0
  54. package/lib/feature-descriptor/feature-exploration-path/exploration-path-join-list.js +28 -0
  55. package/lib/feature-descriptor/feature-exploration-path/index.js +19 -0
  56. package/lib/feature-descriptors-domain/context/feature-domain-descriptions-selection.context.js +37 -0
  57. package/lib/feature-descriptors-domain/context/feature-domain-selection.context.js +37 -0
  58. package/lib/feature-descriptors-domain/context/index.js +19 -0
  59. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +15 -7
  60. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +11 -3
  61. package/lib/feature-descriptors-domain/exploration-path/index.js +19 -2
  62. package/lib/feature-descriptors-domain/fd-grouped-domain-tree.js +81 -0
  63. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/column-tree-item.js +17 -0
  64. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/descriptions-tree-item.js +49 -0
  65. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/index.js +18 -0
  66. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/selection-indicator-with-label.js +40 -0
  67. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/type-tree-item.js +16 -0
  68. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-context.js +43 -0
  69. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-tree.js +57 -0
  70. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/index.js +18 -0
  71. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/column-tree-item.js +17 -0
  72. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/description-tree-item.js +2 -0
  73. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/descriptions-tree-item.js +49 -0
  74. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/index.js +18 -0
  75. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/selection-indicator-with-label.js +19 -0
  76. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-item-label.js +15 -0
  77. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-level-item.js +54 -0
  78. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/type-tree-item.js +16 -0
  79. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.js +55 -0
  80. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.model.js +2 -0
  81. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/index.js +18 -0
  82. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/filter-domain-descriptions.js +21 -0
  83. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/index.js +18 -0
  84. package/lib/feature-descriptors-domain/feature-descriptor-grouped-domain-tree.js +87 -0
  85. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/column-tree-item.js +16 -0
  86. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/descriptions-tree-item.js +50 -0
  87. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/index.js +18 -0
  88. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/selection-indicator-with-label.js +67 -0
  89. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/type-tree-item.js +19 -0
  90. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-context.js +37 -0
  91. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-tree.js +51 -0
  92. package/lib/feature-descriptors-domain/feature-domain-descriptions/index.js +18 -0
  93. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-header.js +38 -0
  94. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-join-list.js +36 -0
  95. package/lib/feature-descriptors-domain/feature-exploration-path/index.js +19 -0
  96. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +28 -17
  97. package/lib/feature-descriptors-domain/selected-feature-domain-context.js +2 -0
  98. package/lib/feature-descriptors-domain/utils/filter-domain-descriptions.js +23 -0
  99. package/lib/feature-descriptors-domain/utils/filter-grouped-domain-descriptions.js +23 -0
  100. package/lib/feature-descriptors-domain/utils/index.js +18 -0
  101. package/lib/index.js +19 -2
  102. package/lib/models/column/column.js +3 -1
  103. package/lib/models/column/index.js +18 -1
  104. package/lib/models/feature/feature-histogram.js +8 -4
  105. package/lib/models/feature/feature-leaderboard.js +3 -1
  106. package/lib/models/feature/feature-metric.js +16 -0
  107. package/lib/models/feature/feature.js +3 -12
  108. package/lib/models/feature/index.js +20 -2
  109. package/lib/models/feature-descriptor/feature-descriptor.js +3 -0
  110. package/lib/models/feature-descriptor/feature-descriptors-domain.js +3 -0
  111. package/lib/models/feature-descriptor-domain/fd-domains-description.js +3 -0
  112. package/lib/models/feature-descriptor-domain/fd-join-description.js +3 -0
  113. package/lib/models/feature-descriptor-domain/index.js +19 -0
  114. package/lib/models/feature-descriptors-domain/fd-domain-description.js +9 -1
  115. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +3 -1
  116. package/lib/models/feature-descriptors-domain/index.js +19 -2
  117. package/lib/models/feature-explanation/feature-explanation.model.js +6 -2
  118. package/lib/models/feature-explanation/index.js +18 -1
  119. package/lib/models/feature-leaderboard/feature-leaderboard.js +3 -1
  120. package/lib/models/feature-leaderboard/index.js +18 -1
  121. package/lib/models/feature-space/exploration-path.js +3 -0
  122. package/lib/models/feature-space/feature-space-description.js +3 -0
  123. package/lib/models/feature-space/feature-space.js +3 -1
  124. package/lib/models/feature-space/grouped-domains-descriptions.js +3 -0
  125. package/lib/models/feature-space/index.js +20 -1
  126. package/lib/models/index.js +1 -0
  127. package/lib/plugin.js +33 -7
  128. package/lib/utils/asserations.js +6 -1
  129. package/lib/utils/index.js +20 -3
  130. package/lib/utils/localize.js +8 -4
  131. package/lib/utils/object/extract-property.js +6 -1
  132. package/lib/utils/object/index.js +19 -2
  133. package/lib/utils/object/is-set.js +8 -2
  134. package/lib/utils/widget/index.js +19 -2
  135. package/lib/utils/widget/widget-model-context.js +36 -7
  136. package/lib/utils/widget/widget-model.js +14 -8
  137. package/lib/utils/widget-model/index.js +19 -0
  138. package/lib/utils/widget-model/widget-model-context.js +42 -0
  139. package/lib/utils/widget-model/widget-model.js +30 -0
  140. package/lib/utils/widget-theme/index.js +18 -0
  141. package/lib/utils/widget-theme/widget-theme.js +99 -0
  142. package/lib/version.js +6 -2
  143. package/lib/widgets/FeatureLeaderboardWidget.js +25 -15
  144. package/lib/widgets/FeatureSpaceWidget.js +27 -15
  145. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +17 -9
  146. package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +15 -18
  147. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +22 -14
  148. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +22 -14
  149. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +19 -11
  150. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-metric-slider.js +2 -0
  151. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-slider.js +62 -0
  152. package/lib/widgets/feature-space/FeatureDomainsDescriptions.js +82 -0
  153. package/lib/widgets/feature-space/FeatureExplorationPaths.js +14 -35
  154. package/lib/widgets/feature-space/FeatureSpaceDomain.js +75 -0
  155. package/lib/widgets/feature-space/FeatureSpaceDomainDescriptions.js +80 -0
  156. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +63 -28
  157. package/lib/widgets/feature-space/FeatureSpaceView.js +47 -10
  158. package/lib/widgets/index.js +20 -3
  159. package/package.json +8 -3
  160. package/LICENSE.txt +0 -27
  161. package/lib/hooks/index.js +0 -1
  162. package/lib/hooks/widget-model.js +0 -1
  163. package/lib/utils/widget/widget-context-wrapper.js +0 -9
  164. package/lib/widget.js +0 -34
@@ -1,18 +1,52 @@
1
- import React, { useState } from 'react';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Accordion = exports.AccordionDetails = exports.AccordionHeader = void 0;
27
+ const react_1 = __importStar(require("react"));
2
28
  // eslint-disable-next-line @typescript-eslint/ban-types
3
- export const AccordionHeader = ({ children, }) => React.createElement(React.Fragment, null, children);
29
+ const AccordionHeader = ({ children, }) => react_1.default.createElement(react_1.default.Fragment, null, children);
30
+ exports.AccordionHeader = AccordionHeader;
4
31
  // eslint-disable-next-line @typescript-eslint/ban-types
5
- export const AccordionDetails = ({ children, }) => React.createElement(React.Fragment, null, children);
6
- export const Accordion = ({ children, expandedDetailsStyle, collapsedDetailsStyle, expandedHeaderStyle, collapsedHeaderStyle, toggleStyle, initialState, }) => {
7
- const [isExpanded, setIsExpanded] = useState(() => initialState ?? false);
8
- const components = React.Children.toArray(children).filter(React.isValidElement);
9
- const Header = components.find(child => child.type?.name === AccordionHeader.name);
10
- const Details = components.find(child => child.type?.name === AccordionDetails.name);
11
- return (React.createElement("div", { className: `dotdata-accordion ${isExpanded
32
+ const AccordionDetails = ({ children, }) => react_1.default.createElement(react_1.default.Fragment, null, children);
33
+ exports.AccordionDetails = AccordionDetails;
34
+ exports.Accordion = (0, react_1.forwardRef)(({ children, expandedDetailsStyle, collapsedDetailsStyle, expandedHeaderStyle, collapsedHeaderStyle, toggleStyle, initialState, }, ref) => {
35
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(() => initialState ?? false);
36
+ const components = react_1.default.Children.toArray(children).filter(react_1.default.isValidElement);
37
+ const Header = components.find(child => child.type?.name === exports.AccordionHeader.name);
38
+ const Details = components.find(child => child.type?.name === exports.AccordionDetails.name);
39
+ (0, react_1.useImperativeHandle)(ref, () => ({
40
+ collapse() {
41
+ setIsExpanded(false);
42
+ },
43
+ }));
44
+ return (react_1.default.createElement("div", { className: `dotdata-accordion ${isExpanded
12
45
  ? 'dotdata-accordion-expanded'
13
46
  : 'dotdata-accordion-collapsed'}` },
14
- React.createElement("div", { style: isExpanded ? expandedHeaderStyle : collapsedHeaderStyle, className: "dotdata-accordion-header" },
15
- React.createElement("div", { className: `dotdata-accordion-header-toggle ${isExpanded ? 'expanded' : ''}`, style: toggleStyle, onClick: () => setIsExpanded(!isExpanded) }, "\u25B6"),
47
+ react_1.default.createElement("div", { style: isExpanded ? expandedHeaderStyle : collapsedHeaderStyle, className: "dotdata-accordion-header" },
48
+ react_1.default.createElement("div", { className: `dotdata-accordion-header-toggle ${isExpanded ? 'expanded' : ''}`, style: toggleStyle, onClick: () => setIsExpanded(!isExpanded) }, "\u25B6"),
16
49
  Header),
17
- isExpanded && (React.createElement("div", { style: isExpanded ? expandedDetailsStyle : collapsedDetailsStyle, className: "dotdata-accordion-details" }, Details))));
18
- };
50
+ isExpanded && (react_1.default.createElement("div", { style: isExpanded ? expandedDetailsStyle : collapsedDetailsStyle, className: "dotdata-accordion-details" }, Details))));
51
+ });
52
+ //# sourceMappingURL=Accordion.js.map
@@ -1 +1,18 @@
1
- export * from './Accordion';
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("./Accordion"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -1 +1,18 @@
1
- export * from './input';
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("./input"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -1,6 +1,14 @@
1
- import React from 'react';
2
- export function Input(props) {
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.Input = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ function Input(props) {
3
9
  const { onValueChange, inputSize, ...restProps } = props;
4
10
  const isSmall = inputSize === 'small';
5
- return (React.createElement("input", { type: "text", ...restProps, className: `dd-input ${restProps.className ?? ''} ${isSmall ? 'small' : ''}`, onChange: event => onValueChange(event.target.value) }));
11
+ return (react_1.default.createElement("input", { type: "text", ...restProps, className: `dd-input ${restProps.className ?? ''} ${isSmall ? 'small' : ''}`, onChange: event => onValueChange(event.target.value) }));
6
12
  }
13
+ exports.Input = Input;
14
+ //# sourceMappingURL=input.js.map
package/lib/extension.js CHANGED
@@ -1,5 +1,21 @@
1
+ "use strict";
1
2
  // Copyright (c) Jupyter Development Team.
2
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
+ Object.defineProperty(exports, "__esModule", { value: true });
3
19
  // Entry point for the notebook bundle containing custom model definitions.
4
20
  //
5
21
  // Setup notebook base URL
@@ -11,4 +27,5 @@
11
27
  window.__webpack_public_path__ =
12
28
  document.querySelector('body').getAttribute('data-base-url') +
13
29
  'nbextensions/dotdata_widgets';
14
- export * from './index';
30
+ __exportStar(require("./index"), exports);
31
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1,22 @@
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.FeatureCorrelatedFeaturesTable = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const FeatureExplanation_1 = require("../feature-explanation/FeatureExplanation");
9
+ const _utils_1 = require("../../utils");
10
+ const FeatureCorrelatedFeaturesTable = ({ correlatedFeatures }) => {
11
+ return (react_1.default.createElement("table", { className: "table", style: { width: '100%' } },
12
+ react_1.default.createElement("tr", null,
13
+ react_1.default.createElement("th", { className: "label-bold" }, "Name"),
14
+ react_1.default.createElement("th", { className: "label-bold" }, "Correlation"),
15
+ react_1.default.createElement("th", { className: "label-bold" }, "Explanation")),
16
+ correlatedFeatures.map(([{ id, explanation }, correlation]) => (react_1.default.createElement("tr", null,
17
+ react_1.default.createElement("td", null, id),
18
+ react_1.default.createElement("td", null, _utils_1.Localize.formatNumber(correlation)),
19
+ react_1.default.createElement("td", null, react_1.default.createElement(FeatureExplanation_1.FeatureExplanation, { explanationBlocks: explanation.tokens })))))));
20
+ };
21
+ exports.FeatureCorrelatedFeaturesTable = FeatureCorrelatedFeaturesTable;
22
+ //# sourceMappingURL=FeatureCorrelatedFeaturesTable.js.map
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FeatureDistributionChart = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const vega = __importStar(require("vega"));
29
+ const feature_1 = require("../../models/feature");
30
+ const FeatureDistributionChart = ({ histogram }) => {
31
+ const elemRef = react_1.default.useRef(null);
32
+ (0, react_1.useEffect)(() => {
33
+ if (!elemRef.current) {
34
+ return;
35
+ }
36
+ const histogramSpec = feature_1.ContinuousHistogram.isTypeOf(histogram)
37
+ ? createContinuousHistogramSpec(histogram)
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
+ }), {
45
+ renderer: 'canvas',
46
+ hover: true,
47
+ container: elemRef.current,
48
+ });
49
+ view.runAsync();
50
+ }, [elemRef]);
51
+ return react_1.default.createElement("div", { ref: elemRef });
52
+ };
53
+ exports.FeatureDistributionChart = FeatureDistributionChart;
54
+ function createContinuousHistogramSpec(histogram) {
55
+ return {
56
+ signals: [
57
+ {
58
+ name: 'tooltip',
59
+ value: {},
60
+ on: [
61
+ { events: 'rect:mouseover', update: 'datum' },
62
+ { events: 'rect:mouseout', update: '{}' },
63
+ ],
64
+ },
65
+ ],
66
+ data: [
67
+ {
68
+ name: 'table',
69
+ values: histogram.bins,
70
+ },
71
+ ],
72
+ scales: [
73
+ {
74
+ name: 'xscale',
75
+ type: 'linear',
76
+ domain: {
77
+ fields: [
78
+ { data: 'table', field: 'l' },
79
+ { data: 'table', field: 'u' },
80
+ ],
81
+ },
82
+ range: 'width',
83
+ nice: true,
84
+ round: true,
85
+ },
86
+ {
87
+ name: 'yscale',
88
+ domain: { data: 'table', field: 'frequency' },
89
+ nice: true,
90
+ range: 'height',
91
+ },
92
+ ],
93
+ axes: [
94
+ {
95
+ orient: 'bottom',
96
+ scale: 'xscale',
97
+ labelOverlap: 'parity',
98
+ },
99
+ { orient: 'left', scale: 'yscale' },
100
+ ],
101
+ marks: [
102
+ {
103
+ type: 'rect',
104
+ from: { data: 'table' },
105
+ encode: {
106
+ enter: {
107
+ x: { scale: 'xscale', field: 'l' },
108
+ x2: { scale: 'xscale', field: 'u' },
109
+ y: { scale: 'yscale', field: 'frequency' },
110
+ y2: { scale: 'yscale', value: 0 },
111
+ },
112
+ update: {
113
+ fill: { value: '#1976d2' },
114
+ },
115
+ },
116
+ },
117
+ {
118
+ type: 'text',
119
+ encode: {
120
+ enter: {
121
+ align: { value: 'center' },
122
+ baseline: { value: 'bottom' },
123
+ fill: { value: '#333' },
124
+ },
125
+ update: {
126
+ x: {
127
+ scale: 'xscale',
128
+ signal: '(tooltip.u + tooltip.l) / 2',
129
+ band: 0.5,
130
+ },
131
+ y: { scale: 'yscale', signal: 'tooltip.frequency', offset: -2 },
132
+ text: { signal: 'tooltip.frequency' },
133
+ fillOpacity: [
134
+ { test: 'datum === tooltip', value: 0 },
135
+ { value: 1 },
136
+ ],
137
+ },
138
+ },
139
+ },
140
+ ],
141
+ };
142
+ }
143
+ function createDiscreteHistogramSpec(histogram) {
144
+ return {
145
+ signals: [
146
+ {
147
+ name: 'tooltip',
148
+ value: {},
149
+ on: [
150
+ { events: 'rect:mouseover', update: 'datum' },
151
+ { events: 'rect:mouseout', update: '{}' },
152
+ ],
153
+ },
154
+ ],
155
+ data: [
156
+ {
157
+ name: 'table',
158
+ values: histogram.bins,
159
+ },
160
+ ],
161
+ scales: [
162
+ {
163
+ name: 'xscale',
164
+ type: 'band',
165
+ domain: { data: 'table', field: 'label' },
166
+ range: 'width',
167
+ round: true,
168
+ },
169
+ {
170
+ name: 'yscale',
171
+ domain: { data: 'table', field: 'frequency' },
172
+ nice: true,
173
+ range: 'height',
174
+ },
175
+ ],
176
+ axes: [
177
+ { orient: 'bottom', scale: 'xscale', labelOverlap: 'parity' },
178
+ { orient: 'left', scale: 'yscale' },
179
+ ],
180
+ marks: [
181
+ {
182
+ type: 'rect',
183
+ from: { data: 'table' },
184
+ encode: {
185
+ enter: {
186
+ x: { scale: 'xscale', field: 'label' },
187
+ width: { scale: 'xscale', band: 1 },
188
+ y: { scale: 'yscale', field: 'frequency' },
189
+ y2: { scale: 'yscale', value: 0 },
190
+ },
191
+ update: {
192
+ fill: { value: '#1976d2' },
193
+ },
194
+ },
195
+ },
196
+ {
197
+ type: 'text',
198
+ encode: {
199
+ enter: {
200
+ align: { value: 'center' },
201
+ baseline: { value: 'bottom' },
202
+ fill: { value: '#333' },
203
+ },
204
+ update: {
205
+ x: { scale: 'xscale', signal: 'tooltip.label', band: 0.5 },
206
+ y: { scale: 'yscale', signal: 'tooltip.frequency', offset: -2 },
207
+ text: { signal: 'tooltip.frequency' },
208
+ fillOpacity: [
209
+ { test: 'datum === tooltip', value: 0 },
210
+ { value: 1 },
211
+ ],
212
+ },
213
+ },
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ //# sourceMappingURL=FeatureDistributionChart.js.map
@@ -0,0 +1,44 @@
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.FeatureStatisticsTable = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_1 = require("../../models/feature");
9
+ const _utils_1 = require("../../utils");
10
+ const metricRowStyle = {
11
+ borderTop: '1px solid var(--c-grey-100)',
12
+ display: 'flex',
13
+ justifyContent: 'space-between',
14
+ alignItems: 'center',
15
+ paddingInlineEnd: '50px',
16
+ height: '30px',
17
+ };
18
+ const metricNameStyle = {
19
+ textTransform: 'capitalize',
20
+ };
21
+ const statsOrder = [
22
+ feature_1.FeatureMetric.Min,
23
+ feature_1.FeatureMetric.Max,
24
+ feature_1.FeatureMetric.Mean,
25
+ feature_1.FeatureMetric.Stddev,
26
+ feature_1.FeatureMetric.Count,
27
+ feature_1.FeatureMetric.NullRatio,
28
+ feature_1.FeatureMetric.ZerosRatio,
29
+ feature_1.FeatureMetric.Correlation,
30
+ feature_1.FeatureMetric.FeatureAUC,
31
+ ];
32
+ const FeatureStatisticsTable = ({ statistics }) => {
33
+ return (react_1.default.createElement("div", { style: { columnCount: 2, columnFill: 'balance', columnGap: '60px' } }, Object.entries(statistics)
34
+ .sort(sortStatsByName)
35
+ .map(([metricName, metricValue]) => (react_1.default.createElement("div", { key: metricName, style: metricRowStyle },
36
+ react_1.default.createElement("span", { className: "label-bold", style: metricNameStyle }, metricName),
37
+ ' ',
38
+ react_1.default.createElement("span", null, _utils_1.Localize.formatNumber(metricValue, '-')))))));
39
+ };
40
+ exports.FeatureStatisticsTable = FeatureStatisticsTable;
41
+ function sortStatsByName(a, b) {
42
+ return statsOrder.indexOf(a[0]) - statsOrder.indexOf(b[0]);
43
+ }
44
+ //# sourceMappingURL=FeatureStatisticsTable.js.map
@@ -0,0 +1,20 @@
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("./FeatureStatisticsTable"), exports);
18
+ __exportStar(require("./FeatureDistributionChart"), exports);
19
+ __exportStar(require("./FeatureCorrelatedFeaturesTable"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,48 @@
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.FeatureExplanation = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_explanation_1 = require("../../models/feature-explanation");
9
+ const TextExplanationBlock_1 = require("./components/TextExplanationBlock");
10
+ const ColumnExplanationBlock_1 = require("./components/ColumnExplanationBlock");
11
+ const PetExplanationBlock_1 = require("./components/PetExplanationBlock");
12
+ const DataSlotExplanationBlock_1 = require("./components/DataSlotExplanationBlock");
13
+ const TopicExplanationBlock_1 = require("./components/TopicExplanationBlock");
14
+ const TextWithDataSlotContextExplanationBlock_1 = require("./components/TextWithDataSlotContextExplanationBlock");
15
+ const UnknownExplanationBlock_1 = require("./components/UnknownExplanationBlock");
16
+ const FeatureExplanation = ({ explanationBlocks, }) => {
17
+ return (react_1.default.createElement("div", { style: { display: 'flex' } }, explanationBlocks.map(block => {
18
+ if (feature_explanation_1.FeatureExplanationBlock.isTextExplanationBlock(block)) {
19
+ return react_1.default.createElement(TextExplanationBlock_1.TextExplanationBlock, { ...block });
20
+ }
21
+ else if (feature_explanation_1.FeatureExplanationBlock.isColumnExplanationBlock(block)) {
22
+ return react_1.default.createElement(ColumnExplanationBlock_1.ColumnExplanationBlock, { ...block });
23
+ }
24
+ else if (feature_explanation_1.FeatureExplanationBlock.isDataSlotExplanationBlock(block)) {
25
+ return react_1.default.createElement(DataSlotExplanationBlock_1.DataSlotExplanationBlock, { ...block });
26
+ }
27
+ else if (feature_explanation_1.FeatureExplanationBlock.isPetExplanationBlock(block)) {
28
+ return react_1.default.createElement(PetExplanationBlock_1.PetExplanationBlock, { ...block });
29
+ }
30
+ else if (feature_explanation_1.FeatureExplanationBlock.isTextWithDataSlotContextExplanationBlock(block)) {
31
+ return react_1.default.createElement(TextWithDataSlotContextExplanationBlock_1.TextWithDataSlotContextExplanationBlock, { ...block });
32
+ }
33
+ else if (feature_explanation_1.FeatureExplanationBlock.isTopicExplanationBlock(block)) {
34
+ return react_1.default.createElement(TopicExplanationBlock_1.TopicExplanationBlock, { ...block });
35
+ }
36
+ else if (feature_explanation_1.FeatureExplanationBlock.isOperatorExplanationBlock(block)) {
37
+ return (react_1.default.createElement(exports.FeatureExplanation, { explanationBlocks: block.tokens.map(token => ({
38
+ ...token,
39
+ pathType: block.type,
40
+ })) }));
41
+ }
42
+ else {
43
+ return react_1.default.createElement(UnknownExplanationBlock_1.UnknownExplanationBlock, { ...block });
44
+ }
45
+ })));
46
+ };
47
+ exports.FeatureExplanation = FeatureExplanation;
48
+ //# sourceMappingURL=FeatureExplanation.js.map
@@ -0,0 +1,36 @@
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.ColoredExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const feature_explanation_1 = require("../../../models/feature-explanation");
9
+ const ColoredExplanationBlock = ({ block, children }) => {
10
+ let color = 'revert';
11
+ let fontWeight = '400';
12
+ if (block.type === feature_explanation_1.FeatureExplanationBlock.Type.DataSlot) {
13
+ color = 'var(--c-blue-700)';
14
+ fontWeight = '500';
15
+ }
16
+ else if (block.type === feature_explanation_1.FeatureExplanationBlock.Type.Column ||
17
+ block.type === feature_explanation_1.FeatureExplanationBlock.Type.PredictionExecutionTime) {
18
+ const pathType = block.pathType;
19
+ if ([
20
+ feature_explanation_1.FeatureExplanationBlock.Type.Filter,
21
+ feature_explanation_1.FeatureExplanationBlock.Type.Reduce,
22
+ ].includes(pathType)) {
23
+ color = 'var(--c-blue-700)';
24
+ fontWeight = '500';
25
+ }
26
+ }
27
+ return (react_1.default.createElement("span", { style: {
28
+ color: color,
29
+ fontWeight,
30
+ display: 'inline-block',
31
+ wordBreak: 'break-word',
32
+ whiteSpace: 'pre',
33
+ } }, children));
34
+ };
35
+ exports.ColoredExplanationBlock = ColoredExplanationBlock;
36
+ //# sourceMappingURL=ColoredExplanationBlock.js.map
@@ -0,0 +1,12 @@
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.ColumnExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ColoredExplanationBlock_1 = require("./ColoredExplanationBlock");
9
+ const ColumnExplanationBlock = block => (react_1.default.createElement(ColoredExplanationBlock_1.ColoredExplanationBlock, { block: block },
10
+ react_1.default.createElement("span", { className: "column-name" }, block.columnName)));
11
+ exports.ColumnExplanationBlock = ColumnExplanationBlock;
12
+ //# sourceMappingURL=ColumnExplanationBlock.js.map
@@ -0,0 +1,12 @@
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.DataSlotExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ColoredExplanationBlock_1 = require("./ColoredExplanationBlock");
9
+ const DataSlotExplanationBlock = block => (react_1.default.createElement(ColoredExplanationBlock_1.ColoredExplanationBlock, { block: block },
10
+ react_1.default.createElement("span", { className: "sa-data-slot-name" }, block.dataSlotName)));
11
+ exports.DataSlotExplanationBlock = DataSlotExplanationBlock;
12
+ //# sourceMappingURL=DataSlotExplanationBlock.js.map
@@ -0,0 +1,11 @@
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.PetExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ColoredExplanationBlock_1 = require("./ColoredExplanationBlock");
9
+ const PetExplanationBlock = block => (react_1.default.createElement(ColoredExplanationBlock_1.ColoredExplanationBlock, { block: block }, block.stringRepresentation));
10
+ exports.PetExplanationBlock = PetExplanationBlock;
11
+ //# sourceMappingURL=PetExplanationBlock.js.map
@@ -0,0 +1,10 @@
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.TextExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TextExplanationBlock = ({ text, }) => react_1.default.createElement("span", { style: { whiteSpace: 'pre' } }, text);
9
+ exports.TextExplanationBlock = TextExplanationBlock;
10
+ //# sourceMappingURL=TextExplanationBlock.js.map
@@ -0,0 +1,10 @@
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.TextWithDataSlotContextExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TextWithDataSlotContextExplanationBlock = block => react_1.default.createElement("span", { style: { whiteSpace: 'pre' } }, block.text);
9
+ exports.TextWithDataSlotContextExplanationBlock = TextWithDataSlotContextExplanationBlock;
10
+ //# sourceMappingURL=TextWithDataSlotContextExplanationBlock.js.map
@@ -0,0 +1,10 @@
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.TopicExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const TopicExplanationBlock = block => react_1.default.createElement("span", { className: "topic" }, block.name);
9
+ exports.TopicExplanationBlock = TopicExplanationBlock;
10
+ //# sourceMappingURL=TopicExplanationBlock.js.map
@@ -0,0 +1,10 @@
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.UnknownExplanationBlock = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const UnknownExplanationBlock = () => (react_1.default.createElement("span", { style: { whiteSpace: 'pre' } }));
9
+ exports.UnknownExplanationBlock = UnknownExplanationBlock;
10
+ //# sourceMappingURL=UnknownExplanationBlock.js.map