@pie-lib/config-ui 12.0.0-beta.5 → 12.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +8 -1653
- package/CHANGELOG.md +345 -4
- package/LICENSE.md +5 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/alert-dialog.test.js +262 -0
- package/lib/__tests__/checkbox.test.js +227 -0
- package/lib/__tests__/choice-utils.test.js +14 -0
- package/lib/__tests__/form-section.test.js +252 -0
- package/lib/__tests__/help.test.js +270 -0
- package/lib/__tests__/input.test.js +268 -0
- package/lib/__tests__/langs.test.js +541 -0
- package/lib/__tests__/number-text-field-custom.test.js +362 -0
- package/lib/__tests__/number-text-field.test.js +421 -0
- package/lib/__tests__/radio-with-label.test.js +233 -0
- package/lib/__tests__/settings-panel.test.js +184 -0
- package/lib/__tests__/settings.test.js +653 -0
- package/lib/__tests__/tabs.test.js +211 -0
- package/lib/__tests__/two-choice.test.js +124 -0
- package/lib/__tests__/with-stateful-model.test.js +221 -0
- package/lib/alert-dialog.js +41 -11
- package/lib/alert-dialog.js.map +1 -1
- package/lib/checkbox.js +59 -49
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
- package/lib/choice-configuration/__tests__/index.test.js +253 -0
- package/lib/choice-configuration/feedback-menu.js +25 -27
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +183 -186
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +6 -8
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
- package/lib/feedback-config/feedback-selector.js +70 -74
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +23 -26
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +42 -45
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +32 -26
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +38 -48
- package/lib/help.js.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/input.js +13 -18
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +59 -68
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +57 -71
- package/lib/langs.js.map +1 -1
- package/lib/layout/__tests__/config.layout.test.js +70 -0
- package/lib/layout/__tests__/layout-content.test.js +6 -0
- package/lib/layout/config-layout.js +79 -48
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +1 -1
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +59 -61
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +26 -34
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +42 -51
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +152 -90
- package/lib/number-text-field-custom.js.map +1 -1
- package/lib/number-text-field.js +75 -64
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +31 -17
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +17 -21
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +14 -20
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +141 -142
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +30 -17
- package/lib/settings/settings-radio-label.js.map +1 -1
- package/lib/settings/toggle.js +40 -26
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +19 -31
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/__tests__/index.test.js +183 -0
- package/lib/tags-input/index.js +50 -62
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +34 -44
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +9 -13
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +14 -11
- package/src/__tests__/alert-dialog.test.jsx +283 -0
- package/src/__tests__/checkbox.test.jsx +249 -0
- package/src/__tests__/choice-utils.test.js +12 -0
- package/src/__tests__/form-section.test.jsx +334 -0
- package/src/__tests__/help.test.jsx +184 -0
- package/src/__tests__/input.test.jsx +192 -0
- package/src/__tests__/langs.test.jsx +457 -0
- package/src/__tests__/number-text-field-custom.test.jsx +438 -0
- package/src/__tests__/number-text-field.test.jsx +341 -0
- package/src/__tests__/radio-with-label.test.jsx +259 -0
- package/src/__tests__/settings-panel.test.js +187 -0
- package/src/__tests__/settings.test.jsx +515 -0
- package/src/__tests__/tabs.test.jsx +193 -0
- package/src/__tests__/two-choice.test.js +110 -0
- package/src/__tests__/with-stateful-model.test.jsx +145 -0
- package/src/alert-dialog.jsx +30 -8
- package/src/checkbox.jsx +43 -37
- package/src/choice-configuration/__tests__/feedback-menu.test.jsx +163 -0
- package/src/choice-configuration/__tests__/index.test.jsx +234 -0
- package/src/choice-configuration/feedback-menu.jsx +6 -6
- package/src/choice-configuration/index.jsx +208 -199
- package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
- package/src/feedback-config/__tests__/feedback-selector.test.jsx +97 -0
- package/src/feedback-config/feedback-selector.jsx +50 -55
- package/src/feedback-config/group.jsx +21 -22
- package/src/feedback-config/index.jsx +27 -29
- package/src/form-section.jsx +26 -18
- package/src/help.jsx +20 -28
- package/src/input.jsx +1 -1
- package/src/inputs.jsx +35 -44
- package/src/langs.jsx +41 -46
- package/src/layout/__tests__/config.layout.test.jsx +59 -0
- package/src/layout/__tests__/layout-content.test.jsx +3 -0
- package/src/layout/config-layout.jsx +53 -23
- package/src/layout/layout-contents.jsx +38 -40
- package/src/layout/settings-box.jsx +16 -19
- package/src/mui-box/index.jsx +35 -43
- package/src/number-text-field-custom.jsx +117 -65
- package/src/number-text-field.jsx +51 -34
- package/src/radio-with-label.jsx +26 -10
- package/src/settings/display-size.jsx +12 -11
- package/src/settings/index.js +2 -1
- package/src/settings/panel.jsx +101 -92
- package/src/settings/settings-radio-label.jsx +26 -10
- package/src/settings/toggle.jsx +37 -18
- package/src/tabs/index.jsx +8 -8
- package/src/tags-input/__tests__/index.test.jsx +113 -0
- package/src/tags-input/index.jsx +35 -38
- package/src/two-choice.jsx +15 -19
- package/README.md +0 -12
package/lib/settings/panel.js
CHANGED
|
@@ -8,33 +8,32 @@ exports["default"] = exports.Panel = void 0;
|
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
11
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
12
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
15
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
17
|
var _react = _interopRequireDefault(require("react"));
|
|
19
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
20
|
-
var _styles = require("@material-ui/core/styles");
|
|
21
19
|
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
22
20
|
var _set = _interopRequireDefault(require("lodash/set"));
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
var
|
|
21
|
+
var _styles = require("@mui/material/styles");
|
|
22
|
+
var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
23
|
+
var _Input = _interopRequireDefault(require("@mui/material/Input"));
|
|
24
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
25
|
+
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
26
26
|
var _debug = _interopRequireDefault(require("debug"));
|
|
27
27
|
var _toggle = _interopRequireDefault(require("./toggle"));
|
|
28
28
|
var _twoChoice = require("../two-choice");
|
|
29
29
|
var _settingsRadioLabel = _interopRequireDefault(require("./settings-radio-label"));
|
|
30
|
-
var
|
|
30
|
+
var _numberTextField = _interopRequireDefault(require("../number-text-field"));
|
|
31
31
|
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
32
|
-
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
33
32
|
var _excluded = ["isConfigProperty"];
|
|
34
|
-
function
|
|
35
|
-
function _isNativeReflectConstruct() {
|
|
36
|
-
function ownKeys(
|
|
37
|
-
function _objectSpread(
|
|
33
|
+
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)); }
|
|
34
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
35
|
+
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; }
|
|
36
|
+
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; }
|
|
38
37
|
var log = (0, _debug["default"])('pie-lib:config-ui:settings:panel');
|
|
39
38
|
var labelValue = {
|
|
40
39
|
label: _propTypes["default"].string,
|
|
@@ -62,14 +61,29 @@ CheckboxChoice.propTypes = {
|
|
|
62
61
|
value: _propTypes["default"].bool,
|
|
63
62
|
onChange: _propTypes["default"].func
|
|
64
63
|
};
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
var StyledNChoice = (0, _styles.styled)(_twoChoice.NChoice)(function (_ref2) {
|
|
65
|
+
var theme = _ref2.theme;
|
|
66
|
+
return {
|
|
67
|
+
marginTop: theme.spacing(0.5),
|
|
68
|
+
paddingBottom: theme.spacing(0.5),
|
|
69
|
+
width: '100%',
|
|
70
|
+
'& > label': {
|
|
71
|
+
color: 'rgba(0, 0, 0, 0.89)',
|
|
72
|
+
transform: 'translate(0, 10px) scale(1)',
|
|
73
|
+
fontSize: '18px',
|
|
74
|
+
marginTop: theme.spacing(2.5)
|
|
75
|
+
},
|
|
76
|
+
'& > div': {
|
|
77
|
+
marginTop: theme.spacing(2.5)
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
var Radio = function Radio(_ref3) {
|
|
82
|
+
var label = _ref3.label,
|
|
83
|
+
value = _ref3.value,
|
|
84
|
+
onChange = _ref3.onChange,
|
|
85
|
+
choices = _ref3.choices;
|
|
86
|
+
return /*#__PURE__*/_react["default"].createElement(StyledNChoice, {
|
|
73
87
|
direction: "horizontal",
|
|
74
88
|
customLabel: _settingsRadioLabel["default"],
|
|
75
89
|
value: value,
|
|
@@ -81,113 +95,97 @@ var Radio = function Radio(_ref2) {
|
|
|
81
95
|
Radio.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
|
|
82
96
|
choices: _propTypes["default"].arrayOf(_propTypes["default"].shape(labelValue))
|
|
83
97
|
});
|
|
84
|
-
var StyledRadio =
|
|
98
|
+
var StyledRadio = Radio;
|
|
99
|
+
var StyledLabel = (0, _styles.styled)('p')(function (_ref4) {
|
|
100
|
+
var theme = _ref4.theme;
|
|
85
101
|
return {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
paddingBottom: theme.spacing.unit / 2,
|
|
89
|
-
width: '100%',
|
|
90
|
-
'& > label': {
|
|
91
|
-
color: 'rgba(0, 0, 0, 0.89)',
|
|
92
|
-
transform: 'translate(0, 10px) scale(1)',
|
|
93
|
-
fontSize: '14px'
|
|
94
|
-
},
|
|
95
|
-
'& > div': {
|
|
96
|
-
marginTop: theme.spacing.unit * 2.5
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
label: {
|
|
100
|
-
display: 'none'
|
|
101
|
-
}
|
|
102
|
+
margin: 0,
|
|
103
|
+
fontSize: theme.typography.fontSize
|
|
102
104
|
};
|
|
103
|
-
})
|
|
104
|
-
var
|
|
105
|
+
});
|
|
106
|
+
var StyledSelect = (0, _styles.styled)(_Select["default"])(function (_ref5) {
|
|
107
|
+
var theme = _ref5.theme;
|
|
105
108
|
return {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
wrapper: {
|
|
111
|
-
marginTop: theme.spacing.unit / 2,
|
|
112
|
-
border: '2px solid lightgrey',
|
|
113
|
-
borderRadius: '4px',
|
|
114
|
-
padding: "0 ".concat(theme.spacing.unit, "px")
|
|
115
|
-
}
|
|
109
|
+
marginTop: theme.spacing(0.5),
|
|
110
|
+
border: '2px solid lightgrey',
|
|
111
|
+
padding: "0 ".concat(theme.spacing(1)),
|
|
112
|
+
borderRadius: '4px'
|
|
116
113
|
};
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
value =
|
|
121
|
-
_onChange2 =
|
|
122
|
-
|
|
123
|
-
choices =
|
|
114
|
+
});
|
|
115
|
+
var Dropdown = function Dropdown(_ref6) {
|
|
116
|
+
var label = _ref6.label,
|
|
117
|
+
value = _ref6.value,
|
|
118
|
+
_onChange2 = _ref6.onChange,
|
|
119
|
+
_ref6$choices = _ref6.choices,
|
|
120
|
+
choices = _ref6$choices === void 0 ? [] : _ref6$choices;
|
|
124
121
|
var getItemLabel = function getItemLabel(l) {
|
|
125
122
|
return typeof l === 'string' ? l : l.label;
|
|
126
123
|
};
|
|
127
124
|
var getItemValue = function getItemValue(l) {
|
|
128
125
|
return typeof l === 'string' ? l : l.value;
|
|
129
126
|
};
|
|
130
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, label && /*#__PURE__*/_react["default"].createElement("
|
|
131
|
-
className: classes.label
|
|
132
|
-
}, label), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
133
|
-
className: classes.wrapper,
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, label && /*#__PURE__*/_react["default"].createElement(StyledLabel, null, label), /*#__PURE__*/_react["default"].createElement(StyledSelect, {
|
|
134
128
|
value: value || choices && choices[0],
|
|
135
|
-
onChange: function onChange(
|
|
136
|
-
var target =
|
|
129
|
+
onChange: function onChange(_ref7) {
|
|
130
|
+
var target = _ref7.target;
|
|
137
131
|
return _onChange2(target.value);
|
|
138
132
|
},
|
|
139
133
|
input: /*#__PURE__*/_react["default"].createElement(_Input["default"], {
|
|
140
134
|
id: "dropdown-".concat(label)
|
|
141
135
|
}),
|
|
142
|
-
disableUnderline: true
|
|
136
|
+
disableUnderline: true,
|
|
137
|
+
MenuProps: {
|
|
138
|
+
transitionDuration: {
|
|
139
|
+
enter: 225,
|
|
140
|
+
exit: 195
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
143
|
}, choices.map(function (l, index) {
|
|
144
144
|
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
145
145
|
key: index,
|
|
146
146
|
value: getItemValue(l)
|
|
147
147
|
}, getItemLabel(l));
|
|
148
148
|
})));
|
|
149
|
-
}
|
|
149
|
+
};
|
|
150
150
|
Dropdown.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
|
|
151
151
|
choices: _propTypes["default"].arrayOf(_propTypes["default"].string)
|
|
152
152
|
});
|
|
153
|
-
var
|
|
153
|
+
var StyledTypography = (0, _styles.styled)(_Typography["default"])(function (_ref8) {
|
|
154
|
+
var theme = _ref8.theme;
|
|
154
155
|
return {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
marginTop: theme.spacing.unit
|
|
158
|
-
}
|
|
156
|
+
marginRight: theme.spacing(3),
|
|
157
|
+
marginTop: theme.spacing(1)
|
|
159
158
|
};
|
|
160
|
-
})(function (_ref5) {
|
|
161
|
-
var classes = _ref5.classes,
|
|
162
|
-
label = _ref5.label;
|
|
163
|
-
return /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
164
|
-
className: classes.field
|
|
165
|
-
}, label);
|
|
166
159
|
});
|
|
167
|
-
var
|
|
160
|
+
var TextField = function TextField(_ref9) {
|
|
161
|
+
var label = _ref9.label;
|
|
162
|
+
return /*#__PURE__*/_react["default"].createElement(StyledTypography, null, label);
|
|
163
|
+
};
|
|
164
|
+
var StyledNumberTextField = (0, _styles.styled)(_numberTextField["default"])(function (_ref0) {
|
|
165
|
+
var theme = _ref0.theme;
|
|
168
166
|
return {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
wrapper: {
|
|
175
|
-
marginTop: theme.spacing.unit / 2,
|
|
167
|
+
width: '35%',
|
|
168
|
+
marginRight: theme.spacing(3),
|
|
169
|
+
marginTop: theme.spacing(1),
|
|
170
|
+
'& .MuiInputBase-root': {
|
|
171
|
+
marginTop: theme.spacing(0.5),
|
|
176
172
|
border: '2px solid lightgrey',
|
|
177
173
|
borderRadius: '4px',
|
|
178
|
-
padding: "0 ".concat(theme.spacing
|
|
174
|
+
padding: "0 ".concat(theme.spacing(1)),
|
|
175
|
+
backgroundColor: 'transparent'
|
|
179
176
|
}
|
|
180
177
|
};
|
|
181
|
-
})
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
value =
|
|
185
|
-
|
|
186
|
-
_onChange3 =
|
|
187
|
-
suffix =
|
|
188
|
-
min =
|
|
189
|
-
max =
|
|
190
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
178
|
+
});
|
|
179
|
+
var NumberField = function NumberField(_ref1) {
|
|
180
|
+
var label = _ref1.label,
|
|
181
|
+
value = _ref1.value,
|
|
182
|
+
_ref1$onChange = _ref1.onChange,
|
|
183
|
+
_onChange3 = _ref1$onChange === void 0 ? function () {} : _ref1$onChange,
|
|
184
|
+
suffix = _ref1.suffix,
|
|
185
|
+
min = _ref1.min,
|
|
186
|
+
max = _ref1.max;
|
|
187
|
+
return /*#__PURE__*/_react["default"].createElement(StyledNumberTextField, {
|
|
188
|
+
variant: 'standard',
|
|
191
189
|
label: label || 'Label',
|
|
192
190
|
value: value,
|
|
193
191
|
max: max,
|
|
@@ -196,27 +194,26 @@ var NumberField = (0, _styles.withStyles)(function (theme) {
|
|
|
196
194
|
return _onChange3(value);
|
|
197
195
|
},
|
|
198
196
|
suffix: suffix,
|
|
199
|
-
className: classes.field,
|
|
200
197
|
showErrorWhenOutsideRange: true,
|
|
201
|
-
inputClassName: classes.wrapper,
|
|
202
198
|
disableUnderline: true
|
|
203
199
|
});
|
|
204
|
-
}
|
|
200
|
+
};
|
|
205
201
|
NumberField.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
|
|
206
|
-
classes: _propTypes["default"].object,
|
|
207
202
|
suffix: _propTypes["default"].string,
|
|
208
203
|
min: _propTypes["default"].number,
|
|
209
204
|
max: _propTypes["default"].number,
|
|
210
205
|
value: _propTypes["default"].number
|
|
211
206
|
});
|
|
212
207
|
TextField.propTypes = _objectSpread({}, baseTypes);
|
|
213
|
-
var ToggleWrapper = function ToggleWrapper(
|
|
214
|
-
var
|
|
215
|
-
|
|
216
|
-
|
|
208
|
+
var ToggleWrapper = function ToggleWrapper(_ref10) {
|
|
209
|
+
var disabled = _ref10.disabled,
|
|
210
|
+
label = _ref10.label,
|
|
211
|
+
value = _ref10.value,
|
|
212
|
+
onChange = _ref10.onChange;
|
|
217
213
|
return /*#__PURE__*/_react["default"].createElement(_toggle["default"], {
|
|
218
214
|
label: label,
|
|
219
215
|
checked: !!value,
|
|
216
|
+
disabled: !!disabled,
|
|
220
217
|
toggle: onChange
|
|
221
218
|
});
|
|
222
219
|
};
|
|
@@ -231,25 +228,30 @@ var tagMap = {
|
|
|
231
228
|
checkbox: CheckboxChoice,
|
|
232
229
|
textField: TextField
|
|
233
230
|
};
|
|
234
|
-
var
|
|
231
|
+
var StyledGroup = (0, _styles.styled)('div')(function (_ref11) {
|
|
232
|
+
var theme = _ref11.theme;
|
|
235
233
|
return {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
fontSize: theme.typography.fontSize,
|
|
247
|
-
marginBottom: 0
|
|
248
|
-
}
|
|
234
|
+
margin: "0 0 ".concat(theme.spacing(2), " 0")
|
|
235
|
+
};
|
|
236
|
+
});
|
|
237
|
+
var StyledGroupHeader = (0, _styles.styled)('div')(function (_ref12) {
|
|
238
|
+
var theme = _ref12.theme;
|
|
239
|
+
return {
|
|
240
|
+
color: '#495B8F',
|
|
241
|
+
fontSize: theme.typography.fontSize + 2,
|
|
242
|
+
fontWeight: 600,
|
|
243
|
+
marginBottom: theme.spacing(1)
|
|
249
244
|
};
|
|
250
|
-
})
|
|
251
|
-
|
|
252
|
-
|
|
245
|
+
});
|
|
246
|
+
var StyledNumberFields = (0, _styles.styled)('p')(function (_ref13) {
|
|
247
|
+
var theme = _ref13.theme;
|
|
248
|
+
return {
|
|
249
|
+
fontSize: theme.typography.fontSize,
|
|
250
|
+
marginBottom: 0
|
|
251
|
+
};
|
|
252
|
+
});
|
|
253
|
+
var Group = function Group(props) {
|
|
254
|
+
var model = props.model,
|
|
253
255
|
label = props.label,
|
|
254
256
|
group = props.group,
|
|
255
257
|
configuration = props.configuration,
|
|
@@ -290,9 +292,7 @@ var Group = (0, _styles.withStyles)(function (theme) {
|
|
|
290
292
|
if (type === 'numberFields') {
|
|
291
293
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
292
294
|
key: "numberField-".concat(label)
|
|
293
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
294
|
-
className: classes.numberFields
|
|
295
|
-
}, label), Object.keys(fields).map(function (fieldKey) {
|
|
295
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledNumberFields, null, label), Object.keys(fields).map(function (fieldKey) {
|
|
296
296
|
return getTag(group, "".concat(key, ".").concat(fieldKey), "".concat(key, ".fields.").concat(fieldKey));
|
|
297
297
|
}));
|
|
298
298
|
}
|
|
@@ -307,25 +307,26 @@ var Group = (0, _styles.withStyles)(function (theme) {
|
|
|
307
307
|
// if type is toggle, radio, dropdown, numberField or numberText
|
|
308
308
|
return getTag(group, key);
|
|
309
309
|
};
|
|
310
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
311
|
-
className: classes.group
|
|
312
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
313
|
-
className: classes.groupHeader
|
|
314
|
-
}, label), Object.keys(group).map(function (key) {
|
|
310
|
+
return /*#__PURE__*/_react["default"].createElement(StyledGroup, null, /*#__PURE__*/_react["default"].createElement(StyledGroupHeader, null, label), Object.keys(group).map(function (key) {
|
|
315
311
|
return content(group, key);
|
|
316
312
|
}));
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
313
|
+
};
|
|
314
|
+
Group.propTypes = {
|
|
315
|
+
model: _propTypes["default"].object,
|
|
316
|
+
label: _propTypes["default"].string,
|
|
317
|
+
group: _propTypes["default"].object,
|
|
318
|
+
configuration: _propTypes["default"].object,
|
|
319
|
+
onChange: _propTypes["default"].func
|
|
320
|
+
};
|
|
321
|
+
var Panel = exports.Panel = /*#__PURE__*/function (_React$Component) {
|
|
321
322
|
function Panel() {
|
|
322
323
|
var _this;
|
|
323
324
|
(0, _classCallCheck2["default"])(this, Panel);
|
|
324
325
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
325
326
|
args[_key] = arguments[_key];
|
|
326
327
|
}
|
|
327
|
-
_this =
|
|
328
|
-
(0, _defineProperty2["default"])(
|
|
328
|
+
_this = _callSuper(this, Panel, [].concat(args));
|
|
329
|
+
(0, _defineProperty2["default"])(_this, "change", function (key, value) {
|
|
329
330
|
var isConfigProperty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
330
331
|
log('[changeModel]', key, value);
|
|
331
332
|
var _this$props = _this.props,
|
|
@@ -343,7 +344,8 @@ var Panel = /*#__PURE__*/function (_React$Component) {
|
|
|
343
344
|
});
|
|
344
345
|
return _this;
|
|
345
346
|
}
|
|
346
|
-
(0,
|
|
347
|
+
(0, _inherits2["default"])(Panel, _React$Component);
|
|
348
|
+
return (0, _createClass2["default"])(Panel, [{
|
|
347
349
|
key: "render",
|
|
348
350
|
value: function render() {
|
|
349
351
|
var _this2 = this;
|
|
@@ -354,9 +356,9 @@ var Panel = /*#__PURE__*/function (_React$Component) {
|
|
|
354
356
|
modal = _this$props2.modal;
|
|
355
357
|
log('render:', model);
|
|
356
358
|
var renderedGroups = Object.keys(groups || {}).map(function (group) {
|
|
357
|
-
var showGroup = Object.entries(groups[group]).some(function (
|
|
358
|
-
var
|
|
359
|
-
propVal =
|
|
359
|
+
var showGroup = Object.entries(groups[group]).some(function (_ref14) {
|
|
360
|
+
var _ref15 = (0, _slicedToArray2["default"])(_ref14, 2),
|
|
361
|
+
propVal = _ref15[1];
|
|
360
362
|
return !!propVal;
|
|
361
363
|
});
|
|
362
364
|
if (showGroup) {
|
|
@@ -374,9 +376,7 @@ var Panel = /*#__PURE__*/function (_React$Component) {
|
|
|
374
376
|
return /*#__PURE__*/_react["default"].createElement("div", null, renderedGroups, modal);
|
|
375
377
|
}
|
|
376
378
|
}]);
|
|
377
|
-
return Panel;
|
|
378
379
|
}(_react["default"].Component);
|
|
379
|
-
exports.Panel = Panel;
|
|
380
380
|
(0, _defineProperty2["default"])(Panel, "propTypes", {
|
|
381
381
|
model: _propTypes["default"].object,
|
|
382
382
|
configuration: _propTypes["default"].object,
|
|
@@ -389,6 +389,5 @@ exports.Panel = Panel;
|
|
|
389
389
|
onChangeModel: function onChangeModel() {},
|
|
390
390
|
onChangeConfiguration: function onChangeConfiguration() {}
|
|
391
391
|
});
|
|
392
|
-
var _default = Panel;
|
|
393
|
-
exports["default"] = _default;
|
|
394
|
-
//# sourceMappingURL=panel.js.map
|
|
392
|
+
var _default = exports["default"] = Panel;
|
|
393
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfZ2V0MiIsIl9zZXQiLCJfc3R5bGVzIiwiX1NlbGVjdCIsIl9JbnB1dCIsIl9NZW51SXRlbSIsIl9UeXBvZ3JhcGh5IiwiX2RlYnVnIiwiX3RvZ2dsZSIsIl90d29DaG9pY2UiLCJfc2V0dGluZ3NSYWRpb0xhYmVsIiwiX251bWJlclRleHRGaWVsZCIsIl9jaGVja2JveCIsIl9leGNsdWRlZCIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwib3duS2V5cyIsInIiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwibG9nIiwiZGVidWciLCJsYWJlbFZhbHVlIiwibGFiZWwiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJ2YWx1ZSIsImJhc2VUeXBlcyIsIm9uQ2hhbmdlIiwiZnVuYyIsIkNoZWNrYm94Q2hvaWNlIiwiX3JlZiIsImNyZWF0ZUVsZW1lbnQiLCJjaGVja2VkIiwiZXZlbnQiLCJ0YXJnZXQiLCJwcm9wVHlwZXMiLCJib29sIiwiU3R5bGVkTkNob2ljZSIsInN0eWxlZCIsIk5DaG9pY2UiLCJfcmVmMiIsInRoZW1lIiwibWFyZ2luVG9wIiwic3BhY2luZyIsInBhZGRpbmdCb3R0b20iLCJ3aWR0aCIsImNvbG9yIiwidHJhbnNmb3JtIiwiZm9udFNpemUiLCJSYWRpbyIsIl9yZWYzIiwiY2hvaWNlcyIsImRpcmVjdGlvbiIsImN1c3RvbUxhYmVsIiwiU2V0dGluZ3NSYWRpb0xhYmVsIiwiaGVhZGVyIiwib3B0cyIsImFycmF5T2YiLCJzaGFwZSIsIlN0eWxlZFJhZGlvIiwiU3R5bGVkTGFiZWwiLCJfcmVmNCIsIm1hcmdpbiIsInR5cG9ncmFwaHkiLCJTdHlsZWRTZWxlY3QiLCJTZWxlY3QiLCJfcmVmNSIsImJvcmRlciIsInBhZGRpbmciLCJjb25jYXQiLCJib3JkZXJSYWRpdXMiLCJEcm9wZG93biIsIl9yZWY2IiwiX3JlZjYkY2hvaWNlcyIsImdldEl0ZW1MYWJlbCIsImwiLCJnZXRJdGVtVmFsdWUiLCJfcmVmNyIsImlucHV0IiwiaWQiLCJkaXNhYmxlVW5kZXJsaW5lIiwiTWVudVByb3BzIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiZW50ZXIiLCJleGl0IiwibWFwIiwiaW5kZXgiLCJrZXkiLCJTdHlsZWRUeXBvZ3JhcGh5IiwiVHlwb2dyYXBoeSIsIl9yZWY4IiwibWFyZ2luUmlnaHQiLCJUZXh0RmllbGQiLCJfcmVmOSIsIlN0eWxlZE51bWJlclRleHRGaWVsZCIsIk51bWJlclRleHRGaWVsZCIsIl9yZWYwIiwiYmFja2dyb3VuZENvbG9yIiwiTnVtYmVyRmllbGQiLCJfcmVmMSIsIl9yZWYxJG9uQ2hhbmdlIiwic3VmZml4IiwibWluIiwibWF4IiwidmFyaWFudCIsImV2Iiwic2hvd0Vycm9yV2hlbk91dHNpZGVSYW5nZSIsIm51bWJlciIsIlRvZ2dsZVdyYXBwZXIiLCJfcmVmMTAiLCJkaXNhYmxlZCIsInRvZ2dsZSIsInRhZ01hcCIsInJhZGlvIiwiZHJvcGRvd24iLCJudW1iZXJGaWVsZCIsImNoZWNrYm94IiwidGV4dEZpZWxkIiwiU3R5bGVkR3JvdXAiLCJfcmVmMTEiLCJTdHlsZWRHcm91cEhlYWRlciIsIl9yZWYxMiIsImZvbnRXZWlnaHQiLCJtYXJnaW5Cb3R0b20iLCJTdHlsZWROdW1iZXJGaWVsZHMiLCJfcmVmMTMiLCJHcm91cCIsInByb3BzIiwibW9kZWwiLCJncm91cCIsImNvbmZpZ3VyYXRpb24iLCJnZXRUYWciLCJpbm5lcktleSIsIl9nZXQiLCJnZXQiLCJpc0NvbmZpZ1Byb3BlcnR5IiwicHJvcGVydGllcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJ0YWdQcm9wcyIsIlRhZyIsInR5cGUiLCJfZXh0ZW5kczIiLCJ2IiwiY29udGVudCIsImN1cnJlbnRHcm91cCIsImZpZWxkcyIsImZpZWxkS2V5IiwiY2hvaWNlS2V5Iiwib2JqZWN0IiwiUGFuZWwiLCJleHBvcnRzIiwiX1JlYWN0JENvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwidW5kZWZpbmVkIiwiX3RoaXMkcHJvcHMiLCJvbkNoYW5nZU1vZGVsIiwib25DaGFuZ2VDb25maWd1cmF0aW9uIiwic2V0IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJyZW5kZXIiLCJfdGhpczIiLCJfdGhpcyRwcm9wczIiLCJncm91cHMiLCJtb2RhbCIsInJlbmRlcmVkR3JvdXBzIiwic2hvd0dyb3VwIiwiZW50cmllcyIsInNvbWUiLCJfcmVmMTQiLCJfcmVmMTUiLCJfc2xpY2VkVG9BcnJheTIiLCJwcm9wVmFsIiwiY2hhbmdlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXR0aW5ncy9wYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IHNldCBmcm9tICdsb2Rhc2gvc2V0JztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCBTZWxlY3QgZnJvbSAnQG11aS9tYXRlcmlhbC9TZWxlY3QnO1xuaW1wb3J0IElucHV0IGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXQnO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gJ0BtdWkvbWF0ZXJpYWwvTWVudUl0ZW0nO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBUb2dnbGUgZnJvbSAnLi90b2dnbGUnO1xuaW1wb3J0IHsgTkNob2ljZSB9IGZyb20gJy4uL3R3by1jaG9pY2UnO1xuaW1wb3J0IFNldHRpbmdzUmFkaW9MYWJlbCBmcm9tICcuL3NldHRpbmdzLXJhZGlvLWxhYmVsJztcbmltcG9ydCBOdW1iZXJUZXh0RmllbGQgZnJvbSAnLi4vbnVtYmVyLXRleHQtZmllbGQnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJy4uL2NoZWNrYm94JztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6Y29uZmlnLXVpOnNldHRpbmdzOnBhbmVsJyk7XG5cbmNvbnN0IGxhYmVsVmFsdWUgPSB7XG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IGJhc2VUeXBlcyA9IHtcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5jb25zdCBDaGVja2JveENob2ljZSA9ICh7IGxhYmVsLCB2YWx1ZSwgb25DaGFuZ2UgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxDaGVja2JveFxuICAgICAgY2hlY2tlZD17dmFsdWV9XG4gICAgICBsYWJlbD17bGFiZWx9XG4gICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiB7XG4gICAgICAgIG9uQ2hhbmdlKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn07XG5cbkNoZWNrYm94Q2hvaWNlLnByb3BUeXBlcyA9IHtcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHZhbHVlOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuY29uc3QgU3R5bGVkTkNob2ljZSA9IHN0eWxlZChOQ2hvaWNlKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZygwLjUpLFxuICB3aWR0aDogJzEwMCUnLFxuICAnJiA+IGxhYmVsJzoge1xuICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjg5KScsXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDAsIDEwcHgpIHNjYWxlKDEpJyxcbiAgICBmb250U2l6ZTogJzE4cHgnLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZygyLjUpLFxuICB9LFxuICAnJiA+IGRpdic6IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMi41KSxcbiAgfSxcbn0pKTtcblxuY29uc3QgUmFkaW8gPSAoeyBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlLCBjaG9pY2VzIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTkNob2ljZVxuICAgICAgZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICBjdXN0b21MYWJlbD17U2V0dGluZ3NSYWRpb0xhYmVsfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgaGVhZGVyPXtsYWJlbH1cbiAgICAgIG9wdHM9e2Nob2ljZXN9XG4gICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgLz5cbiAgKTtcbn07XG5cblJhZGlvLnByb3BUeXBlcyA9IHsgLi4uYmFzZVR5cGVzLCBjaG9pY2VzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUobGFiZWxWYWx1ZSkpIH07XG5cbmNvbnN0IFN0eWxlZFJhZGlvID0gUmFkaW87XG5cbmNvbnN0IFN0eWxlZExhYmVsID0gc3R5bGVkKCdwJykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luOiAwLFxuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbn0pKTtcblxuY29uc3QgU3R5bGVkU2VsZWN0ID0gc3R5bGVkKFNlbGVjdCkoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDAuNSksXG4gIGJvcmRlcjogJzJweCBzb2xpZCBsaWdodGdyZXknLFxuICBwYWRkaW5nOiBgMCAke3RoZW1lLnNwYWNpbmcoMSl9YCxcbiAgYm9yZGVyUmFkaXVzOiAnNHB4Jyxcbn0pKTtcblxuY29uc3QgRHJvcGRvd24gPSAoeyBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlLCBjaG9pY2VzID0gW10gfSkgPT4ge1xuICBjb25zdCBnZXRJdGVtTGFiZWwgPSAobCkgPT4gKHR5cGVvZiBsID09PSAnc3RyaW5nJyA/IGwgOiBsLmxhYmVsKTtcbiAgY29uc3QgZ2V0SXRlbVZhbHVlID0gKGwpID0+ICh0eXBlb2YgbCA9PT0gJ3N0cmluZycgPyBsIDogbC52YWx1ZSk7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtsYWJlbCAmJiA8U3R5bGVkTGFiZWw+e2xhYmVsfTwvU3R5bGVkTGFiZWw+fVxuICAgICAgPFN0eWxlZFNlbGVjdFxuICAgICAgICB2YWx1ZT17dmFsdWUgfHwgKGNob2ljZXMgJiYgY2hvaWNlc1swXSl9XG4gICAgICAgIG9uQ2hhbmdlPXsoeyB0YXJnZXQgfSkgPT4gb25DaGFuZ2UodGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgaW5wdXQ9ezxJbnB1dCBpZD17YGRyb3Bkb3duLSR7bGFiZWx9YH0gLz59XG4gICAgICAgIGRpc2FibGVVbmRlcmxpbmVcbiAgICAgICAgTWVudVByb3BzPXt7IHRyYW5zaXRpb25EdXJhdGlvbjogeyBlbnRlcjogMjI1LCBleGl0OiAxOTUgfSB9fVxuICAgICAgPlxuICAgICAgICB7Y2hvaWNlcy5tYXAoKGwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgPE1lbnVJdGVtIGtleT17aW5kZXh9IHZhbHVlPXtnZXRJdGVtVmFsdWUobCl9PlxuICAgICAgICAgICAge2dldEl0ZW1MYWJlbChsKX1cbiAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICApKX1cbiAgICAgIDwvU3R5bGVkU2VsZWN0PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuRHJvcGRvd24ucHJvcFR5cGVzID0geyAuLi5iYXNlVHlwZXMsIGNob2ljZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpIH07XG5cbmNvbnN0IFN0eWxlZFR5cG9ncmFwaHkgPSBzdHlsZWQoVHlwb2dyYXBoeSkoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMyksXG4gIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZygxKSxcbn0pKTtcblxuY29uc3QgVGV4dEZpZWxkID0gKHsgbGFiZWwgfSkgPT4ge1xuICByZXR1cm4gPFN0eWxlZFR5cG9ncmFwaHk+e2xhYmVsfTwvU3R5bGVkVHlwb2dyYXBoeT47XG59O1xuXG5jb25zdCBTdHlsZWROdW1iZXJUZXh0RmllbGQgPSBzdHlsZWQoTnVtYmVyVGV4dEZpZWxkKSgoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogJzM1JScsXG4gIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDMpLFxuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMSksXG4gICcmIC5NdWlJbnB1dEJhc2Utcm9vdCc6IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgICBib3JkZXI6ICcycHggc29saWQgbGlnaHRncmV5JyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIHBhZGRpbmc6IGAwICR7dGhlbWUuc3BhY2luZygxKX1gLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgfSxcbn0pKTtcblxuY29uc3QgTnVtYmVyRmllbGQgPSAoeyBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlID0gKCkgPT4geyB9LCBzdWZmaXgsIG1pbiwgbWF4IH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTnVtYmVyVGV4dEZpZWxkXG4gICAgICB2YXJpYW50PXsnc3RhbmRhcmQnfVxuICAgICAgbGFiZWw9e2xhYmVsIHx8ICdMYWJlbCd9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBtYXg9e21heH1cbiAgICAgIG1pbj17bWlufVxuICAgICAgb25DaGFuZ2U9eyhldiwgdmFsdWUpID0+IG9uQ2hhbmdlKHZhbHVlKX1cbiAgICAgIHN1ZmZpeD17c3VmZml4fVxuICAgICAgc2hvd0Vycm9yV2hlbk91dHNpZGVSYW5nZVxuICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgIC8+XG4gICk7XG59O1xuXG5OdW1iZXJGaWVsZC5wcm9wVHlwZXMgPSB7XG4gIC4uLmJhc2VUeXBlcyxcbiAgc3VmZml4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBtaW46IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heDogUHJvcFR5cGVzLm51bWJlcixcbiAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG59O1xuXG5UZXh0RmllbGQucHJvcFR5cGVzID0ge1xuICAuLi5iYXNlVHlwZXMsXG59O1xuXG5jb25zdCBUb2dnbGVXcmFwcGVyID0gKHsgZGlzYWJsZWQsIGxhYmVsLCB2YWx1ZSwgb25DaGFuZ2UgfSkgPT4gKFxuICA8VG9nZ2xlIGxhYmVsPXtsYWJlbH0gY2hlY2tlZD17ISF2YWx1ZX0gZGlzYWJsZWQ9eyEhZGlzYWJsZWR9IHRvZ2dsZT17b25DaGFuZ2V9IC8+XG4pO1xuXG5Ub2dnbGVXcmFwcGVyLnByb3BUeXBlcyA9IHsgLi4uYmFzZVR5cGVzLCB2YWx1ZTogUHJvcFR5cGVzLmJvb2wgfTtcblxuY29uc3QgdGFnTWFwID0ge1xuICB0b2dnbGU6IFRvZ2dsZVdyYXBwZXIsXG4gIHJhZGlvOiBTdHlsZWRSYWRpbyxcbiAgZHJvcGRvd246IERyb3Bkb3duLFxuICBudW1iZXJGaWVsZDogTnVtYmVyRmllbGQsXG4gIGNoZWNrYm94OiBDaGVja2JveENob2ljZSxcbiAgdGV4dEZpZWxkOiBUZXh0RmllbGQsXG59O1xuXG5jb25zdCBTdHlsZWRHcm91cCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAwICR7dGhlbWUuc3BhY2luZygyKX0gMGAsXG59KSk7XG5cbmNvbnN0IFN0eWxlZEdyb3VwSGVhZGVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBjb2xvcjogJyM0OTVCOEYnLFxuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSArIDIsXG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nKDEpLFxufSkpO1xuXG5jb25zdCBTdHlsZWROdW1iZXJGaWVsZHMgPSBzdHlsZWQoJ3AnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgbWFyZ2luQm90dG9tOiAwLFxufSkpO1xuXG5jb25zdCBHcm91cCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG1vZGVsLCBsYWJlbCwgZ3JvdXAsIGNvbmZpZ3VyYXRpb24sIG9uQ2hhbmdlIH0gPSBwcm9wcztcblxuICAvKipcbiAgICogQHBhcmFtIGdyb3VwIC0gdGhlIGdyb3VwIG9mIHNldHRpbmdzXG4gICAqIEBwYXJhbSBrZXkgLSB0aGUga2V5KG9yIHBhdGgpIHRvIGJlIHVzZWQgdG8gc2V0IG9yIGdldCBmcm9tIG1vZGVsIG9yIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGlubmVyS2V5IC0gdGhlIGtleShvciBwYXRoKSB0byBiZSB1c2VkIHRvIGdldCBmcm9tIHRoZSBncm91cCAodXNlZCBvbmx5IGZvciBudW1iZXJGaWVsZCB0eXBlKVxuICAgKiBAcmV0dXJucyB0YWcgdGhhdCBjb3JyZXNwb25kcyB0byBlbGVtZW50IHR5cGUgKi9cbiAgY29uc3QgZ2V0VGFnID0gKGdyb3VwLCBrZXksIGlubmVyS2V5KSA9PiB7XG4gICAgY29uc3QgeyBpc0NvbmZpZ1Byb3BlcnR5LCAuLi5wcm9wZXJ0aWVzIH0gPSBnZXQoZ3JvdXAsIGlubmVyS2V5IHx8IGtleSk7XG4gICAgY29uc3QgdmFsdWUgPSBpc0NvbmZpZ1Byb3BlcnR5ID8gZ2V0KGNvbmZpZ3VyYXRpb24sIGtleSkgOiBnZXQobW9kZWwsIGtleSk7XG4gICAgY29uc3QgdGFnUHJvcHMgPSB7IC4uLnByb3BlcnRpZXMsIGtleSwgdmFsdWUgfTtcbiAgICBjb25zdCBUYWcgPSB0YWdNYXBbdGFnUHJvcHMudHlwZV07XG5cbiAgICByZXR1cm4gPFRhZyBrZXk9e2tleX0gey4uLnRhZ1Byb3BzfSBvbkNoYW5nZT17KHYpID0+IG9uQ2hhbmdlKGtleSwgdiwgaXNDb25maWdQcm9wZXJ0eSl9IC8+O1xuICB9O1xuXG4gIGNvbnN0IGNvbnRlbnQgPSAoZ3JvdXAsIGtleSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRHcm91cCA9IGdyb3VwW2tleV07XG5cbiAgICBpZiAoIWN1cnJlbnRHcm91cCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgeyB0eXBlLCBsYWJlbCwgZmllbGRzLCBjaG9pY2VzIH0gPSBjdXJyZW50R3JvdXA7XG5cbiAgICBpZiAodHlwZSA9PT0gJ251bWJlckZpZWxkcycpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYga2V5PXtgbnVtYmVyRmllbGQtJHtsYWJlbH1gfT5cbiAgICAgICAgICA8U3R5bGVkTnVtYmVyRmllbGRzPntsYWJlbH08L1N0eWxlZE51bWJlckZpZWxkcz5cbiAgICAgICAgICB7T2JqZWN0LmtleXMoZmllbGRzKS5tYXAoKGZpZWxkS2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VGFnKGdyb3VwLCBgJHtrZXl9LiR7ZmllbGRLZXl9YCwgYCR7a2V5fS5maWVsZHMuJHtmaWVsZEtleX1gKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnY2hlY2tib3hlcycpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYga2V5PXtgY2hlY2tib3gtJHtsYWJlbH1gfT5cbiAgICAgICAgICA8cD57bGFiZWx9PC9wPlxuICAgICAgICAgIHtPYmplY3Qua2V5cyhjaG9pY2VzKS5tYXAoKGNob2ljZUtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdldFRhZyhncm91cCwgYCR7a2V5fS4ke2Nob2ljZUtleX1gLCBgJHtrZXl9LmNob2ljZXMuJHtjaG9pY2VLZXl9YCk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0eXBlIGlzIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duLCBudW1iZXJGaWVsZCBvciBudW1iZXJUZXh0XG4gICAgcmV0dXJuIGdldFRhZyhncm91cCwga2V5KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRHcm91cD5cbiAgICAgIDxTdHlsZWRHcm91cEhlYWRlcj57bGFiZWx9PC9TdHlsZWRHcm91cEhlYWRlcj5cblxuICAgICAge09iamVjdC5rZXlzKGdyb3VwKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gY29udGVudChncm91cCwga2V5KTtcbiAgICAgIH0pfVxuICAgIDwvU3R5bGVkR3JvdXA+XG4gICk7XG59O1xuXG5Hcm91cC5wcm9wVHlwZXMgPSB7XG4gIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZ3JvdXA6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNvbmZpZ3VyYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBjbGFzcyBQYW5lbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY29uZmlndXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBncm91cHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2VNb2RlbDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2VDb25maWd1cmF0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBtb2RhbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uQ2hhbmdlTW9kZWw6ICgpID0+IHsgfSxcbiAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb246ICgpID0+IHsgfSxcbiAgfTtcblxuICBjaGFuZ2UgPSAoa2V5LCB2YWx1ZSwgaXNDb25maWdQcm9wZXJ0eSA9IGZhbHNlKSA9PiB7XG4gICAgbG9nKCdbY2hhbmdlTW9kZWxdJywga2V5LCB2YWx1ZSk7XG5cbiAgICBjb25zdCB7IG9uQ2hhbmdlTW9kZWwsIG9uQ2hhbmdlQ29uZmlndXJhdGlvbiB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBtb2RlbCA9IHsgLi4udGhpcy5wcm9wcy5tb2RlbCB9O1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMucHJvcHMuY29uZmlndXJhdGlvbiB9O1xuXG4gICAgaWYgKGlzQ29uZmlnUHJvcGVydHkpIHtcbiAgICAgIHNldChjb25maWd1cmF0aW9uLCBrZXksIHZhbHVlKTtcbiAgICAgIG9uQ2hhbmdlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLCBrZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQobW9kZWwsIGtleSwgdmFsdWUpO1xuICAgICAgb25DaGFuZ2VNb2RlbChtb2RlbCwga2V5KTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZ3JvdXBzLCBtb2RlbCwgY29uZmlndXJhdGlvbiwgbW9kYWwgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBsb2coJ3JlbmRlcjonLCBtb2RlbCk7XG5cbiAgICBjb25zdCByZW5kZXJlZEdyb3VwcyA9IE9iamVjdC5rZXlzKGdyb3VwcyB8fCB7fSkubWFwKChncm91cCkgPT4ge1xuICAgICAgY29uc3Qgc2hvd0dyb3VwID0gT2JqZWN0LmVudHJpZXMoZ3JvdXBzW2dyb3VwXSkuc29tZSgoWywgcHJvcFZhbF0pID0+ICEhcHJvcFZhbCk7XG5cbiAgICAgIGlmIChzaG93R3JvdXApIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8R3JvdXBcbiAgICAgICAgICAgIGxhYmVsPXtncm91cH1cbiAgICAgICAgICAgIGtleT17Z3JvdXB9XG4gICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtjb25maWd1cmF0aW9ufVxuICAgICAgICAgICAgZ3JvdXA9e2dyb3Vwc1tncm91cF19XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge3JlbmRlcmVkR3JvdXBzfVxuICAgICAgICB7bW9kYWx9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsSUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixP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QUksQ0FBQyxDQUFDLENBQUMsQ0FBQ25GLEdBQUcsQ0FBQyxVQUFDNEMsS0FBSyxFQUFLO1FBQzlELElBQU0wQyxTQUFTLEdBQUd2SyxNQUFNLENBQUN3SyxPQUFPLENBQUNKLE1BQU0sQ0FBQ3ZDLEtBQUssQ0FBQyxDQUFDLENBQUM0QyxJQUFJLENBQUMsVUFBQUMsTUFBQTtVQUFBLElBQUFDLE1BQUEsT0FBQUMsZUFBQSxhQUFBRixNQUFBO1lBQUlHLE9BQU8sR0FBQUYsTUFBQTtVQUFBLE9BQU0sQ0FBQyxDQUFDRSxPQUFPO1FBQUEsRUFBQztRQUVoRixJQUFJTixTQUFTLEVBQUU7VUFDYixvQkFDRTFNLE1BQUEsWUFBQThELGFBQUEsQ0FBQytGLEtBQUs7WUFDSnhHLEtBQUssRUFBRTJHLEtBQU07WUFDYjFDLEdBQUcsRUFBRTBDLEtBQU07WUFDWEQsS0FBSyxFQUFFQSxLQUFNO1lBQ2JFLGFBQWEsRUFBRUEsYUFBYztZQUM3QkQsS0FBSyxFQUFFdUMsTUFBTSxDQUFDdkMsS0FBSyxDQUFFO1lBQ3JCdEcsUUFBUSxFQUFFMkksTUFBSSxDQUFDWTtVQUFPLENBQ3ZCLENBQUM7UUFFTjtRQUVBLE9BQU8sSUFBSTtNQUNiLENBQUMsQ0FBQztNQUVGLG9CQUNFak4sTUFBQSxZQUFBOEQsYUFBQSxjQUNHMkksY0FBYyxFQUNkRCxLQUNFLENBQUM7SUFFVjtFQUFDO0FBQUEsRUE3RHdCVSxpQkFBSyxDQUFDQyxTQUFTO0FBQUEsSUFBQXJLLGdCQUFBLGFBQTdCc0ksS0FBSyxlQUNHO0VBQ2pCckIsS0FBSyxFQUFFekcscUJBQVMsQ0FBQzZILE1BQU07RUFDdkJsQixhQUFhLEVBQUUzRyxxQkFBUyxDQUFDNkgsTUFBTTtFQUMvQm9CLE1BQU0sRUFBRWpKLHFCQUFTLENBQUM2SCxNQUFNO0VBQ3hCWSxhQUFhLEVBQUV6SSxxQkFBUyxDQUFDSyxJQUFJO0VBQzdCcUkscUJBQXFCLEVBQUUxSSxxQkFBUyxDQUFDSyxJQUFJO0VBQ3JDNkksS0FBSyxFQUFFbEoscUJBQVMsQ0FBQzZIO0FBQ25CLENBQUM7QUFBQSxJQUFBckksZ0JBQUEsYUFSVXNJLEtBQUssa0JBVU07RUFDcEJXLGFBQWEsRUFBRSxTQUFmQSxhQUFhQSxDQUFBLEVBQVEsQ0FBRSxDQUFDO0VBQ3hCQyxxQkFBcUIsRUFBRSxTQUF2QkEscUJBQXFCQSxDQUFBLEVBQVEsQ0FBRTtBQUNqQyxDQUFDO0FBQUEsSUFBQW9CLFFBQUEsR0FBQS9CLE9BQUEsY0FtRFlELEtBQUsiLCJpZ25vcmVMaXN0IjpbXX0=
|