@pie-lib/charting 5.22.0 → 5.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -16
- package/lib/actions-button.js +174 -0
- package/lib/actions-button.js.map +1 -0
- package/lib/axes.js +614 -0
- package/lib/axes.js.map +1 -0
- package/lib/bars/bar.js +86 -0
- package/lib/bars/bar.js.map +1 -0
- package/lib/bars/common/bars.js +299 -0
- package/lib/bars/common/bars.js.map +1 -0
- package/lib/bars/histogram.js +87 -0
- package/lib/bars/histogram.js.map +1 -0
- package/lib/chart-setup.js +458 -0
- package/lib/chart-setup.js.map +1 -0
- package/lib/chart-type.js +71 -0
- package/lib/chart-type.js.map +1 -0
- package/lib/chart-types.js +31 -0
- package/lib/chart-types.js.map +1 -0
- package/lib/chart.js +447 -0
- package/lib/chart.js.map +1 -0
- package/lib/common/drag-handle.js +175 -0
- package/lib/common/drag-handle.js.map +1 -0
- package/lib/common/drag-icon.js +52 -0
- package/lib/common/drag-icon.js.map +1 -0
- package/lib/common/styles.js +40 -0
- package/lib/common/styles.js.map +1 -0
- package/lib/grid.js +141 -0
- package/lib/grid.js.map +1 -0
- package/lib/index.js +48 -0
- package/lib/index.js.map +1 -0
- package/lib/key-legend.js +111 -0
- package/lib/key-legend.js.map +1 -0
- package/lib/line/common/drag-handle.js +151 -0
- package/lib/line/common/drag-handle.js.map +1 -0
- package/lib/line/common/line.js +257 -0
- package/lib/line/common/line.js.map +1 -0
- package/lib/line/line-cross.js +203 -0
- package/lib/line/line-cross.js.map +1 -0
- package/lib/line/line-dot.js +156 -0
- package/lib/line/line-dot.js.map +1 -0
- package/lib/mark-label.js +260 -0
- package/lib/mark-label.js.map +1 -0
- package/lib/plot/common/plot.js +281 -0
- package/lib/plot/common/plot.js.map +1 -0
- package/lib/plot/dot.js +123 -0
- package/lib/plot/dot.js.map +1 -0
- package/lib/plot/line.js +152 -0
- package/lib/plot/line.js.map +1 -0
- package/lib/tool-menu.js +142 -0
- package/lib/tool-menu.js.map +1 -0
- package/lib/utils.js +244 -0
- package/lib/utils.js.map +1 -0
- package/package.json +5 -5
- package/src/chart-types.js +2 -2
- package/src/line/common/__tests__/drag-handle.test.jsx +2 -2
- package/src/plot/common/__tests__/plot.test.jsx +1 -1
- package/src/plot/dot.js +1 -1
- package/src/plot/line.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [5.
|
|
6
|
+
# [5.23.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.23.0) (2025-07-31)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-lib/charting
|
|
9
9
|
|
|
@@ -11,38 +11,26 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
# [5.
|
|
14
|
+
# [5.22.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.22.0) (2025-07-31)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @pie-lib/charting
|
|
17
17
|
|
|
18
|
+
# [5.21.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.21.0) (2025-07-31)
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
21
21
|
|
|
22
22
|
# [5.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.20.0) (2025-07-31)
|
|
23
23
|
|
|
24
24
|
**Note:** Version bump only for package @pie-lib/charting
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
26
|
# [5.19.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.19.0) (2025-07-31)
|
|
31
27
|
|
|
32
28
|
**Note:** Version bump only for package @pie-lib/charting
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
30
|
# [5.18.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.18.0) (2025-07-31)
|
|
39
31
|
|
|
40
32
|
**Note:** Version bump only for package @pie-lib/charting
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
34
|
# [5.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.15.6...@pie-lib/charting@5.20.0) (2025-07-31)
|
|
47
35
|
|
|
48
36
|
**Note:** Version bump only for package @pie-lib/charting
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.ActionsButton = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
|
25
|
+
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _styles = require("@material-ui/core/styles");
|
|
29
|
+
|
|
30
|
+
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
31
|
+
|
|
32
|
+
var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
|
|
33
|
+
|
|
34
|
+
var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
|
|
35
|
+
|
|
36
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
37
|
+
|
|
38
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
39
|
+
|
|
40
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
|
+
|
|
42
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
|
|
44
|
+
var translator = _translator["default"].translator;
|
|
45
|
+
|
|
46
|
+
var ActionsButton = /*#__PURE__*/function (_React$Component) {
|
|
47
|
+
(0, _inherits2["default"])(ActionsButton, _React$Component);
|
|
48
|
+
|
|
49
|
+
var _super = _createSuper(ActionsButton);
|
|
50
|
+
|
|
51
|
+
function ActionsButton(props) {
|
|
52
|
+
var _this;
|
|
53
|
+
|
|
54
|
+
(0, _classCallCheck2["default"])(this, ActionsButton);
|
|
55
|
+
_this = _super.call(this, props);
|
|
56
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleActionsClick", function (event) {
|
|
57
|
+
_this.setState({
|
|
58
|
+
actionsAnchorEl: event.currentTarget
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleActionsClose", function () {
|
|
62
|
+
_this.setState({
|
|
63
|
+
actionsAnchorEl: null
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAddCategory", function () {
|
|
67
|
+
var addCategory = _this.props.addCategory;
|
|
68
|
+
addCategory();
|
|
69
|
+
|
|
70
|
+
_this.handleActionsClose();
|
|
71
|
+
});
|
|
72
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleDeleteCategory", function (index) {
|
|
73
|
+
var deleteCategory = _this.props.deleteCategory;
|
|
74
|
+
deleteCategory(index);
|
|
75
|
+
|
|
76
|
+
_this.handleActionsClose();
|
|
77
|
+
});
|
|
78
|
+
_this.state = {
|
|
79
|
+
actionsAnchorEl: null
|
|
80
|
+
};
|
|
81
|
+
return _this;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
(0, _createClass2["default"])(ActionsButton, [{
|
|
85
|
+
key: "render",
|
|
86
|
+
value: function render() {
|
|
87
|
+
var _this2 = this;
|
|
88
|
+
|
|
89
|
+
var _this$props = this.props,
|
|
90
|
+
classes = _this$props.classes,
|
|
91
|
+
categories = _this$props.categories,
|
|
92
|
+
language = _this$props.language;
|
|
93
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
94
|
+
className: classes.actions
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
+
role: "button",
|
|
97
|
+
tabIndex: 0,
|
|
98
|
+
className: classes.trigger,
|
|
99
|
+
onClick: this.handleActionsClick
|
|
100
|
+
}, "Actions"), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
|
|
101
|
+
open: Boolean(this.state.actionsAnchorEl),
|
|
102
|
+
anchorEl: this.state.actionsAnchorEl,
|
|
103
|
+
onClose: this.handleActionsClose,
|
|
104
|
+
anchorOrigin: {
|
|
105
|
+
vertical: 'bottom',
|
|
106
|
+
horizontal: 'left'
|
|
107
|
+
},
|
|
108
|
+
transformOrigin: {
|
|
109
|
+
vertical: 'top',
|
|
110
|
+
horizontal: 'left'
|
|
111
|
+
}
|
|
112
|
+
}, /*#__PURE__*/_react["default"].createElement(_Paper["default"], {
|
|
113
|
+
className: classes.actionsPaper
|
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
115
|
+
onClick: function onClick() {
|
|
116
|
+
return _this2.handleAddCategory();
|
|
117
|
+
}
|
|
118
|
+
}, "+ ", translator.t('charting.add', {
|
|
119
|
+
lng: language
|
|
120
|
+
})), categories.length > 0 && categories.map(function (category, index) {
|
|
121
|
+
return category.deletable && !category.correctness && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
122
|
+
key: index,
|
|
123
|
+
onClick: function onClick() {
|
|
124
|
+
return _this2.handleDeleteCategory(index);
|
|
125
|
+
}
|
|
126
|
+
}, "".concat(translator.t('charting.delete', {
|
|
127
|
+
lng: language
|
|
128
|
+
}), " <").concat(category.label || translator.t('charting.newLabel', {
|
|
129
|
+
lng: language
|
|
130
|
+
}), ">"));
|
|
131
|
+
}))));
|
|
132
|
+
}
|
|
133
|
+
}]);
|
|
134
|
+
return ActionsButton;
|
|
135
|
+
}(_react["default"].Component);
|
|
136
|
+
|
|
137
|
+
exports.ActionsButton = ActionsButton;
|
|
138
|
+
(0, _defineProperty2["default"])(ActionsButton, "propTypes", {
|
|
139
|
+
classes: _propTypes["default"].object.isRequired,
|
|
140
|
+
categories: _propTypes["default"].array,
|
|
141
|
+
addCategory: _propTypes["default"].func.isRequired,
|
|
142
|
+
deleteCategory: _propTypes["default"].func.isRequired,
|
|
143
|
+
language: _propTypes["default"].string.isRequired
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
var styles = function styles(theme) {
|
|
147
|
+
return {
|
|
148
|
+
actions: {
|
|
149
|
+
alignSelf: 'flex-end'
|
|
150
|
+
},
|
|
151
|
+
trigger: {
|
|
152
|
+
cursor: 'pointer',
|
|
153
|
+
fontSize: theme.typography.fontSize,
|
|
154
|
+
color: _renderUi.color.tertiary()
|
|
155
|
+
},
|
|
156
|
+
actionsPaper: {
|
|
157
|
+
padding: theme.spacing.unit,
|
|
158
|
+
display: 'flex',
|
|
159
|
+
flexDirection: 'column',
|
|
160
|
+
gap: theme.spacing.unit,
|
|
161
|
+
'& button': {
|
|
162
|
+
textTransform: 'none',
|
|
163
|
+
fontSize: theme.typography.fontSize,
|
|
164
|
+
color: _renderUi.color.text(),
|
|
165
|
+
justifyContent: 'flex-start'
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
var _default = (0, _styles.withStyles)(styles)(ActionsButton);
|
|
172
|
+
|
|
173
|
+
exports["default"] = _default;
|
|
174
|
+
//# sourceMappingURL=actions-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/actions-button.jsx"],"names":["translator","Translator","ActionsButton","props","event","setState","actionsAnchorEl","currentTarget","addCategory","handleActionsClose","index","deleteCategory","state","classes","categories","language","actions","trigger","handleActionsClick","Boolean","vertical","horizontal","actionsPaper","handleAddCategory","t","lng","length","map","category","deletable","correctness","handleDeleteCategory","label","React","Component","PropTypes","object","isRequired","array","func","string","styles","theme","alignSelf","cursor","fontSize","typography","color","tertiary","padding","spacing","unit","display","flexDirection","gap","textTransform","text","justifyContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Popover from '@material-ui/core/Popover';\nimport Paper from '@material-ui/core/Paper';\n\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class ActionsButton extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n actionsAnchorEl: null,\n };\n }\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.array,\n addCategory: PropTypes.func.isRequired,\n deleteCategory: PropTypes.func.isRequired,\n language: PropTypes.string.isRequired,\n };\n\n handleActionsClick = (event) => {\n this.setState({ actionsAnchorEl: event.currentTarget });\n };\n\n handleActionsClose = () => {\n this.setState({ actionsAnchorEl: null });\n };\n\n handleAddCategory = () => {\n const { addCategory } = this.props;\n addCategory();\n this.handleActionsClose();\n };\n\n handleDeleteCategory = (index) => {\n const { deleteCategory } = this.props;\n deleteCategory(index);\n this.handleActionsClose();\n };\n\n render() {\n const { classes, categories, language } = this.props;\n\n return (\n <div className={classes.actions}>\n <div role=\"button\" tabIndex={0} className={classes.trigger} onClick={this.handleActionsClick}>\n Actions\n </div>\n <Popover\n open={Boolean(this.state.actionsAnchorEl)}\n anchorEl={this.state.actionsAnchorEl}\n onClose={this.handleActionsClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Paper className={classes.actionsPaper}>\n <Button onClick={() => this.handleAddCategory()}>\n + {translator.t('charting.add', { lng: language })}\n </Button>\n {categories.length > 0 &&\n categories.map(\n (category, index) =>\n category.deletable &&\n !category.correctness && (\n <Button key={index} onClick={() => this.handleDeleteCategory(index)}>\n {`${translator.t('charting.delete', { lng: language })} <${category.label ||\n translator.t('charting.newLabel', { lng: language })}>`}\n </Button>\n ),\n )}\n </Paper>\n </Popover>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n actions: {\n alignSelf: 'flex-end',\n },\n trigger: {\n cursor: 'pointer',\n fontSize: theme.typography.fontSize,\n color: color.tertiary(),\n },\n actionsPaper: {\n padding: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing.unit,\n '& button': {\n textTransform: 'none',\n fontSize: theme.typography.fontSize,\n color: color.text(),\n justifyContent: 'flex-start',\n },\n },\n});\n\nexport default withStyles(styles)(ActionsButton);\n"],"file":"actions-button.js"}
|