@pie-element/select-text 6.5.26-next.1 → 6.5.26-next.2

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.md CHANGED
@@ -3,6 +3,74 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.5.26](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.25...@pie-element/select-text@6.5.26) (2022-03-28)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text
9
+
10
+
11
+
12
+
13
+
14
+ ## [6.5.25](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.24...@pie-element/select-text@6.5.25) (2022-03-22)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text
17
+
18
+
19
+
20
+
21
+
22
+ ## [6.5.24](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.23...@pie-element/select-text@6.5.24) (2022-03-08)
23
+
24
+ **Note:** Version bump only for package @pie-element/select-text
25
+
26
+
27
+
28
+
29
+
30
+ ## [6.5.23](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.22...@pie-element/select-text@6.5.23) (2022-03-08)
31
+
32
+ **Note:** Version bump only for package @pie-element/select-text
33
+
34
+
35
+
36
+
37
+
38
+ ## [6.5.22](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.21...@pie-element/select-text@6.5.22) (2022-02-21)
39
+
40
+ **Note:** Version bump only for package @pie-element/select-text
41
+
42
+
43
+
44
+
45
+
46
+ ## [6.5.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.20...@pie-element/select-text@6.5.21) (2022-02-17)
47
+
48
+ **Note:** Version bump only for package @pie-element/select-text
49
+
50
+
51
+
52
+
53
+
54
+ ## [6.5.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.19...@pie-element/select-text@6.5.20) (2022-02-04)
55
+
56
+ **Note:** Version bump only for package @pie-element/select-text
57
+
58
+
59
+
60
+
61
+
62
+ ## [6.5.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.18...@pie-element/select-text@6.5.19) (2022-01-24)
63
+
64
+
65
+ ### Bug Fixes
66
+
67
+ * Try to re-trigger ([04e6e41](https://github.com/pie-framework/pie-elements/commit/04e6e41d36a630b5d11abb8683d6b08ec0d2b3ec))
68
+ * use preview prompt for prompt, rationale and teacher instructions to fix table rendering PD-1456 ([f330601](https://github.com/pie-framework/pie-elements/commit/f3306019a2d1c8ce3e2783823dfe9ef0a0394e4f))
69
+
70
+
71
+
72
+
73
+
6
74
  ## [6.5.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.17...@pie-element/select-text@6.5.18) (2022-01-10)
7
75
 
8
76
  **Note:** Version bump only for package @pie-element/select-text
@@ -3,6 +3,70 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.2.22](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.21...@pie-element/select-text-configure@5.2.22) (2022-03-28)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text-configure
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.2.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.20...@pie-element/select-text-configure@5.2.21) (2022-03-22)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text-configure
17
+
18
+
19
+
20
+
21
+
22
+ ## [5.2.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.19...@pie-element/select-text-configure@5.2.20) (2022-03-08)
23
+
24
+ **Note:** Version bump only for package @pie-element/select-text-configure
25
+
26
+
27
+
28
+
29
+
30
+ ## [5.2.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.18...@pie-element/select-text-configure@5.2.19) (2022-03-08)
31
+
32
+ **Note:** Version bump only for package @pie-element/select-text-configure
33
+
34
+
35
+
36
+
37
+
38
+ ## [5.2.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.17...@pie-element/select-text-configure@5.2.18) (2022-02-21)
39
+
40
+ **Note:** Version bump only for package @pie-element/select-text-configure
41
+
42
+
43
+
44
+
45
+
46
+ ## [5.2.17](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.16...@pie-element/select-text-configure@5.2.17) (2022-02-17)
47
+
48
+ **Note:** Version bump only for package @pie-element/select-text-configure
49
+
50
+
51
+
52
+
53
+
54
+ ## [5.2.16](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.15...@pie-element/select-text-configure@5.2.16) (2022-02-04)
55
+
56
+ **Note:** Version bump only for package @pie-element/select-text-configure
57
+
58
+
59
+
60
+
61
+
62
+ ## [5.2.15](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.14...@pie-element/select-text-configure@5.2.15) (2022-01-24)
63
+
64
+ **Note:** Version bump only for package @pie-element/select-text-configure
65
+
66
+
67
+
68
+
69
+
6
70
  ## [5.2.14](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.13...@pie-element/select-text-configure@5.2.14) (2022-01-10)
7
71
 
8
72
  **Note:** Version bump only for package @pie-element/select-text-configure
@@ -39,14 +39,10 @@ var _configUi = require("@pie-lib/config-ui");
39
39
 
40
40
  var _Chip = _interopRequireDefault(require("@material-ui/core/Chip"));
41
41
 
42
- var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
43
-
44
42
  var _debug = _interopRequireDefault(require("debug"));
45
43
 
46
44
  var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
47
45
 
48
- var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
49
-
50
46
  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; }
51
47
 
52
48
  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; }
@@ -207,28 +203,16 @@ var Design = /*#__PURE__*/function (_React$Component) {
207
203
  _ref$spellCheck = _ref.spellCheck,
208
204
  spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
209
205
  _ref$highlightChoices = _ref.highlightChoices,
210
- highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices,
211
- minTokens = _ref.minTokens,
212
- maxTokens = _ref.maxTokens,
213
- maxSelections = _ref.maxSelections;
206
+ highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices;
214
207
 
215
208
  var _ref2 = model || {},
216
209
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
217
210
  promptEnabled = _ref2.promptEnabled,
218
211
  rationaleEnabled = _ref2.rationaleEnabled,
219
212
  spellCheckEnabled = _ref2.spellCheckEnabled,
220
- feedbackEnabled = _ref2.feedbackEnabled,
221
- errors = _ref2.errors;
213
+ feedbackEnabled = _ref2.feedbackEnabled;
222
214
 
223
215
  var toolbarOpts = {};
224
- var configSettings = maxSelections || minTokens || maxTokens;
225
- var maxSelectionsValidation = maxSelections ? "\nNo more than ".concat(maxSelections, " tokens should be selected.") : '';
226
- var minTokensValidation = minTokens ? "\nThere should be at least ".concat(minTokens, " tokens defined.") : '';
227
- var maxTokensValidation = maxTokens ? "\nNo more than ".concat(maxTokens, " tokens should be defined.") : '';
228
-
229
- var _ref3 = errors || {},
230
- tokensError = _ref3.tokensError,
231
- selectionsError = _ref3.selectionsError;
232
216
 
233
217
  switch (model.toolbarEditorPosition) {
234
218
  case 'top':
@@ -307,25 +291,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
307
291
  value: textValue,
308
292
  onChange: this.changeText,
309
293
  spellCheck: spellCheckEnabled
310
- }), configSettings && /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
311
- classes: {
312
- tooltip: classes.tooltip
313
- },
314
- disableFocusListener: true,
315
- disableTouchListener: true,
316
- placement: 'left',
317
- title: "Validation requirements:".concat(maxSelectionsValidation).concat(minTokensValidation).concat(maxTokensValidation)
318
- }, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
319
- fontSize: 'small',
320
- color: 'primary',
321
- style: {
322
- "float": 'right'
323
- }
324
- })), tokensError && /*#__PURE__*/_react["default"].createElement("div", {
325
- className: classes.errorText
326
- }, tokensModel), selectionsError && /*#__PURE__*/_react["default"].createElement("div", {
327
- className: classes.errorText
328
- }, selectionsError), tokens.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
294
+ }), tokens.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
329
295
  label: tokens.label || '',
330
296
  className: classes.tokenizerContainer
331
297
  }, /*#__PURE__*/_react["default"].createElement(_textSelect.Tokenizer, {
@@ -423,19 +389,9 @@ var _default = (0, _styles.withStyles)(function (theme) {
423
389
  },
424
390
  numberField: {
425
391
  width: '180px'
426
- },
427
- tooltip: {
428
- fontSize: '12px',
429
- whiteSpace: 'pre',
430
- maxWidth: '500px'
431
- },
432
- errorText: {
433
- fontSize: '12px',
434
- color: 'red',
435
- padding: '5px 0'
436
392
  }
437
393
  };
438
394
  })(Design);
439
395
 
440
396
  exports["default"] = _default;
441
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNpZ24uanN4Il0sIm5hbWVzIjpbIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImxvZyIsIkRlc2lnbiIsInByb3BzIiwidmFsIiwiYXBwbHkiLCJ1IiwidGV4dCIsInRva2VucyIsImV2ZW50IiwidmFsdWUiLCJ0YXJnZXQiLCJwcmVwYXJlZFRleHQiLCJzZXRTdGF0ZSIsInVwZGF0ZVRleHQiLCJtb2RlIiwiY29ycmVjdFRva2VuQ291bnQiLCJmaWx0ZXIiLCJ0IiwiY29ycmVjdCIsImxlbmd0aCIsIm1heCIsImlzRmluaXRlIiwibWF4U2VsZWN0aW9ucyIsIk1hdGgiLCJmbiIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJ1cGRhdGUiLCJmZWVkYmFjayIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsInN0YXRlIiwiblByb3BzIiwidGV4dFZhbHVlIiwiY2xhc3NlcyIsImltYWdlU3VwcG9ydCIsImNvbmZpZ3VyYXRpb24iLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwic2VsZWN0aW9ucyIsInNlbGVjdGlvbkNvdW50IiwiY29ycmVjdEFuc3dlciIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJzY29yaW5nVHlwZSIsInNwZWxsQ2hlY2siLCJoaWdobGlnaHRDaG9pY2VzIiwibWluVG9rZW5zIiwibWF4VG9rZW5zIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwiZXJyb3JzIiwidG9vbGJhck9wdHMiLCJjb25maWdTZXR0aW5ncyIsIm1heFNlbGVjdGlvbnNWYWxpZGF0aW9uIiwibWluVG9rZW5zVmFsaWRhdGlvbiIsIm1heFRva2Vuc1ZhbGlkYXRpb24iLCJ0b2tlbnNFcnJvciIsInNlbGVjdGlvbnNFcnJvciIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsInBvc2l0aW9uIiwidG9rZW5zTW9kZWwiLCJTZXR0aW5ncyIsImxhYmVsIiwiUHJvcGVydGllcyIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwiY29udGFpbmVyIiwicHJvbXB0SG9sZGVyIiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCIsIm9uUHJvbXB0Q2hhbmdlZCIsIm9uUmF0aW9uYWxlQ2hhbmdlZCIsImlucHV0IiwiY2hhbmdlVGV4dCIsInRvb2x0aXAiLCJlcnJvclRleHQiLCJ0b2tlbml6ZXJDb250YWluZXIiLCJ0b2tlbml6ZXIiLCJjaGFuZ2VUb2tlbnMiLCJjaGlwIiwiY2hhbmdlTWF4U2VsZWN0aW9ucyIsIm51bWJlckZpZWxkIiwiY2hhbmdlRmVlZGJhY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic2hhcGUiLCJhZGQiLCJ0aGVtZSIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwidW5pdCIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0IiwiY29udGVudCIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsIm1hcmdpbkJvdHRvbSIsIndpZHRoIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpblRvcCIsIm1haW5PcHRzIiwianVzdGlmeUNvbnRlbnQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImZvbnRTaXplIiwid2hpdGVTcGFjZSIsIm1heFdpZHRoIiwiY29sb3IiLCJwYWRkaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU9BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBUUEsS0FBUixHQUFpQ0Msa0JBQWpDLENBQVFELEtB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QUFFO0FBQ1gwQixNQUFBQSxLQUFLLEVBQUU7QUFESSxLQTNDcUI7QUE4Q2xDakMsSUFBQUEsT0FBTyxFQUFFO0FBQ1B3QyxNQUFBQSxRQUFRLEVBQUUsTUFESDtBQUVQQyxNQUFBQSxVQUFVLEVBQUUsS0FGTDtBQUdQQyxNQUFBQSxRQUFRLEVBQUU7QUFISCxLQTlDeUI7QUFtRGxDekMsSUFBQUEsU0FBUyxFQUFFO0FBQ1R1QyxNQUFBQSxRQUFRLEVBQUUsTUFERDtBQUVURyxNQUFBQSxLQUFLLEVBQUUsS0FGRTtBQUdUQyxNQUFBQSxPQUFPLEVBQUU7QUFIQTtBQW5EdUIsR0FBTDtBQUFBLENBQWhCLEVBd0RYdkgsTUF4RFcsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UZXh0RmllbGQnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQgeyBUb2tlbml6ZXIgfSBmcm9tICdAcGllLWxpYi90ZXh0LXNlbGVjdCc7XG5pbXBvcnQge1xuICBJbnB1dENvbnRhaW5lcixcbiAgTnVtYmVyVGV4dEZpZWxkLFxuICBGZWVkYmFja0NvbmZpZyxcbiAgc2V0dGluZ3MsXG4gIGxheW91dFxufSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IENoaXAgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hpcCc7XG5pbXBvcnQgSW5mbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSW5mbyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1Rvb2x0aXAnO1xuXG5jb25zdCB7IFBhbmVsLCB0b2dnbGUsIHJhZGlvIH0gPSBzZXR0aW5ncztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpzZWxlY3QtdGV4dDpjb25maWd1cmUnKTtcblxuZXhwb3J0IGNsYXNzIERlc2lnbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfSlcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCB7IG1vZGVsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRleHQ6IChtb2RlbCAmJiBtb2RlbC50ZXh0KSB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuUHJvcHMpIHtcbiAgICBjb25zdCB7IG1vZGVsIH0gPSBuUHJvcHM7XG5cbiAgICBpZiAobW9kZWwgJiYgbW9kZWwudGV4dCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRleHQ6IG1vZGVsLnRleHRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVRleHQgPSBkZWJvdW5jZSh2YWwgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRleHQgPSB2YWw7XG4gICAgICB1LnRva2VucyA9IFtdO1xuICAgIH0pO1xuICB9LCAyMDApO1xuXG4gIGNoYW5nZVRleHQgPSBldmVudCA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcHJlcGFyZWRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHRleHQ6IHZhbHVlXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUZXh0KHByZXBhcmVkVGV4dCk7XG4gIH07XG5cbiAgY2hhbmdlVG9rZW5zID0gKHRva2VucywgbW9kZSkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRva2VucyA9IHRva2VucztcbiAgICAgIHUubW9kZSA9IG1vZGU7XG5cbiAgICAgIGNvbnN0IGNvcnJlY3RUb2tlbkNvdW50ID0gdG9rZW5zLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoO1xuICAgICAgY29uc3QgbWF4ID0gaXNGaW5pdGUodS5tYXhTZWxlY3Rpb25zKSA/IHUubWF4U2VsZWN0aW9ucyA6IDA7XG5cbiAgICAgIHUubWF4U2VsZWN0aW9ucyA9IE1hdGgubWF4KG1heCwgY29ycmVjdFRva2VuQ291bnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNoYW5nZU1heFNlbGVjdGlvbnMgPSAoZXZlbnQsIG1heCkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiAodS5tYXhTZWxlY3Rpb25zID0gbWF4KSk7XG4gIH07XG5cbiAgYXBwbHkgPSBmbiA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcbiAgICBmbih1cGRhdGUpO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgY2hhbmdlRmVlZGJhY2sgPSBmZWVkYmFjayA9PiB7XG4gICAgdGhpcy5hcHBseSh1ID0+ICh1LmZlZWRiYWNrID0gZmVlZGJhY2spKTtcbiAgfTtcblxuICBjaGFuZ2VQYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuICAgIHVwZGF0ZS5wYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gcHJvbXB0ID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnByb21wdCA9IHByb21wdDtcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnRlYWNoZXJJbnN0cnVjdGlvbnMgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25SYXRpb25hbGVDaGFuZ2VkID0gcmF0aW9uYWxlID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgcmF0aW9uYWxlXG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdGV4dDogdGV4dFZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVsLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGltYWdlU3VwcG9ydCxcbiAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWRcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBwcm9tcHQgPSB7fSxcbiAgICAgIHRleHQgPSB7fSxcbiAgICAgIHRva2VucyA9IHt9LFxuICAgICAgbW9kZSA9IHt9LFxuICAgICAgZmVlZGJhY2sgPSB7fSxcbiAgICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgICBzZWxlY3Rpb25zID0ge30sXG4gICAgICBzZWxlY3Rpb25Db3VudCA9IHt9LFxuICAgICAgY29ycmVjdEFuc3dlciA9IHt9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgc3R1ZGVudEluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgcmF0aW9uYWxlID0ge30sXG4gICAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgICAgc3BlbGxDaGVjayA9IHt9LFxuICAgICAgaGlnaGxpZ2h0Q2hvaWNlcyA9IHt9LFxuICAgICAgbWluVG9rZW5zLFxuICAgICAgbWF4VG9rZW5zLFxuICAgICAgbWF4U2VsZWN0aW9uc1xuICAgIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkLCBwcm9tcHRFbmFibGVkLCByYXRpb25hbGVFbmFibGVkLCBzcGVsbENoZWNrRW5hYmxlZCwgZmVlZGJhY2tFbmFibGVkLCBlcnJvcnNcbiAgICB9ID0gbW9kZWwgfHwge307XG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7fTtcbiAgICBjb25zdCBjb25maWdTZXR0aW5ncyA9IG1heFNlbGVjdGlvbnMgfHwgbWluVG9rZW5zIHx8ICBtYXhUb2tlbnM7XG4gICAgY29uc3QgbWF4U2VsZWN0aW9uc1ZhbGlkYXRpb24gPSBtYXhTZWxlY3Rpb25zID8gYFxcbk5vIG1vcmUgdGhhbiAke21heFNlbGVjdGlvbnN9IHRva2VucyBzaG91bGQgYmUgc2VsZWN0ZWQuYCA6ICcnO1xuICAgIGNvbnN0IG1pblRva2Vuc1ZhbGlkYXRpb24gPSBtaW5Ub2tlbnMgPyBgXFxuVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0ICR7bWluVG9rZW5zfSB0b2tlbnMgZGVmaW5lZC5gIDogJyc7XG4gICAgY29uc3QgbWF4VG9rZW5zVmFsaWRhdGlvbiA9IG1heFRva2VucyA/IGBcXG5ObyBtb3JlIHRoYW4gJHttYXhUb2tlbnN9IHRva2VucyBzaG91bGQgYmUgZGVmaW5lZC5gIDogJyc7XG5cbiAgICBjb25zdCB7IHRva2Vuc0Vycm9yLCBzZWxlY3Rpb25zRXJyb3IgfSA9IGVycm9ycyB8fCB7fTtcblxuICAgIHN3aXRjaCAobW9kZWwudG9vbGJhckVkaXRvclBvc2l0aW9uKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b29sYmFyT3B0cy5wb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRvb2xiYXJPcHRzLnBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgeyB0b2tlbnM6IHRva2Vuc01vZGVsIH0gPSBtb2RlbDtcbiAgICB0b2tlbnNNb2RlbCA9IHRva2Vuc01vZGVsIHx8IFtdO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBtYXhTZWxlY3Rpb25zOicsIG1vZGVsLm1heFNlbGVjdGlvbnMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYXlvdXQuQ29uZmlnTGF5b3V0XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXttb2RlbCA9PiBvbk1vZGVsQ2hhbmdlZChtb2RlbCl9XG4gICAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249e29uQ29uZmlndXJhdGlvbkNoYW5nZWR9XG4gICAgICAgICAgICBncm91cHM9e3tcbiAgICAgICAgICAgICAgU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsU2NvcmluZzpcbiAgICAgICAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q2hvaWNlczpcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENob2ljZXMuc2V0dGluZ3MgJiYgdG9nZ2xlKGhpZ2hsaWdodENob2ljZXMubGFiZWwpLFxuICAgICAgICAgICAgICAgIGZlZWRiYWNrRW5hYmxlZDpcbiAgICAgICAgICAgICAgICAgIGZlZWRiYWNrLnNldHRpbmdzICYmIHRvZ2dsZShmZWVkYmFjay5sYWJlbClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHRlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgICAgICAgICAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgICAgICAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6XG4gICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgICAgICAgICAgICAgIHNjb3JpbmdUeXBlOlxuICAgICAgICAgICAgICAgICAgc2NvcmluZ1R5cGUuc2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICAgIHJhZGlvKHNjb3JpbmdUeXBlLmxhYmVsLCBbJ2F1dG8nLCAncnVicmljJ10pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250YWluZXJ9PlxuICAgICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3RlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwudGVhY2hlckluc3RydWN0aW9ucyB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3Byb21wdC5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17cmF0aW9uYWxlLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3RleHQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBsYWJlbD17dGV4dC5sYWJlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgdmFsdWU9e3RleHRWYWx1ZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVGV4dH1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7Y29uZmlnU2V0dGluZ3MgJiYgPFRvb2x0aXBcbiAgICAgICAgICAgIGNsYXNzZXM9e3t0b29sdGlwOiBjbGFzc2VzLnRvb2x0aXB9fVxuICAgICAgICAgICAgZGlzYWJsZUZvY3VzTGlzdGVuZXJcbiAgICAgICAgICAgIGRpc2FibGVUb3VjaExpc3RlbmVyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9eydsZWZ0J31cbiAgICAgICAgICAgIHRpdGxlPXtgVmFsaWRhdGlvbiByZXF1aXJlbWVudHM6JHttYXhTZWxlY3Rpb25zVmFsaWRhdGlvbn0ke21pblRva2Vuc1ZhbGlkYXRpb259JHttYXhUb2tlbnNWYWxpZGF0aW9ufWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEluZm8gZm9udFNpemU9eydzbWFsbCd9IGNvbG9yPXsncHJpbWFyeSd9IHN0eWxlPXt7IGZsb2F0OiAncmlnaHQnIH19Lz5cbiAgICAgICAgICA8L1Rvb2x0aXA+fVxuXG4gICAgICAgICAge3Rva2Vuc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3Rva2Vuc01vZGVsfTwvZGl2Pn1cbiAgICAgICAgICB7c2VsZWN0aW9uc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3NlbGVjdGlvbnNFcnJvcn08L2Rpdj59XG5cbiAgICAgICAgICB7dG9rZW5zLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17dG9rZW5zLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudG9rZW5pemVyQ29udGFpbmVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9rZW5pemVyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplcn1cbiAgICAgICAgICAgICAgICB0ZXh0PXttb2RlbC50ZXh0fVxuICAgICAgICAgICAgICAgIHRva2Vucz17dG9rZW5zTW9kZWx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVG9rZW5zfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge21vZGUuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake21vZGUubGFiZWx9OiAke21vZGVsLm1vZGUgPyBtb2RlbC5tb2RlIDogJ05vbmUnfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NlbGVjdGlvbnMuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake3NlbGVjdGlvbnMubGFiZWx9OiAke3Rva2Vuc01vZGVsLmxlbmd0aH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb3JyZWN0QW5zd2VyLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxDaGlwXG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtjb3JyZWN0QW5zd2VyLmxhYmVsfTogJHtcbiAgICAgICAgICAgICAgICB0b2tlbnNNb2RlbC5maWx0ZXIodCA9PiB0LmNvcnJlY3QpLmxlbmd0aFxuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2VsZWN0aW9uQ291bnQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPE51bWJlclRleHRGaWVsZFxuICAgICAgICAgICAgICBtaW49e3Rva2Vuc01vZGVsLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtzZWxlY3Rpb25Db3VudC5sYWJlbH0gKDA6YW55KWB9XG4gICAgICAgICAgICAgIG1heD17dG9rZW5zTW9kZWwubGVuZ3RofVxuICAgICAgICAgICAgICB2YWx1ZT17bW9kZWwubWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlTWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm51bWJlckZpZWxkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2ZlZWRiYWNrRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8RmVlZGJhY2tDb25maWdcbiAgICAgICAgICAgICAgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VGZWVkYmFja31cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGF5b3V0LkNvbmZpZ0xheW91dD5cbiAgICApO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHRoZW1lID0+ICh7XG4gIGNvbnRhaW5lcjoge1xuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICB0b2tlbml6ZXJDb250YWluZXI6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gICAgbWFyZ2luUmlnaHQ6IDAsXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluXG4gICAgfSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICBjaGlwOiB7XG4gICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDNcbiAgfSxcbiAgdG9rZW5pemVyOiB7XG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyXG4gIH0sXG4gIG1haW5PcHRzOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnXG4gIH0sXG4gIHByb21wdEhvbGRlcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgcHJvbXB0OiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sXG4gIG51bWJlckZpZWxkOiB7XG4gICAgd2lkdGg6ICcxODBweCdcbiAgfSxcbiAgdG9vbHRpcDoge1xuICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgd2hpdGVTcGFjZTogJ3ByZScsXG4gICAgbWF4V2lkdGg6ICc1MDBweCcsXG4gIH0sXG4gIGVycm9yVGV4dDoge1xuICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgY29sb3I6ICdyZWQnLFxuICAgIHBhZGRpbmc6ICc1cHggMCdcbiAgfVxufSkpKERlc2lnbik7XG4iXX0=
397
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNpZ24uanN4Il0sIm5hbWVzIjpbIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImxvZyIsIkRlc2lnbiIsInByb3BzIiwidmFsIiwiYXBwbHkiLCJ1IiwidGV4dCIsInRva2VucyIsImV2ZW50IiwidmFsdWUiLCJ0YXJnZXQiLCJwcmVwYXJlZFRleHQiLCJzZXRTdGF0ZSIsInVwZGF0ZVRleHQiLCJtb2RlIiwiY29ycmVjdFRva2VuQ291bnQiLCJmaWx0ZXIiLCJ0IiwiY29ycmVjdCIsImxlbmd0aCIsIm1heCIsImlzRmluaXRlIiwibWF4U2VsZWN0aW9ucyIsIk1hdGgiLCJmbiIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJ1cGRhdGUiLCJmZWVkYmFjayIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsInN0YXRlIiwiblByb3BzIiwidGV4dFZhbHVlIiwiY2xhc3NlcyIsImltYWdlU3VwcG9ydCIsImNvbmZpZ3VyYXRpb24iLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwic2VsZWN0aW9ucyIsInNlbGVjdGlvbkNvdW50IiwiY29ycmVjdEFuc3dlciIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJzY29yaW5nVHlwZSIsInNwZWxsQ2hlY2siLCJoaWdobGlnaHRDaG9pY2VzIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwidG9vbGJhck9wdHMiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJwb3NpdGlvbiIsInRva2Vuc01vZGVsIiwiU2V0dGluZ3MiLCJsYWJlbCIsIlByb3BlcnRpZXMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImNvbnRhaW5lciIsInByb21wdEhvbGRlciIsIm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQiLCJvblByb21wdENoYW5nZWQiLCJvblJhdGlvbmFsZUNoYW5nZWQiLCJpbnB1dCIsImNoYW5nZVRleHQiLCJ0b2tlbml6ZXJDb250YWluZXIiLCJ0b2tlbml6ZXIiLCJjaGFuZ2VUb2tlbnMiLCJjaGlwIiwiY2hhbmdlTWF4U2VsZWN0aW9ucyIsIm51bWJlckZpZWxkIiwiY2hhbmdlRmVlZGJhY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic2hhcGUiLCJhZGQiLCJ0aGVtZSIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwidW5pdCIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0IiwiY29udGVudCIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsIm1hcmdpbkJvdHRvbSIsIndpZHRoIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpblRvcCIsIm1haW5PcHRzIiwianVzdGlmeUNvbnRlbnQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQVFBLEtBQVIsR0FBaUNDLGtCQUFqQyxDQUFRRCxLQUFSO0FBQUEsSUFBZUUsTUFBZixHQUFpQ0Qsa0JBQWpDLENBQWVDLE1BQWY7QUFBQSxJQUF1QkMsS0FBdkIsR0FBaUNGLGtCQUFqQyxDQUF1QkUsS0FBdkI7QUFFQSxJQUFNQyxHQUFHLEdBQUcsdUJBQU0sb0NBQU4sQ0FBWjs7SUFFYUMsTTs7Ozs7QUFlWCxrQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBO0FBQ2pCLDhCQUFNQSxLQUFOO0FBRGlCLG1HQW9CTiwwQkFBUyxVQUFBQyxHQUFHLEVBQUk7QUFDM0IsWUFBS0Ms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QyxJQUFkLEdBQXFCO0FBRi9CLEtBckIyQjtBQXlCbENqQixJQUFBQSxTQUFTLEVBQUU7QUFDVGdDLE1BQUFBLFNBQVMsRUFBRWxCLEtBQUssQ0FBQ0UsT0FBTixDQUFjQyxJQUFkLEdBQXFCO0FBRHZCLEtBekJ1QjtBQTRCbENnQixJQUFBQSxRQUFRLEVBQUU7QUFDUkgsTUFBQUEsS0FBSyxFQUFFLE1BREM7QUFFUkksTUFBQUEsY0FBYyxFQUFFLGVBRlI7QUFHUkMsTUFBQUEsT0FBTyxFQUFFLE1BSEQ7QUFJUkMsTUFBQUEsVUFBVSxFQUFFO0FBSkosS0E1QndCO0FBa0NsQzNDLElBQUFBLFlBQVksRUFBRTtBQUNacUMsTUFBQUEsS0FBSyxFQUFFLE1BREs7QUFFWkMsTUFBQUEsYUFBYSxFQUFFakIsS0FBSyxDQUFDRSxPQUFOLENBQWNDLElBQWQsR0FBcUIsQ0FGeEI7QUFHWlksTUFBQUEsWUFBWSxFQUFFZixLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUh2QixLQWxDb0I7QUF1Q2xDdkQsSUFBQUEsTUFBTSxFQUFFO0FBQ05xRCxNQUFBQSxVQUFVLEVBQUVELEtBQUssQ0FBQ0UsT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRDNCO0FBRU5hLE1BQUFBLEtBQUssRUFBRTtBQUZELEtBdkMwQjtBQTJDbEMxQixJQUFBQSxXQUFXLEVBQUU7QUFDWDBCLE1BQUFBLEtBQUssRUFBRTtBQURJO0FBM0NxQixHQUFMO0FBQUEsQ0FBaEIsRUE4Q1hqRyxNQTlDVyxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1RleHRGaWVsZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJztcbmltcG9ydCB7IFRva2VuaXplciB9IGZyb20gJ0BwaWUtbGliL3RleHQtc2VsZWN0JztcbmltcG9ydCB7XG4gIElucHV0Q29udGFpbmVyLFxuICBOdW1iZXJUZXh0RmllbGQsXG4gIEZlZWRiYWNrQ29uZmlnLFxuICBzZXR0aW5ncyxcbiAgbGF5b3V0XG59IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgQ2hpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9DaGlwJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgRWRpdGFibGVIdG1sIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuXG5jb25zdCB7IFBhbmVsLCB0b2dnbGUsIHJhZGlvIH0gPSBzZXR0aW5ncztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpzZWxlY3QtdGV4dDpjb25maWd1cmUnKTtcblxuZXhwb3J0IGNsYXNzIERlc2lnbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfSlcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCB7IG1vZGVsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRleHQ6IChtb2RlbCAmJiBtb2RlbC50ZXh0KSB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuUHJvcHMpIHtcbiAgICBjb25zdCB7IG1vZGVsIH0gPSBuUHJvcHM7XG5cbiAgICBpZiAobW9kZWwgJiYgbW9kZWwudGV4dCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRleHQ6IG1vZGVsLnRleHRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVRleHQgPSBkZWJvdW5jZSh2YWwgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRleHQgPSB2YWw7XG4gICAgICB1LnRva2VucyA9IFtdO1xuICAgIH0pO1xuICB9LCAyMDApO1xuXG4gIGNoYW5nZVRleHQgPSBldmVudCA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcHJlcGFyZWRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHRleHQ6IHZhbHVlXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUZXh0KHByZXBhcmVkVGV4dCk7XG4gIH07XG5cbiAgY2hhbmdlVG9rZW5zID0gKHRva2VucywgbW9kZSkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRva2VucyA9IHRva2VucztcbiAgICAgIHUubW9kZSA9IG1vZGU7XG5cbiAgICAgIGNvbnN0IGNvcnJlY3RUb2tlbkNvdW50ID0gdG9rZW5zLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoO1xuICAgICAgY29uc3QgbWF4ID0gaXNGaW5pdGUodS5tYXhTZWxlY3Rpb25zKSA/IHUubWF4U2VsZWN0aW9ucyA6IDA7XG5cbiAgICAgIHUubWF4U2VsZWN0aW9ucyA9IE1hdGgubWF4KG1heCwgY29ycmVjdFRva2VuQ291bnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNoYW5nZU1heFNlbGVjdGlvbnMgPSAoZXZlbnQsIG1heCkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiAodS5tYXhTZWxlY3Rpb25zID0gbWF4KSk7XG4gIH07XG5cbiAgYXBwbHkgPSBmbiA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcbiAgICBmbih1cGRhdGUpO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgY2hhbmdlRmVlZGJhY2sgPSBmZWVkYmFjayA9PiB7XG4gICAgdGhpcy5hcHBseSh1ID0+ICh1LmZlZWRiYWNrID0gZmVlZGJhY2spKTtcbiAgfTtcblxuICBjaGFuZ2VQYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuICAgIHVwZGF0ZS5wYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gcHJvbXB0ID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnByb21wdCA9IHByb21wdDtcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnRlYWNoZXJJbnN0cnVjdGlvbnMgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25SYXRpb25hbGVDaGFuZ2VkID0gcmF0aW9uYWxlID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgcmF0aW9uYWxlXG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdGV4dDogdGV4dFZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVsLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGltYWdlU3VwcG9ydCxcbiAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWRcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBwcm9tcHQgPSB7fSxcbiAgICAgIHRleHQgPSB7fSxcbiAgICAgIHRva2VucyA9IHt9LFxuICAgICAgbW9kZSA9IHt9LFxuICAgICAgZmVlZGJhY2sgPSB7fSxcbiAgICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgICBzZWxlY3Rpb25zID0ge30sXG4gICAgICBzZWxlY3Rpb25Db3VudCA9IHt9LFxuICAgICAgY29ycmVjdEFuc3dlciA9IHt9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgc3R1ZGVudEluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgcmF0aW9uYWxlID0ge30sXG4gICAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgICAgc3BlbGxDaGVjayA9IHt9LFxuICAgICAgaGlnaGxpZ2h0Q2hvaWNlcyA9IHt9XG4gICAgfSA9IGNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgY29uc3Qge1xuICAgICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQsIHByb21wdEVuYWJsZWQsIHJhdGlvbmFsZUVuYWJsZWQsIHNwZWxsQ2hlY2tFbmFibGVkLCBmZWVkYmFja0VuYWJsZWRcbiAgICB9ID0gbW9kZWwgfHwge307XG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7fTtcblxuICAgIHN3aXRjaCAobW9kZWwudG9vbGJhckVkaXRvclBvc2l0aW9uKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b29sYmFyT3B0cy5wb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRvb2xiYXJPcHRzLnBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgeyB0b2tlbnM6IHRva2Vuc01vZGVsIH0gPSBtb2RlbDtcbiAgICB0b2tlbnNNb2RlbCA9IHRva2Vuc01vZGVsIHx8IFtdO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBtYXhTZWxlY3Rpb25zOicsIG1vZGVsLm1heFNlbGVjdGlvbnMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYXlvdXQuQ29uZmlnTGF5b3V0XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXttb2RlbCA9PiBvbk1vZGVsQ2hhbmdlZChtb2RlbCl9XG4gICAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249e29uQ29uZmlndXJhdGlvbkNoYW5nZWR9XG4gICAgICAgICAgICBncm91cHM9e3tcbiAgICAgICAgICAgICAgU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsU2NvcmluZzpcbiAgICAgICAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q2hvaWNlczpcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENob2ljZXMuc2V0dGluZ3MgJiYgdG9nZ2xlKGhpZ2hsaWdodENob2ljZXMubGFiZWwpLFxuICAgICAgICAgICAgICAgIGZlZWRiYWNrRW5hYmxlZDpcbiAgICAgICAgICAgICAgICAgIGZlZWRiYWNrLnNldHRpbmdzICYmIHRvZ2dsZShmZWVkYmFjay5sYWJlbClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHRlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgICAgICAgICAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgICAgICAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6XG4gICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgICAgICAgICAgICAgIHNjb3JpbmdUeXBlOlxuICAgICAgICAgICAgICAgICAgc2NvcmluZ1R5cGUuc2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICAgIHJhZGlvKHNjb3JpbmdUeXBlLmxhYmVsLCBbJ2F1dG8nLCAncnVicmljJ10pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250YWluZXJ9PlxuICAgICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3RlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwudGVhY2hlckluc3RydWN0aW9ucyB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3Byb21wdC5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17cmF0aW9uYWxlLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3RleHQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBsYWJlbD17dGV4dC5sYWJlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgdmFsdWU9e3RleHRWYWx1ZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVGV4dH1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7dG9rZW5zLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17dG9rZW5zLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudG9rZW5pemVyQ29udGFpbmVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9rZW5pemVyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplcn1cbiAgICAgICAgICAgICAgICB0ZXh0PXttb2RlbC50ZXh0fVxuICAgICAgICAgICAgICAgIHRva2Vucz17dG9rZW5zTW9kZWx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVG9rZW5zfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge21vZGUuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake21vZGUubGFiZWx9OiAke21vZGVsLm1vZGUgPyBtb2RlbC5tb2RlIDogJ05vbmUnfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NlbGVjdGlvbnMuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake3NlbGVjdGlvbnMubGFiZWx9OiAke3Rva2Vuc01vZGVsLmxlbmd0aH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb3JyZWN0QW5zd2VyLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxDaGlwXG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtjb3JyZWN0QW5zd2VyLmxhYmVsfTogJHtcbiAgICAgICAgICAgICAgICB0b2tlbnNNb2RlbC5maWx0ZXIodCA9PiB0LmNvcnJlY3QpLmxlbmd0aFxuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2VsZWN0aW9uQ291bnQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPE51bWJlclRleHRGaWVsZFxuICAgICAgICAgICAgICBtaW49e3Rva2Vuc01vZGVsLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtzZWxlY3Rpb25Db3VudC5sYWJlbH0gKDA6YW55KWB9XG4gICAgICAgICAgICAgIG1heD17dG9rZW5zTW9kZWwubGVuZ3RofVxuICAgICAgICAgICAgICB2YWx1ZT17bW9kZWwubWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlTWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm51bWJlckZpZWxkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2ZlZWRiYWNrRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8RmVlZGJhY2tDb25maWdcbiAgICAgICAgICAgICAgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VGZWVkYmFja31cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGF5b3V0LkNvbmZpZ0xheW91dD5cbiAgICApO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHRoZW1lID0+ICh7XG4gIGNvbnRhaW5lcjoge1xuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICB0b2tlbml6ZXJDb250YWluZXI6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gICAgbWFyZ2luUmlnaHQ6IDAsXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluXG4gICAgfSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICBjaGlwOiB7XG4gICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDNcbiAgfSxcbiAgdG9rZW5pemVyOiB7XG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyXG4gIH0sXG4gIG1haW5PcHRzOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnXG4gIH0sXG4gIHByb21wdEhvbGRlcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgcHJvbXB0OiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sXG4gIG51bWJlckZpZWxkOiB7XG4gICAgd2lkdGg6ICcxODBweCdcbiAgfVxufSkpKERlc2lnbik7XG4iXX0=
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@pie-element/select-text-configure",
3
3
  "private": true,
4
- "version": "5.2.14",
4
+ "version": "5.2.22",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-configure-events": "^1.2.0",
11
- "@pie-lib/config-ui": "^10.10.24",
12
- "@pie-lib/editable-html": "^7.19.3",
13
- "@pie-lib/scoring-config": "^3.5.153",
11
+ "@pie-lib/config-ui": "^10.11.0",
12
+ "@pie-lib/editable-html": "^7.20.0",
13
+ "@pie-lib/scoring-config": "^3.5.154",
14
14
  "@pie-lib/text-select": "^1.8.14",
15
15
  "debug": "^3.1.0",
16
16
  "lodash": "^4.17.15",
@@ -3,6 +3,38 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.1.31](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.30...@pie-element/select-text-controller@4.1.31) (2022-03-22)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text-controller
9
+
10
+
11
+
12
+
13
+
14
+ ## [4.1.30](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.29...@pie-element/select-text-controller@4.1.30) (2022-02-21)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text-controller
17
+
18
+
19
+
20
+
21
+
22
+ ## [4.1.29](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.28...@pie-element/select-text-controller@4.1.29) (2022-02-17)
23
+
24
+ **Note:** Version bump only for package @pie-element/select-text-controller
25
+
26
+
27
+
28
+
29
+
30
+ ## [4.1.28](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.27...@pie-element/select-text-controller@4.1.28) (2022-02-04)
31
+
32
+ **Note:** Version bump only for package @pie-element/select-text-controller
33
+
34
+
35
+
36
+
37
+
6
38
  ## [4.1.26](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.25...@pie-element/select-text-controller@4.1.26) (2021-12-13)
7
39
 
8
40
  **Note:** Version bump only for package @pie-element/select-text-controller
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.createCorrectResponseSession = void 0;
9
9
  exports.createDefaultModel = createDefaultModel;
10
- exports.validate = exports.outcome = exports.normalizeSession = exports.normalize = exports.model = exports.getPartialScore = exports.getCorrectness = void 0;
10
+ exports.outcome = exports.normalizeSession = exports.normalize = exports.model = exports.getPartialScore = exports.getCorrectness = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -216,35 +216,4 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
216
216
  };
217
217
 
218
218
  exports.createCorrectResponseSession = createCorrectResponseSession;
219
-
220
- var validate = function validate() {
221
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
222
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
223
- var tokens = model.tokens;
224
- var _config$minTokens = config.minTokens,
225
- minTokens = _config$minTokens === void 0 ? 2 : _config$minTokens,
226
- maxTokens = config.maxTokens,
227
- maxSelections = config.maxSelections;
228
- var errors = {};
229
- var nbOfTokens = (tokens || []).length;
230
- var nbOfSelections = (tokens || []).reduce(function (acc, token) {
231
- return token.correct ? acc + 1 : acc;
232
- }, 0);
233
-
234
- if (nbOfTokens < minTokens) {
235
- errors.tokensError = "There should be at least ".concat(minTokens, " tokens defined.");
236
- } else if (nbOfTokens > maxTokens) {
237
- errors.tokensError = "No more than ".concat(maxTokens, " tokens should be defined.");
238
- }
239
-
240
- if (nbOfSelections < 1) {
241
- errors.selectionsError = 'There should be at least 1 token selected.';
242
- } else if (nbOfSelections > maxSelections) {
243
- errors.selectionsError = "No more than ".concat(maxSelections, " tokens should be selected.");
244
- }
245
-
246
- return errors;
247
- };
248
-
249
- exports.validate = validate;
250
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJidWlsZFRva2VucyIsInRva2VucyIsImV2YWx1YXRlTW9kZSIsIm1hcCIsInQiLCJPYmplY3QiLCJhc3NpZ24iLCJjb3JyZWN0IiwidW5kZWZpbmVkIiwiZ2V0Q29ycmVjdG5lc3MiLCJzZWxlY3RlZCIsImZpbHRlciIsImxlbmd0aCIsImNvcnJlY3RTZWxlY3RlZCIsImdldENvcnJlY3RTZWxlY3RlZCIsInMiLCJpbmRleCIsImZpbmRJbmRleCIsImMiLCJzdGFydCIsImVuZCIsIm9sZFN0YXJ0Iiwib2xkRW5kIiwiZ2V0Q29ycmVjdENvdW50IiwiZ2V0UGFydGlhbFNjb3JlIiwicXVlc3Rpb24iLCJzZXNzaW9uIiwidG90YWxDb3JyZWN0IiwiY29ycmVjdENvdW50Iiwic2VsZWN0ZWRUb2tlbnMiLCJjb3JyZWN0VG9rZW5zIiwiZXh0cmFTZWxlY3RlZCIsImluY29ycmVjdENvdW50IiwiY291bnQiLCJwb3NpdGl2ZUNvdW50IiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJvdXRjb21lIiwiZW52IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzY29yZSIsImVtcHR5Iiwibm9ybWFsaXplU2Vzc2lvbiIsIm1vZGUiLCJjb21wbGV0ZWQiLCJlbmFibGVkIiwicGFydGlhbFNjb3JpbmciLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJtb2RlbCIsImRlZmF1bHRzIiwibm9ybWFsaXplIiwiZmVlZGJhY2tFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInByb21wdEVuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwic2VsZWN0ZWRUb2tlbiIsIm5vcm1hbGl6ZWRRdWVzdGlvbiIsImNvcnJlY3RuZXNzIiwiZmIiLCJmZWVkYmFjayIsInRoZW4iLCJvdXQiLCJoaWdobGlnaHRDaG9pY2VzIiwicHJvbXB0IiwidGV4dCIsImRpc2FibGVkIiwibWF4U2VsZWN0aW9ucyIsImluY29ycmVjdCIsInJvbGUiLCJyYXRpb25hbGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiIsImlkIiwidmFsaWRhdGUiLCJjb25maWciLCJtaW5Ub2tlbnMiLCJtYXhUb2tlbnMiLCJlcnJvcnMiLCJuYk9mVG9rZW5zIiwibmJPZlNlbGVjdGlvbnMiLCJyZWR1Y2UiLCJhY2MiLCJ0b2tlbiIsInRva2Vuc0Vycm9yIiwic2VsZWN0aW9uc0Vycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxxQ0FBTixDQUFaOztBQUVBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLE1BQUQsRUFBU0MsWUFBVCxFQUEwQjtBQUM1Q0QsRUFBQUEsTUFBTSxHQUFHQSxNQUFNLElBQUksRUFBbkI7QUFFQSxTQUFPQSxNQUFNLENBQUNFLEdBQVAsQ0FBVyxVQUFDQyxDQUFEO0FBQUEsV0FDaEJDLE1BQU0sQ0FBQ0MsTUFBUCxDQUNFLEVBREYsRUFFRUYsQ0FGRixFQUdFRixZQUFZLEdBQUc7QUFBRUssTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQ0gsQ0FBQyxDQUFDRztBQUFmLEtBQUgsR0FBOEI7QUFBRUEsTUFBQUEsT0FBTyxFQUFFQztBQUFYLEtBSDVDLENBRGdCO0FBQUEsR0FBWCxDQUFQO0FBT0QsQ0FWRDs7QUFZTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNSLE1BQUQsRUFBU1MsUUFBVCxFQUFzQjtBQUNsRCxNQUFNSCxPQUFPLEdBQUdOLE1BQU0sQ0FBQ1UsTUFBUCxDQUFjLFVBQUNQLENBQUQ7QUFBQSxXQUFPQSxDQUFDLENBQUNHLE9BQUYsS0FBYyxJQUFyQjtBQUFBLEdBQWQsQ0FBaEI7O0FBRUEsTUFBSUEsT0FBTyxDQUFDSyxNQUFSLEtBQW1CLENBQXZCLEVBQTBCO0FBQ3hCLFdB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ckIsRUFBd0I7QUFDdEJGLElBQUFBLE1BQU0sQ0FBQ08sZUFBUCxHQUF5Qiw0Q0FBekI7QUFDRCxHQUZELE1BRU8sSUFBSUwsY0FBYyxHQUFHYixhQUFyQixFQUFvQztBQUN6Q1csSUFBQUEsTUFBTSxDQUFDTyxlQUFQLDBCQUF5Q2xCLGFBQXpDO0FBQ0Q7O0FBRUQsU0FBT1csTUFBUDtBQUNELENBckJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7IGdldEZlZWRiYWNrRm9yQ29ycmVjdG5lc3MgfSBmcm9tICdAcGllLWxpYi9mZWVkYmFjayc7XG5pbXBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9IGZyb20gJ0BwaWUtbGliL2NvbnRyb2xsZXItdXRpbHMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1lbGVtZW50OnNlbGVjdC10ZXh0OmNvbnRyb2xsZXInKTtcblxuY29uc3QgYnVpbGRUb2tlbnMgPSAodG9rZW5zLCBldmFsdWF0ZU1vZGUpID0+IHtcbiAgdG9rZW5zID0gdG9rZW5zIHx8IFtdO1xuXG4gIHJldHVybiB0b2tlbnMubWFwKCh0KSA9PlxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHQsXG4gICAgICBldmFsdWF0ZU1vZGUgPyB7IGNvcnJlY3Q6ICEhdC5jb3JyZWN0IH0gOiB7IGNvcnJlY3Q6IHVuZGVmaW5lZCB9XG4gICAgKVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RuZXNzID0gKHRva2Vucywgc2VsZWN0ZWQpID0+IHtcbiAgY29uc3QgY29ycmVjdCA9IHRva2Vucy5maWx0ZXIoKHQpID0+IHQuY29ycmVjdCA9PT0gdHJ1ZSk7XG5cbiAgaWYgKGNvcnJlY3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxuXG4gIGNvbnN0IGNvcnJlY3RTZWxlY3RlZCA9IGdldENvcnJlY3RTZWxlY3RlZCh0b2tlbnMsIHNlbGVjdGVkKTtcblxuICBpZiAoY29ycmVjdFNlbGVjdGVkLmxlbmd0aCA9PT0gc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgaWYgKGNvcnJlY3RTZWxlY3RlZC5sZW5ndGggPT09IGNvcnJlY3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NvcnJlY3QnO1xuICAgIH0gZWxzZSBpZiAoY29ycmVjdFNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAncGFydGlhbGx5LWNvcnJlY3QnO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjb3JyZWN0U2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiAncGFydGlhbGx5LWNvcnJlY3QnO1xuICB9XG5cbiAgcmV0dXJuICdpbmNvcnJlY3QnO1xufTtcblxuY29uc3QgZ2V0Q29ycmVjdFNlbGVjdGVkID0gKHRva2Vucywgc2VsZWN0ZWQpID0+IHtcbiAgcmV0dXJuIChzZWxlY3RlZCB8fCBbXSkuZmlsdGVyKChzKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSB0b2tlbnMuZmluZEluZGV4KChjKSA9PiB7XG4gICAgICByZXR1cm4gYy5jb3JyZWN0ICYmXG4gICAgICAgIChcbiAgICAgICAgICAoYy5zdGFydCA9PT0gcy5zdGFydCAmJiBjLmVuZCA9PT0gcy5lbmQpIHx8XG4gICAgICAgICAgLy8gdGhpcyBjYXNlIGlzIHVzZWQgZm9yIHRoZSBjYXNlcyB3aGVuIHRoZSB0b2tlbidzIHN0YXJ0ICYgZW5kIHdlcmUgcmVjYWxjdWxhdGVkXG4gICAgICAgICAgKGMuc3RhcnQgPT09IHMub2xkU3RhcnQgJiYgYy5lbmQgPT09IHMub2xkRW5kKVxuICAgICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gIH0pO1xufTtcblxuY29uc3QgZ2V0Q29ycmVjdENvdW50ID0gKHRva2Vucywgc2VsZWN0ZWQpID0+XG4gIGdldENvcnJlY3RTZWxlY3RlZCh0b2tlbnMsIHNlbGVjdGVkKS5sZW5ndGg7XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJ0aWFsU2NvcmUgPSAocXVlc3Rpb24sIHNlc3Npb24sIHRvdGFsQ29ycmVjdCkgPT4ge1xuICBpZiAoIXNlc3Npb24gfHwgaXNFbXB0eShzZXNzaW9uKSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3QgY29ycmVjdENvdW50ID0gZ2V0Q29ycmVjdENvdW50KHF1ZXN0aW9uLnRva2Vucywgc2Vzc2lvbi5zZWxlY3RlZFRva2Vucyk7XG4gIGNvbnN0IGNvcnJlY3RUb2tlbnMgPSAocXVlc3Rpb24udG9rZW5zIHx8IFtdKS5maWx0ZXIoKHQpID0+IHQuY29ycmVjdCA9PT0gdHJ1ZSk7XG4gIGNvbnN0IGV4dHJhU2VsZWN0ZWQgPSBzZXNzaW9uLnNlbGVjdGVkVG9rZW5zID8gc2Vzc2lvbi5zZWxlY3RlZFRva2Vucy5sZW5ndGggPiBjb3JyZWN0VG9rZW5zLmxlbmd0aCA6IDA7XG4gIGNvbnN0IGluY29ycmVjdENvdW50ID0gZXh0cmFTZWxlY3RlZCA/IHNlc3Npb24uc2VsZWN0ZWRUb2tlbnMgJiYgc2Vzc2lvbi5zZWxlY3RlZFRva2Vucy5sZW5ndGggLSBjb3JyZWN0Q291bnQgOiAwO1xuICBjb25zdCBjb3VudCA9IGNvcnJlY3RDb3VudCAtIGluY29ycmVjdENvdW50O1xuICBjb25zdCBwb3NpdGl2ZUNvdW50ID0gY291bnQgPCAwID8gMCA6IGNvdW50O1xuXG4gIHJldHVybiB0b3RhbENvcnJlY3QubGVuZ3RoXG4gICAgPyBwYXJzZUZsb2F0KChwb3NpdGl2ZUNvdW50IC8gdG90YWxDb3JyZWN0Lmxlbmd0aCkudG9GaXhlZCgyKSlcbiAgICA6IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgb3V0Y29tZSA9IChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52KSA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmICghc2Vzc2lvbiB8fCBpc0VtcHR5KHNlc3Npb24pKSB7XG4gICAgICByZXNvbHZlKHsgc2NvcmU6IDAsIGVtcHR5OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHNlc3Npb24gPSBub3JtYWxpemVTZXNzaW9uKHNlc3Npb24pO1xuXG4gICAgaWYgKGVudi5tb2RlICE9PSAnZXZhbHVhdGUnKSB7XG4gICAgICByZXNvbHZlKHsgc2NvcmU6IHVuZGVmaW5lZCwgY29tcGxldGVkOiB1bmRlZmluZWQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVuYWJsZWQgPSBwYXJ0aWFsU2NvcmluZy5lbmFibGVkKHF1ZXN0aW9uLCBlbnYsIHRydWUpO1xuICAgICAgY29uc3QgdG90YWxDb3JyZWN0ID0gcXVlc3Rpb24udG9rZW5zLmZpbHRlcigodCkgPT4gdC5jb3JyZWN0KTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0UGFydGlhbFNjb3JlKHF1ZXN0aW9uLCBzZXNzaW9uLCB0b3RhbENvcnJlY3QpO1xuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIHNjb3JlOiBlbmFibGVkID8gc2NvcmUgOiBzY29yZSA9PT0gMSA/IDEgOiAwLFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRNb2RlbChtb2RlbCA9IHt9KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJlc29sdmUoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5tb2RlbCxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTZXNzaW9uID0gKHMpID0+ICh7XG4gIHNlbGVjdGVkVG9rZW5zOiBbXSxcbiAgLi4ucyxcbn0pO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiAoe1xuICBmZWVkYmFja0VuYWJsZWQ6IHRydWUsXG4gIHJhdGlvbmFsZUVuYWJsZWQ6IHRydWUsXG4gIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgLi4ucXVlc3Rpb24sXG59KTtcblxuZXhwb3J0IGNvbnN0IG1vZGVsID0gKHF1ZXN0aW9uLCBzZXNzaW9uLCBlbnYpID0+IHtcbiAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgeyBzZWxlY3RlZFRva2VuOiBbXSB9O1xuICBzZXNzaW9uLnNlbGVjdGVkVG9rZW5zID0gc2Vzc2lvbi5zZWxlY3RlZFRva2VucyB8fCBbXTtcbiAgY29uc3Qgbm9ybWFsaXplZFF1ZXN0aW9uID0gbm9ybWFsaXplKHF1ZXN0aW9uKTtcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBsb2coJ1ttb2RlbF0nLCAnbm9ybWFsaXplZFF1ZXN0aW9uOiAnLCBub3JtYWxpemVkUXVlc3Rpb24pO1xuICAgIGxvZygnW21vZGVsXScsICdzZXNzaW9uOiAnLCBzZXNzaW9uKTtcbiAgICBjb25zdCB0b2tlbnMgPSBidWlsZFRva2VucyhcbiAgICAgIG5vcm1hbGl6ZWRRdWVzdGlvbi50b2tlbnMsXG4gICAgICBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJ1xuICAgICk7XG4gICAgbG9nKCd0b2tlbnM6JywgdG9rZW5zKTtcbiAgICBjb25zdCBjb3JyZWN0bmVzcyA9XG4gICAgICBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJ1xuICAgICAgICA/IGdldENvcnJlY3RuZXNzKG5vcm1hbGl6ZWRRdWVzdGlvbi50b2tlbnMsIHNlc3Npb24uc2VsZWN0ZWRUb2tlbnMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZmIgPVxuICAgICAgZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgJiYgbm9ybWFsaXplZFF1ZXN0aW9uLmZlZWRiYWNrRW5hYmxlZFxuICAgICAgICA/IGdldEZlZWRiYWNrRm9yQ29ycmVjdG5lc3MoY29ycmVjdG5lc3MsIG5vcm1hbGl6ZWRRdWVzdGlvbi5mZWVkYmFjaylcbiAgICAgICAgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcblxuICAgIGZiLnRoZW4oKGZlZWRiYWNrKSA9PiB7XG4gICAgICBjb25zdCBvdXQgPSB7XG4gICAgICAgIHRva2VucyxcbiAgICAgICAgaGlnaGxpZ2h0Q2hvaWNlczogbm9ybWFsaXplZFF1ZXN0aW9uLmhpZ2hsaWdodENob2ljZXMsXG4gICAgICAgIHByb21wdDogbm9ybWFsaXplZFF1ZXN0aW9uLnByb21wdEVuYWJsZWRcbiAgICAgICAgICA/IG5vcm1hbGl6ZWRRdWVzdGlvbi5wcm9tcHRcbiAgICAgICAgICA6IG51bGwsXG4gICAgICAgIHRleHQ6IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZXh0LFxuICAgICAgICBkaXNhYmxlZDogZW52Lm1vZGUgIT09ICdnYXRoZXInLFxuICAgICAgICBtYXhTZWxlY3Rpb25zOiBub3JtYWxpemVkUXVlc3Rpb24ubWF4U2VsZWN0aW9ucyxcbiAgICAgICAgY29ycmVjdG5lc3MsXG4gICAgICAgIGZlZWRiYWNrLFxuICAgICAgICBpbmNvcnJlY3Q6XG4gICAgICAgICAgZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBjb3JyZWN0bmVzcyAhPT0gJ2NvcnJlY3QnIDogdW5kZWZpbmVkLFxuICAgICAgfTtcblxuICAgICAgaWYgKFxuICAgICAgICBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InICYmXG4gICAgICAgIChlbnYubW9kZSA9PT0gJ3ZpZXcnIHx8IGVudi5tb2RlID09PSAnZXZhbHVhdGUnKVxuICAgICAgKSB7XG4gICAgICAgIG91dC5yYXRpb25hbGUgPSBub3JtYWxpemVkUXVlc3Rpb24ucmF0aW9uYWxlRW5hYmxlZFxuICAgICAgICAgID8gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgb3V0LnRlYWNoZXJJbnN0cnVjdGlvbnMgPSBub3JtYWxpemVkUXVlc3Rpb24udGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWRcbiAgICAgICAgICA/IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0LnJhdGlvbmFsZSA9IG51bGw7XG4gICAgICAgIG91dC50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmVzb2x2ZShvdXQpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uID0gKHF1ZXN0aW9uLCBlbnYpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKGVudi5tb2RlICE9PSAnZXZhbHVhdGUnICYmIGVudi5yb2xlID09PSAnaW5zdHJ1Y3RvcicpIHtcbiAgICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBxdWVzdGlvbjtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVG9rZW5zID0gdG9rZW5zLmZpbHRlcigodCkgPT4gdC5jb3JyZWN0KTtcblxuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIHNlbGVjdGVkVG9rZW5zLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZSA9IChtb2RlbCA9IHt9LCBjb25maWcgPSB7fSkgPT4ge1xuICBjb25zdCB7IHRva2VucyB9ID0gbW9kZWw7XG4gIGNvbnN0IHsgbWluVG9rZW5zID0gMiwgbWF4VG9rZW5zLCBtYXhTZWxlY3Rpb25zIH0gPSBjb25maWc7XG4gIGNvbnN0IGVycm9ycyA9IHt9O1xuICBjb25zdCBuYk9mVG9rZW5zID0gKHRva2VucyB8fCBbXSkubGVuZ3RoO1xuXG4gIGNvbnN0IG5iT2ZTZWxlY3Rpb25zID0gKHRva2VucyB8fCBbXSkucmVkdWNlKChhY2MsIHRva2VuKSA9PiB0b2tlbi5jb3JyZWN0ID8gYWNjICsgMSA6IGFjYywgMCk7XG5cbiAgaWYgKG5iT2ZUb2tlbnMgPCBtaW5Ub2tlbnMpIHtcbiAgICBlcnJvcnMudG9rZW5zRXJyb3IgPSBgVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0ICR7bWluVG9rZW5zfSB0b2tlbnMgZGVmaW5lZC5gO1xuICB9IGVsc2UgaWYgKG5iT2ZUb2tlbnMgPiBtYXhUb2tlbnMpIHtcbiAgICBlcnJvcnMudG9rZW5zRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4VG9rZW5zfSB0b2tlbnMgc2hvdWxkIGJlIGRlZmluZWQuYDtcbiAgfVxuXG4gIGlmIChuYk9mU2VsZWN0aW9ucyA8IDEpIHtcbiAgICBlcnJvcnMuc2VsZWN0aW9uc0Vycm9yID0gJ1RoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCAxIHRva2VuIHNlbGVjdGVkLic7XG4gIH0gZWxzZSBpZiAobmJPZlNlbGVjdGlvbnMgPiBtYXhTZWxlY3Rpb25zKSB7XG4gICAgZXJyb3JzLnNlbGVjdGlvbnNFcnJvciA9IGBObyBtb3JlIHRoYW4gJHttYXhTZWxlY3Rpb25zfSB0b2tlbnMgc2hvdWxkIGJlIHNlbGVjdGVkLmA7XG4gIH1cblxuICByZXR1cm4gZXJyb3JzO1xufTtcbiJdfQ==
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJidWlsZFRva2VucyIsInRva2VucyIsImV2YWx1YXRlTW9kZSIsIm1hcCIsInQiLCJPYmplY3QiLCJhc3NpZ24iLCJjb3JyZWN0IiwidW5kZWZpbmVkIiwiZ2V0Q29ycmVjdG5lc3MiLCJzZWxlY3RlZCIsImZpbHRlciIsImxlbmd0aCIsImNvcnJlY3RTZWxlY3RlZCIsImdldENvcnJlY3RTZWxlY3RlZCIsInMiLCJpbmRleCIsImZpbmRJbmRleCIsImMiLCJzdGFydCIsImVuZCIsIm9sZFN0YXJ0Iiwib2xkRW5kIiwiZ2V0Q29ycmVjdENvdW50IiwiZ2V0UGFydGlhbFNjb3JlIiwicXVlc3Rpb24iLCJzZXNzaW9uIiwidG90YWxDb3JyZWN0IiwiY29ycmVjdENvdW50Iiwic2VsZWN0ZWRUb2tlbnMiLCJjb3JyZWN0VG9rZW5zIiwiZXh0cmFTZWxlY3RlZCIsImluY29ycmVjdENvdW50IiwiY291bnQiLCJwb3NpdGl2ZUNvdW50IiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJvdXRjb21lIiwiZW52IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzY29yZSIsImVtcHR5Iiwibm9ybWFsaXplU2Vzc2lvbiIsIm1vZGUiLCJjb21wbGV0ZWQiLCJlbmFibGVkIiwicGFydGlhbFNjb3JpbmciLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJtb2RlbCIsImRlZmF1bHRzIiwibm9ybWFsaXplIiwiZmVlZGJhY2tFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInByb21wdEVuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwic2VsZWN0ZWRUb2tlbiIsIm5vcm1hbGl6ZWRRdWVzdGlvbiIsImNvcnJlY3RuZXNzIiwiZmIiLCJmZWVkYmFjayIsInRoZW4iLCJvdXQiLCJoaWdobGlnaHRDaG9pY2VzIiwicHJvbXB0IiwidGV4dCIsImRpc2FibGVkIiwibWF4U2VsZWN0aW9ucyIsImluY29ycmVjdCIsInJvbGUiLCJyYXRpb25hbGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiIsImlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxxQ0FBTixDQUFaOztBQUVBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLE1BQUQsRUFBU0MsWUFBVCxFQUEwQjtBQUM1Q0QsRUFBQUEsTUFBTSxHQUFHQSxNQUFNLElBQUksRUFBbkI7QUFFQSxTQUFPQSxNQUFNLENBQUNFLEdBQVAsQ0FBVyxVQUFDQyxDQUFEO0FBQUEsV0FDaEJDLE1BQU0sQ0FBQ0MsTUFBUCxDQUNFLEVBREYsRUFFRUYsQ0FGRixFQUdFRixZQUFZLEdBQUc7QUFBRUssTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQ0gsQ0FBQyxDQUFDRztBQUFmLEtBQUgsR0FBOEI7QUFBRUEsTUFBQUEsT0FBTyxFQUFFQztBQUFYLEtBSDVDLENBRGdCO0FBQUEsR0FBWCxDQUFQO0FBT0QsQ0FWRDs7QUFZTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNSLE1BQUQsRUFBU1MsUUFBVCxFQUFzQjtBQUNsRCxNQUFNSCxPQUFPLEdBQUdOLE1BQU0sQ0FBQ1UsTUFBUCxDQUFjLFVBQUNQLENBQUQ7QUFBQSxXQUFPQSxDQUFDLENBQUNHLE9BQUYsS0FBYyxJQUFyQjtBQUFBLEdBQWQsQ0FBaEI7O0FBRUEsTUFBSUEsT0FBTyxDQUFDSyxNQUFSLEtBQW1CLENBQXZCLEVBQTBCO0FBQ3hCLFdBQU8sU0FBUDtBQUNEOztBQUVELE1BQU1DLGVBQWUsR0FBR0Msa0JBQWtCLENBQUNiLE1BQUQsRUFBU1MsUUFBVCxDQUExQzs7QUFFQSxNQUFJRyxlQUFlLENBQUNELE1BQWhCLEtBQTJCRixRQUFRLENBQUNFLE1BQXhDLEVBQWdEO0FBQzlDLFFB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QUFhRCxDQWRNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7IGdldEZlZWRiYWNrRm9yQ29ycmVjdG5lc3MgfSBmcm9tICdAcGllLWxpYi9mZWVkYmFjayc7XG5pbXBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9IGZyb20gJ0BwaWUtbGliL2NvbnRyb2xsZXItdXRpbHMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1lbGVtZW50OnNlbGVjdC10ZXh0OmNvbnRyb2xsZXInKTtcblxuY29uc3QgYnVpbGRUb2tlbnMgPSAodG9rZW5zLCBldmFsdWF0ZU1vZGUpID0+IHtcbiAgdG9rZW5zID0gdG9rZW5zIHx8IFtdO1xuXG4gIHJldHVybiB0b2tlbnMubWFwKCh0KSA9PlxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHQsXG4gICAgICBldmFsdWF0ZU1vZGUgPyB7IGNvcnJlY3Q6ICEhdC5jb3JyZWN0IH0gOiB7IGNvcnJlY3Q6IHVuZGVmaW5lZCB9XG4gICAgKVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RuZXNzID0gKHRva2Vucywgc2VsZWN0ZWQpID0+IHtcbiAgY29uc3QgY29ycmVjdCA9IHRva2Vucy5maWx0ZXIoKHQpID0+IHQuY29ycmVjdCA9PT0gdHJ1ZSk7XG5cbiAgaWYgKGNvcnJlY3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxuXG4gIGNvbnN0IGNvcnJlY3RTZWxlY3RlZCA9IGdldENvcnJlY3RTZWxlY3RlZCh0b2tlbnMsIHNlbGVjdGVkKTtcblxuICBpZiAoY29ycmVjdFNlbGVjdGVkLmxlbmd0aCA9PT0gc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgaWYgKGNvcnJlY3RTZWxlY3RlZC5sZW5ndGggPT09IGNvcnJlY3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NvcnJlY3QnO1xuICAgIH0gZWxzZSBpZiAoY29ycmVjdFNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAncGFydGlhbGx5LWNvcnJlY3QnO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjb3JyZWN0U2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiAncGFydGlhbGx5LWNvcnJlY3QnO1xuICB9XG5cbiAgcmV0dXJuICdpbmNvcnJlY3QnO1xufTtcblxuY29uc3QgZ2V0Q29ycmVjdFNlbGVjdGVkID0gKHRva2Vucywgc2VsZWN0ZWQpID0+IHtcbiAgcmV0dXJuIChzZWxlY3RlZCB8fCBbXSkuZmlsdGVyKChzKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSB0b2tlbnMuZmluZEluZGV4KChjKSA9PiB7XG4gICAgICByZXR1cm4gYy5jb3JyZWN0ICYmXG4gICAgICAgIChcbiAgICAgICAgICAoYy5zdGFydCA9PT0gcy5zdGFydCAmJiBjLmVuZCA9PT0gcy5lbmQpIHx8XG4gICAgICAgICAgLy8gdGhpcyBjYXNlIGlzIHVzZWQgZm9yIHRoZSBjYXNlcyB3aGVuIHRoZSB0b2tlbidzIHN0YXJ0ICYgZW5kIHdlcmUgcmVjYWxjdWxhdGVkXG4gICAgICAgICAgKGMuc3RhcnQgPT09IHMub2xkU3RhcnQgJiYgYy5lbmQgPT09IHMub2xkRW5kKVxuICAgICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gIH0pO1xufTtcblxuY29uc3QgZ2V0Q29ycmVjdENvdW50ID0gKHRva2Vucywgc2VsZWN0ZWQpID0+XG4gIGdldENvcnJlY3RTZWxlY3RlZCh0b2tlbnMsIHNlbGVjdGVkKS5sZW5ndGg7XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJ0aWFsU2NvcmUgPSAocXVlc3Rpb24sIHNlc3Npb24sIHRvdGFsQ29ycmVjdCkgPT4ge1xuICBpZiAoIXNlc3Npb24gfHwgaXNFbXB0eShzZXNzaW9uKSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3QgY29ycmVjdENvdW50ID0gZ2V0Q29ycmVjdENvdW50KHF1ZXN0aW9uLnRva2Vucywgc2Vzc2lvbi5zZWxlY3RlZFRva2Vucyk7XG4gIGNvbnN0IGNvcnJlY3RUb2tlbnMgPSAocXVlc3Rpb24udG9rZW5zIHx8IFtdKS5maWx0ZXIoKHQpID0+IHQuY29ycmVjdCA9PT0gdHJ1ZSk7XG4gIGNvbnN0IGV4dHJhU2VsZWN0ZWQgPSBzZXNzaW9uLnNlbGVjdGVkVG9rZW5zID8gc2Vzc2lvbi5zZWxlY3RlZFRva2Vucy5sZW5ndGggPiBjb3JyZWN0VG9rZW5zLmxlbmd0aCA6IDA7XG4gIGNvbnN0IGluY29ycmVjdENvdW50ID0gZXh0cmFTZWxlY3RlZCA/IHNlc3Npb24uc2VsZWN0ZWRUb2tlbnMgJiYgc2Vzc2lvbi5zZWxlY3RlZFRva2Vucy5sZW5ndGggLSBjb3JyZWN0Q291bnQgOiAwO1xuICBjb25zdCBjb3VudCA9IGNvcnJlY3RDb3VudCAtIGluY29ycmVjdENvdW50O1xuICBjb25zdCBwb3NpdGl2ZUNvdW50ID0gY291bnQgPCAwID8gMCA6IGNvdW50O1xuXG4gIHJldHVybiB0b3RhbENvcnJlY3QubGVuZ3RoXG4gICAgPyBwYXJzZUZsb2F0KChwb3NpdGl2ZUNvdW50IC8gdG90YWxDb3JyZWN0Lmxlbmd0aCkudG9GaXhlZCgyKSlcbiAgICA6IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgb3V0Y29tZSA9IChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52KSA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmICghc2Vzc2lvbiB8fCBpc0VtcHR5KHNlc3Npb24pKSB7XG4gICAgICByZXNvbHZlKHsgc2NvcmU6IDAsIGVtcHR5OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHNlc3Npb24gPSBub3JtYWxpemVTZXNzaW9uKHNlc3Npb24pO1xuXG4gICAgaWYgKGVudi5tb2RlICE9PSAnZXZhbHVhdGUnKSB7XG4gICAgICByZXNvbHZlKHsgc2NvcmU6IHVuZGVmaW5lZCwgY29tcGxldGVkOiB1bmRlZmluZWQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVuYWJsZWQgPSBwYXJ0aWFsU2NvcmluZy5lbmFibGVkKHF1ZXN0aW9uLCBlbnYsIHRydWUpO1xuICAgICAgY29uc3QgdG90YWxDb3JyZWN0ID0gcXVlc3Rpb24udG9rZW5zLmZpbHRlcigodCkgPT4gdC5jb3JyZWN0KTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0UGFydGlhbFNjb3JlKHF1ZXN0aW9uLCBzZXNzaW9uLCB0b3RhbENvcnJlY3QpO1xuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIHNjb3JlOiBlbmFibGVkID8gc2NvcmUgOiBzY29yZSA9PT0gMSA/IDEgOiAwLFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRNb2RlbChtb2RlbCA9IHt9KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJlc29sdmUoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5tb2RlbCxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTZXNzaW9uID0gKHMpID0+ICh7XG4gIHNlbGVjdGVkVG9rZW5zOiBbXSxcbiAgLi4ucyxcbn0pO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiAoe1xuICBmZWVkYmFja0VuYWJsZWQ6IHRydWUsXG4gIHJhdGlvbmFsZUVuYWJsZWQ6IHRydWUsXG4gIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgLi4ucXVlc3Rpb24sXG59KTtcblxuZXhwb3J0IGNvbnN0IG1vZGVsID0gKHF1ZXN0aW9uLCBzZXNzaW9uLCBlbnYpID0+IHtcbiAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgeyBzZWxlY3RlZFRva2VuOiBbXSB9O1xuICBzZXNzaW9uLnNlbGVjdGVkVG9rZW5zID0gc2Vzc2lvbi5zZWxlY3RlZFRva2VucyB8fCBbXTtcbiAgY29uc3Qgbm9ybWFsaXplZFF1ZXN0aW9uID0gbm9ybWFsaXplKHF1ZXN0aW9uKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgbG9nKCdbbW9kZWxdJywgJ25vcm1hbGl6ZWRRdWVzdGlvbjogJywgbm9ybWFsaXplZFF1ZXN0aW9uKTtcbiAgICBsb2coJ1ttb2RlbF0nLCAnc2Vzc2lvbjogJywgc2Vzc2lvbik7XG4gICAgY29uc3QgdG9rZW5zID0gYnVpbGRUb2tlbnMoXG4gICAgICBub3JtYWxpemVkUXVlc3Rpb24udG9rZW5zLFxuICAgICAgZW52Lm1vZGUgPT09ICdldmFsdWF0ZSdcbiAgICApO1xuICAgIGxvZygndG9rZW5zOicsIHRva2Vucyk7XG4gICAgY29uc3QgY29ycmVjdG5lc3MgPVxuICAgICAgZW52Lm1vZGUgPT09ICdldmFsdWF0ZSdcbiAgICAgICAgPyBnZXRDb3JyZWN0bmVzcyhub3JtYWxpemVkUXVlc3Rpb24udG9rZW5zLCBzZXNzaW9uLnNlbGVjdGVkVG9rZW5zKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZiID1cbiAgICAgIGVudi5tb2RlID09PSAnZXZhbHVhdGUnICYmIG5vcm1hbGl6ZWRRdWVzdGlvbi5mZWVkYmFja0VuYWJsZWRcbiAgICAgICAgPyBnZXRGZWVkYmFja0ZvckNvcnJlY3RuZXNzKGNvcnJlY3RuZXNzLCBub3JtYWxpemVkUXVlc3Rpb24uZmVlZGJhY2spXG4gICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG5cbiAgICBmYi50aGVuKChmZWVkYmFjaykgPT4ge1xuICAgICAgY29uc3Qgb3V0ID0ge1xuICAgICAgICB0b2tlbnMsXG4gICAgICAgIGhpZ2hsaWdodENob2ljZXM6IG5vcm1hbGl6ZWRRdWVzdGlvbi5oaWdobGlnaHRDaG9pY2VzLFxuICAgICAgICBwcm9tcHQ6IG5vcm1hbGl6ZWRRdWVzdGlvbi5wcm9tcHRFbmFibGVkXG4gICAgICAgICAgPyBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0XG4gICAgICAgICAgOiBudWxsLFxuICAgICAgICB0ZXh0OiBub3JtYWxpemVkUXVlc3Rpb24udGV4dCxcbiAgICAgICAgZGlzYWJsZWQ6IGVudi5tb2RlICE9PSAnZ2F0aGVyJyxcbiAgICAgICAgbWF4U2VsZWN0aW9uczogbm9ybWFsaXplZFF1ZXN0aW9uLm1heFNlbGVjdGlvbnMsXG4gICAgICAgIGNvcnJlY3RuZXNzLFxuICAgICAgICBmZWVkYmFjayxcbiAgICAgICAgaW5jb3JyZWN0OlxuICAgICAgICAgIGVudi5tb2RlID09PSAnZXZhbHVhdGUnID8gY29ycmVjdG5lc3MgIT09ICdjb3JyZWN0JyA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIGlmIChcbiAgICAgICAgZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJyAmJlxuICAgICAgICAoZW52Lm1vZGUgPT09ICd2aWV3JyB8fCBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJylcbiAgICAgICkge1xuICAgICAgICBvdXQucmF0aW9uYWxlID0gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZUVuYWJsZWRcbiAgICAgICAgICA/IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGVcbiAgICAgICAgICA6IG51bGw7XG4gICAgICAgIG91dC50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkXG4gICAgICAgICAgPyBub3JtYWxpemVkUXVlc3Rpb24udGVhY2hlckluc3RydWN0aW9uc1xuICAgICAgICAgIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dC5yYXRpb25hbGUgPSBudWxsO1xuICAgICAgICBvdXQudGVhY2hlckluc3RydWN0aW9ucyA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJlc29sdmUob3V0KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiA9IChxdWVzdGlvbiwgZW52KSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChlbnYubW9kZSAhPT0gJ2V2YWx1YXRlJyAmJiBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InKSB7XG4gICAgICBjb25zdCB7IHRva2VucyB9ID0gcXVlc3Rpb247XG4gICAgICBjb25zdCBzZWxlY3RlZFRva2VucyA9IHRva2Vucy5maWx0ZXIoKHQpID0+IHQuY29ycmVjdCk7XG5cbiAgICAgIHJlc29sdmUoe1xuICAgICAgICBpZDogJzEnLFxuICAgICAgICBzZWxlY3RlZFRva2VucyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgfSk7XG59O1xuIl19
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/select-text-controller",
3
3
  "private": true,
4
- "version": "4.1.27",
4
+ "version": "4.1.31",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
package/lib/index.js CHANGED
@@ -60,6 +60,9 @@ var SelectText = /*#__PURE__*/function (_HTMLElement) {
60
60
  }
61
61
  }, {
62
62
  key: "session",
63
+ get: function get() {
64
+ return this._session;
65
+ },
63
66
  set: function set(s) {
64
67
  this._session = s;
65
68
 
@@ -138,4 +141,4 @@ var SelectText = /*#__PURE__*/function (_HTMLElement) {
138
141
  }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
139
142
 
140
143
  exports["default"] = SelectText;
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTZWxlY3RUZXh0IiwibSIsIl9tb2RlbCIsInJlbmRlciIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFNldEV2ZW50IiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiaXNTZXNzaW9uQ29tcGxldGUiLCJ1bmRlZmluZWQiLCJzIiwiX3Nlc3Npb24iLCJnZW5lcmF0ZWRNb2RlbCIsInRva2VucyIsImFyZUNvcnJlY3QiLCJzZWxlY3RlZFRva2VucyIsImZpbHRlciIsInN0YXJ0IiwiZW5kIiwiZmluZCIsInRTdGFydCIsInRFbmQiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJzZWxlY3Rpb24iLCJTZXNzaW9uQ2hhbmdlZEV2ZW50IiwiZWwiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwibW9kZWwiLCJzZXNzaW9uIiwib25TZWxlY3Rpb25DaGFuZ2UiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiYmluZCIsIlJlYWN0RE9NIiwiSFRNTEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFFcUJBLFU7Ozs7O0FBQ25CLHdCQUFjO0FBQUE7QUFBQTtBQUViOzs7O1NBRUQsYUFBVUMsQ0FBVixFQUFhO0FBQ1gsV0FBS0MsTUFBTCxHQUFjRCxDQUFkO0FBRUEsV0FBS0UsTUFBTDtBQUNBLFdBQUtDLGFBQUwsQ0FDRSxJQUFJQyw4QkFBSixDQUNFLEtBQUtDLE9BQUwsQ0FBYUMsV0FBYixFQURGLEVBRUUsS0FBS0MsaUJBQUwsRUFGRixFQUdFLEtBQUtOLE1BQUwsS0FBZ0JPLFNBSGxCLENBREY7QUFPRDs7O1NBRUQsYUFBWUMsQ0FBWixFQUFlO0FBQ2IsV0FBS0MsUUFBTCxHQUFnQkQsQ0FBaEI7O0FBRUEsVUFBSSxLQUFLUixNQUFULEVBQWlCO0FBQ2YsWUFBTVUsY0FBYyxHQUFHLHVCQUFjLEtBQUtWLE1BQW5CLEtBQThCLEVBQXJEO0FBQ0EsWUFBUVcsTUFBUixHQUFtQkQsY0FBbkIsQ0FBUUMsTUFBUixDQUZlLENBSWY7QUFFQTs7QUFDQSxZQUFNQyxVQUFVLEdBQUcsQ0FBQ0osQ0FBQyxDQUFDSyxjQUFGLElBQW9CLEVBQXJCLEVBQXlCQyxNQUF6QixDQUFnQztBQUFBLGNBQUdDLEtBQUgsUUFBR0EsS0FBSDtBQUFBLGNBQVVDLEdBQVYsUUFBVUEsR0FBVjtBQUFBLGlCQUFvQkwsTUFBTSxDQUFDTSxJQUFQLENBQVk7QUFBQSxnQkFBVUMsTUFBVixTQUFHSCxLQUFIO0FBQUEsZ0JBQXVCSSxJQUF2QixTQUFrQkgsR0FBbEI7QUFBQSxtQkFBa0NELEtBQUssS0FBS0csTUFBVixJQUFvQkYsR0FBRyxLQUFLRyxJQUE5RDtBQUFBLFdBQVosQ0FBcEI7QUFBQSxTQUFoQyxFQUFxSUMsTUFBeEo7O0FBRUEsWUFBSSxDQUFDUixVQUFMLEVBQWlCO0FBQ2YsY0FBTUYsZUFBYyxHQUFHLHVEQUFtQixLQUFLVixNQUF4QjtBQUFnQ1csWUFBQUEsTUFBTSxFQUFFSCxDQUFDLENBQUNLO0FBQTFDLGlCQUErRCxFQUF0Rjs7QUFDQSxjQUFRRixPQUFSLEdBQW1CRCxlQUFuQixDQUFRQyxNQUFSOztBQUVBLGNBQUlBLE9BQUosRUFBWTtBQUNWLGlCQUFLRixRQUFMLENBQWNJLGNBQWQsR0FBK0JGLE9BQS9CO0FBQ0Q7QUFDRjtBQUNGOztBQUdELFVBQUksQ0FBQ1UsS0FBSyxDQUFDQyxPQUFOLENBQWMsS0FBS2IsUUFBTCxDQUFjSSxjQUE1QixDQUFMLEVBQWtEO0FBQ2hELGFBQUtKLFFBQUwsQ0FBY0ksY0FBZCxHQUErQixFQUEvQjtBQUNEOztBQUNELFdBQUtaLE1BQUw7QUFDRDs7O1dBRUQsNkJBQW9CO0FBQ2xCLGtCQUEyQixLQUFLUSxRQUFMLElBQWlCLEVBQTVDO0FBQUEsVUFBUUksY0FBUixTQUFRQSxjQUFSOztBQUNBLGFBQU9RLEtBQUssQ0FBQ0MsT0FBTixDQUFjVCxjQUFkLEtBQWlDQSxjQUFjLENBQUNPLE1BQWYsR0FBd0IsQ0FBaEU7QUFDRDs7O1dBRUQsMEJBQWlCRyxTQUFqQixFQUE0QjtBQUMxQixXQUFLZCxRQUFMLENBQWNJLGNBQWQsR0FBK0JVLFNBQS9CO0FBRUEsV0FBS3JCLGFBQUwsQ0FDRSxJQUFJc0Isb0NBQUosQ0FDRSxLQUFLcEIsT0FBTCxDQUFhQyxXQUFiLEVBREYsRUFFRSxLQUFLQyxpQkFBTCxFQUZGLENBREY7QUFNRDs7O1dBRUQsNkJBQW9CO0FBQ2xCLFdBQUtMLE1BQUw7QUFDRDs7O1dBRUQsa0JBQVM7QUFBQTs7QUFDUCxVQUFJLEtBQUtELE1BQUwsSUFBZSxLQUFLUyxRQUF4QixFQUFrQztBQUNoQyxZQUFNZ0IsRUFBRSxnQkFBR0Msa0JBQU1DLGFBQU4sQ0FBb0JDLGdCQUFwQixFQUEwQjtBQUNuQ0MsVUFBQUEsS0FBSyxFQUFFLEtBQUs3QixNQUR1QjtBQUVuQzhCLFVBQUFBLE9BQU8sRUFBRSxLQUFLckIsUUFGcUI7QUFHbkNzQixVQUFBQSxpQkFBaUIsRUFBRSxLQUFLQyxnQkFBTCxDQUFzQkMsSUFBdEIsQ0FBMkIsSUFBM0I7QUFIZ0IsU0FBMUIsQ0FBWDs7QUFNQUMsNkJBQVNqQyxNQUFULENBQWdCd0IsRUFBaEIsRUFBb0IsSUFBcEIsRUFBMEIsWUFBTTtBQUM5Qix5Q0FBVyxLQUFYO0FBQ0QsU0FGRDtBQUdEO0FBQ0Y7OztrREEvRXFDVSxXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHtcbiAgU2Vzc2lvbkNoYW5nZWRFdmVudCxcbiAgTW9kZWxTZXRFdmVudFxufSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtcGxheWVyLWV2ZW50cyc7XG5pbXBvcnQgTWFpbiBmcm9tICcuL21haW4nO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCBnZW5lcmF0ZU1vZGVsIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3RUZXh0IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgc2V0IG1vZGVsKG0pIHtcbiAgICB0aGlzLl9tb2RlbCA9IG07XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBNb2RlbFNldEV2ZW50KFxuICAgICAgICB0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdGhpcy5pc1Nlc3Npb25Db21wbGV0ZSgpLFxuICAgICAgICB0aGlzLl9tb2RlbCAhPT0gdW5kZWZpbmVkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNldCBzZXNzaW9uKHMpIHtcbiAgICB0aGlzLl9zZXNzaW9uID0gcztcblxuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgY29uc3QgZ2VuZXJhdGVkTW9kZWwgPSBnZW5lcmF0ZU1vZGVsKHRoaXMuX21vZGVsKSB8fCB7fTtcbiAgICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBnZW5lcmF0ZWRNb2RlbDtcblxuICAgICAgLy8gbWFrZSBzdXJlIGluaXRpYWwgc2Vzc2lvbiB0b2tlbnMgYXJlIHBhcnNlZCBhbmQgaGF2ZSBjb3JyZWN0IHN0YXJ0IGFuZCBlbmQgKGFjY29yZGluZyB0byB0aGUgcmVnZW5lcmF0ZWQgbW9kZWwpIC0gdGhpcyBjYXNlIHdhcyBpbnRyb2R1Y2VkIG1vc3RseSBmb3IgY3JlYXRlQ29ycmVjdFNlc3Npb25cblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIHNlbGVjdGVkVG9rZW5zIGhhdmUgdGhlIGNvcnJlY3Qgc3RhcnQgYW5kIGVuZFxuICAgICAgY29uc3QgYXJlQ29ycmVjdCA9IChzLnNlbGVjdGVkVG9rZW5zIHx8IFtdKS5maWx0ZXIoKHsgc3RhcnQsIGVuZCB9KSA9PiB0b2tlbnMuZmluZCgoeyBzdGFydDogdFN0YXJ0LCBlbmQ6IHRFbmQgfSkgPT4gc3RhcnQgPT09IHRTdGFydCAmJiBlbmQgPT09IHRFbmQpKS5sZW5ndGg7XG5cbiAgICAgIGlmICghYXJlQ29ycmVjdCkge1xuICAgICAgICBjb25zdCBnZW5lcmF0ZWRNb2RlbCA9IGdlbmVyYXRlTW9kZWwoeyAuLi50aGlzLl9tb2RlbCwgdG9rZW5zOiBzLnNlbGVjdGVkVG9rZW5zIH0pIHx8IHt9O1xuICAgICAgICBjb25zdCB7IHRva2VucyB9ID0gZ2VuZXJhdGVkTW9kZWw7XG5cbiAgICAgICAgaWYgKHRva2Vucykge1xuICAgICAgICAgIHRoaXMuX3Nlc3Npb24uc2VsZWN0ZWRUb2tlbnMgPSB0b2tlbnM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zZXNzaW9uLnNlbGVjdGVkVG9rZW5zKSkge1xuICAgICAgdGhpcy5fc2Vzc2lvbi5zZWxlY3RlZFRva2VucyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgaXNTZXNzaW9uQ29tcGxldGUoKSB7XG4gICAgY29uc3QgeyBzZWxlY3RlZFRva2VucyB9ID0gdGhpcy5fc2Vzc2lvbiB8fCB7fTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWxlY3RlZFRva2VucykgJiYgc2VsZWN0ZWRUb2tlbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0aW9uKSB7XG4gICAgdGhpcy5fc2Vzc2lvbi5zZWxlY3RlZFRva2VucyA9IHNlbGVjdGlvbjtcblxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KFxuICAgICAgICB0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdGhpcy5pc1Nlc3Npb25Db21wbGV0ZSgpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX21vZGVsICYmIHRoaXMuX3Nlc3Npb24pIHtcbiAgICAgIGNvbnN0IGVsID0gUmVhY3QuY3JlYXRlRWxlbWVudChNYWluLCB7XG4gICAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgICAgc2Vzc2lvbjogdGhpcy5fc2Vzc2lvbixcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U6IHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICB9KTtcblxuICAgICAgUmVhY3RET00ucmVuZGVyKGVsLCB0aGlzLCAoKSA9PiB7XG4gICAgICAgIHJlbmRlck1hdGgodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTZWxlY3RUZXh0IiwibSIsIl9tb2RlbCIsInJlbmRlciIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFNldEV2ZW50IiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiaXNTZXNzaW9uQ29tcGxldGUiLCJ1bmRlZmluZWQiLCJfc2Vzc2lvbiIsInMiLCJnZW5lcmF0ZWRNb2RlbCIsInRva2VucyIsImFyZUNvcnJlY3QiLCJzZWxlY3RlZFRva2VucyIsImZpbHRlciIsInN0YXJ0IiwiZW5kIiwiZmluZCIsInRTdGFydCIsInRFbmQiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJzZWxlY3Rpb24iLCJTZXNzaW9uQ2hhbmdlZEV2ZW50IiwiZWwiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwibW9kZWwiLCJzZXNzaW9uIiwib25TZWxlY3Rpb25DaGFuZ2UiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiYmluZCIsIlJlYWN0RE9NIiwiSFRNTEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFFcUJBLFU7Ozs7O0FBQ25CLHdCQUFjO0FBQUE7QUFBQTtBQUViOzs7O1NBRUQsYUFBVUMsQ0FBVixFQUFhO0FBQ1gsV0FBS0MsTUFBTCxHQUFjRCxDQUFkO0FBRUEsV0FBS0UsTUFBTDtBQUNBLFdBQUtDLGFBQUwsQ0FDRSxJQUFJQyw4QkFBSixDQUNFLEtBQUtDLE9BQUwsQ0FBYUMsV0FBYixFQURGLEVBRUUsS0FBS0MsaUJBQUwsRUFGRixFQUdFLEtBQUtOLE1BQUwsS0FBZ0JPLFNBSGxCLENBREY7QUFPRDs7O1NBK0JELGVBQWM7QUFDWixhQUFPLEtBQUtDLFFBQVo7QUFDRCxLO1NBL0JELGFBQVlDLENBQVosRUFBZTtBQUNiLFdBQUtELFFBQUwsR0FBZ0JDLENBQWhCOztBQUVBLFVBQUksS0FBS1QsTUFBVCxFQUFpQjtBQUNmLFlBQU1VLGNBQWMsR0FBRyx1QkFBYyxLQUFLVixNQUFuQixLQUE4QixFQUFyRDtBQUNBLFlBQVFXLE1BQVIsR0FBbUJELGNBQW5CLENBQVFDLE1BQVIsQ0FGZSxDQUlmO0FBRUE7O0FBQ0EsWUFBTUMsVUFBVSxHQUFHLENBQUNILENBQUMsQ0FBQ0ksY0FBRixJQUFvQixFQUFyQixFQUF5QkMsTUFBekIsQ0FBZ0M7QUFBQSxjQUFHQyxLQUFILFFBQUdBLEtBQUg7QUFBQSxjQUFVQyxHQUFWLFFBQVVBLEdBQVY7QUFBQSxpQkFBb0JMLE1BQU0sQ0FBQ00sSUFBUCxDQUFZO0FBQUEsZ0JBQVVDLE1BQVYsU0FBR0gsS0FBSDtBQUFBLGdCQUF1QkksSUFBdkIsU0FBa0JILEdBQWxCO0FBQUEsbUJBQWtDRCxLQUFLLEtBQUtHLE1BQVYsSUFBb0JGLEdBQUcsS0FBS0csSUFBOUQ7QUFBQSxXQUFaLENBQXBCO0FBQUEsU0FBaEMsRUFBcUlDLE1BQXhKOztBQUVBLFlBQUksQ0FBQ1IsVUFBTCxFQUFpQjtBQUNmLGNBQU1GLGVBQWMsR0FBRyx1REFBbUIsS0FBS1YsTUFBeEI7QUFBZ0NXLFlBQUFBLE1BQU0sRUFBRUYsQ0FBQyxDQUFDSTtBQUExQyxpQkFBK0QsRUFBdEY7O0FBQ0EsY0FBUUYsT0FBUixHQUFtQkQsZUFBbkIsQ0FBUUMsTUFBUjs7QUFFQSxjQUFJQSxPQUFKLEVBQVk7QUFDVixpQkFBS0gsUUFBTCxDQUFjSyxjQUFkLEdBQStCRixPQUEvQjtBQUNEO0FBQ0Y7QUFDRjs7QUFHRCxVQUFJLENBQUNVLEtBQUssQ0FBQ0MsT0FBTixDQUFjLEtBQUtkLFFBQUwsQ0FBY0ssY0FBNUIsQ0FBTCxFQUFrRDtBQUNoRCxhQUFLTCxRQUFMLENBQWNLLGNBQWQsR0FBK0IsRUFBL0I7QUFDRDs7QUFDRCxXQUFLWixNQUFMO0FBQ0Q7OztXQU1ELDZCQUFvQjtBQUNsQixrQkFBMkIsS0FBS08sUUFBTCxJQUFpQixFQUE1QztBQUFBLFVBQVFLLGNBQVIsU0FBUUEsY0FBUjs7QUFDQSxhQUFPUSxLQUFLLENBQUNDLE9BQU4sQ0FBY1QsY0FBZCxLQUFpQ0EsY0FBYyxDQUFDTyxNQUFmLEdBQXdCLENBQWhFO0FBQ0Q7OztXQUVELDBCQUFpQkcsU0FBakIsRUFBNEI7QUFDMUIsV0FBS2YsUUFBTCxDQUFjSyxjQUFkLEdBQStCVSxTQUEvQjtBQUVBLFdBQUtyQixhQUFMLENBQ0UsSUFBSXNCLG9DQUFKLENBQ0UsS0FBS3BCLE9BQUwsQ0FBYUMsV0FBYixFQURGLEVBRUUsS0FBS0MsaUJBQUwsRUFGRixDQURGO0FBTUQ7OztXQUVELDZCQUFvQjtBQUNsQixXQUFLTCxNQUFMO0FBQ0Q7OztXQUVELGtCQUFTO0FBQUE7O0FBQ1AsVUFBSSxLQUFLRCxNQUFMLElBQWUsS0FBS1EsUUFBeEIsRUFBa0M7QUFDaEMsWUFBTWlCLEVBQUUsZ0JBQUdDLGtCQUFNQyxhQUFOLENBQW9CQyxnQkFBcEIsRUFBMEI7QUFDbkNDLFVBQUFBLEtBQUssRUFBRSxLQUFLN0IsTUFEdUI7QUFFbkM4QixVQUFBQSxPQUFPLEVBQUUsS0FBS3RCLFFBRnFCO0FBR25DdUIsVUFBQUEsaUJBQWlCLEVBQUUsS0FBS0MsZ0JBQUwsQ0FBc0JDLElBQXRCLENBQTJCLElBQTNCO0FBSGdCLFNBQTFCLENBQVg7O0FBTUFDLDZCQUFTakMsTUFBVCxDQUFnQndCLEVBQWhCLEVBQW9CLElBQXBCLEVBQTBCLFlBQU07QUFDOUIseUNBQVcsS0FBWDtBQUNELFNBRkQ7QUFHRDtBQUNGOzs7a0RBbkZxQ1UsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7XG4gIFNlc3Npb25DaGFuZ2VkRXZlbnQsXG4gIE1vZGVsU2V0RXZlbnRcbn0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLXBsYXllci1ldmVudHMnO1xuaW1wb3J0IE1haW4gZnJvbSAnLi9tYWluJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgZ2VuZXJhdGVNb2RlbCBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0VGV4dCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNldCBtb2RlbChtKSB7XG4gICAgdGhpcy5fbW9kZWwgPSBtO1xuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgTW9kZWxTZXRFdmVudChcbiAgICAgICAgdGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIHRoaXMuaXNTZXNzaW9uQ29tcGxldGUoKSxcbiAgICAgICAgdGhpcy5fbW9kZWwgIT09IHVuZGVmaW5lZFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBzZXQgc2Vzc2lvbihzKSB7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IHM7XG5cbiAgICBpZiAodGhpcy5fbW9kZWwpIHtcbiAgICAgIGNvbnN0IGdlbmVyYXRlZE1vZGVsID0gZ2VuZXJhdGVNb2RlbCh0aGlzLl9tb2RlbCkgfHwge307XG4gICAgICBjb25zdCB7IHRva2VucyB9ID0gZ2VuZXJhdGVkTW9kZWw7XG5cbiAgICAgIC8vIG1ha2Ugc3VyZSBpbml0aWFsIHNlc3Npb24gdG9rZW5zIGFyZSBwYXJzZWQgYW5kIGhhdmUgY29ycmVjdCBzdGFydCBhbmQgZW5kIChhY2NvcmRpbmcgdG8gdGhlIHJlZ2VuZXJhdGVkIG1vZGVsKSAtIHRoaXMgY2FzZSB3YXMgaW50cm9kdWNlZCBtb3N0bHkgZm9yIGNyZWF0ZUNvcnJlY3RTZXNzaW9uXG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBzZWxlY3RlZFRva2VucyBoYXZlIHRoZSBjb3JyZWN0IHN0YXJ0IGFuZCBlbmRcbiAgICAgIGNvbnN0IGFyZUNvcnJlY3QgPSAocy5zZWxlY3RlZFRva2VucyB8fCBbXSkuZmlsdGVyKCh7IHN0YXJ0LCBlbmQgfSkgPT4gdG9rZW5zLmZpbmQoKHsgc3RhcnQ6IHRTdGFydCwgZW5kOiB0RW5kIH0pID0+IHN0YXJ0ID09PSB0U3RhcnQgJiYgZW5kID09PSB0RW5kKSkubGVuZ3RoO1xuXG4gICAgICBpZiAoIWFyZUNvcnJlY3QpIHtcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVkTW9kZWwgPSBnZW5lcmF0ZU1vZGVsKHsgLi4udGhpcy5fbW9kZWwsIHRva2Vuczogcy5zZWxlY3RlZFRva2VucyB9KSB8fCB7fTtcbiAgICAgICAgY29uc3QgeyB0b2tlbnMgfSA9IGdlbmVyYXRlZE1vZGVsO1xuXG4gICAgICAgIGlmICh0b2tlbnMpIHtcbiAgICAgICAgICB0aGlzLl9zZXNzaW9uLnNlbGVjdGVkVG9rZW5zID0gdG9rZW5zO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc2Vzc2lvbi5zZWxlY3RlZFRva2VucykpIHtcbiAgICAgIHRoaXMuX3Nlc3Npb24uc2VsZWN0ZWRUb2tlbnMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIGdldCBzZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXNzaW9uO1xuICB9XG5cbiAgaXNTZXNzaW9uQ29tcGxldGUoKSB7XG4gICAgY29uc3QgeyBzZWxlY3RlZFRva2VucyB9ID0gdGhpcy5fc2Vzc2lvbiB8fCB7fTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWxlY3RlZFRva2VucykgJiYgc2VsZWN0ZWRUb2tlbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0aW9uKSB7XG4gICAgdGhpcy5fc2Vzc2lvbi5zZWxlY3RlZFRva2VucyA9IHNlbGVjdGlvbjtcblxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KFxuICAgICAgICB0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdGhpcy5pc1Nlc3Npb25Db21wbGV0ZSgpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX21vZGVsICYmIHRoaXMuX3Nlc3Npb24pIHtcbiAgICAgIGNvbnN0IGVsID0gUmVhY3QuY3JlYXRlRWxlbWVudChNYWluLCB7XG4gICAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgICAgc2Vzc2lvbjogdGhpcy5fc2Vzc2lvbixcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U6IHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICB9KTtcblxuICAgICAgUmVhY3RET00ucmVuZGVyKGVsLCB0aGlzLCAoKSA9PiB7XG4gICAgICAgIHJlbmRlck1hdGgodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["SelectText","m","_model","render","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isSessionComplete","undefined","s","_session","generatedModel","tokens","areCorrect","selectedTokens","filter","start","end","find","tStart","tEnd","length","Array","isArray","selection","SessionChangedEvent","el","React","createElement","Main","model","session","onSelectionChange","selectionChanged","bind","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;AACA;;AACA;;;;;;;;;;IAEqBA,U;;;;;AACnB,wBAAc;AAAA;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,MAAL;AACA,WAAKC,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,iBAAL,EAFF,EAGE,KAAKN,MAAL,KAAgBO,SAHlB,CADF;AAOD;;;SAED,aAAYC,CAAZ,EAAe;AACb,WAAKC,QAAL,GAAgBD,CAAhB;;AAEA,UAAI,KAAKR,MAAT,EAAiB;AACf,YAAMU,cAAc,GAAG,uBAAc,KAAKV,MAAnB,KAA8B,EAArD;AACA,YAAQW,MAAR,GAAmBD,cAAnB,CAAQC,MAAR,CAFe,CAIf;AAEA;;AACA,YAAMC,UAAU,GAAG,CAACJ,CAAC,CAACK,cAAF,IAAoB,EAArB,EAAyBC,MAAzB,CAAgC;AAAA,cAAGC,KAAH,QAAGA,KAAH;AAAA,cAAUC,GAAV,QAAUA,GAAV;AAAA,iBAAoBL,MAAM,CAACM,IAAP,CAAY;AAAA,gBAAUC,MAAV,SAAGH,KAAH;AAAA,gBAAuBI,IAAvB,SAAkBH,GAAlB;AAAA,mBAAkCD,KAAK,KAAKG,MAAV,IAAoBF,GAAG,KAAKG,IAA9D;AAAA,WAAZ,CAApB;AAAA,SAAhC,EAAqIC,MAAxJ;;AAEA,YAAI,CAACR,UAAL,EAAiB;AACf,cAAMF,eAAc,GAAG,uDAAmB,KAAKV,MAAxB;AAAgCW,YAAAA,MAAM,EAAEH,CAAC,CAACK;AAA1C,iBAA+D,EAAtF;;AACA,cAAQF,OAAR,GAAmBD,eAAnB,CAAQC,MAAR;;AAEA,cAAIA,OAAJ,EAAY;AACV,iBAAKF,QAAL,CAAcI,cAAd,GAA+BF,OAA/B;AACD;AACF;AACF;;AAGD,UAAI,CAACU,KAAK,CAACC,OAAN,CAAc,KAAKb,QAAL,CAAcI,cAA5B,CAAL,EAAkD;AAChD,aAAKJ,QAAL,CAAcI,cAAd,GAA+B,EAA/B;AACD;;AACD,WAAKZ,MAAL;AACD;;;WAED,6BAAoB;AAClB,kBAA2B,KAAKQ,QAAL,IAAiB,EAA5C;AAAA,UAAQI,cAAR,SAAQA,cAAR;;AACA,aAAOQ,KAAK,CAACC,OAAN,CAAcT,cAAd,KAAiCA,cAAc,CAACO,MAAf,GAAwB,CAAhE;AACD;;;WAED,0BAAiBG,SAAjB,EAA4B;AAC1B,WAAKd,QAAL,CAAcI,cAAd,GAA+BU,SAA/B;AAEA,WAAKrB,aAAL,CACE,IAAIsB,oCAAJ,CACE,KAAKpB,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,iBAAL,EAFF,CADF;AAMD;;;WAED,6BAAoB;AAClB,WAAKL,MAAL;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKD,MAAL,IAAe,KAAKS,QAAxB,EAAkC;AAChC,YAAMgB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAK7B,MADuB;AAEnC8B,UAAAA,OAAO,EAAE,KAAKrB,QAFqB;AAGnCsB,UAAAA,iBAAiB,EAAE,KAAKC,gBAAL,CAAsBC,IAAtB,CAA2B,IAA3B;AAHgB,SAA1B,CAAX;;AAMAC,6BAASjC,MAAT,CAAgBwB,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDA/EqCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n SessionChangedEvent,\n ModelSetEvent\n} from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport generateModel from './utils';\n\nexport default class SelectText extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.isSessionComplete(),\n this._model !== undefined\n )\n );\n }\n\n set session(s) {\n this._session = s;\n\n if (this._model) {\n const generatedModel = generateModel(this._model) || {};\n const { tokens } = generatedModel;\n\n // make sure initial session tokens are parsed and have correct start and end (according to the regenerated model) - this case was introduced mostly for createCorrectSession\n\n // check if the selectedTokens have the correct start and end\n const areCorrect = (s.selectedTokens || []).filter(({ start, end }) => tokens.find(({ start: tStart, end: tEnd }) => start === tStart && end === tEnd)).length;\n\n if (!areCorrect) {\n const generatedModel = generateModel({ ...this._model, tokens: s.selectedTokens }) || {};\n const { tokens } = generatedModel;\n\n if (tokens) {\n this._session.selectedTokens = tokens;\n }\n }\n }\n\n\n if (!Array.isArray(this._session.selectedTokens)) {\n this._session.selectedTokens = [];\n }\n this.render();\n }\n\n isSessionComplete() {\n const { selectedTokens } = this._session || {};\n return Array.isArray(selectedTokens) && selectedTokens.length > 0;\n }\n\n selectionChanged(selection) {\n this._session.selectedTokens = selection;\n\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n this.isSessionComplete()\n )\n );\n }\n\n connectedCallback() {\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSelectionChange: this.selectionChanged.bind(this)\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["SelectText","m","_model","render","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isSessionComplete","undefined","_session","s","generatedModel","tokens","areCorrect","selectedTokens","filter","start","end","find","tStart","tEnd","length","Array","isArray","selection","SessionChangedEvent","el","React","createElement","Main","model","session","onSelectionChange","selectionChanged","bind","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;AACA;;AACA;;;;;;;;;;IAEqBA,U;;;;;AACnB,wBAAc;AAAA;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,MAAL;AACA,WAAKC,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,iBAAL,EAFF,EAGE,KAAKN,MAAL,KAAgBO,SAHlB,CADF;AAOD;;;SA+BD,eAAc;AACZ,aAAO,KAAKC,QAAZ;AACD,K;SA/BD,aAAYC,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;;AAEA,UAAI,KAAKT,MAAT,EAAiB;AACf,YAAMU,cAAc,GAAG,uBAAc,KAAKV,MAAnB,KAA8B,EAArD;AACA,YAAQW,MAAR,GAAmBD,cAAnB,CAAQC,MAAR,CAFe,CAIf;AAEA;;AACA,YAAMC,UAAU,GAAG,CAACH,CAAC,CAACI,cAAF,IAAoB,EAArB,EAAyBC,MAAzB,CAAgC;AAAA,cAAGC,KAAH,QAAGA,KAAH;AAAA,cAAUC,GAAV,QAAUA,GAAV;AAAA,iBAAoBL,MAAM,CAACM,IAAP,CAAY;AAAA,gBAAUC,MAAV,SAAGH,KAAH;AAAA,gBAAuBI,IAAvB,SAAkBH,GAAlB;AAAA,mBAAkCD,KAAK,KAAKG,MAAV,IAAoBF,GAAG,KAAKG,IAA9D;AAAA,WAAZ,CAApB;AAAA,SAAhC,EAAqIC,MAAxJ;;AAEA,YAAI,CAACR,UAAL,EAAiB;AACf,cAAMF,eAAc,GAAG,uDAAmB,KAAKV,MAAxB;AAAgCW,YAAAA,MAAM,EAAEF,CAAC,CAACI;AAA1C,iBAA+D,EAAtF;;AACA,cAAQF,OAAR,GAAmBD,eAAnB,CAAQC,MAAR;;AAEA,cAAIA,OAAJ,EAAY;AACV,iBAAKH,QAAL,CAAcK,cAAd,GAA+BF,OAA/B;AACD;AACF;AACF;;AAGD,UAAI,CAACU,KAAK,CAACC,OAAN,CAAc,KAAKd,QAAL,CAAcK,cAA5B,CAAL,EAAkD;AAChD,aAAKL,QAAL,CAAcK,cAAd,GAA+B,EAA/B;AACD;;AACD,WAAKZ,MAAL;AACD;;;WAMD,6BAAoB;AAClB,kBAA2B,KAAKO,QAAL,IAAiB,EAA5C;AAAA,UAAQK,cAAR,SAAQA,cAAR;;AACA,aAAOQ,KAAK,CAACC,OAAN,CAAcT,cAAd,KAAiCA,cAAc,CAACO,MAAf,GAAwB,CAAhE;AACD;;;WAED,0BAAiBG,SAAjB,EAA4B;AAC1B,WAAKf,QAAL,CAAcK,cAAd,GAA+BU,SAA/B;AAEA,WAAKrB,aAAL,CACE,IAAIsB,oCAAJ,CACE,KAAKpB,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,iBAAL,EAFF,CADF;AAMD;;;WAED,6BAAoB;AAClB,WAAKL,MAAL;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKD,MAAL,IAAe,KAAKQ,QAAxB,EAAkC;AAChC,YAAMiB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAK7B,MADuB;AAEnC8B,UAAAA,OAAO,EAAE,KAAKtB,QAFqB;AAGnCuB,UAAAA,iBAAiB,EAAE,KAAKC,gBAAL,CAAsBC,IAAtB,CAA2B,IAA3B;AAHgB,SAA1B,CAAX;;AAMAC,6BAASjC,MAAT,CAAgBwB,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDAnFqCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n SessionChangedEvent,\n ModelSetEvent\n} from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport generateModel from './utils';\n\nexport default class SelectText extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.isSessionComplete(),\n this._model !== undefined\n )\n );\n }\n\n set session(s) {\n this._session = s;\n\n if (this._model) {\n const generatedModel = generateModel(this._model) || {};\n const { tokens } = generatedModel;\n\n // make sure initial session tokens are parsed and have correct start and end (according to the regenerated model) - this case was introduced mostly for createCorrectSession\n\n // check if the selectedTokens have the correct start and end\n const areCorrect = (s.selectedTokens || []).filter(({ start, end }) => tokens.find(({ start: tStart, end: tEnd }) => start === tStart && end === tEnd)).length;\n\n if (!areCorrect) {\n const generatedModel = generateModel({ ...this._model, tokens: s.selectedTokens }) || {};\n const { tokens } = generatedModel;\n\n if (tokens) {\n this._session.selectedTokens = tokens;\n }\n }\n }\n\n\n if (!Array.isArray(this._session.selectedTokens)) {\n this._session.selectedTokens = [];\n }\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n const { selectedTokens } = this._session || {};\n return Array.isArray(selectedTokens) && selectedTokens.length > 0;\n }\n\n selectionChanged(selection) {\n this._session.selectedTokens = selection;\n\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n this.isSessionComplete()\n )\n );\n }\n\n connectedCallback() {\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSelectionChange: this.selectionChanged.bind(this)\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "6.5.26-next.1",
7
+ "version": "6.5.26-next.2",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",