@pie-lib/plot 2.9.0-beta.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/label.js DELETED
@@ -1,176 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _renderUi = require("@pie-lib/render-ui");
19
-
20
- var _classnames = _interopRequireDefault(require("classnames"));
21
-
22
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
23
-
24
- var _styles = require("@material-ui/core/styles");
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _utils = require("./utils");
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
- var LabelComponent = function LabelComponent(props) {
35
- var _cn;
36
-
37
- var classes = props.classes,
38
- disabledLabel = props.disabledLabel,
39
- graphHeight = props.graphHeight,
40
- graphWidth = props.graphWidth,
41
- isChartBottomLabel = props.isChartBottomLabel,
42
- isDefineChartBottomLabel = props.isDefineChartBottomLabel,
43
- isChartLeftLabel = props.isChartLeftLabel,
44
- isDefineChartLeftLabel = props.isDefineChartLeftLabel,
45
- placeholder = props.placeholder,
46
- text = props.text,
47
- side = props.side,
48
- onChange = props.onChange,
49
- _props$mathMlOptions = props.mathMlOptions,
50
- mathMlOptions = _props$mathMlOptions === void 0 ? {} : _props$mathMlOptions,
51
- charactersLimit = props.charactersLimit,
52
- titleHeight = props.titleHeight;
53
-
54
- var _useState = (0, _react.useState)(false),
55
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
- rotatedToHorizontal = _useState2[0],
57
- setRotatedToHorizontal = _useState2[1];
58
-
59
- var activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math' // 'languageCharacters'
60
- ];
61
- var isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;
62
- var chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;
63
- var defaultStyle = {
64
- width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),
65
- top: chartValue || isChartLeftLabel && "".concat(graphHeight - 70, "px") || side === 'left' && "".concat(graphHeight - 8, "px") || isChartBottomLabel && "".concat(graphHeight - 60 + titleHeight, "px") || side === 'bottom' && "".concat(graphHeight - 120 + titleHeight, "px") || 0,
66
- left: side === 'right' && "".concat(graphWidth - 8, "px") || (isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px' || isChartBottomLabel && '-10px' || 0
67
- };
68
- var rotatedStyle = {
69
- width: graphWidth - 8,
70
- top: side === 'right' && "".concat(graphHeight - 22, "px") || 0,
71
- left: 0
72
- };
73
-
74
- var rotateLabel = function rotateLabel() {
75
- return !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);
76
- };
77
-
78
- return /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
79
- "false": true
80
- }, /*#__PURE__*/_react["default"].createElement("div", {
81
- className: (0, _classnames["default"])(isChart ? classes.chartLabel : classes.axisLabel, (_cn = {}, (0, _defineProperty2["default"])(_cn, classes.rotateLeftLabel, side === 'left' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.rotateRightLabel, side === 'right' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.editLabel, rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.customBottom, isChartBottomLabel || isDefineChartBottomLabel), (0, _defineProperty2["default"])(_cn, classes.displayNone, disabledLabel && !isChart && (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(text))), _cn)),
82
- style: rotatedToHorizontal ? rotatedStyle : defaultStyle,
83
- onClick: rotateLabel
84
- }, disabledLabel ? /*#__PURE__*/_react["default"].createElement("div", {
85
- className: classes.disabledLabel,
86
- dangerouslySetInnerHTML: {
87
- __html: text || ''
88
- }
89
- }) : /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
90
- markup: text || '',
91
- onChange: onChange,
92
- placeholder: !disabledLabel && placeholder,
93
- toolbarOpts: {
94
- position: side === 'bottom' ? 'top' : 'bottom',
95
- noPadding: true,
96
- noBorder: true
97
- },
98
- disableScrollbar: true,
99
- activePlugins: activePlugins,
100
- onDone: function onDone() {
101
- return setRotatedToHorizontal(false);
102
- },
103
- mathMlOptions: mathMlOptions,
104
- charactersLimit: charactersLimit
105
- })));
106
- };
107
-
108
- LabelComponent.propTypes = {
109
- classes: _propTypes["default"].object,
110
- disabledLabel: _propTypes["default"].bool,
111
- graphHeight: _propTypes["default"].number,
112
- graphWidth: _propTypes["default"].number,
113
- isChartBottomLabel: _propTypes["default"].bool,
114
- isDefineChartBottomLabel: _propTypes["default"].bool,
115
- isChartLeftLabel: _propTypes["default"].bool,
116
- isDefineChartLeftLabel: _propTypes["default"].bool,
117
- placeholder: _propTypes["default"].string,
118
- text: _propTypes["default"].string,
119
- side: _propTypes["default"].string,
120
- onChange: _propTypes["default"].func,
121
- mathMlOptions: _propTypes["default"].object,
122
- charactersLimit: _propTypes["default"].number,
123
- titleHeight: _propTypes["default"].number
124
- };
125
-
126
- var _default = (0, _styles.withStyles)(function (theme) {
127
- return {
128
- label: {
129
- fill: _renderUi.color.secondary()
130
- },
131
- axisLabel: {
132
- fontSize: theme.typography.fontSize - 2,
133
- textAlign: 'center',
134
- margin: theme.spacing.unit / 2,
135
- padding: "".concat(theme.spacing.unit / 2, "px 0")
136
- },
137
- chartLabel: {
138
- fontSize: theme.typography.fontSize + 2,
139
- textAlign: 'center',
140
- margin: theme.spacing.unit / 2,
141
- padding: "".concat(theme.spacing.unit / 2, "px 0")
142
- },
143
- disabledLabel: {
144
- pointerEvents: 'none',
145
- width: '100%'
146
- },
147
- editLabel: {
148
- position: 'absolute',
149
- backgroundColor: 'white',
150
- borderRadius: '4px',
151
- boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',
152
- zIndex: 10
153
- },
154
- rotateLeftLabel: {
155
- '-webkit-transform': 'rotate(-90deg)',
156
- transformOrigin: '0 0',
157
- transformStyle: 'preserve-3d',
158
- position: 'absolute'
159
- },
160
- rotateRightLabel: {
161
- '-webkit-transform': 'rotate(90deg)',
162
- transformOrigin: '0 0',
163
- transformStyle: 'preserve-3d',
164
- position: 'absolute'
165
- },
166
- customBottom: {
167
- position: 'absolute'
168
- },
169
- displayNone: {
170
- display: 'none'
171
- }
172
- };
173
- })(LabelComponent);
174
-
175
- exports["default"] = _default;
176
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYWJlbC5qc3giXSwibmFtZXMiOlsiTGFiZWxDb21wb25lbnQiLCJwcm9wcyIsImNsYXNzZXMiLCJkaXNhYmxlZExhYmVsIiwiZ3JhcGhIZWlnaHQiLCJncmFwaFdpZHRoIiwiaXNDaGFydEJvdHRvbUxhYmVsIiwiaXNEZWZpbmVDaGFydEJvdHRvbUxhYmVsIiwiaXNDaGFydExlZnRMYWJlbCIsImlzRGVmaW5lQ2hhcnRMZWZ0TGFiZWwiLCJwbGFjZWhvbGRlciIsInRleHQiLCJzaWRlIiwib25DaGFuZ2UiLCJtYXRoTWxPcHRpb25zIiwiY2hhcmFjdGVyc0xpbWl0IiwidGl0bGVIZWlnaHQiLCJyb3RhdGVkVG9Ib3Jpem9udGFsIiwic2V0Um90YXRlZFRvSG9yaXpvbnRhbCIsImFjdGl2ZVBsdWdpbnMiLCJpc0NoYXJ0IiwiY2hhcnRWYWx1ZSIsImRlZmF1bHRTdHlsZSIsIndpZHRoIiwidG9wIiwibGVmdCIsInJvdGF0ZWRTdHlsZSIsInJvdGF0ZUxhYmVsIiwiY2hhcnRMYWJlbCIsImF4aXNMYWJlbCIsInJvdGF0ZUxlZnRMYWJlbCIsInJvdGF0ZVJpZ2h0TGFiZWwiLCJlZGl0TGFiZWwiLCJjdXN0b21Cb3R0b20iLCJkaXNwbGF5Tm9uZSIsIl9faHRtbCIsInBvc2l0aW9uIiwibm9QYWRkaW5nIiwibm9Cb3JkZXIiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJib29sIiwibnVtYmVyIiwic3RyaW5nIiwiZnVuYyIsInRoZW1lIiwibGFiZWwiLCJmaWxsIiwiY29sb3IiLCJzZWNvbmRhcnkiLCJmb250U2l6ZSIsInR5cG9ncmFwaHkiLCJ0ZXh0QWxpZ24iLCJtYXJnaW4iLCJzcGFjaW5nIiwidW5pdCIsInBhZGRpbmciLCJwb2ludGVyRXZlbnRzIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiekluZGV4IiwidHJhbnNmb3JtT3JpZ2luIiwidHJhbnNmb3JtU3R5bGUiLCJkaXNwbGF5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QUFBLE1BQU0sRUFBRTtBQUxDLEtBcEJ5QjtBQTJCcENoQyxJQUFBQSxlQUFlLEVBQUU7QUFDZiwyQkFBcUIsZ0JBRE47QUFFZmlDLE1BQUFBLGVBQWUsRUFBRSxLQUZGO0FBR2ZDLE1BQUFBLGNBQWMsRUFBRSxhQUhEO0FBSWY1QixNQUFBQSxRQUFRLEVBQUU7QUFKSyxLQTNCbUI7QUFpQ3BDTCxJQUFBQSxnQkFBZ0IsRUFBRTtBQUNoQiwyQkFBcUIsZUFETDtBQUVoQmdDLE1BQUFBLGVBQWUsRUFBRSxLQUZEO0FBR2hCQyxNQUFBQSxjQUFjLEVBQUUsYUFIQTtBQUloQjVCLE1BQUFBLFFBQVEsRUFBRTtBQUpNLEtBakNrQjtBQXVDcENILElBQUFBLFlBQVksRUFBRTtBQUNaRyxNQUFBQSxRQUFRLEVBQUU7QUFERSxLQXZDc0I7QUEwQ3BDRixJQUFBQSxXQUFXLEVBQUU7QUFDWCtCLE1BQUFBLE9BQU8sRUFBRTtBQURFO0FBMUN1QixHQUFaO0FBQUEsQ0FBWCxFQTZDWGpFLGNBN0NXLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb2xvciwgUmVhZGFibGUgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IGNuIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGV4dHJhY3RUZXh0RnJvbUhUTUwsIGlzRW1wdHlTdHJpbmcgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IExhYmVsQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc2VzLFxuICAgIGRpc2FibGVkTGFiZWwsXG4gICAgZ3JhcGhIZWlnaHQsXG4gICAgZ3JhcGhXaWR0aCxcbiAgICBpc0NoYXJ0Qm90dG9tTGFiZWwsXG4gICAgaXNEZWZpbmVDaGFydEJvdHRvbUxhYmVsLFxuICAgIGlzQ2hhcnRMZWZ0TGFiZWwsXG4gICAgaXNEZWZpbmVDaGFydExlZnRMYWJlbCxcbiAgICBwbGFjZWhvbGRlcixcbiAgICB0ZXh0LFxuICAgIHNpZGUsXG4gICAgb25DaGFuZ2UsXG4gICAgbWF0aE1sT3B0aW9ucyA9IHt9LFxuICAgIGNoYXJhY3RlcnNMaW1pdCxcbiAgICB0aXRsZUhlaWdodCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbcm90YXRlZFRvSG9yaXpvbnRhbCwgc2V0Um90YXRlZFRvSG9yaXpvbnRhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGFjdGl2ZVBsdWdpbnMgPSBbXG4gICAgJ2JvbGQnLFxuICAgICdpdGFsaWMnLFxuICAgICd1bmRlcmxpbmUnLFxuICAgICdzdHJpa2V0aHJvdWdoJyxcbiAgICAnbWF0aCcsXG4gICAgLy8gJ2xhbmd1YWdlQ2hhcmFjdGVycydcbiAgXTtcblxuICBjb25zdCBpc0NoYXJ0ID0gaXNDaGFydEJvdHRvbUxhYmVsIHx8IGlzQ2hhcnRMZWZ0TGFiZWwgfHwgaXNEZWZpbmVDaGFydEJvdHRvbUxhYmVsIHx8IGlzRGVmaW5lQ2hhcnRMZWZ0TGFiZWw7XG5cbiAgY29uc3QgY2hhcnRWYWx1ZSA9IHNpZGUgPT09ICdsZWZ0JyAmJiBpc0RlZmluZUNoYXJ0TGVmdExhYmVsICYmIGdyYXBoSGVpZ2h0IC0gMjIwO1xuICBjb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gICAgd2lkdGg6IGNoYXJ0VmFsdWUgfHwgKHNpZGUgPT09ICdsZWZ0JyB8fCBzaWRlID09PSAncmlnaHQnID8gZ3JhcGhIZWlnaHQgLSA4IDogZ3JhcGhXaWR0aCAtIDgpLFxuICAgIHRvcDpcbiAgICAgIGNoYXJ0VmFsdWUgfHxcbiAgICAgIChpc0NoYXJ0TGVmdExhYmVsICYmIGAke2dyYXBoSGVpZ2h0IC0gNzB9cHhgKSB8fFxuICAgICAgKHNpZGUgPT09ICdsZWZ0JyAmJiBgJHtncmFwaEhlaWdodCAtIDh9cHhgKSB8fFxuICAgICAgKGlzQ2hhcnRCb3R0b21MYWJlbCAmJiBgJHtncmFwaEhlaWdodCAtIDYwICsgdGl0bGVIZWlnaHR9cHhgKSB8fFxuICAgICAgKHNpZGUgPT09ICdib3R0b20nICYmIGAke2dyYXBoSGVpZ2h0IC0gMTIwICsgdGl0bGVIZWlnaHR9cHhgKSB8fFxuICAgICAgMCxcbiAgICBsZWZ0OlxuICAgICAgKHNpZGUgPT09ICdyaWdodCcgJiYgYCR7Z3JhcGhXaWR0aCAtIDh9cHhgKSB8fFxuICAgICAgKChpc0RlZmluZUNoYXJ0TGVmdExhYmVsIHx8IGlzRGVmaW5lQ2hhcnRCb3R0b21MYWJlbCkgJiYgJzQwcHgnKSB8fFxuICAgICAgKGlzQ2hhcnRCb3R0b21MYWJlbCAmJiAnLTEwcHgnKSB8fFxuICAgICAgMCxcbiAgfTtcblxuICBjb25zdCByb3RhdGVkU3R5bGUgPSB7XG4gICAgd2lkdGg6IGdyYXBoV2lkdGggLSA4LFxuICAgIHRvcDogKHNpZGUgPT09ICdyaWdodCcgJiYgYCR7Z3JhcGhIZWlnaHQgLSAyMn1weGApIHx8IDAsXG4gICAgbGVmdDogMCxcbiAgfTtcblxuICBjb25zdCByb3RhdGVMYWJlbCA9ICgpID0+ICFkaXNhYmxlZExhYmVsICYmIChzaWRlID09PSAnbGVmdCcgfHwgc2lkZSA9PT0gJ3JpZ2h0JykgJiYgc2V0Um90YXRlZFRvSG9yaXpvbnRhbCh0cnVlKTtcblxuICByZXR1cm4gKFxuICAgIDxSZWFkYWJsZSBmYWxzZT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbihpc0NoYXJ0ID8gY2xhc3Nlcy5jaGFydExhYmVsIDogY2xhc3Nlcy5heGlzTGFiZWwsIHtcbiAgICAgICAgICBbY2xhc3Nlcy5yb3RhdGVMZWZ0TGFiZWxdOiBzaWRlID09PSAnbGVmdCcgJiYgIXJvdGF0ZWRUb0hvcml6b250YWwsXG4gICAgICAgICAgW2NsYXNzZXMucm90YXRlUmlnaHRMYWJlbF06IHNpZGUgPT09ICdyaWdodCcgJiYgIXJvdGF0ZWRUb0hvcml6b250YWwsXG4gICAgICAgICAgW2NsYXNzZXMuZWRpdExhYmVsXTogcm90YXRlZFRvSG9yaXpvbnRhbCxcbiAgICAgICAgICBbY2xhc3Nlcy5jdXN0b21Cb3R0b21dOiBpc0NoYXJ0Qm90dG9tTGFiZWwgfHwgaXNEZWZpbmVDaGFydEJvdHRvbUxhYmVsLFxuICAgICAgICAgIFtjbGFzc2VzLmRpc3BsYXlOb25lXTogZGlzYWJsZWRMYWJlbCAmJiAhaXNDaGFydCAmJiBpc0VtcHR5U3RyaW5nKGV4dHJhY3RUZXh0RnJvbUhUTUwodGV4dCkpLFxuICAgICAgICB9KX1cbiAgICAgICAgc3R5bGU9e3JvdGF0ZWRUb0hvcml6b250YWwgPyByb3RhdGVkU3R5bGUgOiBkZWZhdWx0U3R5bGV9XG4gICAgICAgIG9uQ2xpY2s9e3JvdGF0ZUxhYmVsfVxuICAgICAgPlxuICAgICAgICB7ZGlzYWJsZWRMYWJlbCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5kaXNhYmxlZExhYmVsfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHRleHQgfHwgJycgfX0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICBtYXJrdXA9e3RleHQgfHwgJyd9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17IWRpc2FibGVkTGFiZWwgJiYgcGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICB0b29sYmFyT3B0cz17e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogc2lkZSA9PT0gJ2JvdHRvbScgPyAndG9wJyA6ICdib3R0b20nLFxuICAgICAgICAgICAgICBub1BhZGRpbmc6IHRydWUsXG4gICAgICAgICAgICAgIG5vQm9yZGVyOiB0cnVlLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGRpc2FibGVTY3JvbGxiYXJcbiAgICAgICAgICAgIGFjdGl2ZVBsdWdpbnM9e2FjdGl2ZVBsdWdpbnN9XG4gICAgICAgICAgICBvbkRvbmU9eygpID0+IHNldFJvdGF0ZWRUb0hvcml6b250YWwoZmFsc2UpfVxuICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIGNoYXJhY3RlcnNMaW1pdD17Y2hhcmFjdGVyc0xpbWl0fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1JlYWRhYmxlPlxuICApO1xufTtcbkxhYmVsQ29tcG9uZW50LnByb3BUeXBlcyA9IHtcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGlzYWJsZWRMYWJlbDogUHJvcFR5cGVzLmJvb2wsXG4gIGdyYXBoSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBncmFwaFdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBpc0NoYXJ0Qm90dG9tTGFiZWw6IFByb3BUeXBlcy5ib29sLFxuICBpc0RlZmluZUNoYXJ0Qm90dG9tTGFiZWw6IFByb3BUeXBlcy5ib29sLFxuICBpc0NoYXJ0TGVmdExhYmVsOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNEZWZpbmVDaGFydExlZnRMYWJlbDogUHJvcFR5cGVzLmJvb2wsXG4gIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzaWRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG1hdGhNbE9wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNoYXJhY3RlcnNMaW1pdDogUHJvcFR5cGVzLm51bWJlcixcbiAgdGl0bGVIZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKCh0aGVtZSkgPT4gKHtcbiAgbGFiZWw6IHtcbiAgICBmaWxsOiBjb2xvci5zZWNvbmRhcnkoKSxcbiAgfSxcbiAgYXhpc0xhYmVsOiB7XG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nLnVuaXQgLyAyLFxuICAgIHBhZGRpbmc6IGAke3RoZW1lLnNwYWNpbmcudW5pdCAvIDJ9cHggMGAsXG4gIH0sXG4gIGNoYXJ0TGFiZWw6IHtcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSArIDIsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcudW5pdCAvIDIsXG4gICAgcGFkZGluZzogYCR7dGhlbWUuc3BhY2luZy51bml0IC8gMn1weCAwYCxcbiAgfSxcbiAgZGlzYWJsZWRMYWJlbDoge1xuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICBlZGl0TGFiZWw6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBib3hTaGFkb3c6ICcwcHggNXB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpJyxcbiAgICB6SW5kZXg6IDEwLFxuICB9LFxuICByb3RhdGVMZWZ0TGFiZWw6IHtcbiAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAncm90YXRlKC05MGRlZyknLFxuICAgIHRyYW5zZm9ybU9yaWdpbjogJzAgMCcsXG4gICAgdHJhbnNmb3JtU3R5bGU6ICdwcmVzZXJ2ZS0zZCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0sXG4gIHJvdGF0ZVJpZ2h0TGFiZWw6IHtcbiAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAncm90YXRlKDkwZGVnKScsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAnMCAwJyxcbiAgICB0cmFuc2Zvcm1TdHlsZTogJ3ByZXNlcnZlLTNkJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgfSxcbiAgY3VzdG9tQm90dG9tOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0sXG4gIGRpc3BsYXlOb25lOiB7XG4gICAgZGlzcGxheTogJ25vbmUnLFxuICB9LFxufSkpKExhYmVsQ29tcG9uZW50KTtcbiJdfQ==