dotdata_widgets 0.0.29 → 0.0.121
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.
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/lib/components/column-source-type-icons/index.js +13 -1
- package/lib/components/column-source-type-icons/source-type-biginteger.js +14 -0
- package/lib/components/column-source-type-icons/source-type-boolean.js +14 -0
- package/lib/components/column-source-type-icons/source-type-date.js +14 -0
- package/lib/components/column-source-type-icons/source-type-double.js +16 -0
- package/lib/components/column-source-type-icons/source-type-float.js +14 -0
- package/lib/components/column-source-type-icons/source-type-integer.js +14 -0
- package/lib/components/column-source-type-icons/source-type-long.js +16 -0
- package/lib/components/column-source-type-icons/source-type-short.js +16 -0
- package/lib/components/column-source-type-icons/source-type-string.js +14 -0
- package/lib/components/column-source-type-icons/source-type-struct.js +16 -0
- package/lib/components/column-source-type-icons/source-type-timestamp.js +14 -0
- package/lib/components/column-source-type-icons/source-type-unknown.js +16 -0
- package/lib/components/column-source-type-icons/source-type-vectorudt.js +16 -0
- package/lib/feature/feature-user-explanation/{FeatureUserExplanation.js → FeatureUserExplanationEditor.js} +4 -4
- package/lib/feature/feature-user-explanation/index.js +1 -1
- package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +18 -19
- package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +56 -36
- package/lib/feature-descriptor/feature-descriptor-editor/JoinEditor.js +7 -1
- package/lib/feature-descriptor/feature-descriptor-editor/components/EditorTemplateRenderer.js +6 -3
- package/lib/feature-descriptor/feature-descriptor-editor/components/EditorWrapper.js +19 -0
- package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ChipField.js +6 -2
- package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ColumnField.js +25 -16
- package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +6 -2
- package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +6 -2
- package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableColumnField.js +5 -1
- package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTableColumnInlineEditor.js +13 -0
- package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +1 -0
- package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +1 -0
- package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionEditor.js +25 -30
- package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor.js +1 -13
- package/lib/feature-descriptor/feature-descriptor-editor/models/aggregation-draft.js +1 -3
- package/lib/feature-descriptor/feature-descriptor-editor/models/filter-draft.js +84 -50
- package/lib/feature-descriptor/feature-exploration-path/exploration-path-header.js +0 -4
- package/lib/models/column/column.js +10 -16
- package/lib/models/column/table-columns.js +0 -13
- package/lib/models/feature-descriptor/fd_data/aggregation.js +0 -2
- package/lib/models/feature-descriptor/fd_data/filter.js +1 -14
- package/lib/models/feature-descriptor/fd_data/join.js +1 -8
- package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +2 -2
- package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +28 -28
- package/lib/widgets/feature-leaderboard/components/{LeaderboardFeatureLikes.js → FeatureLeaderboardFeatureLikes.js} +4 -4
- package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDrawer.js +10 -47
- package/lib/widgets/feature-leaderboard/leaderboard-entry/feature-leaderboard-entry-drawer-header/FeatureLeaderboardEntryActions.js +39 -0
- package/lib/widgets/feature-leaderboard/leaderboard-entry/feature-leaderboard-entry-drawer-header/FeatureLeaderboardEntryDrawerHeader.js +35 -0
- package/lib/widgets/feature-leaderboard/leaderboard-entry/feature-leaderboard-entry-drawer-header/FeatureLeaderboardEntryExplanation.js +34 -0
- package/lib/widgets/feature-leaderboard/leaderboard-entry/feature-leaderboard-entry-drawer-header/index.js +18 -0
- package/package.json +2 -1
- package/lib/components/column-source-type-icons/source-type-int.js +0 -16
- package/lib/models/feature-descriptor/fd_data/utils.js +0 -25
- package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryHeader.js +0 -15
- package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardUserExplanation.js +0 -28
|
@@ -16,49 +16,49 @@ const FeatureLeaderboardEntryDrawer_1 = require("./leaderboard-entry/FeatureLead
|
|
|
16
16
|
const FeatureLeaderboardOverview_1 = require("./FeatureLeaderboardOverview");
|
|
17
17
|
const FeatureLeaderboardView = ({ model }) => {
|
|
18
18
|
const [featureLeaderboard] = (0, widget_model_1.useModelState)('value');
|
|
19
|
-
const
|
|
19
|
+
const isWithAssessment = (0, _utils_1.isNotSet)(featureLeaderboard.isAssessed) || featureLeaderboard.isAssessed;
|
|
20
20
|
const [confidence, setConfidence] = (0, widget_model_1.useModelState)('confidence');
|
|
21
21
|
const [maxCollinearity, setMaxCollinearity] = (0, widget_model_1.useModelState)('max_collinearity');
|
|
22
22
|
const [explanationSearch, setExplanationSearch] = react_1.default.useState(() => '');
|
|
23
|
-
const featureEntries = react_1.default.useMemo(() => filterFeatures(featureLeaderboard, maxCollinearity, confidence, explanationSearch,
|
|
23
|
+
const featureEntries = react_1.default.useMemo(() => filterFeatures(featureLeaderboard, maxCollinearity, confidence, explanationSearch, isWithAssessment), [maxCollinearity, confidence, explanationSearch, featureLeaderboard]);
|
|
24
24
|
const tableColumns = react_1.default.useMemo(() => featureLeaderboard.tableColumns
|
|
25
25
|
? column_1.TableColumns.fromSimplified(featureLeaderboard.tableColumns)
|
|
26
26
|
: {}, [featureLeaderboard.tableColumns]);
|
|
27
27
|
const [copiedFeature, setCopiedFeature] = react_1.default.useState(() => undefined);
|
|
28
28
|
return (react_1.default.createElement(material_1.ThemeProvider, { theme: widget_theme_1.theme },
|
|
29
|
-
react_1.default.createElement(FeatureLeaderboardOverview_1.FeatureLeaderboardOverview, {
|
|
29
|
+
react_1.default.createElement(FeatureLeaderboardOverview_1.FeatureLeaderboardOverview, { isWithAssessment: isWithAssessment, confidence: confidence, setConfidence: setConfidence, maxCollinearity: maxCollinearity, setMaxCollinearity: setMaxCollinearity, setSearch: setExplanationSearch }),
|
|
30
30
|
react_1.default.createElement("br", null),
|
|
31
31
|
react_1.default.createElement("div", { className: "feature-entries-header", style: { display: 'flex' } },
|
|
32
|
-
react_1.default.createElement("span", { className: "feature-id", style: { marginLeft:
|
|
33
|
-
|
|
32
|
+
react_1.default.createElement("span", { className: "feature-id", style: { marginLeft: isWithAssessment ? '30px' : 0 } }, "Feature ID"),
|
|
33
|
+
isWithAssessment ? (react_1.default.createElement("span", { className: "confidence" }, "Confidence")) : null,
|
|
34
34
|
react_1.default.createElement("span", { className: "explanation" }, "Explanation")),
|
|
35
|
-
react_1.default.createElement("div", { style: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
react_1.default.createElement("div", { style: {
|
|
36
|
+
display: 'inline-block',
|
|
37
|
+
minWidth: '100%',
|
|
38
|
+
marginBottom: '2px',
|
|
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 => {
|
|
41
|
+
if (mode === FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy) {
|
|
42
|
+
const originId = feature_1.FeatureId.getOriginId(featureEntry.feature.id);
|
|
43
|
+
(0, _utils_1.sha256)(`${new Date()}_${featureEntry.feature.id}`, 8).then(id => {
|
|
44
|
+
const feature = Object.assign(Object.assign({}, featureEntry), { isAssessed: false, feature: Object.assign(Object.assign({}, featureEntry.feature), { id: `${originId}_${id}` }) });
|
|
45
|
+
setCopiedFeature({
|
|
46
|
+
feature,
|
|
47
|
+
parentId: featureEntry.feature.id,
|
|
46
48
|
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
} }),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return mode !== FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy;
|
|
52
|
+
}, isWithActions: isWithActions(featureEntry, isWithAssessment) }),
|
|
51
53
|
(copiedFeature === null || copiedFeature === void 0 ? void 0 : copiedFeature.parentId) === featureEntry.feature.id ? (react_1.default.createElement("div", { style: { marginLeft: '30px' } },
|
|
52
|
-
react_1.default.createElement(FeatureLeaderboardEntryDrawer_1.FeatureLeaderboardEntryDrawer, { featureEntry: copiedFeature.feature, tableColumn: tableColumns,
|
|
53
|
-
initMode: FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy,
|
|
54
|
-
isWithLikes: false,
|
|
55
|
-
isWithActions: false,
|
|
56
|
-
onCancel: () => setCopiedFeature(undefined),
|
|
57
|
-
} }),
|
|
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 }),
|
|
58
55
|
react_1.default.createElement("br", null))) : null))))));
|
|
59
56
|
};
|
|
60
57
|
exports.FeatureLeaderboardView = FeatureLeaderboardView;
|
|
61
|
-
function
|
|
58
|
+
function isWithActions(featureEntry, isWithAssessment) {
|
|
59
|
+
return isWithAssessment ? true : { code: false, copy: false, edit: false };
|
|
60
|
+
}
|
|
61
|
+
function filterFeatures(featureLeaderboard, maxCollinearity, confidence, explanationSearchPhrase, isWithAssessment) {
|
|
62
62
|
const shouldCheckIsAssessed = (entry) => (0, _utils_1.isSet)(entry.isAssessed) ? entry.isAssessed : true;
|
|
63
63
|
const explanationSearchFilter = (entry) => {
|
|
64
64
|
var _a;
|
|
@@ -69,7 +69,7 @@ function filterFeatures(featureLeaderboard, maxCollinearity, confidence, explana
|
|
|
69
69
|
? entry.maxAbsCorrelationOfSimplerFeature <= maxCollinearity
|
|
70
70
|
: true;
|
|
71
71
|
const confidenceFilter = (entry) => shouldCheckIsAssessed(entry) ? entry.signalConfidence >= confidence : true;
|
|
72
|
-
const reduces =
|
|
72
|
+
const reduces = isWithAssessment
|
|
73
73
|
? (0, transducer_1.compose)((0, transducer_1.filter)(explanationSearchFilter), (0, transducer_1.filter)(correlationFilter), (0, transducer_1.filter)(confidenceFilter))
|
|
74
74
|
: (0, transducer_1.compose)((0, transducer_1.filter)(explanationSearchFilter));
|
|
75
75
|
const aggregation = (a, b) => a.concat([b]);
|
|
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.FeatureLeaderboardFeatureLikes = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const lodash_1 = require("lodash");
|
|
9
9
|
const widget_model_1 = require("../../../utils/widget-model");
|
|
10
10
|
const feature_likes_1 = require("../../../feature/feature-likes");
|
|
11
|
-
const
|
|
11
|
+
const FeatureLeaderboardFeatureLikes = ({ featureId, }) => {
|
|
12
12
|
const [likedFeatures, setLikedFeatures] = (0, widget_model_1.useModelState)('liked_features');
|
|
13
13
|
const [dislikedFeatures, setDislikedFeatures] = (0, widget_model_1.useModelState)('disliked_features');
|
|
14
14
|
const [liked, setLiked] = react_1.default.useState(() => feature_likes_1.FeatureLike.Neutral);
|
|
@@ -46,5 +46,5 @@ const LeaderboardFeatureLikes = ({ featureId, }) => {
|
|
|
46
46
|
}
|
|
47
47
|
return (react_1.default.createElement(feature_likes_1.FeatureLikes, { liked: liked, toggleIsLiked: toggleIsLiked, toggleIsDisliked: toggleIsDisliked }));
|
|
48
48
|
};
|
|
49
|
-
exports.
|
|
50
|
-
//# sourceMappingURL=
|
|
49
|
+
exports.FeatureLeaderboardFeatureLikes = FeatureLeaderboardFeatureLikes;
|
|
50
|
+
//# sourceMappingURL=FeatureLeaderboardFeatureLikes.js.map
|
|
@@ -6,34 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.FeatureLeaderboardEntryDrawer = exports.DrawerMode = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
|
-
const Code_1 = __importDefault(require("@mui/icons-material/Code"));
|
|
10
|
-
const ModeEdit_1 = __importDefault(require("@mui/icons-material/ModeEdit"));
|
|
11
|
-
const CopyAll_1 = __importDefault(require("@mui/icons-material/CopyAll"));
|
|
12
|
-
const _utils_1 = require("../../../utils");
|
|
13
|
-
const LeaderboardFeatureLikes_1 = require("../components/LeaderboardFeatureLikes");
|
|
14
9
|
const FeatureLeaderboardEntryDetails_1 = require("./FeatureLeaderboardEntryDetails");
|
|
15
10
|
const FeatureLeaderboardEntryFeatureEditor_1 = require("./FeatureLeaderboardEntryFeatureEditor");
|
|
16
|
-
const
|
|
17
|
-
const DetailsToggle = (props) => (react_1.default.createElement("span", { className: "details-toggle", onClick: props.onClick },
|
|
18
|
-
react_1.default.createElement("span", null, "\u25B6")));
|
|
19
|
-
const FeatureLabel = (props) => (react_1.default.createElement("span", { className: "feature-name-label label-bold" },
|
|
20
|
-
react_1.default.createElement(material_1.Tooltip, { title: props.featureEntry.feature.id, placement: "bottom" },
|
|
21
|
-
react_1.default.createElement("span", null, props.featureEntry.feature.id))));
|
|
22
|
-
const FeatureActions = (props) => {
|
|
23
|
-
var _a, _b;
|
|
24
|
-
const isWithActions = (_a = props.isWithActions) !== null && _a !== void 0 ? _a : true;
|
|
25
|
-
const isWithLikes = (_b = props.isWithLikes) !== null && _b !== void 0 ? _b : true;
|
|
26
|
-
return (react_1.default.createElement("div", { style: { marginLeft: 'auto', display: 'flex', gap: '5px' } },
|
|
27
|
-
isWithActions ? (react_1.default.createElement("div", { className: "fl-entry-row-actions" },
|
|
28
|
-
react_1.default.createElement("div", { className: "fl-entry-row-hidden-actions" },
|
|
29
|
-
react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.setMode(DrawerMode.Edit) },
|
|
30
|
-
react_1.default.createElement(ModeEdit_1.default, { className: "action-btn" })),
|
|
31
|
-
react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.setMode(DrawerMode.Copy) },
|
|
32
|
-
react_1.default.createElement(CopyAll_1.default, { className: "action-btn" })),
|
|
33
|
-
react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.setMode(DrawerMode.Code) },
|
|
34
|
-
react_1.default.createElement(Code_1.default, { className: "action-btn" }))))) : null,
|
|
35
|
-
isWithLikes ? (react_1.default.createElement(LeaderboardFeatureLikes_1.LeaderboardFeatureLikes, { featureId: props.featureEntry.feature.id })) : null));
|
|
36
|
-
};
|
|
11
|
+
const feature_leaderboard_entry_drawer_header_1 = require("./feature-leaderboard-entry-drawer-header");
|
|
37
12
|
var DrawerMode;
|
|
38
13
|
(function (DrawerMode) {
|
|
39
14
|
DrawerMode["None"] = "none";
|
|
@@ -42,19 +17,14 @@ var DrawerMode;
|
|
|
42
17
|
DrawerMode["Code"] = "code";
|
|
43
18
|
DrawerMode["Details"] = "details";
|
|
44
19
|
})(DrawerMode = exports.DrawerMode || (exports.DrawerMode = {}));
|
|
45
|
-
const FeatureLeaderboardEntryDrawer = props => {
|
|
20
|
+
const FeatureLeaderboardEntryDrawer = (props) => {
|
|
46
21
|
var _a;
|
|
47
|
-
const [mode, setMode] = react_1.default.useState((
|
|
22
|
+
const [mode, setMode] = react_1.default.useState((_a = props.initMode) !== null && _a !== void 0 ? _a : DrawerMode.None);
|
|
48
23
|
const isExpanded = mode === DrawerMode.Code || mode === DrawerMode.Details;
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
const onSetModel = (mode) => {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
if ((_a = props.config) === null || _a === void 0 ? void 0 : _a.onSetModel) {
|
|
57
|
-
const setInlineMode = (_b = props.config.onSetModel(mode)) !== null && _b !== void 0 ? _b : true;
|
|
24
|
+
const onModeChange = (mode) => {
|
|
25
|
+
var _a;
|
|
26
|
+
if (props === null || props === void 0 ? void 0 : props.onModelChange) {
|
|
27
|
+
const setInlineMode = (_a = props.onModelChange(mode)) !== null && _a !== void 0 ? _a : true;
|
|
58
28
|
if (setInlineMode) {
|
|
59
29
|
setMode(mode);
|
|
60
30
|
}
|
|
@@ -64,19 +34,12 @@ const FeatureLeaderboardEntryDrawer = props => {
|
|
|
64
34
|
}
|
|
65
35
|
};
|
|
66
36
|
const onCancel = () => {
|
|
67
|
-
var _a
|
|
37
|
+
var _a;
|
|
68
38
|
setMode(DrawerMode.None);
|
|
69
|
-
(
|
|
39
|
+
(_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
70
40
|
};
|
|
71
41
|
return (react_1.default.createElement("div", { className: `feature-leaderboard-entry-drawer ${isExpanded ? 'expanded' : ''}` },
|
|
72
|
-
react_1.default.createElement(
|
|
73
|
-
isAssessed && isWithAssessment ? (react_1.default.createElement(DetailsToggle, { onClick: toggleModel(DrawerMode.Details) })) : isWithAssessment ? (react_1.default.createElement("span", { style: { width: '30px', display: 'inline-block' } })) : null,
|
|
74
|
-
react_1.default.createElement(FeatureLabel, { featureEntry: props.featureEntry }),
|
|
75
|
-
isWithAssessment ? (react_1.default.createElement("span", { className: "confidence-label", style: {
|
|
76
|
-
'--fill': `${props.featureEntry.signalConfidence * 100}%`,
|
|
77
|
-
} }, _utils_1.Localize.formatNumber(props.featureEntry.signalConfidence))) : null,
|
|
78
|
-
react_1.default.createElement(FeatureLeaderboardEntryHeader_1.FeatureLeaderboardEntryHeader, { feature: props.featureEntry.feature, isEdited: mode === DrawerMode.Edit, onClose: onCancel }),
|
|
79
|
-
react_1.default.createElement(FeatureActions, Object.assign({ mode: mode, setMode: onSetModel, featureEntry: props.featureEntry }, props === null || props === void 0 ? void 0 : props.config))),
|
|
42
|
+
react_1.default.createElement(feature_leaderboard_entry_drawer_header_1.FeatureLeaderboardEntryDrawerHeader, Object.assign({ mode: mode, onModeChange: onModeChange, onCancel: onCancel }, props)),
|
|
80
43
|
react_1.default.createElement("div", { className: "feature-leaderboard-entry-drawer-details" },
|
|
81
44
|
react_1.default.createElement(material_1.Collapse, { in: mode === DrawerMode.Code || mode === DrawerMode.Copy, unmountOnExit: true },
|
|
82
45
|
react_1.default.createElement("br", null),
|
|
@@ -0,0 +1,39 @@
|
|
|
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.FeatureLeaderboardEntryActions = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
const material_1 = require("@mui/material");
|
|
10
|
+
const ModeEdit_1 = __importDefault(require("@mui/icons-material/ModeEdit"));
|
|
11
|
+
const CopyAll_1 = __importDefault(require("@mui/icons-material/CopyAll"));
|
|
12
|
+
const Code_1 = __importDefault(require("@mui/icons-material/Code"));
|
|
13
|
+
const FeatureLeaderboardFeatureLikes_1 = require("../../components/FeatureLeaderboardFeatureLikes");
|
|
14
|
+
const FeatureLeaderboardEntryDrawer_1 = require("../FeatureLeaderboardEntryDrawer");
|
|
15
|
+
function isWithAction(actionName, isWithActions) {
|
|
16
|
+
var _a;
|
|
17
|
+
return (0, lodash_1.isBoolean)(isWithActions)
|
|
18
|
+
? isWithActions
|
|
19
|
+
: (_a = isWithActions === null || isWithActions === void 0 ? void 0 : isWithActions[actionName]) !== null && _a !== void 0 ? _a : true;
|
|
20
|
+
}
|
|
21
|
+
const FeatureLeaderboardEntryActions = (props) => {
|
|
22
|
+
var _a;
|
|
23
|
+
const isWithEditAction = isWithAction('edit', props.isWithActions);
|
|
24
|
+
const isWithCopyAction = isWithAction('copy', props.isWithActions);
|
|
25
|
+
const isWithCodeAction = isWithAction('code', props.isWithActions);
|
|
26
|
+
const isWithLikes = (_a = props.isWithLikes) !== null && _a !== void 0 ? _a : true;
|
|
27
|
+
return (react_1.default.createElement("div", { style: { marginLeft: 'auto', display: 'flex', gap: '5px' } },
|
|
28
|
+
react_1.default.createElement("div", { className: "fl-entry-row-actions" },
|
|
29
|
+
react_1.default.createElement("div", { className: "fl-entry-row-hidden-actions" },
|
|
30
|
+
isWithEditAction ? (react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.onModeChange(FeatureLeaderboardEntryDrawer_1.DrawerMode.Edit) },
|
|
31
|
+
react_1.default.createElement(ModeEdit_1.default, { className: "action-btn" }))) : null,
|
|
32
|
+
isWithCopyAction ? (react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.onModeChange(FeatureLeaderboardEntryDrawer_1.DrawerMode.Copy) },
|
|
33
|
+
react_1.default.createElement(CopyAll_1.default, { className: "action-btn" }))) : null,
|
|
34
|
+
isWithCodeAction ? (react_1.default.createElement(material_1.IconButton, { color: "primary", size: "small", onClick: () => props.onModeChange(FeatureLeaderboardEntryDrawer_1.DrawerMode.Code) },
|
|
35
|
+
react_1.default.createElement(Code_1.default, { className: "action-btn" }))) : null)),
|
|
36
|
+
isWithLikes ? (react_1.default.createElement(FeatureLeaderboardFeatureLikes_1.FeatureLeaderboardFeatureLikes, { featureId: props.featureEntry.feature.id })) : null));
|
|
37
|
+
};
|
|
38
|
+
exports.FeatureLeaderboardEntryActions = FeatureLeaderboardEntryActions;
|
|
39
|
+
//# sourceMappingURL=FeatureLeaderboardEntryActions.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
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.FeatureLeaderboardEntryDrawerHeader = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const material_1 = require("@mui/material");
|
|
9
|
+
const _utils_1 = require("../../../../utils");
|
|
10
|
+
const FeatureLeaderboardEntryExplanation_1 = require("./FeatureLeaderboardEntryExplanation");
|
|
11
|
+
const FeatureLeaderboardEntryDrawer_1 = require("../FeatureLeaderboardEntryDrawer");
|
|
12
|
+
const FeatureLeaderboardEntryActions_1 = require("./FeatureLeaderboardEntryActions");
|
|
13
|
+
const DetailsToggle = (props) => (react_1.default.createElement("span", { className: "details-toggle", onClick: props.onClick },
|
|
14
|
+
react_1.default.createElement("span", null, "\u25B6")));
|
|
15
|
+
const FeatureLabel = (props) => (react_1.default.createElement("span", { className: "feature-name-label label-bold" },
|
|
16
|
+
react_1.default.createElement(material_1.Tooltip, { title: props.featureEntry.feature.id, placement: "bottom" },
|
|
17
|
+
react_1.default.createElement("span", null, props.featureEntry.feature.id))));
|
|
18
|
+
const FeatureLeaderboardEntryDrawerHeader = (props) => {
|
|
19
|
+
var _a;
|
|
20
|
+
const isWithAssessment = props.isWithAssessment;
|
|
21
|
+
const isAssessed = (_a = props.featureEntry.isAssessed) !== null && _a !== void 0 ? _a : isWithAssessment;
|
|
22
|
+
const toggleModel = (toggledMode) => {
|
|
23
|
+
return () => props.onModeChange(props.mode === toggledMode ? FeatureLeaderboardEntryDrawer_1.DrawerMode.None : toggledMode);
|
|
24
|
+
};
|
|
25
|
+
return (react_1.default.createElement("div", { className: "feature-leaderboard-entry-drawer-header", style: { display: 'flex' } },
|
|
26
|
+
isAssessed && isWithAssessment ? (react_1.default.createElement(DetailsToggle, { onClick: toggleModel(FeatureLeaderboardEntryDrawer_1.DrawerMode.Details) })) : isWithAssessment ? (react_1.default.createElement("span", { style: { width: '30px', display: 'inline-block' } })) : null,
|
|
27
|
+
react_1.default.createElement(FeatureLabel, { featureEntry: props.featureEntry }),
|
|
28
|
+
isWithAssessment ? (react_1.default.createElement("span", { className: "confidence-label", style: {
|
|
29
|
+
'--fill': `${props.featureEntry.signalConfidence * 100}%`,
|
|
30
|
+
} }, _utils_1.Localize.formatNumber(props.featureEntry.signalConfidence))) : null,
|
|
31
|
+
react_1.default.createElement(FeatureLeaderboardEntryExplanation_1.FeatureLeaderboardEntryExplanation, { feature: props.featureEntry.feature, isEdited: props.mode === FeatureLeaderboardEntryDrawer_1.DrawerMode.Edit, onClose: props.onCancel }),
|
|
32
|
+
react_1.default.createElement(FeatureLeaderboardEntryActions_1.FeatureLeaderboardEntryActions, Object.assign({}, props))));
|
|
33
|
+
};
|
|
34
|
+
exports.FeatureLeaderboardEntryDrawerHeader = FeatureLeaderboardEntryDrawerHeader;
|
|
35
|
+
//# sourceMappingURL=FeatureLeaderboardEntryDrawerHeader.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
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.FeatureLeaderboardEntryExplanation = exports.FeatureLeaderboardUserExplanationEditor = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const widget_api_1 = require("../../../../utils/widget-api");
|
|
9
|
+
const widget_model_1 = require("../../../../utils/widget-model");
|
|
10
|
+
const feature_user_explanation_1 = require("../../../../feature/feature-user-explanation");
|
|
11
|
+
const FeatureExplanation_1 = require("../../../../feature/feature-explanation/FeatureExplanation");
|
|
12
|
+
const feature_user_explanation_2 = require("../../../../feature/feature-user-explanation");
|
|
13
|
+
const ActionFooter_1 = require("../../../../components/ActionFooter");
|
|
14
|
+
const FeatureLeaderboardUserExplanationEditor = (props) => {
|
|
15
|
+
const Widget = widget_api_1.WidgetApi.init((0, widget_model_1.useWidgetModelContext)());
|
|
16
|
+
const [userExplanation, setUserExplanation] = react_1.default.useState(props.feature.user_explanation ||
|
|
17
|
+
(0, feature_user_explanation_2.explanationToUserExplanation)(props.feature.explanation.tokens));
|
|
18
|
+
return (react_1.default.createElement("div", { style: { display: 'flex' } },
|
|
19
|
+
react_1.default.createElement(feature_user_explanation_2.FeatureUserExplanationEditor, { userExplanation: userExplanation, onUserExplanationChange: setUserExplanation }),
|
|
20
|
+
react_1.default.createElement(ActionFooter_1.ActionFooter, { primaryButton: { label: 'Save' }, tertiaryButton: { label: 'Cancel' }, onTertiaryButtonClick: props.onClose, onPrimaryButtonClick: () => {
|
|
21
|
+
Widget.callMethod('set_user_explanation', {
|
|
22
|
+
id: props.feature.id,
|
|
23
|
+
user_explanation: userExplanation,
|
|
24
|
+
})
|
|
25
|
+
.then(() => props.onClose())
|
|
26
|
+
.catch(e => console.error(e));
|
|
27
|
+
} })));
|
|
28
|
+
};
|
|
29
|
+
exports.FeatureLeaderboardUserExplanationEditor = FeatureLeaderboardUserExplanationEditor;
|
|
30
|
+
const FeatureLeaderboardEntryExplanation = (props) => {
|
|
31
|
+
return (react_1.default.createElement("div", { style: { flex: '1 0 auto' } }, props.isEdited ? (react_1.default.createElement(exports.FeatureLeaderboardUserExplanationEditor, Object.assign({}, props))) : props.feature.user_explanation ? (react_1.default.createElement(feature_user_explanation_1.FeatureUserExplanationDisplay, { userExplanation: props.feature.user_explanation })) : (react_1.default.createElement(FeatureExplanation_1.FeatureExplanation, { explanationBlocks: props.feature.explanation.tokens }))));
|
|
32
|
+
};
|
|
33
|
+
exports.FeatureLeaderboardEntryExplanation = FeatureLeaderboardEntryExplanation;
|
|
34
|
+
//# sourceMappingURL=FeatureLeaderboardEntryExplanation.js.map
|
|
@@ -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("./FeatureLeaderboardEntryDrawerHeader"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dotdata_widgets",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.121",
|
|
4
4
|
"description": "A dotdata widget",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dotdata",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"lint:check": "eslint . --ext .ts,.tsx",
|
|
46
46
|
"prepack": "yarn run build:lib",
|
|
47
47
|
"test": "jest",
|
|
48
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
48
49
|
"watch": "npm-run-all -p watch:*",
|
|
49
50
|
"watch:lib": "concurrently \"tsc -w\" \"tsc-alias -w\"",
|
|
50
51
|
"watch:nbextension": "webpack --watch --mode=development",
|
|
@@ -1,16 +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.SourceTypeInt = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const SourceTypeInt = (props = { size: 24 }) => (react_1.default.createElement("svg", { viewBox: "0 0 24 24", width: props.size, height: props.size },
|
|
9
|
-
react_1.default.createElement("g", null,
|
|
10
|
-
react_1.default.createElement("rect", { width: "24", height: "24", fill: "#575757", rx: "3", x: "0", y: "0" }),
|
|
11
|
-
react_1.default.createElement("text", { fill: "rgb(255, 255, 255)", style: {
|
|
12
|
-
fontSize: '11px',
|
|
13
|
-
fontWeight: '700'
|
|
14
|
-
}, x: "3", y: "16" }))));
|
|
15
|
-
exports.SourceTypeInt = SourceTypeInt;
|
|
16
|
-
//# sourceMappingURL=source-type-int.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.prettify = void 0;
|
|
15
|
-
function prettify(item) {
|
|
16
|
-
const { type } = item, fields = __rest(item, ["type"]);
|
|
17
|
-
return `${type}(${Object.entries(fields)
|
|
18
|
-
.map(([k, v]) => `${k.toString()}=${prettifyValue(v)}`)
|
|
19
|
-
.join(', ')})`;
|
|
20
|
-
function prettifyValue(value) {
|
|
21
|
-
return typeof value === 'string' ? `'${value}'` : `${value}`;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.prettify = prettify;
|
|
25
|
-
//# sourceMappingURL=utils.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.FeatureLeaderboardEntryHeader = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const feature_user_explanation_1 = require("../../../feature/feature-user-explanation");
|
|
9
|
-
const FeatureExplanation_1 = require("../../../feature/feature-explanation/FeatureExplanation");
|
|
10
|
-
const FeatureLeaderboardUserExplanation_1 = require("./FeatureLeaderboardUserExplanation");
|
|
11
|
-
const FeatureLeaderboardEntryHeader = (props) => {
|
|
12
|
-
return (react_1.default.createElement("div", { style: { flex: '1 0 auto' } }, props.isEdited ? (react_1.default.createElement(FeatureLeaderboardUserExplanation_1.FeatureLeaderboardUserExplanation, { feature: props.feature, onClose: props.onClose })) : props.feature.user_explanation ? (react_1.default.createElement(feature_user_explanation_1.FeatureUserExplanationDisplay, { userExplanation: props.feature.user_explanation })) : (react_1.default.createElement(FeatureExplanation_1.FeatureExplanation, { explanationBlocks: props.feature.explanation.tokens }))));
|
|
13
|
-
};
|
|
14
|
-
exports.FeatureLeaderboardEntryHeader = FeatureLeaderboardEntryHeader;
|
|
15
|
-
//# sourceMappingURL=FeatureLeaderboardEntryHeader.js.map
|
package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardUserExplanation.js
DELETED
|
@@ -1,28 +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.FeatureLeaderboardUserExplanation = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const widget_api_1 = require("../../../utils/widget-api");
|
|
9
|
-
const widget_model_1 = require("../../../utils/widget-model");
|
|
10
|
-
const ActionFooter_1 = require("../../../components/ActionFooter");
|
|
11
|
-
const feature_user_explanation_1 = require("../../../feature/feature-user-explanation");
|
|
12
|
-
const FeatureLeaderboardUserExplanation = (props) => {
|
|
13
|
-
const Widget = widget_api_1.WidgetApi.init((0, widget_model_1.useWidgetModelContext)());
|
|
14
|
-
const [userExplanation, setUserExplanation] = react_1.default.useState(props.feature.user_explanation ||
|
|
15
|
-
(0, feature_user_explanation_1.explanationToUserExplanation)(props.feature.explanation.tokens));
|
|
16
|
-
return (react_1.default.createElement("div", { style: { display: 'flex' } },
|
|
17
|
-
react_1.default.createElement(feature_user_explanation_1.FeatureUserExplanation, { userExplanation: userExplanation, onUserExplanationChange: setUserExplanation }),
|
|
18
|
-
react_1.default.createElement(ActionFooter_1.ActionFooter, { primaryButton: { label: 'Save' }, tertiaryButton: { label: 'Cancel' }, onTertiaryButtonClick: props.onClose, onPrimaryButtonClick: () => {
|
|
19
|
-
Widget.callMethod('set_user_explanation', {
|
|
20
|
-
id: props.feature.id,
|
|
21
|
-
user_explanation: userExplanation,
|
|
22
|
-
})
|
|
23
|
-
.then(() => props.onClose())
|
|
24
|
-
.catch(e => console.error(e));
|
|
25
|
-
} })));
|
|
26
|
-
};
|
|
27
|
-
exports.FeatureLeaderboardUserExplanation = FeatureLeaderboardUserExplanation;
|
|
28
|
-
//# sourceMappingURL=FeatureLeaderboardUserExplanation.js.map
|