@pie-lib/graphing-solution-set 3.1.0-next.2 → 3.1.0-next.25

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 (84) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/NEXT.CHANGELOG.json +16 -1
  3. package/lib/axis/arrow.js +82 -0
  4. package/lib/axis/arrow.js.map +1 -0
  5. package/lib/axis/axes.js +341 -0
  6. package/lib/axis/axes.js.map +1 -0
  7. package/lib/axis/index.js +28 -0
  8. package/lib/axis/index.js.map +1 -0
  9. package/lib/bg.js +120 -0
  10. package/lib/bg.js.map +1 -0
  11. package/lib/container/actions.js +19 -0
  12. package/lib/container/actions.js.map +1 -0
  13. package/lib/container/index.js +126 -0
  14. package/lib/container/index.js.map +1 -0
  15. package/lib/container/marks.js +24 -0
  16. package/lib/container/marks.js.map +1 -0
  17. package/lib/container/middleware.js +20 -0
  18. package/lib/container/middleware.js.map +1 -0
  19. package/lib/container/reducer.js +19 -0
  20. package/lib/container/reducer.js.map +1 -0
  21. package/lib/coordinates-label.js +88 -0
  22. package/lib/coordinates-label.js.map +1 -0
  23. package/lib/graph-with-controls.js +316 -0
  24. package/lib/graph-with-controls.js.map +1 -0
  25. package/lib/graph.js +372 -0
  26. package/lib/graph.js.map +1 -0
  27. package/lib/grid-setup.js +417 -0
  28. package/lib/grid-setup.js.map +1 -0
  29. package/lib/grid.js +153 -0
  30. package/lib/grid.js.map +1 -0
  31. package/lib/index.js +47 -0
  32. package/lib/index.js.map +1 -0
  33. package/lib/labels.js +212 -0
  34. package/lib/labels.js.map +1 -0
  35. package/lib/mark-label.js +175 -0
  36. package/lib/mark-label.js.map +1 -0
  37. package/lib/toggle-bar.js +265 -0
  38. package/lib/toggle-bar.js.map +1 -0
  39. package/lib/tool-menu.js +221 -0
  40. package/lib/tool-menu.js.map +1 -0
  41. package/lib/tools/index.js +25 -0
  42. package/lib/tools/index.js.map +1 -0
  43. package/lib/tools/line/component.js +105 -0
  44. package/lib/tools/line/component.js.map +1 -0
  45. package/lib/tools/line/index.js +12 -0
  46. package/lib/tools/line/index.js.map +1 -0
  47. package/lib/tools/polygon/component.js +378 -0
  48. package/lib/tools/polygon/component.js.map +1 -0
  49. package/lib/tools/polygon/index.js +101 -0
  50. package/lib/tools/polygon/index.js.map +1 -0
  51. package/lib/tools/polygon/line.js +130 -0
  52. package/lib/tools/polygon/line.js.map +1 -0
  53. package/lib/tools/polygon/polygon.js +150 -0
  54. package/lib/tools/polygon/polygon.js.map +1 -0
  55. package/lib/tools/shared/arrow-head.js +65 -0
  56. package/lib/tools/shared/arrow-head.js.map +1 -0
  57. package/lib/tools/shared/line/index.js +554 -0
  58. package/lib/tools/shared/line/index.js.map +1 -0
  59. package/lib/tools/shared/line/line-path.js +137 -0
  60. package/lib/tools/shared/line/line-path.js.map +1 -0
  61. package/lib/tools/shared/line/with-root-edge.js +132 -0
  62. package/lib/tools/shared/line/with-root-edge.js.map +1 -0
  63. package/lib/tools/shared/point/arrow-point.js +89 -0
  64. package/lib/tools/shared/point/arrow-point.js.map +1 -0
  65. package/lib/tools/shared/point/arrow.js +73 -0
  66. package/lib/tools/shared/point/arrow.js.map +1 -0
  67. package/lib/tools/shared/point/base-point.js +148 -0
  68. package/lib/tools/shared/point/base-point.js.map +1 -0
  69. package/lib/tools/shared/point/index.js +96 -0
  70. package/lib/tools/shared/point/index.js.map +1 -0
  71. package/lib/tools/shared/styles.js +27 -0
  72. package/lib/tools/shared/styles.js.map +1 -0
  73. package/lib/tools/shared/types.js +16 -0
  74. package/lib/tools/shared/types.js.map +1 -0
  75. package/lib/undo-redo.js +69 -0
  76. package/lib/undo-redo.js.map +1 -0
  77. package/lib/use-debounce.js +27 -0
  78. package/lib/use-debounce.js.map +1 -0
  79. package/lib/utils.js +253 -0
  80. package/lib/utils.js.map +1 -0
  81. package/package.json +14 -14
  82. package/src/__tests__/graph-with-controls.test.jsx +41 -0
  83. package/src/__tests__/toggle-bar.test.jsx +41 -0
  84. package/src/bg.jsx +5 -5
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.for-each.js");
6
+ require("core-js/modules/es.object.define-properties.js");
7
+ require("core-js/modules/es.object.define-property.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
10
+ require("core-js/modules/es.object.keys.js");
11
+ require("core-js/modules/es.object.to-string.js");
12
+ require("core-js/modules/web.dom-collections.for-each.js");
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports["default"] = exports.ArrowedLine = void 0;
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
20
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
21
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
22
+ require("core-js/modules/es.array.concat.js");
23
+ require("core-js/modules/es.array.fill.js");
24
+ require("core-js/modules/es.array.includes.js");
25
+ var _line = require("../shared/line");
26
+ var _react = _interopRequireDefault(require("react"));
27
+ var _propTypes = _interopRequireDefault(require("prop-types"));
28
+ var _plot = require("@pie-lib/plot");
29
+ var _styles = require("@mui/material/styles");
30
+ var _arrowHead = require("../shared/arrow-head");
31
+ var _utils = require("../../utils");
32
+ var _excluded = ["className", "correctness", "disabled", "graphProps", "fill", "from", "to"];
33
+ 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; }
34
+ 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; }
35
+ var StyledLine = (0, _styles.styled)('line', {
36
+ shouldForwardProp: function shouldForwardProp(prop) {
37
+ return !['fill', 'disabled', 'correctness'].includes(prop);
38
+ }
39
+ })(function (_ref) {
40
+ var theme = _ref.theme,
41
+ fill = _ref.fill,
42
+ disabled = _ref.disabled,
43
+ correctness = _ref.correctness;
44
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, fill === 'Solid' ? _line.styles.line(theme) : _line.styles.dashedLine(theme)), disabled && _line.styles.disabled(theme)), correctness === 'correct' && _line.styles.correct(theme, 'stroke')), correctness === 'incorrect' && _line.styles.incorrect(theme, 'stroke')), correctness === 'missing' && _line.styles.missing(theme, 'stroke'));
45
+ });
46
+ var StyledArrowMarker = (0, _styles.styled)(_arrowHead.ArrowMarker, {
47
+ shouldForwardProp: function shouldForwardProp(prop) {
48
+ return !['suffix'].includes(prop);
49
+ }
50
+ })(function (_ref2) {
51
+ var theme = _ref2.theme,
52
+ suffix = _ref2.suffix;
53
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, suffix === 'enabled' && _line.styles.arrow(theme)), suffix === 'disabled' && _line.styles.disabledArrow(theme)), suffix === 'correct' && _line.styles.correct(theme)), suffix === 'incorrect' && _line.styles.incorrect(theme)), suffix === 'missing' && _line.styles.missing(theme));
54
+ });
55
+ var ArrowedLine = exports.ArrowedLine = function ArrowedLine(props) {
56
+ var markerId = (0, _arrowHead.genUid)();
57
+ var className = props.className,
58
+ correctness = props.correctness,
59
+ disabled = props.disabled,
60
+ graphProps = props.graphProps,
61
+ _props$fill = props.fill,
62
+ fill = _props$fill === void 0 ? 'Solid' : _props$fill,
63
+ from = props.from,
64
+ to = props.to,
65
+ rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
66
+ var scale = graphProps.scale;
67
+ var _getAdjustedGraphLimi = (0, _utils.getAdjustedGraphLimits)(graphProps),
68
+ domain = _getAdjustedGraphLimi.domain,
69
+ range = _getAdjustedGraphLimi.range;
70
+ var _trig$edges = _plot.trig.edges(domain, range)(from, to),
71
+ _trig$edges2 = (0, _slicedToArray2["default"])(_trig$edges, 2),
72
+ eFrom = _trig$edges2[0],
73
+ eTo = _trig$edges2[1];
74
+ var suffix = correctness || disabled && 'disabled' || 'enabled';
75
+ return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement(StyledArrowMarker, {
76
+ size: (0, _utils.thinnerShapesNeeded)(graphProps) ? 4 : 5,
77
+ id: "".concat(props.markerId || markerId, "-").concat(suffix),
78
+ suffix: suffix
79
+ })), /*#__PURE__*/_react["default"].createElement(StyledLine, (0, _extends2["default"])({
80
+ x1: scale.x(eFrom.x),
81
+ y1: scale.y(eFrom.y),
82
+ x2: scale.x(eTo.x),
83
+ y2: scale.y(eTo.y),
84
+ fill: fill,
85
+ disabled: disabled,
86
+ correctness: correctness,
87
+ className: className,
88
+ markerEnd: "url(#".concat(props.markerId || markerId, "-").concat(suffix, ")"),
89
+ markerStart: "url(#".concat(props.markerId || markerId, "-").concat(suffix, ")")
90
+ }, rest)));
91
+ };
92
+ ArrowedLine.propTypes = {
93
+ className: _propTypes["default"].string,
94
+ fill: _propTypes["default"].string,
95
+ correctness: _propTypes["default"].string,
96
+ disabled: _propTypes["default"].bool,
97
+ graphProps: _plot.types.GraphPropsType,
98
+ from: _plot.types.PointType,
99
+ to: _plot.types.PointType,
100
+ markerId: _propTypes["default"].string
101
+ };
102
+ var Line = (0, _line.lineBase)(ArrowedLine);
103
+ var Component = (0, _line.lineToolComponent)(Line);
104
+ var _default = exports["default"] = Component;
105
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_plot","_styles","_arrowHead","_utils","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLine","styled","shouldForwardProp","prop","includes","_ref","theme","fill","disabled","correctness","styles","line","dashedLine","correct","incorrect","missing","StyledArrowMarker","ArrowMarker","_ref2","suffix","arrow","disabledArrow","ArrowedLine","exports","props","markerId","genUid","className","graphProps","_props$fill","from","to","rest","_objectWithoutProperties2","scale","_getAdjustedGraphLimi","getAdjustedGraphLimits","domain","range","_trig$edges","trig","edges","_trig$edges2","_slicedToArray2","eFrom","eTo","createElement","size","thinnerShapesNeeded","id","concat","_extends2","x1","x","y1","y","x2","y2","markerEnd","markerStart","propTypes","PropTypes","string","bool","types","GraphPropsType","PointType","Line","lineBase","Component","lineToolComponent","_default"],"sources":["../../../src/tools/line/component.jsx"],"sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport { styled } from '@mui/material/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst StyledLine = styled('line', {\n shouldForwardProp: (prop) => !['fill', 'disabled', 'correctness'].includes(prop),\n})(({ theme, fill, disabled, correctness }) => ({\n ...(fill === 'Solid' ? styles.line(theme) : styles.dashedLine(theme)),\n ...(disabled && styles.disabled(theme)),\n ...(correctness === 'correct' && styles.correct(theme, 'stroke')),\n ...(correctness === 'incorrect' && styles.incorrect(theme, 'stroke')),\n ...(correctness === 'missing' && styles.missing(theme, 'stroke')),\n}));\n\nconst StyledArrowMarker = styled(ArrowMarker, {\n shouldForwardProp: (prop) => !['suffix'].includes(prop),\n})(({ theme, suffix }) => ({\n ...(suffix === 'enabled' && styles.arrow(theme)),\n ...(suffix === 'disabled' && styles.disabledArrow(theme)),\n ...(suffix === 'correct' && styles.correct(theme)),\n ...(suffix === 'incorrect' && styles.incorrect(theme)),\n ...(suffix === 'missing' && styles.missing(theme)),\n}));\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, correctness, disabled, graphProps, fill = 'Solid', from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <StyledArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n suffix={suffix}\n />\n </defs>\n <StyledLine\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n fill={fill}\n disabled={disabled}\n correctness={correctness}\n className={className}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n fill: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst Line = lineBase(ArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.tool = void 0;
9
+ var _component = _interopRequireDefault(require("./component"));
10
+ var _line = require("../shared/line");
11
+ var tool = exports.tool = (0, _line.lineTool)('line', _component["default"]);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_component","_interopRequireDefault","require","_line","tool","exports","lineTool","Line"],"sources":["../../../src/tools/line/index.js"],"sourcesContent":["import Line from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('line', Line);\n"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEO,IAAME,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,IAAAE,cAAQ,EAAC,MAAM,EAAEC,qBAAI,CAAC","ignoreList":[]}
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.object.define-properties.js");
6
+ require("core-js/modules/es.object.define-property.js");
7
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
9
+ require("core-js/modules/es.object.keys.js");
10
+ require("core-js/modules/es.reflect.construct.js");
11
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports.swap = exports["default"] = exports.buildLines = exports.RawBaseComponent = exports.BaseComponent = void 0;
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
23
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+ require("core-js/modules/es.array.concat.js");
26
+ require("core-js/modules/es.array.find.js");
27
+ require("core-js/modules/es.array.for-each.js");
28
+ require("core-js/modules/es.array.map.js");
29
+ require("core-js/modules/es.array.reduce.js");
30
+ require("core-js/modules/es.array.splice.js");
31
+ require("core-js/modules/es.function.bind.js");
32
+ require("core-js/modules/es.number.is-finite.js");
33
+ require("core-js/modules/es.object.to-string.js");
34
+ require("core-js/modules/web.dom-collections.for-each.js");
35
+ var _react = _interopRequireDefault(require("react"));
36
+ var _propTypes = _interopRequireDefault(require("prop-types"));
37
+ var _types = require("../shared/types");
38
+ var _chunk = _interopRequireDefault(require("lodash/chunk"));
39
+ var _initial = _interopRequireDefault(require("lodash/initial"));
40
+ var _debug = _interopRequireDefault(require("debug"));
41
+ var _polygon = _interopRequireDefault(require("./polygon"));
42
+ var _plot = require("@pie-lib/plot");
43
+ var _invariant = _interopRequireDefault(require("invariant"));
44
+ var _reactDom = _interopRequireDefault(require("react-dom"));
45
+ var _markLabel = _interopRequireDefault(require("../../mark-label"));
46
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
47
+ var _utils = require("../../utils");
48
+ 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)); }
49
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
50
+ 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; }
51
+ 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; }
52
+ var log = (0, _debug["default"])('pie-lib:graphing-solution-set:polygon');
53
+ var buildLines = exports.buildLines = function buildLines(points, closed) {
54
+ var expanded = points.reduce(function (acc, p, index) {
55
+ acc.push(_objectSpread(_objectSpread({}, p), {}, {
56
+ index: index
57
+ }));
58
+ var isLast = index === points.length - 1;
59
+ var next = isLast ? 0 : index + 1;
60
+ acc.push(_objectSpread(_objectSpread({}, points[next]), {}, {
61
+ index: next
62
+ }));
63
+ return acc;
64
+ }, []);
65
+ var all = (0, _chunk["default"])(expanded, 2).map(function (_ref) {
66
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
67
+ from = _ref2[0],
68
+ to = _ref2[1];
69
+ return {
70
+ from: from,
71
+ to: to
72
+ };
73
+ });
74
+ return closed ? all : (0, _initial["default"])(all);
75
+ };
76
+ var swap = exports.swap = function swap(arr) {
77
+ for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
78
+ rest[_key - 1] = arguments[_key];
79
+ }
80
+ var pairs = (0, _chunk["default"])(rest, 2);
81
+ return pairs.reduce(function (acc, pr) {
82
+ if (pr.length === 2) {
83
+ var _pr = (0, _slicedToArray2["default"])(pr, 2),
84
+ e = _pr[0],
85
+ replacement = _pr[1];
86
+ (0, _invariant["default"])(Number.isFinite(e.index), 'Index must be defined');
87
+ var index = e.index;
88
+ // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);
89
+
90
+ if (index >= 0) {
91
+ acc.splice(index, 1, replacement);
92
+ return acc;
93
+ } else {
94
+ return acc;
95
+ }
96
+ } else {
97
+ return acc;
98
+ }
99
+ }, (0, _toConsumableArray2["default"])(arr));
100
+ };
101
+ var RawBaseComponent = exports.RawBaseComponent = /*#__PURE__*/function (_React$Component) {
102
+ function RawBaseComponent() {
103
+ var _this;
104
+ (0, _classCallCheck2["default"])(this, RawBaseComponent);
105
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
106
+ args[_key2] = arguments[_key2];
107
+ }
108
+ _this = _callSuper(this, RawBaseComponent, [].concat(args));
109
+ (0, _defineProperty2["default"])(_this, "dragPoint", function (index, from, to) {
110
+ log('[dragPoint] from, to:', from, to);
111
+ var _this$props = _this.props,
112
+ onChange = _this$props.onChange,
113
+ points = _this$props.points;
114
+ var update = (0, _toConsumableArray2["default"])(points);
115
+ var overlapPoint = !!(points || []).find(function (p) {
116
+ return (0, _utils.equalPoints)(p, to);
117
+ });
118
+ if ((0, _utils.equalPoints)(from, to) || overlapPoint) {
119
+ return;
120
+ }
121
+ if (points[index].label) {
122
+ to.label = points[index].label;
123
+ }
124
+ update.splice(index, 1, to);
125
+ onChange(update);
126
+ });
127
+ (0, _defineProperty2["default"])(_this, "dragLine", function (existing, next) {
128
+ log('[dragLine]: ', existing, next);
129
+ var onChange = _this.props.onChange;
130
+ if (existing.from.label) {
131
+ next.from.label = existing.from.label;
132
+ }
133
+ if (existing.to.label) {
134
+ next.to.label = existing.to.label;
135
+ }
136
+ var points = swap(_this.props.points, existing.from, next.from, existing.to, next.to);
137
+ onChange(points);
138
+ });
139
+ (0, _defineProperty2["default"])(_this, "dragPoly", function (existing, next) {
140
+ log('[dragPoly] ', existing, next);
141
+ var onChange = _this.props.onChange;
142
+ next.forEach(function (point, index) {
143
+ if (existing[index].label) {
144
+ next[index].label = existing[index].label;
145
+ }
146
+ });
147
+ onChange(next);
148
+ });
149
+ (0, _defineProperty2["default"])(_this, "close", function () {
150
+ var _this$props2 = _this.props,
151
+ points = _this$props2.points,
152
+ onClosePolygon = _this$props2.onClosePolygon;
153
+ log('[close] ...');
154
+ if (points.length >= 3) {
155
+ onClosePolygon();
156
+ } else {
157
+ log('[close] - nope');
158
+ }
159
+ });
160
+ (0, _defineProperty2["default"])(_this, "labelChange", function (point, index) {
161
+ var _this$props3 = _this.props,
162
+ points = _this$props3.points,
163
+ onChangeProps = _this$props3.onChangeProps;
164
+ var updatedPoint = _objectSpread({}, point);
165
+ if (!point.label || (0, _isEmpty["default"])(point.label)) {
166
+ delete updatedPoint.label;
167
+ }
168
+ var update = (0, _toConsumableArray2["default"])(points);
169
+ update.splice(index, 1, updatedPoint);
170
+ onChangeProps(update);
171
+ });
172
+ (0, _defineProperty2["default"])(_this, "clickPoint", function (point, index, data) {
173
+ var _this$props4 = _this.props,
174
+ closed = _this$props4.closed,
175
+ disabled = _this$props4.disabled,
176
+ onClick = _this$props4.onClick,
177
+ isToolActive = _this$props4.isToolActive,
178
+ labelModeEnabled = _this$props4.labelModeEnabled,
179
+ onChangeProps = _this$props4.onChangeProps,
180
+ onChangeLabelProps = _this$props4.onChangeLabelProps,
181
+ points = _this$props4.points;
182
+ if (labelModeEnabled) {
183
+ if (disabled) {
184
+ return;
185
+ }
186
+ if (points && index === points.length) {
187
+ var _getRightestPoints = (0, _utils.getRightestPoints)(points),
188
+ a = _getRightestPoints.a,
189
+ b = _getRightestPoints.b;
190
+ var middle = _objectSpread(_objectSpread({
191
+ label: ''
192
+ }, point), (0, _utils.getMiddleOfTwoPoints)(a, b));
193
+ onChangeLabelProps(middle);
194
+ } else {
195
+ var update = (0, _toConsumableArray2["default"])(points);
196
+ update.splice(index, 1, _objectSpread({
197
+ label: ''
198
+ }, point));
199
+ onChangeProps(update);
200
+ }
201
+ if (_this.input[index]) {
202
+ _this.input[index].focus();
203
+ }
204
+ return;
205
+ }
206
+ if (isToolActive && !closed && index === 0) {
207
+ _this.close();
208
+ return;
209
+ }
210
+ onClick(point || data);
211
+ });
212
+ // IMPORTANT, do not remove
213
+ (0, _defineProperty2["default"])(_this, "input", {});
214
+ return _this;
215
+ }
216
+ (0, _inherits2["default"])(RawBaseComponent, _React$Component);
217
+ return (0, _createClass2["default"])(RawBaseComponent, [{
218
+ key: "render",
219
+ value: function render() {
220
+ var _this2 = this;
221
+ var _this$props5 = this.props,
222
+ closed = _this$props5.closed,
223
+ graphProps = _this$props5.graphProps,
224
+ onChangeLabelProps = _this$props5.onChangeLabelProps,
225
+ points = _this$props5.points,
226
+ middle = _this$props5.middle,
227
+ labelNode = _this$props5.labelNode,
228
+ labelModeEnabled = _this$props5.labelModeEnabled,
229
+ _this$props5$isSoluti = _this$props5.isSolution,
230
+ isSolution = _this$props5$isSoluti === void 0 ? false : _this$props5$isSoluti;
231
+ var polygonLabelIndex = points && points.length || 0;
232
+ if (labelNode && middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {
233
+ /*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
234
+ inputRef: function inputRef(r) {
235
+ return _this2.input[polygonLabelIndex] = r;
236
+ },
237
+ disabled: !labelModeEnabled,
238
+ mark: middle,
239
+ graphProps: graphProps,
240
+ onChange: function onChange(label) {
241
+ return onChangeLabelProps(_objectSpread(_objectSpread({}, middle), {}, {
242
+ label: label
243
+ }));
244
+ }
245
+ }), labelNode);
246
+ }
247
+ return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_polygon["default"], {
248
+ points: points,
249
+ closed: closed,
250
+ isSolution: isSolution,
251
+ graphProps: graphProps,
252
+ onClick: this.clickPoint.bind(this, middle, polygonLabelIndex)
253
+ })));
254
+ }
255
+ }]);
256
+ }(_react["default"].Component);
257
+ (0, _defineProperty2["default"])(RawBaseComponent, "propTypes", {
258
+ className: _propTypes["default"].string,
259
+ disabled: _propTypes["default"].bool,
260
+ correctness: _propTypes["default"].string,
261
+ points: _propTypes["default"].arrayOf(_plot.types.PointType),
262
+ closed: _propTypes["default"].bool,
263
+ isSolution: _propTypes["default"].bool,
264
+ coordinatesOnHover: _propTypes["default"].bool,
265
+ onChange: _propTypes["default"].func.isRequired,
266
+ onClosePolygon: _propTypes["default"].func.isRequired,
267
+ onDragStart: _propTypes["default"].func,
268
+ onDragStop: _propTypes["default"].func,
269
+ onClick: _propTypes["default"].func,
270
+ graphProps: _plot.types.GraphPropsType.isRequired,
271
+ isToolActive: _propTypes["default"].bool,
272
+ middle: _propTypes["default"].object,
273
+ labelNode: _propTypes["default"].object,
274
+ labelModeEnabled: _propTypes["default"].bool,
275
+ onChangeLabelProps: _propTypes["default"].func,
276
+ onChangeProps: _propTypes["default"].func
277
+ });
278
+ (0, _defineProperty2["default"])(RawBaseComponent, "defaultProps", {
279
+ points: []
280
+ });
281
+ var BaseComponent = exports.BaseComponent = RawBaseComponent;
282
+ var Component = exports["default"] = /*#__PURE__*/function (_React$Component2) {
283
+ function Component(props) {
284
+ var _this3;
285
+ (0, _classCallCheck2["default"])(this, Component);
286
+ _this3 = _callSuper(this, Component, [props]);
287
+ (0, _defineProperty2["default"])(_this3, "change", function (points) {
288
+ var middle = _this3.props.mark.middle;
289
+ var mark = _objectSpread(_objectSpread({}, _this3.state.mark), {}, {
290
+ points: points
291
+ });
292
+ if (middle) {
293
+ var _getRightestPoints2 = (0, _utils.getRightestPoints)(points),
294
+ a = _getRightestPoints2.a,
295
+ b = _getRightestPoints2.b;
296
+ mark.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(a, b));
297
+ }
298
+ _this3.setState({
299
+ mark: mark
300
+ });
301
+ });
302
+ (0, _defineProperty2["default"])(_this3, "changeProps", function (points) {
303
+ var mark = _objectSpread(_objectSpread({}, _this3.props.mark), {}, {
304
+ points: points
305
+ });
306
+ _this3.props.onChange(_this3.props.mark, mark);
307
+ });
308
+ (0, _defineProperty2["default"])(_this3, "changeLabelProps", function (point) {
309
+ var _this3$props = _this3.props,
310
+ mark = _this3$props.mark,
311
+ onChange = _this3$props.onChange;
312
+ var middle = _objectSpread(_objectSpread({}, mark.middle), point);
313
+ onChange(mark, _objectSpread(_objectSpread({}, mark), {}, {
314
+ middle: middle
315
+ }));
316
+ });
317
+ (0, _defineProperty2["default"])(_this3, "closePolygon", function () {
318
+ log('[closePolygon] ...');
319
+ var _this3$props2 = _this3.props,
320
+ onComplete = _this3$props2.onComplete,
321
+ mark = _this3$props2.mark;
322
+ var update = _objectSpread(_objectSpread({}, mark), {}, {
323
+ closed: true
324
+ });
325
+ onComplete(mark, update);
326
+ });
327
+ (0, _defineProperty2["default"])(_this3, "dragStart", function () {
328
+ return _this3.setState({
329
+ mark: _this3.props.mark
330
+ });
331
+ });
332
+ (0, _defineProperty2["default"])(_this3, "dragStop", function () {
333
+ var onChange = _this3.props.onChange;
334
+ var m = _objectSpread({}, _this3.state.mark);
335
+ _this3.setState({
336
+ mark: undefined
337
+ }, function () {
338
+ onChange(_this3.props.mark, m);
339
+ });
340
+ });
341
+ _this3.state = {};
342
+ return _this3;
343
+ }
344
+ (0, _inherits2["default"])(Component, _React$Component2);
345
+ return (0, _createClass2["default"])(Component, [{
346
+ key: "render",
347
+ value: function render() {
348
+ var _this$props6 = this.props,
349
+ coordinatesOnHover = _this$props6.coordinatesOnHover,
350
+ mark = _this$props6.mark,
351
+ graphProps = _this$props6.graphProps,
352
+ onClick = _this$props6.onClick,
353
+ isToolActive = _this$props6.isToolActive,
354
+ labelNode = _this$props6.labelNode,
355
+ labelModeEnabled = _this$props6.labelModeEnabled;
356
+ var stateMark = this.state.mark;
357
+ return /*#__PURE__*/_react["default"].createElement(BaseComponent, (0, _extends2["default"])({}, stateMark || mark, {
358
+ coordinatesOnHover: coordinatesOnHover,
359
+ onChange: this.change,
360
+ onChangeLabelProps: this.changeLabelProps,
361
+ onChangeProps: this.changeProps,
362
+ onClosePolygon: this.closePolygon,
363
+ onDragStart: this.dragStart,
364
+ onDragStop: this.dragStop,
365
+ onClick: onClick,
366
+ graphProps: graphProps,
367
+ isToolActive: isToolActive,
368
+ labelNode: labelNode,
369
+ labelModeEnabled: labelModeEnabled
370
+ }));
371
+ }
372
+ }]);
373
+ }(_react["default"].Component);
374
+ (0, _defineProperty2["default"])(Component, "propTypes", _objectSpread(_objectSpread({}, _types.ToolPropTypeFields), {}, {
375
+ graphProps: _plot.types.GraphPropsType.isRequired
376
+ }));
377
+ (0, _defineProperty2["default"])(Component, "defaultProps", {});
378
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_chunk","_initial","_debug","_polygon","_plot","_invariant","_reactDom","_markLabel","_isEmpty","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","buildLines","exports","points","closed","expanded","reduce","acc","p","index","isLast","next","all","chunk","map","_ref","_ref2","_slicedToArray2","from","to","initial","swap","arr","_len","rest","Array","_key","pairs","pr","_pr","replacement","invariant","Number","isFinite","splice","_toConsumableArray2","RawBaseComponent","_React$Component","_this","_classCallCheck2","_len2","args","_key2","concat","_this$props","props","onChange","update","overlapPoint","find","equalPoints","label","existing","point","_this$props2","onClosePolygon","_this$props3","onChangeProps","updatedPoint","isEmpty","data","_this$props4","disabled","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","_getRightestPoints","getRightestPoints","a","b","middle","getMiddleOfTwoPoints","input","focus","close","_inherits2","_createClass2","key","value","render","_this2","_this$props5","graphProps","labelNode","_this$props5$isSoluti","isSolution","polygonLabelIndex","hasOwnProperty","ReactDOM","createPortal","createElement","inputRef","mark","Fragment","clickPoint","bind","React","Component","className","PropTypes","string","bool","correctness","arrayOf","types","PointType","coordinatesOnHover","func","isRequired","onDragStart","onDragStop","GraphPropsType","object","BaseComponent","_React$Component2","_this3","state","_getRightestPoints2","setState","_this3$props","_this3$props2","onComplete","m","undefined","_this$props6","stateMark","_extends2","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"sources":["../../../src/tools/polygon/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToolPropTypeFields } from '../shared/types';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport DraggablePolygon from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing-solution-set:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n isSolution: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n if (disabled) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n graphProps,\n onChangeLabelProps,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n isSolution = false,\n } = this.props;\n const polygonLabelIndex = (points && points.length) || 0;\n if (labelNode && middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n return (\n <g>\n <React.Fragment>\n <DraggablePolygon\n points={points}\n closed={closed}\n isSolution={isSolution}\n graphProps={graphProps}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n </React.Fragment>\n </g>\n );\n }\n}\n\nexport const BaseComponent = RawBaseComponent;\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n />\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,QAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,SAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,UAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,QAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AAAmF,SAAAa,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,aAAAF,CAAA,OAAAG,2BAAA,aAAAJ,CAAA,EAAAK,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,aAAAH,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA,SAAAG,0BAAA,cAAAL,CAAA,IAAAU,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAP,OAAA,CAAAC,SAAA,CAAAG,OAAA,iCAAAV,CAAA,aAAAK,yBAAA,YAAAA,0BAAA,aAAAL,CAAA;AAAA,SAAAc,QAAAZ,CAAA,EAAAa,CAAA,QAAAf,CAAA,GAAAgB,MAAA,CAAAC,IAAA,CAAAf,CAAA,OAAAc,MAAA,CAAAE,qBAAA,QAAAjB,CAAA,GAAAe,MAAA,CAAAE,qBAAA,CAAAhB,CAAA,GAAAa,CAAA,KAAAd,CAAA,GAAAA,CAAA,CAAAkB,MAAA,WAAAJ,CAAA,WAAAC,MAAA,CAAAI,wBAAA,CAAAlB,CAAA,EAAAa,CAAA,EAAAM,UAAA,OAAArB,CAAA,CAAAsB,IAAA,CAAAb,KAAA,CAAAT,CAAA,EAAAC,CAAA,YAAAD,CAAA;AAAA,SAAAuB,cAAArB,CAAA,aAAAa,CAAA,MAAAA,CAAA,GAAAS,SAAA,CAAAC,MAAA,EAAAV,CAAA,UAAAf,CAAA,WAAAwB,SAAA,CAAAT,CAAA,IAAAS,SAAA,CAAAT,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAE,MAAA,CAAAhB,CAAA,OAAA0B,OAAA,WAAAX,CAAA,QAAAY,gBAAA,aAAAzB,CAAA,EAAAa,CAAA,EAAAf,CAAA,CAAAe,CAAA,SAAAC,MAAA,CAAAY,yBAAA,GAAAZ,MAAA,CAAAa,gBAAA,CAAA3B,CAAA,EAAAc,MAAA,CAAAY,yBAAA,CAAA5B,CAAA,KAAAc,OAAA,CAAAE,MAAA,CAAAhB,CAAA,GAAA0B,OAAA,WAAAX,CAAA,IAAAC,MAAA,CAAAc,cAAA,CAAA5B,CAAA,EAAAa,CAAA,EAAAC,MAAA,CAAAI,wBAAA,CAAApB,CAAA,EAAAe,CAAA,iBAAAb,CAAA;AAEnF,IAAM6B,GAAG,GAAG,IAAAC,iBAAK,EAAC,uCAAuC,CAAC;AAEnD,IAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,SAAbA,UAAUA,CAAIE,MAAM,EAAEC,MAAM,EAAK;EAC5C,IAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAM,CAAC,UAACC,GAAG,EAAEC,CAAC,EAAEC,KAAK,EAAK;IAChDF,GAAG,CAACjB,IAAI,CAAAC,aAAA,CAAAA,aAAA,KAAMiB,CAAC;MAAEC,KAAK,EAALA;IAAK,EAAE,CAAC;IAEzB,IAAMC,MAAM,GAAGD,KAAK,KAAKN,MAAM,CAACV,MAAM,GAAG,CAAC;IAC1C,IAAMkB,IAAI,GAAGD,MAAM,GAAG,CAAC,GAAGD,KAAK,GAAG,CAAC;IAEnCF,GAAG,CAACjB,IAAI,CAAAC,aAAA,CAAAA,aAAA,KAAMY,MAAM,CAACQ,IAAI,CAAC;MAAEF,KAAK,EAAEE;IAAI,EAAE,CAAC;IAE1C,OAAOJ,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMK,GAAG,GAAG,IAAAC,iBAAK,EAACR,QAAQ,EAAE,CAAC,CAAC,CAACS,GAAG,CAAC,UAAAC,IAAA,EAAgB;IAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,IAAA;MAAdG,IAAI,GAAAF,KAAA;MAAEG,EAAE,GAAAH,KAAA;IAC3C,OAAO;MAAEE,IAAI,EAAJA,IAAI;MAAEC,EAAE,EAAFA;IAAG,CAAC;EACrB,CAAC,CAAC;EAEF,OAAOf,MAAM,GAAGQ,GAAG,GAAG,IAAAQ,mBAAO,EAACR,GAAG,CAAC;AACpC,CAAC;AAEM,IAAMS,IAAI,GAAAnB,OAAA,CAAAmB,IAAA,GAAG,SAAPA,IAAIA,CAAIC,GAAG,EAAc;EAAA,SAAAC,IAAA,GAAA/B,SAAA,CAAAC,MAAA,EAAT+B,IAAI,OAAAC,KAAA,CAAAF,IAAA,OAAAA,IAAA,WAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAlC,SAAA,CAAAkC,IAAA;EAAA;EAC/B,IAAMC,KAAK,GAAG,IAAAd,iBAAK,EAACW,IAAI,EAAE,CAAC,CAAC;EAE5B,OAAOG,KAAK,CAACrB,MAAM,CACjB,UAACC,GAAG,EAAEqB,EAAE,EAAK;IACX,IAAIA,EAAE,CAACnC,MAAM,KAAK,CAAC,EAAE;MACnB,IAAAoC,GAAA,OAAAZ,eAAA,aAAuBW,EAAE;QAApB1D,CAAC,GAAA2D,GAAA;QAAEC,WAAW,GAAAD,GAAA;MAEnB,IAAAE,qBAAS,EAACC,MAAM,CAACC,QAAQ,CAAC/D,CAAC,CAACuC,KAAK,CAAC,EAAE,uBAAuB,CAAC;MAE5D,IAAMA,KAAK,GAAGvC,CAAC,CAACuC,KAAK;MACrB;;MAEA,IAAIA,KAAK,IAAI,CAAC,EAAE;QACdF,GAAG,CAAC2B,MAAM,CAACzB,KAAK,EAAE,CAAC,EAAEqB,WAAW,CAAC;QAEjC,OAAOvB,GAAG;MACZ,CAAC,MAAM;QACL,OAAOA,GAAG;MACZ;IACF,CAAC,MAAM;MACL,OAAOA,GAAG;IACZ;EACF,CAAC,MAAA4B,mBAAA,aACGb,GAAG,CACT,CAAC;AACH,CAAC;AAAC,IAEWc,gBAAgB,GAAAlC,OAAA,CAAAkC,gBAAA,0BAAAC,gBAAA;EAAA,SAAAD,iBAAA;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,gBAAA;IAAA,SAAAI,KAAA,GAAAhD,SAAA,CAAAC,MAAA,EAAAgD,IAAA,OAAAhB,KAAA,CAAAe,KAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;MAAAD,IAAA,CAAAC,KAAA,IAAAlD,SAAA,CAAAkD,KAAA;IAAA;IAAAJ,KAAA,GAAAvE,UAAA,OAAAqE,gBAAA,KAAAO,MAAA,CAAAF,IAAA;IAAA,IAAA9C,gBAAA,aAAA2C,KAAA,eA2Bf,UAAC7B,KAAK,EAAES,IAAI,EAAEC,EAAE,EAAK;MAC/BpB,GAAG,CAAC,uBAAuB,EAAEmB,IAAI,EAAEC,EAAE,CAAC;MACtC,IAAAyB,WAAA,GAA6BN,KAAA,CAAKO,KAAK;QAA/BC,QAAQ,GAAAF,WAAA,CAARE,QAAQ;QAAE3C,MAAM,GAAAyC,WAAA,CAANzC,MAAM;MACxB,IAAM4C,MAAM,OAAAZ,mBAAA,aAAOhC,MAAM,CAAC;MAC1B,IAAM6C,YAAY,GAAG,CAAC,CAAC,CAAC7C,MAAM,IAAI,EAAE,EAAE8C,IAAI,CAAC,UAACzC,CAAC;QAAA,OAAK,IAAA0C,kBAAW,EAAC1C,CAAC,EAAEW,EAAE,CAAC;MAAA,EAAC;MAErE,IAAI,IAAA+B,kBAAW,EAAChC,IAAI,EAAEC,EAAE,CAAC,IAAI6B,YAAY,EAAE;QACzC;MACF;MAEA,IAAI7C,MAAM,CAACM,KAAK,CAAC,CAAC0C,KAAK,EAAE;QACvBhC,EAAE,CAACgC,KAAK,GAAGhD,MAAM,CAACM,KAAK,CAAC,CAAC0C,KAAK;MAChC;MAEAJ,MAAM,CAACb,MAAM,CAACzB,KAAK,EAAE,CAAC,EAAEU,EAAE,CAAC;MAC3B2B,QAAQ,CAACC,MAAM,CAAC;IAClB,CAAC;IAAA,IAAApD,gBAAA,aAAA2C,KAAA,cAEU,UAACc,QAAQ,EAAEzC,IAAI,EAAK;MAC7BZ,GAAG,CAAC,cAAc,EAAEqD,QAAQ,EAAEzC,IAAI,CAAC;MACnC,IAAQmC,QAAQ,GAAKR,KAAA,CAAKO,KAAK,CAAvBC,QAAQ;MAEhB,IAAIM,QAAQ,CAAClC,IAAI,CAACiC,KAAK,EAAE;QACvBxC,IAAI,CAACO,IAAI,CAACiC,KAAK,GAAGC,QAAQ,CAAClC,IAAI,CAACiC,KAAK;MACvC;MAEA,IAAIC,QAAQ,CAACjC,EAAE,CAACgC,KAAK,EAAE;QACrBxC,IAAI,CAACQ,EAAE,CAACgC,KAAK,GAAGC,QAAQ,CAACjC,EAAE,CAACgC,KAAK;MACnC;MAEA,IAAMhD,MAAM,GAAGkB,IAAI,CAACiB,KAAA,CAAKO,KAAK,CAAC1C,MAAM,EAAEiD,QAAQ,CAAClC,IAAI,EAAEP,IAAI,CAACO,IAAI,EAAEkC,QAAQ,CAACjC,EAAE,EAAER,IAAI,CAACQ,EAAE,CAAC;MACtF2B,QAAQ,CAAC3C,MAAM,CAAC;IAClB,CAAC;IAAA,IAAAR,gBAAA,aAAA2C,KAAA,cAEU,UAACc,QAAQ,EAAEzC,IAAI,EAAK;MAC7BZ,GAAG,CAAC,aAAa,EAAEqD,QAAQ,EAAEzC,IAAI,CAAC;MAClC,IAAQmC,QAAQ,GAAKR,KAAA,CAAKO,KAAK,CAAvBC,QAAQ;MAEhBnC,IAAI,CAACjB,OAAO,CAAC,UAAC2D,KAAK,EAAE5C,KAAK,EAAK;QAC7B,IAAI2C,QAAQ,CAAC3C,KAAK,CAAC,CAAC0C,KAAK,EAAE;UACzBxC,IAAI,CAACF,KAAK,CAAC,CAAC0C,KAAK,GAAGC,QAAQ,CAAC3C,KAAK,CAAC,CAAC0C,KAAK;QAC3C;MACF,CAAC,CAAC;MAEFL,QAAQ,CAACnC,IAAI,CAAC;IAChB,CAAC;IAAA,IAAAhB,gBAAA,aAAA2C,KAAA,WAEO,YAAM;MACZ,IAAAgB,YAAA,GAAmChB,KAAA,CAAKO,KAAK;QAArC1C,MAAM,GAAAmD,YAAA,CAANnD,MAAM;QAAEoD,cAAc,GAAAD,YAAA,CAAdC,cAAc;MAC9BxD,GAAG,CAAC,aAAa,CAAC;MAElB,IAAII,MAAM,CAACV,MAAM,IAAI,CAAC,EAAE;QACtB8D,cAAc,CAAC,CAAC;MAClB,CAAC,MAAM;QACLxD,GAAG,CAAC,gBAAgB,CAAC;MACvB;IACF,CAAC;IAAA,IAAAJ,gBAAA,aAAA2C,KAAA,iBAEa,UAACe,KAAK,EAAE5C,KAAK,EAAK;MAC9B,IAAA+C,YAAA,GAAkClB,KAAA,CAAKO,KAAK;QAApC1C,MAAM,GAAAqD,YAAA,CAANrD,MAAM;QAAEsD,aAAa,GAAAD,YAAA,CAAbC,aAAa;MAC7B,IAAMC,YAAY,GAAAnE,aAAA,KAAQ8D,KAAK,CAAE;MAEjC,IAAI,CAACA,KAAK,CAACF,KAAK,IAAI,IAAAQ,mBAAO,EAACN,KAAK,CAACF,KAAK,CAAC,EAAE;QACxC,OAAOO,YAAY,CAACP,KAAK;MAC3B;MAEA,IAAMJ,MAAM,OAAAZ,mBAAA,aAAOhC,MAAM,CAAC;MAE1B4C,MAAM,CAACb,MAAM,CAACzB,KAAK,EAAE,CAAC,EAAEiD,YAAY,CAAC;MACrCD,aAAa,CAACV,MAAM,CAAC;IACvB,CAAC;IAAA,IAAApD,gBAAA,aAAA2C,KAAA,gBAEY,UAACe,KAAK,EAAE5C,KAAK,EAAEmD,IAAI,EAAK;MACnC,IAAAC,YAAA,GASIvB,KAAA,CAAKO,KAAK;QARZzC,MAAM,GAAAyD,YAAA,CAANzD,MAAM;QACN0D,QAAQ,GAAAD,YAAA,CAARC,QAAQ;QACRC,OAAO,GAAAF,YAAA,CAAPE,OAAO;QACPC,YAAY,GAAAH,YAAA,CAAZG,YAAY;QACZC,gBAAgB,GAAAJ,YAAA,CAAhBI,gBAAgB;QAChBR,aAAa,GAAAI,YAAA,CAAbJ,aAAa;QACbS,kBAAkB,GAAAL,YAAA,CAAlBK,kBAAkB;QAClB/D,MAAM,GAAA0D,YAAA,CAAN1D,MAAM;MAGR,IAAI8D,gBAAgB,EAAE;QACpB,IAAIH,QAAQ,EAAE;UACZ;QACF;QAEA,IAAI3D,MAAM,IAAIM,KAAK,KAAKN,MAAM,CAACV,MAAM,EAAE;UACrC,IAAA0E,kBAAA,GAAiB,IAAAC,wBAAiB,EAACjE,MAAM,CAAC;YAAlCkE,CAAC,GAAAF,kBAAA,CAADE,CAAC;YAAEC,CAAC,GAAAH,kBAAA,CAADG,CAAC;UACZ,IAAMC,MAAM,GAAAhF,aAAA,CAAAA,aAAA;YAAK4D,KAAK,EAAE;UAAE,GAAKE,KAAK,GAAK,IAAAmB,2BAAoB,EAACH,CAAC,EAAEC,CAAC,CAAC,CAAE;UAErEJ,kBAAkB,CAACK,MAAM,CAAC;QAC5B,CAAC,MAAM;UACL,IAAMxB,MAAM,OAAAZ,mBAAA,aAAOhC,MAAM,CAAC;UAE1B4C,MAAM,CAACb,MAAM,CAACzB,KAAK,EAAE,CAAC,EAAAlB,aAAA;YAAI4D,KAAK,EAAE;UAAE,GAAKE,KAAK,CAAE,CAAC;UAChDI,aAAa,CAACV,MAAM,CAAC;QACvB;QAEA,IAAIT,KAAA,CAAKmC,KAAK,CAAChE,KAAK,CAAC,EAAE;UACrB6B,KAAA,CAAKmC,KAAK,CAAChE,KAAK,CAAC,CAACiE,KAAK,CAAC,CAAC;QAC3B;QAEA;MACF;MAEA,IAAIV,YAAY,IAAI,CAAC5D,MAAM,IAAIK,KAAK,KAAK,CAAC,EAAE;QAC1C6B,KAAA,CAAKqC,KAAK,CAAC,CAAC;QACZ;MACF;MAEAZ,OAAO,CAACV,KAAK,IAAIO,IAAI,CAAC;IACxB,CAAC;IAED;IAAA,IAAAjE,gBAAA,aAAA2C,KAAA,WACQ,CAAC,CAAC;IAAA,OAAAA,KAAA;EAAA;EAAA,IAAAsC,UAAA,aAAAxC,gBAAA,EAAAC,gBAAA;EAAA,WAAAwC,aAAA,aAAAzC,gBAAA;IAAA0C,GAAA;IAAAC,KAAA,EAEV,SAAAC,MAAMA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACP,IAAAC,YAAA,GASI,IAAI,CAACrC,KAAK;QARZzC,MAAM,GAAA8E,YAAA,CAAN9E,MAAM;QACN+E,UAAU,GAAAD,YAAA,CAAVC,UAAU;QACVjB,kBAAkB,GAAAgB,YAAA,CAAlBhB,kBAAkB;QAClB/D,MAAM,GAAA+E,YAAA,CAAN/E,MAAM;QACNoE,MAAM,GAAAW,YAAA,CAANX,MAAM;QACNa,SAAS,GAAAF,YAAA,CAATE,SAAS;QACTnB,gBAAgB,GAAAiB,YAAA,CAAhBjB,gBAAgB;QAAAoB,qBAAA,GAAAH,YAAA,CAChBI,UAAU;QAAVA,UAAU,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;MAEpB,IAAME,iBAAiB,GAAIpF,MAAM,IAAIA,MAAM,CAACV,MAAM,IAAK,CAAC;MACxD,IAAI2F,SAAS,IAAIb,MAAM,IAAIvF,MAAM,CAACL,SAAS,CAAC6G,cAAc,CAAC3G,IAAI,CAAC0F,MAAM,EAAE,OAAO,CAAC,EAAE;QAChF,aAAAkB,oBAAQ,CAACC,YAAY,cACnB1I,MAAA,YAAA2I,aAAA,CAAC/H,UAAA,WAAS;UACRgI,QAAQ,EAAE,SAAVA,QAAQA,CAAG7G,CAAC;YAAA,OAAMkG,MAAI,CAACR,KAAK,CAACc,iBAAiB,CAAC,GAAGxG,CAAC;UAAA,CAAE;UACrD+E,QAAQ,EAAE,CAACG,gBAAiB;UAC5B4B,IAAI,EAAEtB,MAAO;UACbY,UAAU,EAAEA,UAAW;UACvBrC,QAAQ,EAAE,SAAVA,QAAQA,CAAGK,KAAK;YAAA,OAAKe,kBAAkB,CAAA3E,aAAA,CAAAA,aAAA,KAAMgF,MAAM;cAAEpB,KAAK,EAALA;YAAK,EAAE,CAAC;UAAA;QAAC,CAC/D,CAAC,EACFiC,SACF,CAAC;MACH;MACA,oBACEpI,MAAA,YAAA2I,aAAA,yBACE3I,MAAA,YAAA2I,aAAA,CAAC3I,MAAA,WAAK,CAAC8I,QAAQ,qBACb9I,MAAA,YAAA2I,aAAA,CAACnI,QAAA,WAAgB;QACf2C,MAAM,EAAEA,MAAO;QACfC,MAAM,EAAEA,MAAO;QACfkF,UAAU,EAAEA,UAAW;QACvBH,UAAU,EAAEA,UAAW;QACvBpB,OAAO,EAAE,IAAI,CAACgC,UAAU,CAACC,IAAI,CAAC,IAAI,EAAEzB,MAAM,EAAEgB,iBAAiB;MAAE,CAChE,CACa,CACf,CAAC;IAER;EAAC;AAAA,EAvLmCU,iBAAK,CAACC,SAAS;AAAA,IAAAvG,gBAAA,aAAxCyC,gBAAgB,eACR;EACjB+D,SAAS,EAAEC,qBAAS,CAACC,MAAM;EAC3BvC,QAAQ,EAAEsC,qBAAS,CAACE,IAAI;EACxBC,WAAW,EAAEH,qBAAS,CAACC,MAAM;EAC7BlG,MAAM,EAAEiG,qBAAS,CAACI,OAAO,CAACC,WAAK,CAACC,SAAS,CAAC;EAC1CtG,MAAM,EAAEgG,qBAAS,CAACE,IAAI;EACtBhB,UAAU,EAAEc,qBAAS,CAACE,IAAI;EAC1BK,kBAAkB,EAAEP,qBAAS,CAACE,IAAI;EAClCxD,QAAQ,EAAEsD,qBAAS,CAACQ,IAAI,CAACC,UAAU;EACnCtD,cAAc,EAAE6C,qBAAS,CAACQ,IAAI,CAACC,UAAU;EACzCC,WAAW,EAAEV,qBAAS,CAACQ,IAAI;EAC3BG,UAAU,EAAEX,qBAAS,CAACQ,IAAI;EAC1B7C,OAAO,EAAEqC,qBAAS,CAACQ,IAAI;EACvBzB,UAAU,EAAEsB,WAAK,CAACO,cAAc,CAACH,UAAU;EAC3C7C,YAAY,EAAEoC,qBAAS,CAACE,IAAI;EAC5B/B,MAAM,EAAE6B,qBAAS,CAACa,MAAM;EACxB7B,SAAS,EAAEgB,qBAAS,CAACa,MAAM;EAC3BhD,gBAAgB,EAAEmC,qBAAS,CAACE,IAAI;EAChCpC,kBAAkB,EAAEkC,qBAAS,CAACQ,IAAI;EAClCnD,aAAa,EAAE2C,qBAAS,CAACQ;AAC3B,CAAC;AAAA,IAAAjH,gBAAA,aArBUyC,gBAAgB,kBAuBL;EACpBjC,MAAM,EAAE;AACV,CAAC;AAiKI,IAAM+G,aAAa,GAAAhH,OAAA,CAAAgH,aAAA,GAAG9E,gBAAgB;AAAC,IAEzB8D,SAAS,GAAAhG,OAAA,qCAAAiH,iBAAA;EAQ5B,SAAAjB,UAAYrD,KAAK,EAAE;IAAA,IAAAuE,MAAA;IAAA,IAAA7E,gBAAA,mBAAA2D,SAAA;IACjBkB,MAAA,GAAArJ,UAAA,OAAAmI,SAAA,GAAMrD,KAAK;IAAE,IAAAlD,gBAAA,aAAAyH,MAAA,YAIN,UAACjH,MAAM,EAAK;MACnB,IACUoE,MAAM,GACZ6C,MAAA,CAAKvE,KAAK,CADZgD,IAAI,CAAItB,MAAM;MAEhB,IAAMsB,IAAI,GAAAtG,aAAA,CAAAA,aAAA,KAAQ6H,MAAA,CAAKC,KAAK,CAACxB,IAAI;QAAE1F,MAAM,EAANA;MAAM,EAAE;MAE3C,IAAIoE,MAAM,EAAE;QACV,IAAA+C,mBAAA,GAAiB,IAAAlD,wBAAiB,EAACjE,MAAM,CAAC;UAAlCkE,CAAC,GAAAiD,mBAAA,CAADjD,CAAC;UAAEC,CAAC,GAAAgD,mBAAA,CAADhD,CAAC;QAEZuB,IAAI,CAACtB,MAAM,GAAAhF,aAAA,CAAAA,aAAA,KAAQgF,MAAM,GAAK,IAAAC,2BAAoB,EAACH,CAAC,EAAEC,CAAC,CAAC,CAAE;MAC5D;MAEA8C,MAAA,CAAKG,QAAQ,CAAC;QAAE1B,IAAI,EAAJA;MAAK,CAAC,CAAC;IACzB,CAAC;IAAA,IAAAlG,gBAAA,aAAAyH,MAAA,iBAEa,UAACjH,MAAM,EAAK;MACxB,IAAM0F,IAAI,GAAAtG,aAAA,CAAAA,aAAA,KAAQ6H,MAAA,CAAKvE,KAAK,CAACgD,IAAI;QAAE1F,MAAM,EAANA;MAAM,EAAE;MAE3CiH,MAAA,CAAKvE,KAAK,CAACC,QAAQ,CAACsE,MAAA,CAAKvE,KAAK,CAACgD,IAAI,EAAEA,IAAI,CAAC;IAC5C,CAAC;IAAA,IAAAlG,gBAAA,aAAAyH,MAAA,sBAEkB,UAAC/D,KAAK,EAAK;MAC5B,IAAAmE,YAAA,GAA2BJ,MAAA,CAAKvE,KAAK;QAA7BgD,IAAI,GAAA2B,YAAA,CAAJ3B,IAAI;QAAE/C,QAAQ,GAAA0E,YAAA,CAAR1E,QAAQ;MACtB,IAAMyB,MAAM,GAAAhF,aAAA,CAAAA,aAAA,KAAQsG,IAAI,CAACtB,MAAM,GAAKlB,KAAK,CAAE;MAE3CP,QAAQ,CAAC+C,IAAI,EAAAtG,aAAA,CAAAA,aAAA,KAAOsG,IAAI;QAAEtB,MAAM,EAANA;MAAM,EAAE,CAAC;IACrC,CAAC;IAAA,IAAA5E,gBAAA,aAAAyH,MAAA,kBAEc,YAAM;MACnBrH,GAAG,CAAC,oBAAoB,CAAC;MACzB,IAAA0H,aAAA,GAA6BL,MAAA,CAAKvE,KAAK;QAA/B6E,UAAU,GAAAD,aAAA,CAAVC,UAAU;QAAE7B,IAAI,GAAA4B,aAAA,CAAJ5B,IAAI;MACxB,IAAM9C,MAAM,GAAAxD,aAAA,CAAAA,aAAA,KAAQsG,IAAI;QAAEzF,MAAM,EAAE;MAAI,EAAE;MAExCsH,UAAU,CAAC7B,IAAI,EAAE9C,MAAM,CAAC;IAC1B,CAAC;IAAA,IAAApD,gBAAA,aAAAyH,MAAA,eAEW;MAAA,OAAMA,MAAA,CAAKG,QAAQ,CAAC;QAAE1B,IAAI,EAAEuB,MAAA,CAAKvE,KAAK,CAACgD;MAAK,CAAC,CAAC;IAAA;IAAA,IAAAlG,gBAAA,aAAAyH,MAAA,cAE/C,YAAM;MACf,IAAQtE,QAAQ,GAAKsE,MAAA,CAAKvE,KAAK,CAAvBC,QAAQ;MAChB,IAAM6E,CAAC,GAAApI,aAAA,KAAQ6H,MAAA,CAAKC,KAAK,CAACxB,IAAI,CAAE;MAEhCuB,MAAA,CAAKG,QAAQ,CAAC;QAAE1B,IAAI,EAAE+B;MAAU,CAAC,EAAE,YAAM;QACvC9E,QAAQ,CAACsE,MAAA,CAAKvE,KAAK,CAACgD,IAAI,EAAE8B,CAAC,CAAC;MAC9B,CAAC,CAAC;IACJ,CAAC;IAhDCP,MAAA,CAAKC,KAAK,GAAG,CAAC,CAAC;IAAC,OAAAD,MAAA;EAClB;EAAC,IAAAxC,UAAA,aAAAsB,SAAA,EAAAiB,iBAAA;EAAA,WAAAtC,aAAA,aAAAqB,SAAA;IAAApB,GAAA;IAAAC,KAAA,EAiDD,SAAAC,MAAMA,CAAA,EAAG;MACP,IAAA6C,YAAA,GAAqG,IAAI,CAAChF,KAAK;QAAvG8D,kBAAkB,GAAAkB,YAAA,CAAlBlB,kBAAkB;QAAEd,IAAI,GAAAgC,YAAA,CAAJhC,IAAI;QAAEV,UAAU,GAAA0C,YAAA,CAAV1C,UAAU;QAAEpB,OAAO,GAAA8D,YAAA,CAAP9D,OAAO;QAAEC,YAAY,GAAA6D,YAAA,CAAZ7D,YAAY;QAAEoB,SAAS,GAAAyC,YAAA,CAATzC,SAAS;QAAEnB,gBAAgB,GAAA4D,YAAA,CAAhB5D,gBAAgB;MAChG,IAAc6D,SAAS,GAAK,IAAI,CAACT,KAAK,CAA9BxB,IAAI;MAEZ,oBACE7I,MAAA,YAAA2I,aAAA,CAACuB,aAAa,MAAAa,SAAA,iBACPD,SAAS,IAAIjC,IAAI;QACtBc,kBAAkB,EAAEA,kBAAmB;QACvC7D,QAAQ,EAAE,IAAI,CAACkF,MAAO;QACtB9D,kBAAkB,EAAE,IAAI,CAAC+D,gBAAiB;QAC1CxE,aAAa,EAAE,IAAI,CAACyE,WAAY;QAChC3E,cAAc,EAAE,IAAI,CAAC4E,YAAa;QAClCrB,WAAW,EAAE,IAAI,CAACsB,SAAU;QAC5BrB,UAAU,EAAE,IAAI,CAACsB,QAAS;QAC1BtE,OAAO,EAAEA,OAAQ;QACjBoB,UAAU,EAAEA,UAAW;QACvBnB,YAAY,EAAEA,YAAa;QAC3BoB,SAAS,EAAEA,SAAU;QACrBnB,gBAAgB,EAAEA;MAAiB,EACpC,CAAC;IAEN;EAAC;AAAA,EAjFoCgC,iBAAK,CAACC,SAAS;AAAA,IAAAvG,gBAAA,aAAjCuG,SAAS,eAAA3G,aAAA,CAAAA,aAAA,KAEvB+I,yBAAkB;EACrBnD,UAAU,EAAEsB,WAAK,CAACO,cAAc,CAACH;AAAU;AAAA,IAAAlH,gBAAA,aAH1BuG,SAAS,kBAMN,CAAC,CAAC","ignoreList":[]}