@pie-lib/graphing-solution-set 3.1.0-next.4 → 3.1.0-next.5

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 (79) hide show
  1. package/lib/axis/arrow.js +79 -0
  2. package/lib/axis/arrow.js.map +1 -0
  3. package/lib/axis/axes.js +325 -0
  4. package/lib/axis/axes.js.map +1 -0
  5. package/lib/axis/index.js +21 -0
  6. package/lib/axis/index.js.map +1 -0
  7. package/lib/bg.js +111 -0
  8. package/lib/bg.js.map +1 -0
  9. package/lib/container/actions.js +18 -0
  10. package/lib/container/actions.js.map +1 -0
  11. package/lib/container/index.js +120 -0
  12. package/lib/container/index.js.map +1 -0
  13. package/lib/container/marks.js +22 -0
  14. package/lib/container/marks.js.map +1 -0
  15. package/lib/container/middleware.js +19 -0
  16. package/lib/container/middleware.js.map +1 -0
  17. package/lib/container/reducer.js +18 -0
  18. package/lib/container/reducer.js.map +1 -0
  19. package/lib/coordinates-label.js +77 -0
  20. package/lib/coordinates-label.js.map +1 -0
  21. package/lib/graph-with-controls.js +298 -0
  22. package/lib/graph-with-controls.js.map +1 -0
  23. package/lib/graph.js +354 -0
  24. package/lib/graph.js.map +1 -0
  25. package/lib/grid-setup.js +406 -0
  26. package/lib/grid-setup.js.map +1 -0
  27. package/lib/grid.js +131 -0
  28. package/lib/grid.js.map +1 -0
  29. package/lib/index.js +40 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/labels.js +199 -0
  32. package/lib/labels.js.map +1 -0
  33. package/lib/mark-label.js +159 -0
  34. package/lib/mark-label.js.map +1 -0
  35. package/lib/toggle-bar.js +248 -0
  36. package/lib/toggle-bar.js.map +1 -0
  37. package/lib/tool-menu.js +218 -0
  38. package/lib/tool-menu.js.map +1 -0
  39. package/lib/tools/index.js +24 -0
  40. package/lib/tools/index.js.map +1 -0
  41. package/lib/tools/line/component.js +92 -0
  42. package/lib/tools/line/component.js.map +1 -0
  43. package/lib/tools/line/index.js +11 -0
  44. package/lib/tools/line/index.js.map +1 -0
  45. package/lib/tools/polygon/component.js +360 -0
  46. package/lib/tools/polygon/component.js.map +1 -0
  47. package/lib/tools/polygon/index.js +89 -0
  48. package/lib/tools/polygon/index.js.map +1 -0
  49. package/lib/tools/polygon/line.js +114 -0
  50. package/lib/tools/polygon/line.js.map +1 -0
  51. package/lib/tools/polygon/polygon.js +131 -0
  52. package/lib/tools/polygon/polygon.js.map +1 -0
  53. package/lib/tools/shared/arrow-head.js +62 -0
  54. package/lib/tools/shared/arrow-head.js.map +1 -0
  55. package/lib/tools/shared/line/index.js +541 -0
  56. package/lib/tools/shared/line/index.js.map +1 -0
  57. package/lib/tools/shared/line/line-path.js +121 -0
  58. package/lib/tools/shared/line/line-path.js.map +1 -0
  59. package/lib/tools/shared/line/with-root-edge.js +121 -0
  60. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  61. package/lib/tools/shared/point/arrow-point.js +86 -0
  62. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  63. package/lib/tools/shared/point/arrow.js +70 -0
  64. package/lib/tools/shared/point/arrow.js.map +1 -0
  65. package/lib/tools/shared/point/base-point.js +137 -0
  66. package/lib/tools/shared/point/base-point.js.map +1 -0
  67. package/lib/tools/shared/point/index.js +80 -0
  68. package/lib/tools/shared/point/index.js.map +1 -0
  69. package/lib/tools/shared/styles.js +26 -0
  70. package/lib/tools/shared/styles.js.map +1 -0
  71. package/lib/tools/shared/types.js +15 -0
  72. package/lib/tools/shared/types.js.map +1 -0
  73. package/lib/undo-redo.js +67 -0
  74. package/lib/undo-redo.js.map +1 -0
  75. package/lib/use-debounce.js +25 -0
  76. package/lib/use-debounce.js.map +1 -0
  77. package/lib/utils.js +239 -0
  78. package/lib/utils.js.map +1 -0
  79. package/package.json +9 -9
package/lib/index.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "Graph", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _graph["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "GraphContainer", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _container["default"];
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "GridSetup", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _gridSetup["default"];
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "ToolMenu", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _toolMenu["default"];
30
+ }
31
+ });
32
+ exports.tools = void 0;
33
+ var _graph = _interopRequireDefault(require("./graph"));
34
+ var _container = _interopRequireDefault(require("./container"));
35
+ var _gridSetup = _interopRequireDefault(require("./grid-setup"));
36
+ var tools = _interopRequireWildcard(require("./tools"));
37
+ exports.tools = tools;
38
+ var _toolMenu = _interopRequireDefault(require("./tool-menu"));
39
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_graph","_interopRequireDefault","require","_container","_gridSetup","tools","_interopRequireWildcard","exports","_toolMenu","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sources":["../src/index.js"],"sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport GridSetup from './grid-setup';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\n\nexport { Graph, GraphContainer, GridSetup, ToolMenu, tools };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAAiCK,OAAA,CAAAF,KAAA,GAAAA,KAAA;AACjC,IAAAG,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAmC,SAAAI,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,wBAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA","ignoreList":[]}
package/lib/labels.js ADDED
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getTransform = exports["default"] = exports.Labels = exports.LabelType = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _styles = require("@mui/material/styles");
17
+ var _plot = require("@pie-lib/plot");
18
+ var _renderUi = require("@pie-lib/render-ui");
19
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ var rotations = {
26
+ left: -90,
27
+ top: 0,
28
+ bottom: 0,
29
+ right: 90
30
+ };
31
+ var getTransform = exports.getTransform = function getTransform(side, width, height) {
32
+ var t = function t(x, y, rotate) {
33
+ return "translate(".concat(x, ", ").concat(y, "), rotate(").concat(rotate, ")");
34
+ };
35
+ if (side === 'left') return t(-20, height / 2, rotations[side]);
36
+ if (side === 'right') return t(width + 30, height / 2, rotations[side]);
37
+ if (side === 'top') return t(width / 2, -20, rotations[side]);
38
+ if (side === 'bottom') return t(width / 2, height + 30, rotations[side]);
39
+ };
40
+ var getY = function getY(side, height) {
41
+ switch (side) {
42
+ case 'left':
43
+ case 'top':
44
+ return -height;
45
+ case 'right':
46
+ return -height - 10;
47
+ default:
48
+ return -height + 10;
49
+ }
50
+ };
51
+ var PREFIX = 'Label';
52
+ var classes = {
53
+ label: "".concat(PREFIX, "-label"),
54
+ axisLabel: "".concat(PREFIX, "-axisLabel"),
55
+ disabledAxisLabel: "".concat(PREFIX, "-disabledAxisLabel"),
56
+ bottomLabel: "".concat(PREFIX, "-bottomLabel")
57
+ };
58
+ var Root = (0, _styles.styled)('div')(function (_ref) {
59
+ var theme = _ref.theme;
60
+ return (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, "& .".concat(classes.label), {
61
+ fill: _renderUi.color.defaults.SECONDARY
62
+ }), "& .".concat(classes.axisLabel), {
63
+ fontSize: theme.typography.fontSize - 2,
64
+ textAlign: 'center',
65
+ padding: '0 4px'
66
+ }), "& .".concat(classes.disabledAxisLabel), {
67
+ pointerEvents: 'none'
68
+ }), "& .".concat(classes.bottomLabel), {
69
+ marginTop: '44px'
70
+ });
71
+ });
72
+ var RawLabel = /*#__PURE__*/function (_React$Component) {
73
+ function RawLabel() {
74
+ (0, _classCallCheck2["default"])(this, RawLabel);
75
+ return _callSuper(this, RawLabel, arguments);
76
+ }
77
+ (0, _inherits2["default"])(RawLabel, _React$Component);
78
+ return (0, _createClass2["default"])(RawLabel, [{
79
+ key: "render",
80
+ value: function render() {
81
+ var _this$props = this.props,
82
+ disabledLabel = _this$props.disabledLabel,
83
+ placeholder = _this$props.placeholder,
84
+ text = _this$props.text,
85
+ side = _this$props.side,
86
+ graphProps = _this$props.graphProps,
87
+ onChange = _this$props.onChange,
88
+ _this$props$mathMlOpt = _this$props.mathMlOptions,
89
+ mathMlOptions = _this$props$mathMlOpt === void 0 ? {} : _this$props$mathMlOpt;
90
+ var size = graphProps.size,
91
+ domain = graphProps.domain,
92
+ range = graphProps.range;
93
+ var totalHeight = (size.height || 500) + (range.padding || 0) * 2;
94
+ var totalWidth = (size.width || 500) + (domain.padding || 0) * 2;
95
+ var transform = getTransform(side, totalWidth, totalHeight);
96
+ var width = side === 'left' || side === 'right' ? totalHeight : totalWidth;
97
+ var height = 36;
98
+ var y = getY(side, height);
99
+ var finalHeight = side === 'bottom' ? height + 22 : height + 18;
100
+ var activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math'];
101
+ return /*#__PURE__*/_react["default"].createElement(Root, null, /*#__PURE__*/_react["default"].createElement("foreignObject", {
102
+ x: -(width / 2),
103
+ y: y,
104
+ width: width,
105
+ height: finalHeight,
106
+ transform: transform,
107
+ textAnchor: "middle"
108
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, null, /*#__PURE__*/_react["default"].createElement(_editableHtmlTipTap["default"], {
109
+ className: (0, _classnames["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, classes.bottomLabel, side === 'bottom'), classes.disabledAxisLabel, disabledLabel), classes.axisLabel),
110
+ markup: text || '',
111
+ onChange: onChange,
112
+ placeholder: !disabledLabel && placeholder,
113
+ toolbarOpts: {
114
+ position: side === 'bottom' ? 'top' : 'bottom',
115
+ noPadding: true,
116
+ noBorder: true
117
+ },
118
+ activePlugins: activePlugins,
119
+ mathMlOptions: mathMlOptions
120
+ }))));
121
+ }
122
+ }]);
123
+ }(_react["default"].Component);
124
+ (0, _defineProperty2["default"])(RawLabel, "propTypes", {
125
+ text: _propTypes["default"].string,
126
+ side: _propTypes["default"].string,
127
+ disabledLabel: _propTypes["default"].bool,
128
+ placeholder: _propTypes["default"].string,
129
+ graphProps: _plot.types.GraphPropsType.isRequired,
130
+ onChange: _propTypes["default"].func,
131
+ mathMlOptions: _propTypes["default"].object
132
+ });
133
+ (0, _defineProperty2["default"])(RawLabel, "defaultProps", {
134
+ onChange: function onChange() {}
135
+ });
136
+ var LabelType = exports.LabelType = {
137
+ left: _propTypes["default"].string,
138
+ top: _propTypes["default"].string,
139
+ bottom: _propTypes["default"].string,
140
+ right: _propTypes["default"].string
141
+ };
142
+ var Labels = exports.Labels = /*#__PURE__*/function (_React$Component2) {
143
+ function Labels() {
144
+ var _this;
145
+ (0, _classCallCheck2["default"])(this, Labels);
146
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
147
+ args[_key] = arguments[_key];
148
+ }
149
+ _this = _callSuper(this, Labels, [].concat(args));
150
+ (0, _defineProperty2["default"])(_this, "onChangeLabel", function (newValue, side) {
151
+ var _this$props2 = _this.props,
152
+ value = _this$props2.value,
153
+ onChange = _this$props2.onChange;
154
+ var labels = _objectSpread(_objectSpread({}, value), {}, (0, _defineProperty2["default"])({}, side, newValue));
155
+ onChange(labels);
156
+ });
157
+ return _this;
158
+ }
159
+ (0, _inherits2["default"])(Labels, _React$Component2);
160
+ return (0, _createClass2["default"])(Labels, [{
161
+ key: "render",
162
+ value: function render() {
163
+ var _this2 = this;
164
+ var _this$props3 = this.props,
165
+ disabledLabels = _this$props3.disabledLabels,
166
+ _this$props3$placehol = _this$props3.placeholders,
167
+ placeholders = _this$props3$placehol === void 0 ? {} : _this$props3$placehol,
168
+ _this$props3$value = _this$props3.value,
169
+ value = _this$props3$value === void 0 ? {} : _this$props3$value,
170
+ graphProps = _this$props3.graphProps,
171
+ _this$props3$mathMlOp = _this$props3.mathMlOptions,
172
+ mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp;
173
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, ['left', 'top', 'bottom', 'right'].map(function (side) {
174
+ return /*#__PURE__*/_react["default"].createElement(RawLabel, {
175
+ key: side,
176
+ side: side,
177
+ text: value[side],
178
+ disabledLabel: disabledLabels,
179
+ placeholder: placeholders[side],
180
+ graphProps: graphProps,
181
+ onChange: function onChange(val) {
182
+ return _this2.onChangeLabel(val, side);
183
+ },
184
+ mathMlOptions: mathMlOptions
185
+ });
186
+ }));
187
+ }
188
+ }]);
189
+ }(_react["default"].Component);
190
+ (0, _defineProperty2["default"])(Labels, "propTypes", {
191
+ disabledLabels: _propTypes["default"].bool,
192
+ placeholders: _propTypes["default"].object,
193
+ value: _propTypes["default"].shape(LabelType),
194
+ graphProps: _propTypes["default"].object,
195
+ onChange: _propTypes["default"].func,
196
+ mathMlOptions: _propTypes["default"].object
197
+ });
198
+ var _default = exports["default"] = RawLabel;
199
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_renderUi","_editableHtmlTipTap","_classnames","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","rotations","left","top","bottom","right","getTransform","exports","side","width","height","x","y","rotate","concat","getY","PREFIX","classes","label","axisLabel","disabledAxisLabel","bottomLabel","Root","styled","_ref","theme","fill","color","defaults","SECONDARY","fontSize","typography","textAlign","padding","pointerEvents","marginTop","RawLabel","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","disabledLabel","placeholder","text","graphProps","onChange","_this$props$mathMlOpt","mathMlOptions","size","domain","range","totalHeight","totalWidth","transform","finalHeight","activePlugins","createElement","textAnchor","Readable","className","cn","markup","toolbarOpts","position","noPadding","noBorder","React","Component","PropTypes","string","bool","types","GraphPropsType","isRequired","func","object","LabelType","Labels","_React$Component2","_this","_len","args","Array","_key","newValue","_this$props2","labels","_this2","_this$props3","disabledLabels","_this$props3$placehol","placeholders","_this$props3$value","_this$props3$mathMlOp","Fragment","map","val","onChangeLabel","shape","_default"],"sources":["../src/labels.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') return t(-20, height / 2, rotations[side]);\n if (side === 'right') return t(width + 30, height / 2, rotations[side]);\n if (side === 'top') return t(width / 2, -20, rotations[side]);\n if (side === 'bottom') return t(width / 2, height + 30, rotations[side]);\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nconst PREFIX = 'Label';\nconst classes = {\n label: `${PREFIX}-label`,\n axisLabel: `${PREFIX}-axisLabel`,\n disabledAxisLabel: `${PREFIX}-disabledAxisLabel`,\n bottomLabel: `${PREFIX}-bottomLabel`,\n};\n\nconst Root = styled('div')(({ theme }) => ({\n [`& .${classes.label}`]: {\n fill: color.defaults.SECONDARY,\n },\n [`& .${classes.axisLabel}`]: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n [`& .${classes.disabledAxisLabel}`]: {\n pointerEvents: 'none',\n },\n [`& .${classes.bottomLabel}`]: {\n marginTop: '44px',\n },\n}));\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, onChange, mathMlOptions = {} } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math'];\n\n return (\n <Root>\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n activePlugins={activePlugins}\n mathMlOptions={mathMlOptions}\n />\n </Readable>\n </foreignObject>\n </Root>\n );\n }\n}\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n };\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = { ...value, [side]: newValue };\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;\n\n return (\n <>\n {['left', 'top', 'bottom', 'right'].map((side) => (\n <RawLabel\n key={side}\n side={side}\n text={value[side]}\n disabledLabel={disabledLabels}\n placeholder={placeholders[side]}\n graphProps={graphProps}\n onChange={(val) => this.onChangeLabel(val, side)}\n mathMlOptions={mathMlOptions}\n />\n ))}\n </>\n );\n }\n}\n\nexport default RawLabel;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.position = exports["default"] = exports.coordinates = exports.MarkLabel = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _styles = require("@mui/material/styles");
14
+ var _reactInputAutosize = _interopRequireDefault(require("react-input-autosize"));
15
+ var _useDebounce = require("./use-debounce");
16
+ var _plot = require("@pie-lib/plot");
17
+ var _renderUi = require("@pie-lib/render-ui");
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ var StyledAutosizeInput = (0, _styles.styled)(_reactInputAutosize["default"], {
22
+ shouldForwardProp: function shouldForwardProp(prop) {
23
+ return !['disabled', 'markDisabled'].includes(prop);
24
+ }
25
+ })(function (_ref2) {
26
+ var theme = _ref2.theme,
27
+ disabled = _ref2.disabled,
28
+ markDisabled = _ref2.markDisabled;
29
+ return {
30
+ '& input': {
31
+ "float": 'right',
32
+ padding: theme.spacing(0.5),
33
+ fontFamily: theme.typography.fontFamily,
34
+ fontSize: theme.typography.fontSize,
35
+ border: "solid 1px ".concat(disabled ? _renderUi.color.defaults.PRIMARY_DARK : markDisabled ? _renderUi.color.disabled() : _renderUi.color.defaults.SECONDARY),
36
+ borderRadius: '3px',
37
+ color: markDisabled ? _renderUi.color.disabled() : _renderUi.color.defaults.PRIMARY_DARK,
38
+ background: disabled || markDisabled ? theme.palette.background.paper : 'transparent'
39
+ }
40
+ };
41
+ });
42
+ var position = exports.position = function position(graphProps, mark, rect) {
43
+ rect = rect || {
44
+ width: 0,
45
+ height: 0
46
+ };
47
+ var scale = graphProps.scale,
48
+ domain = graphProps.domain,
49
+ range = graphProps.range;
50
+ var shift = 10;
51
+ var rightEdge = scale.x(mark.x) + rect.width + shift;
52
+ var bottomEdge = scale.y(mark.y) + rect.height + shift;
53
+ var h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';
54
+ var v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';
55
+ return "".concat(v, "-").concat(h);
56
+ };
57
+ var coordinates = exports.coordinates = function coordinates(graphProps, mark, rect, position) {
58
+ var scale = graphProps.scale;
59
+ var shift = 10;
60
+ rect = rect || {
61
+ width: 0,
62
+ height: 0
63
+ };
64
+ switch (position) {
65
+ case 'bottom-right':
66
+ {
67
+ return {
68
+ left: scale.x(mark.x) + shift,
69
+ top: scale.y(mark.y) + shift
70
+ };
71
+ }
72
+ case 'bottom-left':
73
+ {
74
+ return {
75
+ left: scale.x(mark.x) - shift - rect.width,
76
+ top: scale.y(mark.y) + shift
77
+ };
78
+ }
79
+ case 'top-left':
80
+ {
81
+ return {
82
+ left: scale.x(mark.x) - shift - rect.width,
83
+ top: scale.y(mark.y) - shift - rect.height
84
+ };
85
+ }
86
+ case 'top-right':
87
+ {
88
+ return {
89
+ left: scale.x(mark.x) + shift,
90
+ top: scale.y(mark.y) - shift - rect.height
91
+ };
92
+ }
93
+ }
94
+ };
95
+ var MarkLabel = exports.MarkLabel = function MarkLabel(props) {
96
+ var _useState = (0, _react.useState)(null),
97
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
98
+ input = _useState2[0],
99
+ setInput = _useState2[1];
100
+ var _ref = (0, _react.useCallback)(function (node) {
101
+ return setInput(node);
102
+ });
103
+ var mark = props.mark,
104
+ graphProps = props.graphProps,
105
+ disabled = props.disabled,
106
+ externalInputRef = props.inputRef;
107
+ var _useState3 = (0, _react.useState)(mark.label),
108
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
109
+ label = _useState4[0],
110
+ setLabel = _useState4[1];
111
+ var onChange = function onChange(e) {
112
+ return setLabel(e.target.value);
113
+ };
114
+ var debouncedLabel = (0, _useDebounce.useDebounce)(label, 200);
115
+
116
+ // useState only sets the value once, to synch props to state need useEffect
117
+ (0, _react.useEffect)(function () {
118
+ setLabel(mark.label);
119
+ }, [mark.label]);
120
+
121
+ // pick up the change to debouncedLabel and save it
122
+ (0, _react.useEffect)(function () {
123
+ if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {
124
+ props.onChange(debouncedLabel);
125
+ }
126
+ }, [debouncedLabel]);
127
+ var rect = input ? input.getBoundingClientRect() : {
128
+ width: 0,
129
+ height: 0
130
+ };
131
+ var pos = position(graphProps, mark, rect);
132
+ var leftTop = coordinates(graphProps, mark, rect, pos);
133
+ var style = _objectSpread({
134
+ position: 'fixed',
135
+ pointerEvents: 'auto'
136
+ }, leftTop);
137
+ var disabledInput = disabled || mark.disabled;
138
+ return /*#__PURE__*/_react["default"].createElement(StyledAutosizeInput, {
139
+ inputRef: function inputRef(r) {
140
+ _ref(r);
141
+ externalInputRef(r);
142
+ },
143
+ disabled: disabledInput,
144
+ markDisabled: mark.disabled,
145
+ value: label,
146
+ style: style,
147
+ onChange: onChange
148
+ });
149
+ };
150
+ MarkLabel.propTypes = {
151
+ disabled: _propTypes["default"].bool,
152
+ onChange: _propTypes["default"].func,
153
+ graphProps: _plot.types.GraphPropsType,
154
+ inputRef: _propTypes["default"].func,
155
+ mark: _propTypes["default"].object,
156
+ theme: _propTypes["default"].object
157
+ };
158
+ var _default = exports["default"] = MarkLabel;
159
+ //# sourceMappingURL=mark-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-label.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_reactInputAutosize","_useDebounce","_plot","_renderUi","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","StyledAutosizeInput","styled","AutosizeInput","shouldForwardProp","prop","includes","_ref2","theme","disabled","markDisabled","padding","spacing","fontFamily","typography","fontSize","border","concat","color","defaults","PRIMARY_DARK","SECONDARY","borderRadius","background","palette","paper","position","exports","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","MarkLabel","props","_useState","useState","_useState2","_slicedToArray2","input","setInput","_ref","useCallback","node","externalInputRef","inputRef","_useState3","label","_useState4","setLabel","onChange","target","value","debouncedLabel","useDebounce","useEffect","getBoundingClientRect","pos","leftTop","style","pointerEvents","disabledInput","createElement","propTypes","PropTypes","bool","func","types","GraphPropsType","object","_default"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledAutosizeInput = styled(AutosizeInput, {\n shouldForwardProp: (prop) => !['disabled', 'markDisabled'].includes(prop),\n})(({ theme, disabled, markDisabled }) => ({\n '& input': {\n float: 'right',\n padding: theme.spacing(0.5),\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${disabled ? color.defaults.PRIMARY_DARK : markDisabled ? color.disabled() : color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: markDisabled ? color.disabled() : color.defaults.PRIMARY_DARK,\n background: (disabled || markDisabled) ? theme.palette.background.paper : 'transparent',\n },\n}));\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n }\n};\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, disabled, inputRef: externalInputRef } = props;\n\n const [label, setLabel] = useState(mark.label);\n\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n ...leftTop,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <StyledAutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n markDisabled={mark.disabled}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default MarkLabel;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAA2C,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,wBAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAI,IAAA,CAAArB,CAAA,OAAAiB,MAAA,CAAAK,qBAAA,QAAAhB,CAAA,GAAAW,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,OAAA6B,OAAA,WAAA3B,CAAA,QAAA4B,gBAAA,aAAA/B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAjC,CAAA,EAAAiB,MAAA,CAAAe,yBAAA,CAAA/B,CAAA,KAAAmB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,GAAA6B,OAAA,WAAA3B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAE3C,IAAMkC,mBAAmB,GAAG,IAAAC,cAAM,EAACC,8BAAa,EAAE;EAChDC,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OAAK,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAACC,QAAQ,CAACD,IAAI,CAAC;EAAA;AAC3E,CAAC,CAAC,CAAC,UAAAE,KAAA;EAAA,IAAGC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IAAEC,YAAY,GAAAH,KAAA,CAAZG,YAAY;EAAA,OAAQ;IACzC,SAAS,EAAE;MACT,SAAO,OAAO;MACdC,OAAO,EAAEH,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;MAC3BC,UAAU,EAAEL,KAAK,CAACM,UAAU,CAACD,UAAU;MACvCE,QAAQ,EAAEP,KAAK,CAACM,UAAU,CAACC,QAAQ;MACnCC,MAAM,eAAAC,MAAA,CAAeR,QAAQ,GAAGS,eAAK,CAACC,QAAQ,CAACC,YAAY,GAAGV,YAAY,GAAGQ,eAAK,CAACT,QAAQ,CAAC,CAAC,GAAGS,eAAK,CAACC,QAAQ,CAACE,SAAS,CAAE;MAC1HC,YAAY,EAAE,KAAK;MACnBJ,KAAK,EAAER,YAAY,GAAGQ,eAAK,CAACT,QAAQ,CAAC,CAAC,GAAGS,eAAK,CAACC,QAAQ,CAACC,YAAY;MACpEG,UAAU,EAAGd,QAAQ,IAAIC,YAAY,GAAIF,KAAK,CAACgB,OAAO,CAACD,UAAU,CAACE,KAAK,GAAG;IAC5E;EACF,CAAC;AAAA,CAAC,CAAC;AAEI,IAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAXA,QAAQA,CAAIE,UAAU,EAAEC,IAAI,EAAEC,IAAI,EAAK;EAClDA,IAAI,GAAGA,IAAI,IAAI;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC;EACtC,IAAQC,KAAK,GAAoBL,UAAU,CAAnCK,KAAK;IAAEC,MAAM,GAAYN,UAAU,CAA5BM,MAAM;IAAEC,KAAK,GAAKP,UAAU,CAApBO,KAAK;EAC5B,IAAMC,KAAK,GAAG,EAAE;EAEhB,IAAMC,SAAS,GAAGJ,KAAK,CAACK,CAAC,CAACT,IAAI,CAACS,CAAC,CAAC,GAAGR,IAAI,CAACC,KAAK,GAAGK,KAAK;EACtD,IAAMG,UAAU,GAAGN,KAAK,CAACO,CAAC,CAACX,IAAI,CAACW,CAAC,CAAC,GAAGV,IAAI,CAACE,MAAM,GAAGI,KAAK;EAExD,IAAMK,CAAC,GAAGJ,SAAS,IAAIJ,KAAK,CAACK,CAAC,CAACJ,MAAM,CAACQ,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO;EAC7D,IAAMC,CAAC,GAAGJ,UAAU,IAAIN,KAAK,CAACO,CAAC,CAACL,KAAK,CAACS,GAAG,CAAC,GAAG,KAAK,GAAG,QAAQ;EAE7D,UAAA3B,MAAA,CAAU0B,CAAC,OAAA1B,MAAA,CAAIwB,CAAC;AAClB,CAAC;AAEM,IAAMI,WAAW,GAAAlB,OAAA,CAAAkB,WAAA,GAAG,SAAdA,WAAWA,CAAIjB,UAAU,EAAEC,IAAI,EAAEC,IAAI,EAAEJ,QAAQ,EAAK;EAC/D,IAAQO,KAAK,GAAKL,UAAU,CAApBK,KAAK;EACb,IAAMG,KAAK,GAAG,EAAE;EAChBN,IAAI,GAAGA,IAAI,IAAI;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC;EAEtC,QAAQN,QAAQ;IACd,KAAK,cAAc;MAAE;QACnB,OAAO;UAAEoB,IAAI,EAAEb,KAAK,CAACK,CAAC,CAACT,IAAI,CAACS,CAAC,CAAC,GAAGF,KAAK;UAAEW,GAAG,EAAEd,KAAK,CAACO,CAAC,CAACX,IAAI,CAACW,CAAC,CAAC,GAAGJ;QAAM,CAAC;MACxE;IACA,KAAK,aAAa;MAAE;QAClB,OAAO;UAAEU,IAAI,EAAEb,KAAK,CAACK,CAAC,CAACT,IAAI,CAACS,CAAC,CAAC,GAAGF,KAAK,GAAGN,IAAI,CAACC,KAAK;UAAEgB,GAAG,EAAEd,KAAK,CAACO,CAAC,CAACX,IAAI,CAACW,CAAC,CAAC,GAAGJ;QAAM,CAAC;MACrF;IACA,KAAK,UAAU;MAAE;QACf,OAAO;UACLU,IAAI,EAAEb,KAAK,CAACK,CAAC,CAACT,IAAI,CAACS,CAAC,CAAC,GAAGF,KAAK,GAAGN,IAAI,CAACC,KAAK;UAC1CgB,GAAG,EAAEd,KAAK,CAACO,CAAC,CAACX,IAAI,CAACW,CAAC,CAAC,GAAGJ,KAAK,GAAGN,IAAI,CAACE;QACtC,CAAC;MACH;IACA,KAAK,WAAW;MAAE;QAChB,OAAO;UACLc,IAAI,EAAEb,KAAK,CAACK,CAAC,CAACT,IAAI,CAACS,CAAC,CAAC,GAAGF,KAAK;UAC7BW,GAAG,EAAEd,KAAK,CAACO,CAAC,CAACX,IAAI,CAACW,CAAC,CAAC,GAAGJ,KAAK,GAAGN,IAAI,CAACE;QACtC,CAAC;MACH;EACF;AACF,CAAC;AAEM,IAAMgB,SAAS,GAAArB,OAAA,CAAAqB,SAAA,GAAG,SAAZA,SAASA,CAAIC,KAAK,EAAK;EAClC,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAjCI,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EACtB,IAAMI,IAAI,GAAG,IAAAC,kBAAW,EAAC,UAACC,IAAI;IAAA,OAAKH,QAAQ,CAACG,IAAI,CAAC;EAAA,EAAC;EAElD,IAAQ7B,IAAI,GAAuDoB,KAAK,CAAhEpB,IAAI;IAAED,UAAU,GAA2CqB,KAAK,CAA1DrB,UAAU;IAAEnB,QAAQ,GAAiCwC,KAAK,CAA9CxC,QAAQ;IAAYkD,gBAAgB,GAAKV,KAAK,CAApCW,QAAQ;EAE5C,IAAAC,UAAA,GAA0B,IAAAV,eAAQ,EAACtB,IAAI,CAACiC,KAAK,CAAC;IAAAC,UAAA,OAAAV,eAAA,aAAAQ,UAAA;IAAvCC,KAAK,GAAAC,UAAA;IAAEC,QAAQ,GAAAD,UAAA;EAEtB,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAIlG,CAAC;IAAA,OAAKiG,QAAQ,CAACjG,CAAC,CAACmG,MAAM,CAACC,KAAK,CAAC;EAAA;EAEhD,IAAMC,cAAc,GAAG,IAAAC,wBAAW,EAACP,KAAK,EAAE,GAAG,CAAC;;EAE9C;EACA,IAAAQ,gBAAS,EAAC,YAAM;IACdN,QAAQ,CAACnC,IAAI,CAACiC,KAAK,CAAC;EACtB,CAAC,EAAE,CAACjC,IAAI,CAACiC,KAAK,CAAC,CAAC;;EAEhB;EACA,IAAAQ,gBAAS,EAAC,YAAM;IACd,IAAI,OAAOF,cAAc,KAAK,QAAQ,IAAIA,cAAc,KAAKvC,IAAI,CAACiC,KAAK,EAAE;MACvEb,KAAK,CAACgB,QAAQ,CAACG,cAAc,CAAC;IAChC;EACF,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,IAAMtC,IAAI,GAAGwB,KAAK,GAAGA,KAAK,CAACiB,qBAAqB,CAAC,CAAC,GAAG;IAAExC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5E,IAAMwC,GAAG,GAAG9C,QAAQ,CAACE,UAAU,EAAEC,IAAI,EAAEC,IAAI,CAAC;EAC5C,IAAM2C,OAAO,GAAG5B,WAAW,CAACjB,UAAU,EAAEC,IAAI,EAAEC,IAAI,EAAE0C,GAAG,CAAC;EAExD,IAAME,KAAK,GAAAhF,aAAA;IACTgC,QAAQ,EAAE,OAAO;IACjBiD,aAAa,EAAE;EAAM,GAClBF,OAAO,CACX;EAED,IAAMG,aAAa,GAAGnE,QAAQ,IAAIoB,IAAI,CAACpB,QAAQ;EAE/C,oBACEpD,MAAA,YAAAwH,aAAA,CAAC5E,mBAAmB;IAClB2D,QAAQ,EAAE,SAAVA,QAAQA,CAAG1F,CAAC,EAAK;MACfsF,IAAI,CAACtF,CAAC,CAAC;MACPyF,gBAAgB,CAACzF,CAAC,CAAC;IACrB,CAAE;IACFuC,QAAQ,EAAEmE,aAAc;IACxBlE,YAAY,EAAEmB,IAAI,CAACpB,QAAS;IAC5B0D,KAAK,EAAEL,KAAM;IACbY,KAAK,EAAEA,KAAM;IACbT,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAEDjB,SAAS,CAAC8B,SAAS,GAAG;EACpBrE,QAAQ,EAAEsE,qBAAS,CAACC,IAAI;EACxBf,QAAQ,EAAEc,qBAAS,CAACE,IAAI;EACxBrD,UAAU,EAAEsD,WAAK,CAACC,cAAc;EAChCvB,QAAQ,EAAEmB,qBAAS,CAACE,IAAI;EACxBpD,IAAI,EAAEkD,qBAAS,CAACK,MAAM;EACtB5E,KAAK,EAAEuE,qBAAS,CAACK;AACnB,CAAC;AAAC,IAAAC,QAAA,GAAA1D,OAAA,cAEaqB,SAAS","ignoreList":[]}