@pie-lib/config-ui 12.0.0-beta.4 → 12.0.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.
Files changed (120) hide show
  1. package/CHANGELOG.json +8 -1653
  2. package/CHANGELOG.md +540 -58
  3. package/LICENSE.md +5 -0
  4. package/NEXT.CHANGELOG.json +1 -0
  5. package/lib/alert-dialog.js +44 -20
  6. package/lib/alert-dialog.js.map +1 -1
  7. package/lib/checkbox.js +59 -61
  8. package/lib/checkbox.js.map +1 -1
  9. package/lib/choice-configuration/feedback-menu.js +30 -65
  10. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  11. package/lib/choice-configuration/index.js +231 -244
  12. package/lib/choice-configuration/index.js.map +1 -1
  13. package/lib/choice-utils.js +7 -19
  14. package/lib/choice-utils.js.map +1 -1
  15. package/lib/feedback-config/feedback-selector.js +89 -115
  16. package/lib/feedback-config/feedback-selector.js.map +1 -1
  17. package/lib/feedback-config/group.js +28 -42
  18. package/lib/feedback-config/group.js.map +1 -1
  19. package/lib/feedback-config/index.js +55 -87
  20. package/lib/feedback-config/index.js.map +1 -1
  21. package/lib/form-section.js +32 -34
  22. package/lib/form-section.js.map +1 -1
  23. package/lib/help.js +41 -80
  24. package/lib/help.js.map +1 -1
  25. package/lib/index.js +2 -32
  26. package/lib/index.js.map +1 -1
  27. package/lib/input.js +24 -57
  28. package/lib/input.js.map +1 -1
  29. package/lib/inputs.js +62 -88
  30. package/lib/inputs.js.map +1 -1
  31. package/lib/langs.js +59 -102
  32. package/lib/langs.js.map +1 -1
  33. package/lib/layout/config-layout.js +95 -67
  34. package/lib/layout/config-layout.js.map +1 -1
  35. package/lib/layout/index.js +1 -4
  36. package/lib/layout/index.js.map +1 -1
  37. package/lib/layout/layout-contents.js +130 -75
  38. package/lib/layout/layout-contents.js.map +1 -1
  39. package/lib/layout/settings-box.js +28 -58
  40. package/lib/layout/settings-box.js.map +1 -1
  41. package/lib/mui-box/index.js +42 -58
  42. package/lib/mui-box/index.js.map +1 -1
  43. package/lib/number-text-field-custom.js +164 -152
  44. package/lib/number-text-field-custom.js.map +1 -1
  45. package/lib/number-text-field.js +87 -119
  46. package/lib/number-text-field.js.map +1 -1
  47. package/lib/radio-with-label.js +33 -26
  48. package/lib/radio-with-label.js.map +1 -1
  49. package/lib/settings/display-size.js +17 -33
  50. package/lib/settings/display-size.js.map +1 -1
  51. package/lib/settings/index.js +26 -46
  52. package/lib/settings/index.js.map +1 -1
  53. package/lib/settings/panel.js +202 -221
  54. package/lib/settings/panel.js.map +1 -1
  55. package/lib/settings/settings-radio-label.js +37 -29
  56. package/lib/settings/settings-radio-label.js.map +1 -1
  57. package/lib/settings/toggle.js +40 -33
  58. package/lib/settings/toggle.js.map +1 -1
  59. package/lib/tabs/index.js +26 -57
  60. package/lib/tabs/index.js.map +1 -1
  61. package/lib/tags-input/index.js +51 -100
  62. package/lib/tags-input/index.js.map +1 -1
  63. package/lib/two-choice.js +47 -91
  64. package/lib/two-choice.js.map +1 -1
  65. package/lib/with-stateful-model.js +11 -34
  66. package/lib/with-stateful-model.js.map +1 -1
  67. package/package.json +22 -11
  68. package/src/__tests__/alert-dialog.test.jsx +283 -0
  69. package/src/__tests__/checkbox.test.jsx +249 -0
  70. package/src/__tests__/choice-utils.test.js +12 -0
  71. package/src/__tests__/form-section.test.jsx +334 -0
  72. package/src/__tests__/help.test.jsx +184 -0
  73. package/src/__tests__/input.test.jsx +192 -0
  74. package/src/__tests__/langs.test.jsx +457 -0
  75. package/src/__tests__/number-text-field-custom.test.jsx +438 -0
  76. package/src/__tests__/number-text-field.test.jsx +341 -0
  77. package/src/__tests__/radio-with-label.test.jsx +259 -0
  78. package/src/__tests__/settings-panel.test.js +187 -0
  79. package/src/__tests__/settings.test.jsx +515 -0
  80. package/src/__tests__/tabs.test.jsx +193 -0
  81. package/src/__tests__/two-choice.test.js +110 -0
  82. package/src/__tests__/with-stateful-model.test.jsx +145 -0
  83. package/src/alert-dialog.jsx +31 -16
  84. package/src/checkbox.jsx +45 -39
  85. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +163 -0
  86. package/src/choice-configuration/__tests__/index.test.jsx +234 -0
  87. package/src/choice-configuration/feedback-menu.jsx +15 -28
  88. package/src/choice-configuration/index.jsx +233 -182
  89. package/src/choice-utils.js +1 -1
  90. package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
  91. package/src/feedback-config/__tests__/feedback-selector.test.jsx +107 -0
  92. package/src/feedback-config/feedback-selector.jsx +65 -60
  93. package/src/feedback-config/group.jsx +26 -29
  94. package/src/feedback-config/index.jsx +59 -47
  95. package/src/form-section.jsx +26 -18
  96. package/src/help.jsx +27 -36
  97. package/src/index.js +2 -5
  98. package/src/input.jsx +9 -9
  99. package/src/inputs.jsx +36 -50
  100. package/src/langs.jsx +57 -73
  101. package/src/layout/__tests__/config.layout.test.jsx +59 -0
  102. package/src/layout/__tests__/layout-content.test.jsx +3 -0
  103. package/src/layout/config-layout.jsx +70 -37
  104. package/src/layout/layout-contents.jsx +96 -39
  105. package/src/layout/settings-box.jsx +22 -21
  106. package/src/mui-box/index.jsx +37 -45
  107. package/src/number-text-field-custom.jsx +136 -81
  108. package/src/number-text-field.jsx +59 -37
  109. package/src/radio-with-label.jsx +28 -12
  110. package/src/settings/display-size.jsx +14 -13
  111. package/src/settings/index.js +20 -12
  112. package/src/settings/panel.jsx +147 -110
  113. package/src/settings/settings-radio-label.jsx +29 -13
  114. package/src/settings/toggle.jsx +39 -20
  115. package/src/tabs/index.jsx +15 -19
  116. package/src/tags-input/__tests__/index.test.jsx +113 -0
  117. package/src/tags-input/index.jsx +42 -47
  118. package/src/two-choice.jsx +19 -23
  119. package/src/with-stateful-model.jsx +5 -5
  120. package/README.md +0 -12
@@ -1,68 +1,39 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.Panel = void 0;
9
-
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
-
24
15
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
25
-
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _react = _interopRequireDefault(require("react"));
29
-
30
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
19
  var _get2 = _interopRequireDefault(require("lodash/get"));
35
-
36
20
  var _set = _interopRequireDefault(require("lodash/set"));
37
-
38
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
39
-
40
- var _Input = _interopRequireDefault(require("@material-ui/core/Input"));
41
-
42
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
43
-
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"));
44
26
  var _debug = _interopRequireDefault(require("debug"));
45
-
46
27
  var _toggle = _interopRequireDefault(require("./toggle"));
47
-
48
- var _twoChoice = _interopRequireDefault(require("../two-choice"));
49
-
28
+ var _twoChoice = require("../two-choice");
50
29
  var _settingsRadioLabel = _interopRequireDefault(require("./settings-radio-label"));
51
-
52
- var _index = require("../index");
53
-
30
+ var _numberTextField = _interopRequireDefault(require("../number-text-field"));
54
31
  var _checkbox = _interopRequireDefault(require("../checkbox"));
55
-
56
32
  var _excluded = ["isConfigProperty"];
57
-
58
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
59
-
60
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
61
-
62
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
63
-
64
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
65
-
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; }
66
37
  var log = (0, _debug["default"])('pie-lib:config-ui:settings:panel');
67
38
  var labelValue = {
68
39
  label: _propTypes["default"].string,
@@ -73,11 +44,10 @@ var baseTypes = {
73
44
  value: _propTypes["default"].string,
74
45
  onChange: _propTypes["default"].func
75
46
  };
76
-
77
47
  var CheckboxChoice = function CheckboxChoice(_ref) {
78
48
  var label = _ref.label,
79
- value = _ref.value,
80
- _onChange = _ref.onChange;
49
+ value = _ref.value,
50
+ _onChange = _ref.onChange;
81
51
  return /*#__PURE__*/_react["default"].createElement(_checkbox["default"], {
82
52
  checked: value,
83
53
  label: label,
@@ -86,116 +56,136 @@ var CheckboxChoice = function CheckboxChoice(_ref) {
86
56
  }
87
57
  });
88
58
  };
89
-
90
59
  CheckboxChoice.propTypes = {
91
60
  label: _propTypes["default"].string,
92
61
  value: _propTypes["default"].bool,
93
62
  onChange: _propTypes["default"].func
94
63
  };
95
-
96
- var Radio = function Radio(_ref2) {
97
- var classes = _ref2.classes,
98
- label = _ref2.label,
99
- value = _ref2.value,
100
- onChange = _ref2.onChange,
101
- choices = _ref2.choices;
102
- return /*#__PURE__*/_react["default"].createElement(_twoChoice["default"], {
103
- className: classes.radioSettings,
104
- direction: "vertical",
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, {
87
+ direction: "horizontal",
105
88
  customLabel: _settingsRadioLabel["default"],
106
89
  value: value,
107
90
  header: label,
108
- one: choices[0],
109
- two: choices[1],
91
+ opts: choices,
110
92
  onChange: onChange
111
93
  });
112
94
  };
113
-
114
95
  Radio.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
115
96
  choices: _propTypes["default"].arrayOf(_propTypes["default"].shape(labelValue))
116
97
  });
117
- var StyledRadio = (0, _styles.withStyles)({
118
- radioSettings: {
119
- marginTop: '4px',
120
- paddingBottom: '4px',
121
- width: '100%',
122
- '& > label': {
123
- color: 'rgba(0, 0, 0, 0.89)',
124
- transform: 'translate(0, 10px) scale(1)',
125
- fontSize: '14px'
126
- },
127
- '& > div': {
128
- marginTop: '20px'
129
- }
130
- },
131
- label: {
132
- display: 'none'
133
- }
134
- })(Radio);
135
- var Dropdown = (0, _styles.withStyles)({
136
- label: {
98
+ var StyledRadio = Radio;
99
+ var StyledLabel = (0, _styles.styled)('p')(function (_ref4) {
100
+ var theme = _ref4.theme;
101
+ return {
137
102
  margin: 0,
138
- fontSize: '14px'
139
- },
140
- wrapper: {
141
- marginTop: '4px',
103
+ fontSize: theme.typography.fontSize
104
+ };
105
+ });
106
+ var StyledSelect = (0, _styles.styled)(_Select["default"])(function (_ref5) {
107
+ var theme = _ref5.theme;
108
+ return {
109
+ marginTop: theme.spacing(0.5),
142
110
  border: '2px solid lightgrey',
143
- borderRadius: '4px',
144
- padding: '0 8px'
145
- }
146
- })(function (_ref3) {
147
- var classes = _ref3.classes,
148
- label = _ref3.label,
149
- value = _ref3.value,
150
- _onChange2 = _ref3.onChange,
151
- _ref3$choices = _ref3.choices,
152
- choices = _ref3$choices === void 0 ? [] : _ref3$choices;
153
- return /*#__PURE__*/_react["default"].createElement("div", null, label && /*#__PURE__*/_react["default"].createElement("p", {
154
- className: classes.label
155
- }, label), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
156
- className: classes.wrapper,
111
+ padding: "0 ".concat(theme.spacing(1)),
112
+ borderRadius: '4px'
113
+ };
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;
121
+ var getItemLabel = function getItemLabel(l) {
122
+ return typeof l === 'string' ? l : l.label;
123
+ };
124
+ var getItemValue = function getItemValue(l) {
125
+ return typeof l === 'string' ? l : l.value;
126
+ };
127
+ return /*#__PURE__*/_react["default"].createElement("div", null, label && /*#__PURE__*/_react["default"].createElement(StyledLabel, null, label), /*#__PURE__*/_react["default"].createElement(StyledSelect, {
157
128
  value: value || choices && choices[0],
158
- onChange: function onChange(_ref4) {
159
- var target = _ref4.target;
129
+ onChange: function onChange(_ref7) {
130
+ var target = _ref7.target;
160
131
  return _onChange2(target.value);
161
132
  },
162
133
  input: /*#__PURE__*/_react["default"].createElement(_Input["default"], {
163
134
  id: "dropdown-".concat(label)
164
135
  }),
165
- disableUnderline: true
136
+ disableUnderline: true,
137
+ MenuProps: {
138
+ transitionDuration: {
139
+ enter: 225,
140
+ exit: 195
141
+ }
142
+ }
166
143
  }, choices.map(function (l, index) {
167
144
  return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
168
145
  key: index,
169
- value: l
170
- }, l);
146
+ value: getItemValue(l)
147
+ }, getItemLabel(l));
171
148
  })));
172
- });
149
+ };
173
150
  Dropdown.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
174
151
  choices: _propTypes["default"].arrayOf(_propTypes["default"].string)
175
152
  });
176
- var NumberField = (0, _styles.withStyles)({
177
- field: {
153
+ var StyledTypography = (0, _styles.styled)(_Typography["default"])(function (_ref8) {
154
+ var theme = _ref8.theme;
155
+ return {
156
+ marginRight: theme.spacing(3),
157
+ marginTop: theme.spacing(1)
158
+ };
159
+ });
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;
166
+ return {
178
167
  width: '35%',
179
- marginRight: '24px',
180
- marginTop: '8px'
181
- },
182
- wrapper: {
183
- marginTop: '4px',
184
- border: '2px solid lightgrey',
185
- borderRadius: '4px',
186
- padding: '0 8px'
187
- }
188
- })(function (_ref5) {
189
- var classes = _ref5.classes,
190
- label = _ref5.label,
191
- value = _ref5.value,
192
- _ref5$onChange = _ref5.onChange,
193
- _onChange3 = _ref5$onChange === void 0 ? function () {} : _ref5$onChange,
194
- suffix = _ref5.suffix,
195
- min = _ref5.min,
196
- max = _ref5.max;
197
-
198
- return /*#__PURE__*/_react["default"].createElement(_index.NumberTextField, {
168
+ marginRight: theme.spacing(3),
169
+ marginTop: theme.spacing(1),
170
+ '& .MuiInputBase-root': {
171
+ marginTop: theme.spacing(0.5),
172
+ border: '2px solid lightgrey',
173
+ borderRadius: '4px',
174
+ padding: "0 ".concat(theme.spacing(1)),
175
+ backgroundColor: 'transparent'
176
+ }
177
+ };
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',
199
189
  label: label || 'Label',
200
190
  value: value,
201
191
  max: max,
@@ -204,31 +194,29 @@ var NumberField = (0, _styles.withStyles)({
204
194
  return _onChange3(value);
205
195
  },
206
196
  suffix: suffix,
207
- className: classes.field,
208
197
  showErrorWhenOutsideRange: true,
209
- inputClassName: classes.wrapper,
210
198
  disableUnderline: true
211
199
  });
212
- });
200
+ };
213
201
  NumberField.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
214
- classes: _propTypes["default"].object,
215
202
  suffix: _propTypes["default"].string,
216
203
  min: _propTypes["default"].number,
217
204
  max: _propTypes["default"].number,
218
205
  value: _propTypes["default"].number
219
206
  });
220
-
221
- var ToggleWrapper = function ToggleWrapper(_ref6) {
222
- var label = _ref6.label,
223
- value = _ref6.value,
224
- onChange = _ref6.onChange;
207
+ TextField.propTypes = _objectSpread({}, baseTypes);
208
+ var ToggleWrapper = function ToggleWrapper(_ref10) {
209
+ var disabled = _ref10.disabled,
210
+ label = _ref10.label,
211
+ value = _ref10.value,
212
+ onChange = _ref10.onChange;
225
213
  return /*#__PURE__*/_react["default"].createElement(_toggle["default"], {
226
214
  label: label,
227
215
  checked: !!value,
216
+ disabled: !!disabled,
228
217
  toggle: onChange
229
218
  });
230
219
  };
231
-
232
220
  ToggleWrapper.propTypes = _objectSpread(_objectSpread({}, baseTypes), {}, {
233
221
  value: _propTypes["default"].bool
234
222
  });
@@ -237,49 +225,52 @@ var tagMap = {
237
225
  radio: StyledRadio,
238
226
  dropdown: Dropdown,
239
227
  numberField: NumberField,
240
- checkbox: CheckboxChoice
228
+ checkbox: CheckboxChoice,
229
+ textField: TextField
241
230
  };
242
- var Group = (0, _styles.withStyles)(function () {
231
+ var StyledGroup = (0, _styles.styled)('div')(function (_ref11) {
232
+ var theme = _ref11.theme;
243
233
  return {
244
- group: {
245
- margin: '0 0 25px 0'
246
- },
247
- groupHeader: {
248
- color: '#495B8F',
249
- fontSize: '16px',
250
- fontWeight: 600,
251
- marginBottom: '8px'
252
- },
253
- numberFields: {
254
- fontSize: '0.85rem',
255
- marginBottom: 0
256
- }
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)
244
+ };
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
257
251
  };
258
- })(function (props) {
259
- var classes = props.classes,
260
- model = props.model,
261
- label = props.label,
262
- group = props.group,
263
- configuration = props.configuration,
264
- _onChange4 = props.onChange;
252
+ });
253
+ var Group = function Group(props) {
254
+ var model = props.model,
255
+ label = props.label,
256
+ group = props.group,
257
+ configuration = props.configuration,
258
+ _onChange4 = props.onChange;
259
+
265
260
  /**
266
261
  * @param group - the group of settings
267
262
  * @param key - the key(or path) to be used to set or get from model or configuration
268
263
  * @param innerKey - the key(or path) to be used to get from the group (used only for numberField type)
269
264
  * @returns tag that corresponds to element type */
270
-
271
265
  var getTag = function getTag(group, key, innerKey) {
272
266
  var _get = (0, _get2["default"])(group, innerKey || key),
273
- isConfigProperty = _get.isConfigProperty,
274
- properties = (0, _objectWithoutProperties2["default"])(_get, _excluded);
275
-
267
+ isConfigProperty = _get.isConfigProperty,
268
+ properties = (0, _objectWithoutProperties2["default"])(_get, _excluded);
276
269
  var value = isConfigProperty ? (0, _get2["default"])(configuration, key) : (0, _get2["default"])(model, key);
277
-
278
270
  var tagProps = _objectSpread(_objectSpread({}, properties), {}, {
279
271
  key: key,
280
272
  value: value
281
273
  });
282
-
283
274
  var Tag = tagMap[tagProps.type];
284
275
  return /*#__PURE__*/_react["default"].createElement(Tag, (0, _extends2["default"])({
285
276
  key: key
@@ -289,76 +280,60 @@ var Group = (0, _styles.withStyles)(function () {
289
280
  }
290
281
  }));
291
282
  };
292
-
293
283
  var content = function content(group, key) {
294
284
  var currentGroup = group[key];
295
-
296
285
  if (!currentGroup) {
297
286
  return null;
298
287
  }
299
-
300
288
  var type = currentGroup.type,
301
- label = currentGroup.label,
302
- fields = currentGroup.fields,
303
- choices = currentGroup.choices;
304
-
289
+ label = currentGroup.label,
290
+ fields = currentGroup.fields,
291
+ choices = currentGroup.choices;
305
292
  if (type === 'numberFields') {
306
293
  return /*#__PURE__*/_react["default"].createElement("div", {
307
294
  key: "numberField-".concat(label)
308
- }, /*#__PURE__*/_react["default"].createElement("p", {
309
- className: classes.numberFields
310
- }, label), Object.keys(fields).map(function (fieldKey) {
295
+ }, /*#__PURE__*/_react["default"].createElement(StyledNumberFields, null, label), Object.keys(fields).map(function (fieldKey) {
311
296
  return getTag(group, "".concat(key, ".").concat(fieldKey), "".concat(key, ".fields.").concat(fieldKey));
312
297
  }));
313
298
  }
314
-
315
299
  if (type === 'checkboxes') {
316
300
  return /*#__PURE__*/_react["default"].createElement("div", {
317
301
  key: "checkbox-".concat(label)
318
302
  }, /*#__PURE__*/_react["default"].createElement("p", null, label), Object.keys(choices).map(function (choiceKey) {
319
303
  return getTag(group, "".concat(key, ".").concat(choiceKey), "".concat(key, ".choices.").concat(choiceKey));
320
304
  }));
321
- } // if type is toggle, radio, dropdown or numberField
322
-
305
+ }
323
306
 
307
+ // if type is toggle, radio, dropdown, numberField or numberText
324
308
  return getTag(group, key);
325
309
  };
326
-
327
- return /*#__PURE__*/_react["default"].createElement("div", {
328
- className: classes.group
329
- }, /*#__PURE__*/_react["default"].createElement("div", {
330
- className: classes.groupHeader
331
- }, 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) {
332
311
  return content(group, key);
333
312
  }));
334
- });
335
-
336
- var Panel = /*#__PURE__*/function (_React$Component) {
337
- (0, _inherits2["default"])(Panel, _React$Component);
338
-
339
- var _super = _createSuper(Panel);
340
-
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) {
341
322
  function Panel() {
342
323
  var _this;
343
-
344
324
  (0, _classCallCheck2["default"])(this, Panel);
345
-
346
325
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
347
326
  args[_key] = arguments[_key];
348
327
  }
349
-
350
- _this = _super.call.apply(_super, [this].concat(args));
351
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "change", function (key, value) {
328
+ _this = _callSuper(this, Panel, [].concat(args));
329
+ (0, _defineProperty2["default"])(_this, "change", function (key, value) {
352
330
  var isConfigProperty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
353
331
  log('[changeModel]', key, value);
354
332
  var _this$props = _this.props,
355
- onChangeModel = _this$props.onChangeModel,
356
- onChangeConfiguration = _this$props.onChangeConfiguration;
357
-
333
+ onChangeModel = _this$props.onChangeModel,
334
+ onChangeConfiguration = _this$props.onChangeConfiguration;
358
335
  var model = _objectSpread({}, _this.props.model);
359
-
360
336
  var configuration = _objectSpread({}, _this.props.configuration);
361
-
362
337
  if (isConfigProperty) {
363
338
  (0, _set["default"])(configuration, key, value);
364
339
  onChangeConfiguration(configuration, key);
@@ -369,44 +344,50 @@ var Panel = /*#__PURE__*/function (_React$Component) {
369
344
  });
370
345
  return _this;
371
346
  }
372
-
373
- (0, _createClass2["default"])(Panel, [{
347
+ (0, _inherits2["default"])(Panel, _React$Component);
348
+ return (0, _createClass2["default"])(Panel, [{
374
349
  key: "render",
375
350
  value: function render() {
376
351
  var _this2 = this;
377
-
378
352
  var _this$props2 = this.props,
379
- groups = _this$props2.groups,
380
- model = _this$props2.model,
381
- configuration = _this$props2.configuration;
353
+ groups = _this$props2.groups,
354
+ model = _this$props2.model,
355
+ configuration = _this$props2.configuration,
356
+ modal = _this$props2.modal;
382
357
  log('render:', model);
383
- return /*#__PURE__*/_react["default"].createElement("div", null, Object.keys(groups).map(function (g) {
384
- return /*#__PURE__*/_react["default"].createElement(Group, {
385
- label: g,
386
- key: g,
387
- model: model,
388
- configuration: configuration,
389
- group: groups[g],
390
- onChange: _this2.change
358
+ var renderedGroups = Object.keys(groups || {}).map(function (group) {
359
+ var showGroup = Object.entries(groups[group]).some(function (_ref14) {
360
+ var _ref15 = (0, _slicedToArray2["default"])(_ref14, 2),
361
+ propVal = _ref15[1];
362
+ return !!propVal;
391
363
  });
392
- }));
364
+ if (showGroup) {
365
+ return /*#__PURE__*/_react["default"].createElement(Group, {
366
+ label: group,
367
+ key: group,
368
+ model: model,
369
+ configuration: configuration,
370
+ group: groups[group],
371
+ onChange: _this2.change
372
+ });
373
+ }
374
+ return null;
375
+ });
376
+ return /*#__PURE__*/_react["default"].createElement("div", null, renderedGroups, modal);
393
377
  }
394
378
  }]);
395
- return Panel;
396
379
  }(_react["default"].Component);
397
-
398
- exports.Panel = Panel;
399
380
  (0, _defineProperty2["default"])(Panel, "propTypes", {
400
381
  model: _propTypes["default"].object,
401
382
  configuration: _propTypes["default"].object,
402
383
  groups: _propTypes["default"].object,
403
384
  onChangeModel: _propTypes["default"].func,
404
- onChangeConfiguration: _propTypes["default"].func
385
+ onChangeConfiguration: _propTypes["default"].func,
386
+ modal: _propTypes["default"].object
405
387
  });
406
388
  (0, _defineProperty2["default"])(Panel, "defaultProps", {
407
389
  onChangeModel: function onChangeModel() {},
408
390
  onChangeConfiguration: function onChangeConfiguration() {}
409
391
  });
410
- var _default = Panel;
411
- exports["default"] = _default;
412
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsImxhYmVsVmFsdWUiLCJsYWJlbCIsIlByb3BUeXBlcyIsInN0cmluZyIsInZhbHVlIiwiYmFzZVR5cGVzIiwib25DaGFuZ2UiLCJmdW5jIiwiQ2hlY2tib3hDaG9pY2UiLCJldmVudCIsInRhcmdldCIsImNoZWNrZWQiLCJwcm9wVHlwZXMiLCJib29sIiwiUmFkaW8iLCJjbGFzc2VzIiwiY2hvaWNlcyIsInJhZGlvU2V0dGluZ3MiLCJTZXR0aW5nc1JhZGlvTGFiZWwiLCJhcnJheU9mIiwic2hhcGUiLCJTdHlsZWRSYWRpbyIsIndpdGhTdHlsZXMiLCJtYXJnaW5Ub3AiLCJwYWRkaW5nQm90dG9tIiwid2lkdGgiLCJjb2xvciIsInRyYW5zZm9ybSIsImZvbnRTaXplIiwiZGlzcGxheSIsIkRyb3Bkb3duIiwibWFyZ2luIiwid3JhcHBlciIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsInBhZGRpbmciLCJtYXAiLCJsIiwiaW5kZXgiLCJOdW1iZXJGaWVsZCIsImZpZWxkIiwibWFyZ2luUmlnaHQiLCJzdWZmaXgiLCJtaW4iLCJtYXgiLCJldiIsIm9iamVjdCIsIm51bWJlciIsIlRvZ2dsZVdyYXBwZXIiLCJ0YWdNYXAiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwibnVtYmVyRmllbGQiLCJjaGVja2JveCIsIkdyb3VwIiwiZ3JvdXAiLCJncm91cEhlYWRlciIsImZvbnRXZWlnaHQiLCJtYXJnaW5Cb3R0b20iLCJudW1iZXJGaWVsZHMiLCJwcm9wcyIsIm1vZGVsIiwiY29uZmlndXJhdGlvbiIsImdldFRhZyIsImtleSIsImlubmVyS2V5IiwiZ2V0IiwiaXNDb25maWdQcm9wZXJ0eSIsInByb3BlcnRpZXMiLCJ0YWdQcm9wcyIsIlRhZyIsInR5cGUiLCJ2IiwiY29udGVudCIsImN1cnJlbnRHcm91cCIsImZpZWxkcyIsIk9iamVjdCIsImtleXMiLCJmaWVsZEtleSIsImNob2ljZUtleSIsIlBhbmVsIiwib25DaGFuZ2VNb2RlbCIsIm9uQ2hhbmdlQ29uZmlndXJhdGlvbiIsInNldCIsImdyb3VwcyIsImciLCJjaGFuZ2UiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXR0aW5ncy9wYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC9zZXQnO1xuaW1wb3J0IFNlbGVjdCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9TZWxlY3QnO1xuaW1wb3J0IElucHV0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0lucHV0JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgVG9nZ2xlIGZyb20gJy4vdG9nZ2xlJztcbmltcG9ydCBUd29DaG9pY2UgZnJvbSAnLi4vdHdvLWNob2ljZSc7XG5pbXBvcnQgU2V0dGluZ3NSYWRpb0xhYmVsIGZyb20gJy4vc2V0dGluZ3MtcmFkaW8tbGFiZWwnO1xuaW1wb3J0IHsgTnVtYmVyVGV4dEZpZWxkIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJy4uL2NoZWNrYm94JztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6Y29uZmlnLXVpOnNldHRpbmdzOnBhbmVsJyk7XG5cbmNvbnN0IGxhYmVsVmFsdWUgPSB7XG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuY29uc3QgYmFzZVR5cGVzID0ge1xuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuY29uc3QgQ2hlY2tib3hDaG9pY2UgPSAoeyBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q2hlY2tib3hcbiAgICAgIGNoZWNrZWQ9e3ZhbHVlfVxuICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgb25DaGFuZ2U9e2V2ZW50ID0+IHtcbiAgICAgICAgb25DaGFuZ2UoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgfX1cbiAgICAvPlxuICApO1xufTtcblxuQ2hlY2tib3hDaG9pY2UucHJvcFR5cGVzID0ge1xuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5ib29sLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmNvbnN0IFJhZGlvID0gKHsgY2xhc3NlcywgbGFiZWwsIHZhbHVlLCBvbkNoYW5nZSwgY2hvaWNlcyB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFR3b0Nob2ljZVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnJhZGlvU2V0dGluZ3N9XG4gICAgICBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICBjdXN0b21MYWJlbD17U2V0dGluZ3NSYWRpb0xhYmVsfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgaGVhZGVyPXtsYWJlbH1cbiAgICAgIG9uZT17Y2hvaWNlc1swXX1cbiAgICAgIHR3bz17Y2hvaWNlc1sxXX1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAvPlxuICApO1xufTtcblxuUmFkaW8ucHJvcFR5cGVzID0geyAuLi5iYXNlVHlwZXMsIGNob2ljZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zaGFwZShsYWJlbFZhbHVlKSkgfTtcblxuY29uc3QgU3R5bGVkUmFkaW8gPSB3aXRoU3R5bGVzKHtcbiAgcmFkaW9TZXR0aW5nczoge1xuICAgIG1hcmdpblRvcDogJzRweCcsXG4gICAgcGFkZGluZ0JvdHRvbTogJzRweCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICAnJiA+IGxhYmVsJzoge1xuICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuODkpJyxcbiAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAxMHB4KSBzY2FsZSgxKScsXG4gICAgICBmb250U2l6ZTogJzE0cHgnXG4gICAgfSxcbiAgICAnJiA+IGRpdic6IHtcbiAgICAgIG1hcmdpblRvcDogJzIwcHgnXG4gICAgfVxuICB9LFxuICBsYWJlbDoge1xuICAgIGRpc3BsYXk6ICdub25lJ1xuICB9XG59KShSYWRpbyk7XG5cbmNvbnN0IERyb3Bkb3duID0gd2l0aFN0eWxlcyh7XG4gIGxhYmVsOiB7XG4gICAgbWFyZ2luOiAwLFxuICAgIGZvbnRTaXplOiAnMTRweCdcbiAgfSxcbiAgd3JhcHBlcjoge1xuICAgIG1hcmdpblRvcDogJzRweCcsXG4gICAgYm9yZGVyOiAnMnB4IHNvbGlkIGxpZ2h0Z3JleScsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBwYWRkaW5nOiAnMCA4cHgnXG4gIH1cbn0pKCh7IGNsYXNzZXMsIGxhYmVsLCB2YWx1ZSwgb25DaGFuZ2UsIGNob2ljZXMgPSBbXSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtsYWJlbCAmJiA8cCBjbGFzc05hbWU9e2NsYXNzZXMubGFiZWx9PntsYWJlbH08L3A+fVxuICAgICAgPFNlbGVjdFxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMud3JhcHBlcn1cbiAgICAgICAgdmFsdWU9e3ZhbHVlIHx8IChjaG9pY2VzICYmIGNob2ljZXNbMF0pfVxuICAgICAgICBvbkNoYW5nZT17KHsgdGFyZ2V0IH0pID0+IG9uQ2hhbmdlKHRhcmdldC52YWx1ZSl9XG4gICAgICAgIGlucHV0PXs8SW5wdXQgaWQ9e2Bkcm9wZG93bi0ke2xhYmVsfWB9IC8+fVxuICAgICAgICBkaXNhYmxlVW5kZXJsaW5lXG4gICAgICA+XG4gICAgICAgIHtjaG9pY2VzLm1hcCgobCwgaW5kZXgpID0+IChcbiAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gdmFsdWU9e2x9PlxuICAgICAgICAgICAge2x9XG4gICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgKSl9XG4gICAgICA8L1NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuXG5Ecm9wZG93bi5wcm9wVHlwZXMgPSB7IC4uLmJhc2VUeXBlcywgY2hvaWNlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZykgfTtcblxuY29uc3QgTnVtYmVyRmllbGQgPSB3aXRoU3R5bGVzKHtcbiAgZmllbGQ6IHtcbiAgICB3aWR0aDogJzM1JScsXG4gICAgbWFyZ2luUmlnaHQ6ICcyNHB4JyxcbiAgICBtYXJnaW5Ub3A6ICc4cHgnXG4gIH0sXG4gIHdyYXBwZXI6IHtcbiAgICBtYXJnaW5Ub3A6ICc0cHgnLFxuICAgIGJvcmRlcjogJzJweCBzb2xpZCBsaWdodGdyZXknLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgcGFkZGluZzogJzAgOHB4J1xuICB9XG59KSgoeyBjbGFzc2VzLCBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlID0gKCkgPT4ge30sIHN1ZmZpeCwgbWluLCBtYXggfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxOdW1iZXJUZXh0RmllbGRcbiAgICAgIGxhYmVsPXtsYWJlbCB8fCAnTGFiZWwnfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgbWF4PXttYXh9XG4gICAgICBtaW49e21pbn1cbiAgICAgIG9uQ2hhbmdlPXsoZXYsIHZhbHVlKSA9PiBvbkNoYW5nZSh2YWx1ZSl9XG4gICAgICBzdWZmaXg9e3N1ZmZpeH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5maWVsZH1cbiAgICAgIHNob3dFcnJvcldoZW5PdXRzaWRlUmFuZ2VcbiAgICAgIGlucHV0Q2xhc3NOYW1lPXtjbGFzc2VzLndyYXBwZXJ9XG4gICAgICBkaXNhYmxlVW5kZXJsaW5lXG4gICAgLz5cbiAgKTtcbn0pO1xuXG5OdW1iZXJGaWVsZC5wcm9wVHlwZXMgPSB7XG4gIC4uLmJhc2VUeXBlcyxcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc3VmZml4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBtaW46IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heDogUHJvcFR5cGVzLm51bWJlcixcbiAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXJcbn07XG5cbmNvbnN0IFRvZ2dsZVdyYXBwZXIgPSAoeyBsYWJlbCwgdmFsdWUsIG9uQ2hhbmdlIH0pID0+IChcbiAgPFRvZ2dsZSBsYWJlbD17bGFiZWx9IGNoZWNrZWQ9eyEhdmFsdWV9IHRvZ2dsZT17b25DaGFuZ2V9IC8+XG4pO1xuXG5Ub2dnbGVXcmFwcGVyLnByb3BUeXBlcyA9IHsgLi4uYmFzZVR5cGVzLCB2YWx1ZTogUHJvcFR5cGVzLmJvb2wgfTtcblxuY29uc3QgdGFnTWFwID0ge1xuICB0b2dnbGU6IFRvZ2dsZVdyYXBwZXIsXG4gIHJhZGlvOiBTdHlsZWRSYWRpbyxcbiAgZHJvcGRvd246IERyb3Bkb3duLFxuICBudW1iZXJGaWVsZDogTnVtYmVyRmllbGQsXG4gIGNoZWNrYm94OiBDaGVja2JveENob2ljZVxufTtcblxuY29uc3QgR3JvdXAgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIGdyb3VwOiB7XG4gICAgbWFyZ2luOiAnMCAwIDI1cHggMCdcbiAgfSxcbiAgZ3JvdXBIZWFkZXI6IHtcbiAgICBjb2xvcjogJyM0OTVCOEYnLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNjAwLFxuICAgIG1hcmdpbkJvdHRvbTogJzhweCdcbiAgfSxcbiAgbnVtYmVyRmllbGRzOiB7XG4gICAgZm9udFNpemU6ICcwLjg1cmVtJyxcbiAgICBtYXJnaW5Cb3R0b206IDBcbiAgfVxufSkpKHByb3BzID0+IHtcbiAgY29uc3QgeyBjbGFzc2VzLCBtb2RlbCwgbGFiZWwsIGdyb3VwLCBjb25maWd1cmF0aW9uLCBvbkNoYW5nZSB9ID0gcHJvcHM7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBncm91cCAtIHRoZSBncm91cCBvZiBzZXR0aW5nc1xuICAgKiBAcGFyYW0ga2V5IC0gdGhlIGtleShvciBwYXRoKSB0byBiZSB1c2VkIHRvIHNldCBvciBnZXQgZnJvbSBtb2RlbCBvciBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBpbm5lcktleSAtIHRoZSBrZXkob3IgcGF0aCkgdG8gYmUgdXNlZCB0byBnZXQgZnJvbSB0aGUgZ3JvdXAgKHVzZWQgb25seSBmb3IgbnVtYmVyRmllbGQgdHlwZSlcbiAgICogQHJldHVybnMgdGFnIHRoYXQgY29ycmVzcG9uZHMgdG8gZWxlbWVudCB0eXBlICovXG4gIGNvbnN0IGdldFRhZyA9IChncm91cCwga2V5LCBpbm5lcktleSkgPT4ge1xuICAgIGNvbnN0IHsgaXNDb25maWdQcm9wZXJ0eSwgLi4ucHJvcGVydGllcyB9ID0gZ2V0KGdyb3VwLCBpbm5lcktleSB8fCBrZXkpO1xuICAgIGNvbnN0IHZhbHVlID0gaXNDb25maWdQcm9wZXJ0eSA/IGdldChjb25maWd1cmF0aW9uLCBrZXkpIDogZ2V0KG1vZGVsLCBrZXkpO1xuICAgIGNvbnN0IHRhZ1Byb3BzID0geyAuLi5wcm9wZXJ0aWVzLCBrZXksIHZhbHVlIH07XG4gICAgY29uc3QgVGFnID0gdGFnTWFwW3RhZ1Byb3BzLnR5cGVdO1xuXG4gICAgcmV0dXJuIDxUYWcga2V5PXtrZXl9IHsuLi50YWdQcm9wc30gb25DaGFuZ2U9e3YgPT4gb25DaGFuZ2Uoa2V5LCB2LCBpc0NvbmZpZ1Byb3BlcnR5KX0gLz47XG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IChncm91cCwga2V5KSA9PiB7XG4gICAgY29uc3QgY3VycmVudEdyb3VwID0gZ3JvdXBba2V5XTtcblxuICAgIGlmICghY3VycmVudEdyb3VwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7IHR5cGUsIGxhYmVsLCBmaWVsZHMsIGNob2ljZXMgfSA9IGN1cnJlbnRHcm91cDtcblxuICAgIGlmICh0eXBlID09PSAnbnVtYmVyRmllbGRzJykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBrZXk9e2BudW1iZXJGaWVsZC0ke2xhYmVsfWB9PlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT17Y2xhc3Nlcy5udW1iZXJGaWVsZHN9PntsYWJlbH08L3A+XG4gICAgICAgICAge09iamVjdC5rZXlzKGZpZWxkcykubWFwKGZpZWxkS2V5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRUYWcoZ3JvdXAsIGAke2tleX0uJHtmaWVsZEtleX1gLCBgJHtrZXl9LmZpZWxkcy4ke2ZpZWxkS2V5fWApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdjaGVja2JveGVzJykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBrZXk9e2BjaGVja2JveC0ke2xhYmVsfWB9PlxuICAgICAgICAgIDxwPntsYWJlbH08L3A+XG4gICAgICAgICAge09iamVjdC5rZXlzKGNob2ljZXMpLm1hcChjaG9pY2VLZXkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdldFRhZyhncm91cCwgYCR7a2V5fS4ke2Nob2ljZUtleX1gLCBgJHtrZXl9LmNob2ljZXMuJHtjaG9pY2VLZXl9YCk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0eXBlIGlzIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duIG9yIG51bWJlckZpZWxkXG4gICAgcmV0dXJuIGdldFRhZyhncm91cCwga2V5KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmdyb3VwfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmdyb3VwSGVhZGVyfT57bGFiZWx9PC9kaXY+XG5cbiAgICAgIHtPYmplY3Qua2V5cyhncm91cCkubWFwKGtleSA9PiB7XG4gICAgICAgIHJldHVybiBjb250ZW50KGdyb3VwLCBrZXkpO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59KTtcblxuZXhwb3J0IGNsYXNzIFBhbmVsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdyb3VwczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNoYW5nZU1vZGVsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb246IFByb3BUeXBlcy5mdW5jXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvbkNoYW5nZU1vZGVsOiAoKSA9PiB7fSxcbiAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb246ICgpID0+IHt9XG4gIH07XG5cbiAgY2hhbmdlID0gKGtleSwgdmFsdWUsIGlzQ29uZmlnUHJvcGVydHkgPSBmYWxzZSkgPT4ge1xuICAgIGxvZygnW2NoYW5nZU1vZGVsXScsIGtleSwgdmFsdWUpO1xuICAgIGNvbnN0IHsgb25DaGFuZ2VNb2RlbCwgb25DaGFuZ2VDb25maWd1cmF0aW9uIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IG1vZGVsID0geyAuLi50aGlzLnByb3BzLm1vZGVsIH07XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5wcm9wcy5jb25maWd1cmF0aW9uIH07XG5cbiAgICBpZiAoaXNDb25maWdQcm9wZXJ0eSkge1xuICAgICAgc2V0KGNvbmZpZ3VyYXRpb24sIGtleSwgdmFsdWUpO1xuICAgICAgb25DaGFuZ2VDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChtb2RlbCwga2V5LCB2YWx1ZSk7XG4gICAgICBvbkNoYW5nZU1vZGVsKG1vZGVsLCBrZXkpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBncm91cHMsIG1vZGVsLCBjb25maWd1cmF0aW9uIH0gPSB0aGlzLnByb3BzO1xuICAgIGxvZygncmVuZGVyOicsIG1vZGVsKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7T2JqZWN0LmtleXMoZ3JvdXBzKS5tYXAoZyA9PiAoXG4gICAgICAgICAgPEdyb3VwXG4gICAgICAgICAgICBsYWJlbD17Z31cbiAgICAgICAgICAgIGtleT17Z31cbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBncm91cD17Z3JvdXBzW2ddfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyxJQUFBQyxpQkFBQSxFQUFNLGtDQUFOLENBQVo7QUFFQSxJQUFNQyxVQUFVLEdBQUc7RUFDakJDLEtBQUssRUFBRUMscUJBQUEsQ0FBVUMsTUFEQTtFQUVqQkMsS0FBSyxFQUFFRixxQkFBQSxDQUFVQztBQUZBLENBQW5CO0FBS0EsSUFBTUUsU0FBUyxHQUFHO0VBQ2hCSixLQUFLLEVBQUVDLHFCQUFBLENBQVVDLE1BREQ7RUFFaEJDLEtBQUssRUFBRUYscUJBQUEsQ0FBVUMsTUFGRDtFQUdoQkcsUUFBUSxFQUFFSixxQkFB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
392
+ var _default = exports["default"] = Panel;
393
+ //# sourceMappingURL=panel.js.map