@pie-lib/text-select 1.12.8-next.1 → 1.14.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/__tests__/text-select.test.js +56 -0
  4. package/lib/__tests__/utils.test.js +23 -0
  5. package/lib/index.js +9 -1
  6. package/lib/legend.js +1 -1
  7. package/lib/text-select.js +1 -1
  8. package/lib/token-select/__tests__/index.test.js +268 -0
  9. package/lib/token-select/__tests__/token.test.js +35 -0
  10. package/lib/token-select/index.js +4 -3
  11. package/lib/token-select/token.js +13 -20
  12. package/lib/tokenizer/__tests__/builder.test.js +399 -0
  13. package/lib/tokenizer/__tests__/controls.test.js +34 -0
  14. package/lib/tokenizer/__tests__/index.test.js +210 -0
  15. package/lib/tokenizer/__tests__/selection-utils.test.js +27 -0
  16. package/lib/tokenizer/__tests__/token-text.test.js +154 -0
  17. package/lib/tokenizer/builder.js +1 -1
  18. package/lib/tokenizer/controls.js +15 -1
  19. package/lib/tokenizer/index.js +1 -1
  20. package/lib/tokenizer/selection-utils.js +1 -1
  21. package/lib/tokenizer/token-text.js +12 -3
  22. package/lib/utils.js +1 -1
  23. package/package.json +7 -6
  24. package/src/__tests__/__snapshots__/text-select.test.jsx.snap +21 -0
  25. package/src/__tests__/text-select.test.jsx +34 -0
  26. package/src/__tests__/utils.test.jsx +27 -0
  27. package/src/index.js +2 -1
  28. package/src/token-select/__tests__/__snapshots__/index.test.jsx.snap +49 -0
  29. package/src/token-select/__tests__/__snapshots__/token.test.jsx.snap +31 -0
  30. package/src/token-select/__tests__/index.test.jsx +257 -0
  31. package/src/token-select/__tests__/token.test.jsx +33 -0
  32. package/src/token-select/index.jsx +3 -1
  33. package/src/token-select/token.jsx +11 -20
  34. package/src/tokenizer/__tests__/__snapshots__/controls.test.jsx.snap +59 -0
  35. package/src/tokenizer/__tests__/__snapshots__/index.test.jsx.snap +31 -0
  36. package/src/tokenizer/__tests__/__snapshots__/token-text.test.jsx.snap +17 -0
  37. package/src/tokenizer/__tests__/builder.test.js +256 -0
  38. package/src/tokenizer/__tests__/controls.test.jsx +25 -0
  39. package/src/tokenizer/__tests__/index.test.jsx +140 -0
  40. package/src/tokenizer/__tests__/selection-utils.test.js +26 -0
  41. package/src/tokenizer/__tests__/token-text.test.jsx +136 -0
  42. package/src/tokenizer/controls.jsx +20 -1
  43. package/src/tokenizer/token-text.jsx +9 -0
  44. package/README.md +0 -3
  45. package/lib/index.js.map +0 -1
  46. package/lib/legend.js.map +0 -1
  47. package/lib/text-select.js.map +0 -1
  48. package/lib/token-select/index.js.map +0 -1
  49. package/lib/token-select/token.js.map +0 -1
  50. package/lib/tokenizer/builder.js.map +0 -1
  51. package/lib/tokenizer/controls.js.map +0 -1
  52. package/lib/tokenizer/index.js.map +0 -1
  53. package/lib/tokenizer/selection-utils.js.map +0 -1
  54. package/lib/tokenizer/token-text.js.map +0 -1
  55. package/lib/utils.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
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
+ # [1.14.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@1.12.7...@pie-lib/text-select@1.14.0-beta.0) (2025-07-15)
7
+
8
+ **Note:** Version bump only for package @pie-lib/text-select
9
+
10
+
11
+
12
+
13
+
14
+ # [1.13.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@1.12.7...@pie-lib/text-select@1.13.0-beta.0) (2025-07-15)
15
+
16
+ **Note:** Version bump only for package @pie-lib/text-select
17
+
18
+
19
+
20
+
21
+
6
22
  ## [1.12.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@1.12.6...@pie-lib/text-select@1.12.7) (2023-10-03)
7
23
 
8
24
  **Note:** Version bump only for package @pie-lib/text-select
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _textSelect = _interopRequireDefault(require("../text-select"));
6
+
7
+ var _enzyme = require("enzyme");
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
12
+
13
+ describe('text-select', function () {
14
+ describe('snapshot', function () {
15
+ it('renders', function () {
16
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_textSelect["default"], {
17
+ text: "foo",
18
+ tokens: [],
19
+ selectedTokens: [],
20
+ onChange: jest.fn(),
21
+ maxNoOfSelections: 4
22
+ }));
23
+ expect(w).toMatchSnapshot();
24
+ });
25
+ });
26
+ describe('logic', function () {
27
+ var w, onChange;
28
+ beforeEach(function () {
29
+ onChange = jest.fn();
30
+ w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_textSelect["default"], {
31
+ text: "foo",
32
+ tokens: [],
33
+ selectedTokens: [],
34
+ onChange: onChange
35
+ }));
36
+ });
37
+ describe('change', function () {
38
+ it('calls onChange', function () {
39
+ var changeArgs = [{
40
+ start: 0,
41
+ end: 1,
42
+ selected: true
43
+ }, {
44
+ start: 1,
45
+ end: 2
46
+ }];
47
+ w.instance().change(changeArgs);
48
+ expect(onChange).toBeCalledWith([{
49
+ start: 0,
50
+ end: 1
51
+ }]);
52
+ });
53
+ });
54
+ });
55
+ });
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdGV4dC1zZWxlY3QudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsInciLCJqZXN0IiwiZm4iLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJvbkNoYW5nZSIsImJlZm9yZUVhY2giLCJjaGFuZ2VBcmdzIiwic3RhcnQiLCJlbmQiLCJzZWxlY3RlZCIsImluc3RhbmNlIiwiY2hhbmdlIiwidG9CZUNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQUEsUUFBUSxDQUFDLGFBQUQsRUFBZ0IsWUFBTTtBQUM1QkEsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCQyxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEIsVUFBTUMsQ0FBQyxHQUFHLG1DQUNSLGdDQUFDLHNCQUFEO0FBQVksUUFBQSxJQUFJLEVBQUMsS0FBakI7QUFBdUIsUUFBQSxNQUFNLEVBQUUsRUFBL0I7QUFBbUMsUUFBQSxjQUFjLEVBQUUsRUFBbkQ7QUFBdUQsUUFBQSxRQUFRLEVBQUVDLElBQUksQ0FBQ0MsRUFBTCxFQUFqRTtBQUE0RSxRQUFBLGlCQUFpQixFQUFFO0FBQS9GLFFBRFEsQ0FBVjtBQUdBQyxNQUFBQSxNQUFNLENBQUNILENBQUQsQ0FBTixDQUFVSSxlQUFWO0FBQ0QsS0FMQyxDQUFGO0FBTUQsR0FQTyxDQUFSO0FBU0FOLEVBQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QixRQUFJRSxDQUFKLEVBQU9LLFFBQVA7QUFDQUMsSUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkQsTUFBQUEsUUFBUSxHQUFHSixJQUFJLENBQUNDLEVBQUwsRUFBWDtBQUNBRixNQUFBQSxDQUFDLEdBQUcsbUNBQVEsZ0NBQUMsc0JBQUQ7QUFBWSxRQUFBLElBQUksRUFBQyxLQUFqQjtBQUF1QixRQUFBLE1BQU0sRUFBRSxFQUEvQjtBQUFtQyxRQUFBLGNBQWMsRUFBRSxFQUFuRDtBQUF1RCxRQUFBLFFBQVEsRUFBRUs7QUFBakUsUUFBUixDQUFKO0FBQ0QsS0FIUyxDQUFWO0FBS0FQLElBQUFBLFFBQVEsQ0FBQyxRQUFELEVBQVcsWUFBTTtBQUN2QkMsTUFBQUEsRUFBRSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDekIsWUFBTVEsVUFBVSxHQUFHLENBQ2pCO0FBQUVDLFVBQUFBLEtBQUssRUFBRSxDQUFUO0FBQVlDLFVBQUFBLEdBQUcsRUFBRSxDQUFqQjtBQUFvQkMsVUFBQUEsUUFBUSxFQUFFO0FBQTlCLFNBRGlCLEVBRWpCO0FBQUVGLFVBQUFBLEtBQUssRUFBRSxDQUFUO0FBQVlDLFVBQUFBLEdBQUcsRUFBRTtBQUFqQixTQUZpQixDQUFuQjtBQUtBVCxRQUFBQSxDQUFDLENBQUNXLFFBQUYsR0FBYUMsTUFBYixDQUFvQkwsVUFBcEI7QUFDQUosUUFBQUEsTUFBTSxDQUFDRSxRQUFELENBQU4sQ0FBaUJRLGNBQWpCLENBQWdDLENBQUM7QUFBRUwsVUFBQUEsS0FBSyxFQUFFLENBQVQ7QUFBWUMsVUFBQUEsR0FBRyxFQUFFO0FBQWpCLFNBQUQsQ0FBaEM7QUFDRCxPQVJDLENBQUY7QUFTRCxLQVZPLENBQVI7QUFXRCxHQWxCTyxDQUFSO0FBbUJELENBN0JPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGV4dFNlbGVjdCBmcm9tICcuLi90ZXh0LXNlbGVjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdG9Kc29uIGZyb20gJ2VuenltZS10by1qc29uJztcbmRlc2NyaWJlKCd0ZXh0LXNlbGVjdCcsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHNoYWxsb3coXG4gICAgICAgIDxUZXh0U2VsZWN0IHRleHQ9XCJmb29cIiB0b2tlbnM9e1tdfSBzZWxlY3RlZFRva2Vucz17W119IG9uQ2hhbmdlPXtqZXN0LmZuKCl9IG1heE5vT2ZTZWxlY3Rpb25zPXs0fSAvPixcbiAgICAgICk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBsZXQgdywgb25DaGFuZ2U7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICAgIHcgPSBzaGFsbG93KDxUZXh0U2VsZWN0IHRleHQ9XCJmb29cIiB0b2tlbnM9e1tdfSBzZWxlY3RlZFRva2Vucz17W119IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIGl0KCdjYWxscyBvbkNoYW5nZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlQXJncyA9IFtcbiAgICAgICAgICB7IHN0YXJ0OiAwLCBlbmQ6IDEsIHNlbGVjdGVkOiB0cnVlIH0sXG4gICAgICAgICAgeyBzdGFydDogMSwgZW5kOiAyIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLmNoYW5nZShjaGFuZ2VBcmdzKTtcbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChbeyBzdGFydDogMCwgZW5kOiAxIH1dKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _utils = require("../utils");
4
+
5
+ describe('logic', function () {
6
+ it('returns text if no html elements', function () {
7
+ var formattedText = (0, _utils.prepareText)("foo bar");
8
+ expect(formattedText).toEqual('foo bar');
9
+ });
10
+ it('replaces br with new lines', function () {
11
+ var formattedText = (0, _utils.prepareText)("<p>foo<br>bar</p>");
12
+ expect(formattedText).toEqual('foo\nbar');
13
+ });
14
+ it('replaces p with 2 new lines', function () {
15
+ var formattedText = (0, _utils.prepareText)("<p>foo<br>bar</p><p>bar<br>foo</p>");
16
+ expect(formattedText).toEqual('foo\nbar\n\nbar\nfoo');
17
+ });
18
+ it('adds p if there are no paragraphs', function () {
19
+ var formattedText = (0, _utils.prepareText)("foo<br>bar<br>foo");
20
+ expect(formattedText).toEqual('foo\nbar\nfoo');
21
+ });
22
+ });
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImZvcm1hdHRlZFRleHQiLCJleHBlY3QiLCJ0b0VxdWFsIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEJDLEVBQUFBLEVBQUUsQ0FBQyxrQ0FBRCxFQUFxQyxZQUFNO0FBQzNDLFFBQU1DLGFBQWEsR0FBRyxrQ0FBdEI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDRCxhQUFELENBQU4sQ0FBc0JFLE9BQXRCLENBQThCLFNBQTlCO0FBQ0QsR0FKQyxDQUFGO0FBTUFILEVBQUFBLEVBQUUsQ0FBQyw0QkFBRCxFQUErQixZQUFNO0FBQ3JDLFFBQU1DLGFBQWEsR0FBRyw0Q0FBdEI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDRCxhQUFELENBQU4sQ0FBc0JFLE9BQXRCLENBQThCLFVBQTlCO0FBQ0QsR0FKQyxDQUFGO0FBTUFILEVBQUFBLEVBQUUsQ0FBQyw2QkFBRCxFQUFnQyxZQUFNO0FBQ3RDLFFBQU1DLGFBQWEsR0FBRyw2REFBdEI7QUFFQUMsSUFBQUEsTUFBTSxDQUFDRCxhQUFELENBQU4sQ0FBc0JFLE9BQXRCLENBQThCLHNCQUE5QjtBQUNELEdBSkMsQ0FBRjtBQU1BSCxFQUFBQSxFQUFFLENBQUMsbUNBQUQsRUFBc0MsWUFBTTtBQUM1QyxRQUFNQyxhQUFhLEdBQUcsNENBQXRCO0FBRUFDLElBQUFBLE1BQU0sQ0FBQ0QsYUFBRCxDQUFOLENBQXNCRSxPQUF0QixDQUE4QixlQUE5QjtBQUNELEdBSkMsQ0FBRjtBQUtELENBeEJPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmVwYXJlVGV4dCB9IGZyb20gJy4uL3V0aWxzJztcblxuZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICBpdCgncmV0dXJucyB0ZXh0IGlmIG5vIGh0bWwgZWxlbWVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkVGV4dCA9IHByZXBhcmVUZXh0KGBmb28gYmFyYCk7XG5cbiAgICBleHBlY3QoZm9ybWF0dGVkVGV4dCkudG9FcXVhbCgnZm9vIGJhcicpO1xuICB9KTtcblxuICBpdCgncmVwbGFjZXMgYnIgd2l0aCBuZXcgbGluZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkVGV4dCA9IHByZXBhcmVUZXh0KGA8cD5mb288YnI+YmFyPC9wPmApO1xuXG4gICAgZXhwZWN0KGZvcm1hdHRlZFRleHQpLnRvRXF1YWwoJ2Zvb1xcbmJhcicpO1xuICB9KTtcblxuICBpdCgncmVwbGFjZXMgcCB3aXRoIDIgbmV3IGxpbmVzJywgKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1hdHRlZFRleHQgPSBwcmVwYXJlVGV4dChgPHA+Zm9vPGJyPmJhcjwvcD48cD5iYXI8YnI+Zm9vPC9wPmApO1xuXG4gICAgZXhwZWN0KGZvcm1hdHRlZFRleHQpLnRvRXF1YWwoJ2Zvb1xcbmJhclxcblxcbmJhclxcbmZvbycpO1xuICB9KTtcblxuICBpdCgnYWRkcyBwIGlmIHRoZXJlIGFyZSBubyBwYXJhZ3JhcGhzJywgKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1hdHRlZFRleHQgPSBwcmVwYXJlVGV4dChgZm9vPGJyPmJhcjxicj5mb29gKTtcblxuICAgIGV4cGVjdChmb3JtYXR0ZWRUZXh0KS50b0VxdWFsKCdmb29cXG5iYXJcXG5mb28nKTtcbiAgfSk7XG59KTtcbiJdfQ==
package/lib/index.js CHANGED
@@ -7,6 +7,12 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
+ Object.defineProperty(exports, "Controls", {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _controls["default"];
14
+ }
15
+ });
10
16
  Object.defineProperty(exports, "Legend", {
11
17
  enumerable: true,
12
18
  get: function get() {
@@ -50,6 +56,8 @@ Object.defineProperty(exports, "prepareText", {
50
56
  }
51
57
  });
52
58
 
59
+ var _controls = _interopRequireDefault(require("./tokenizer/controls"));
60
+
53
61
  var _tokenizer = _interopRequireDefault(require("./tokenizer"));
54
62
 
55
63
  var _tokenSelect = _interopRequireWildcard(require("./token-select"));
@@ -65,4 +73,4 @@ var _utils = require("./utils");
65
73
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
66
74
 
67
75
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
68
- //# sourceMappingURL=index.js.map
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29udHJvbHMgZnJvbSAnLi90b2tlbml6ZXIvY29udHJvbHMnO1xuaW1wb3J0IFRva2VuaXplciBmcm9tICcuL3Rva2VuaXplcic7XG5pbXBvcnQgVG9rZW5TZWxlY3QsIHsgVG9rZW5UeXBlcyB9IGZyb20gJy4vdG9rZW4tc2VsZWN0JztcbmltcG9ydCBUZXh0U2VsZWN0IGZyb20gJy4vdGV4dC1zZWxlY3QnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9sZWdlbmQnO1xuaW1wb3J0IFRva2VuIGZyb20gJy4vdG9rZW4tc2VsZWN0L3Rva2VuJztcbmltcG9ydCB7IHByZXBhcmVUZXh0IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IENvbnRyb2xzLCBUZXh0U2VsZWN0LCBUb2tlblR5cGVzLCBUb2tlbml6ZXIsIFRva2VuU2VsZWN0LCBUb2tlbiwgcHJlcGFyZVRleHQsIExlZ2VuZCB9O1xuIl19
package/lib/legend.js CHANGED
@@ -96,4 +96,4 @@ var Legend = (0, _styles.withStyles)(function (theme) {
96
96
  }));
97
97
  });
98
98
  exports.Legend = Legend;
99
- //# sourceMappingURL=legend.js.map
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sZWdlbmQuanMiXSwibmFtZXMiOlsidHJhbnNsYXRvciIsIlRyYW5zbGF0b3IiLCJMZWdlbmQiLCJ0aGVtZSIsImZsZXhDb250YWluZXIiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImdhcCIsInNwYWNpbmciLCJ1bml0IiwiYm9yZGVyQm90dG9tIiwiYm9yZGVyVG9wIiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdUb3AiLCJtYXJnaW5Cb3R0b20iLCJjb250YWluZXIiLCJhbGlnbkl0ZW1zIiwiY29ycmVjdCIsImZvbnRTaXplIiwiY29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb3JyZWN0U2Vjb25kYXJ5IiwiYm9yZGVyIiwiaW5jb3JyZWN0IiwibWlzc2luZyIsImluY29ycmVjdFNlY29uZGFyeSIsImNsYXNzZXMiLCJsYW5ndWFnZSIsImljb25zIiwiaWNvbk5hbWUiLCJDaGVjayIsImxhYmVsIiwidCIsImxuZyIsImNsYXNzTmFtZSIsIlJlbW92ZSIsIkNsb3NlIiwibWFwIiwiaWNvbiIsImluZGV4IiwiSWNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBUUEsVUFBUixHQUF1QkMsc0JBQXZCLENBQVFELFVBQVI7QUFFTyxJQUFNRSxNQUFNLEdBQUcsd0JBQVcsVUFBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDM0NDLElBQUFBLGFBQWEsRUFBRTtBQUNiQyxNQUFBQSxPQUFPLEVBQUUsTUFESTtBQUViQyxNQUFBQSxhQUFhLEVBQUUsS0FGRjtBQUdiQyxNQUFBQSxHQUFHLFlBQUssSUFBSUosS0FBSyxDQUFDSyxPQUFOLENBQWNDLElBQXZCLE9BSFU7QUFJYkMsTUFBQUEsWUFBWSxFQUFFLHFCQUpEO0FBS2JDLE1BQUFBLFNBQVMsRUFBRSxxQkFMRTtBQU1iQyxNQUFBQSxhQUFhLEVBQUVULEtBQUssQ0FBQ0ssT0FBTixDQUFjQyxJQU5oQjtBQU9i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RUFBRTtBQUF4RCxNQURGLGVBRUUsOENBQU9JLElBQUksQ0FBQ1AsS0FBWixDQUZGLENBREY7QUFNRCxHQVJBLENBREgsQ0FERjtBQWFELENBbkVxQixDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IENoZWNrIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DaGVjayc7XG5pbXBvcnQgQ2xvc2UgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Nsb3NlJztcbmltcG9ydCBSZW1vdmUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1JlbW92ZSc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICdAcGllLWxpYi90cmFuc2xhdG9yJztcblxuY29uc3QgeyB0cmFuc2xhdG9yIH0gPSBUcmFuc2xhdG9yO1xuXG5leHBvcnQgY29uc3QgTGVnZW5kID0gd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIGZsZXhDb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgZ2FwOiBgJHsyICogdGhlbWUuc3BhY2luZy51bml0fXB4YCxcbiAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgbGlnaHRncmV5JyxcbiAgICBib3JkZXJUb3A6ICcxcHggc29saWQgbGlnaHRncmV5JyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0LFxuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0LFxuICB9LFxuICBjb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgZ2FwOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXQgLyAyfXB4YCxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgY29ycmVjdDoge1xuICAgIGZvbnRTaXplOiAnbGFyZ2VyJyxcbiAgICBjb2xvcjogY29sb3IuY29ycmVjdCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuY29ycmVjdFNlY29uZGFyeSgpLFxuICAgIGJvcmRlcjogYDJweCBzb2xpZCAke2NvbG9yLmNvcnJlY3QoKX1gLFxuICB9LFxuICBpbmNvcnJlY3Q6IHtcbiAgICBmb250U2l6ZTogJ2xhcmdlcicsXG4gICAgY29sb3I6IGNvbG9yLm1pc3NpbmcoKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmluY29ycmVjdFNlY29uZGFyeSgpLFxuICAgIGJvcmRlcjogYDJweCBzb2xpZCAke2NvbG9yLm1pc3NpbmcoKX1gLFxuICB9LFxuICBtaXNzaW5nOiB7XG4gICAgZm9udFNpemU6ICdsYXJnZXInLFxuICAgIGNvbG9yOiBjb2xvci5taXNzaW5nKCksXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5pbmNvcnJlY3RTZWNvbmRhcnkoKSxcbiAgICBib3JkZXI6IGAycHggZGFzaGVkICR7Y29sb3IubWlzc2luZygpfWAsXG4gIH0sXG59KSkoKHsgY2xhc3NlcywgbGFuZ3VhZ2UgfSkgPT4ge1xuICBjb25zdCBpY29ucyA9IFtcbiAgICB7XG4gICAgICBpY29uTmFtZTogQ2hlY2ssXG4gICAgICBsYWJlbDogdHJhbnNsYXRvci50KCdzZWxlY3RUZXh0LmNvcnJlY3RBbnN3ZXJTZWxlY3RlZCcsIHsgbG5nOiBsYW5ndWFnZSB9KSxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcy5jb3JyZWN0LFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbk5hbWU6IFJlbW92ZSxcbiAgICAgIGxhYmVsOiB0cmFuc2xhdG9yLnQoJ3NlbGVjdFRleHQuY29ycmVjdEFuc3dlck5vdFNlbGVjdGVkJywgeyBsbmc6IGxhbmd1YWdlIH0pLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLm1pc3NpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBpY29uTmFtZTogQ2xvc2UsXG4gICAgICBsYWJlbDogdHJhbnNsYXRvci50KCdzZWxlY3RUZXh0LmluY29ycmVjdFNlbGVjdGlvbicsIHsgbG5nOiBsYW5ndWFnZSB9KSxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcy5pbmNvcnJlY3QsXG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmZsZXhDb250YWluZXJ9PlxuICAgICAge2ljb25zLm1hcCgoaWNvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgSWNvbiA9IGljb24uaWNvbk5hbWU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9e2NsYXNzZXMuY29udGFpbmVyfT5cbiAgICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT17aWNvbi5jbGFzc05hbWV9IHdpZHRoPXsnMTlweCd9IGhlaWdodD17JzE5cHgnfT48L0ljb24+XG4gICAgICAgICAgICA8c3Bhbj57aWNvbi5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuIl19
@@ -135,4 +135,4 @@ exports["default"] = TextSelect;
135
135
  animationsDisabled: _propTypes["default"].bool,
136
136
  maxNoOfSelections: _propTypes["default"].number
137
137
  });
138
- //# sourceMappingURL=text-select.js.map
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXh0LXNlbGVjdC5qc3giXSwibmFtZXMiOlsibG9nIiwiVGV4dFNlbGVjdCIsInRva2VucyIsIm9uQ2hhbmdlIiwicHJvcHMiLCJvdXQiLCJmaWx0ZXIiLCJ0Iiwic2VsZWN0ZWQiLCJtYXAiLCJzdGFydCIsImVuZCIsInRleHQiLCJkaXNhYmxlZCIsInNlbGVjdGVkVG9rZW5zIiwiY2xhc3NOYW1lIiwiaGlnaGxpZ2h0Q2hvaWNlcyIsIm1heE5vT2ZTZWxlY3Rpb25zIiwiYW5pbWF0aW9uc0Rpc2FibGVkIiwibm9ybWFsaXplZCIsInByZXBwZWQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwicyIsImNvcnJlY3QiLCJ1bmRlZmluZWQiLCJpc01pc3NpbmciLCJzZWxlY3RhYmxlIiwicHJlZGVmaW5lZCIsImNoYW5nZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsImJvb2wiLCJhcnJheU9mIiwic2hhcGUiLCJUb2tlblR5cGVzIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsIm51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxzQkFBTixDQUFaO0FBQ0E7QUFDQTtBQUNBOztJQUNxQkMsVTs7Ozs7Ozs7Ozs7Ozs7OytGQWFWLFVBQUNDLE1BQUQsRUFBWTtBQUNuQixVQUFRQyxRQUFSLEdBQXFCLE1BQUtDLEtBQTFCLENBQVFELFFBQVI7O0FBRUEsVUFBSSxDQUFDQSxRQUFMLEVBQWU7QUFDYjtBQUNEOztBQUNELFVBQU1FLEdBQUcsR0FBR0gsTUFBTSxDQUFDSSxNQUFQLENBQWMsVUFBQ0MsQ0FBRDtBQUFBLGVBQU9BLENBQUMsQ0FBQ0MsUUFBVDtBQUFBLE9BQWQsRUFBaUNDLEdBQWpDLENBQXFDLFVBQUNGLENBQUQ7QUFBQSxlQUFRO0FBQUVHLFVBQUFB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IFRva2VuU2VsZWN0IGZyb20gJy4vdG9rZW4tc2VsZWN0JztcbmltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJy4vdG9rZW5pemVyL2J1aWxkZXInO1xuaW1wb3J0IHsgVG9rZW5UeXBlcyB9IGZyb20gJy4vdG9rZW4tc2VsZWN0L3Rva2VuJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjp0ZXh0LXNlbGVjdCcpO1xuLyoqXG4gKiBCdWlsdCBvbiBUb2tlblNlbGVjdCB1c2VzIGJ1aWxkLm5vcm1hbGl6ZSB0byBidWlsZCB0aGUgdG9rZW4gc2V0LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXh0U2VsZWN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHRva2VuczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnNoYXBlKFRva2VuVHlwZXMpKS5pc1JlcXVpcmVkLFxuICAgIHNlbGVjdGVkVG9rZW5zOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUoVG9rZW5UeXBlcykpLmlzUmVxdWlyZWQsXG4gICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBoaWdobGlnaHRDaG9pY2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbmltYXRpb25zRGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG1heE5vT2ZTZWxlY3Rpb25zOiBQcm9wVHlwZXMubnVtYmVyLFxuICB9O1xuXG4gIGNoYW5nZSA9ICh0b2tlbnMpID0+IHtcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFvbkNoYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvdXQgPSB0b2tlbnMuZmlsdGVyKCh0KSA9PiB0LnNlbGVjdGVkKS5tYXAoKHQpID0+ICh7IHN0YXJ0OiB0LnN0YXJ0LCBlbmQ6IHQuZW5kIH0pKTtcblxuICAgIG9uQ2hhbmdlKG91dCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHRleHQsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIHRva2VucyxcbiAgICAgIHNlbGVjdGVkVG9rZW5zLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgaGlnaGxpZ2h0Q2hvaWNlcyxcbiAgICAgIG1heE5vT2ZTZWxlY3Rpb25zLFxuICAgICAgYW5pbWF0aW9uc0Rpc2FibGVkLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZSh0ZXh0LCB0b2tlbnMpO1xuICAgIGxvZygnbm9ybWFsaXplZDogJywgbm9ybWFsaXplZCk7XG4gICAgY29uc3QgcHJlcHBlZCA9IG5vcm1hbGl6ZWQubWFwKCh0KSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRUb2tlbnMuZmluZEluZGV4KChzKSA9PiB7XG4gICAgICAgIHJldHVybiBzLnN0YXJ0ID09PSB0LnN0YXJ0ICYmIHMuZW5kID09PSB0LmVuZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ICE9PSAtMTtcbiAgICAgIGNvbnN0IGNvcnJlY3QgPSBzZWxlY3RlZCA/IHQuY29ycmVjdCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGlzTWlzc2luZyA9IHQuaXNNaXNzaW5nO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udCxcbiAgICAgICAgc2VsZWN0YWJsZTogIWRpc2FibGVkICYmIHQucHJlZGVmaW5lZCxcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIGNvcnJlY3QsXG4gICAgICAgIGlzTWlzc2luZyxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRva2VuU2VsZWN0XG4gICAgICAgIGhpZ2hsaWdodENob2ljZXM9eyFkaXNhYmxlZCAmJiBoaWdobGlnaHRDaG9pY2VzfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgdG9rZW5zPXtwcmVwcGVkfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmNoYW5nZX1cbiAgICAgICAgbWF4Tm9PZlNlbGVjdGlvbnM9e21heE5vT2ZTZWxlY3Rpb25zfVxuICAgICAgICBhbmltYXRpb25zRGlzYWJsZWQ9e2FuaW1hdGlvbnNEaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _index = require("../index");
6
+
7
+ var _react = _interopRequireDefault(require("react"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ describe('token-select', function () {
12
+ describe('snapshot', function () {
13
+ it('renders', function () {
14
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.TokenSelect, {
15
+ tokens: [{
16
+ text: 'foo bar',
17
+ start: 0,
18
+ end: 7,
19
+ predefined: true,
20
+ selectable: true,
21
+ selected: false
22
+ }],
23
+ classes: {},
24
+ onChange: jest.fn()
25
+ }));
26
+ expect(w).toMatchSnapshot();
27
+ });
28
+ it('renders sentences properly', function () {
29
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.TokenSelect, {
30
+ tokens: [{
31
+ text: 'foo,',
32
+ start: 0,
33
+ end: 4,
34
+ predefined: true,
35
+ selectable: true,
36
+ selected: false
37
+ }, {
38
+ text: '\n',
39
+ start: 4,
40
+ end: 5,
41
+ selected: false
42
+ }, {
43
+ text: 'bar',
44
+ start: 5,
45
+ end: 8,
46
+ predefined: true,
47
+ selectable: true,
48
+ selected: false
49
+ }],
50
+ classes: {},
51
+ onChange: jest.fn()
52
+ }));
53
+ expect(w).toMatchSnapshot();
54
+ });
55
+ it('renders paragraphs properly', function () {
56
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.TokenSelect, {
57
+ tokens: [{
58
+ text: 'foo,',
59
+ start: 0,
60
+ end: 4,
61
+ predefined: true,
62
+ selectable: true,
63
+ selected: false
64
+ }, {
65
+ text: '\n\n',
66
+ start: 4,
67
+ end: 5,
68
+ selected: false
69
+ }, {
70
+ text: 'bar',
71
+ start: 5,
72
+ end: 8,
73
+ predefined: true,
74
+ selectable: true,
75
+ selected: false
76
+ }],
77
+ classes: {},
78
+ onChange: jest.fn()
79
+ }));
80
+ expect(w).toMatchSnapshot();
81
+ });
82
+ it('renders in view mode with selected tokens', function () {
83
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.TokenSelect, {
84
+ disabled: true,
85
+ tokens: [{
86
+ text: 'foo,',
87
+ start: 0,
88
+ end: 4,
89
+ predefined: true,
90
+ selectable: true,
91
+ selected: true
92
+ }, {
93
+ text: '\n',
94
+ start: 4,
95
+ end: 5,
96
+ selected: false
97
+ }, {
98
+ text: 'bar',
99
+ start: 5,
100
+ end: 8,
101
+ predefined: true,
102
+ selectable: true,
103
+ selected: true
104
+ }],
105
+ classes: {},
106
+ onChange: jest.fn()
107
+ }));
108
+ expect(w).toMatchSnapshot();
109
+ });
110
+ });
111
+ describe('logic', function () {
112
+ var w, onChange;
113
+ beforeEach(function () {
114
+ onChange = jest.fn();
115
+ w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_index.TokenSelect, {
116
+ tokens: [{
117
+ text: 'foo',
118
+ start: 0,
119
+ end: 3
120
+ }, {
121
+ text: 'bar',
122
+ start: 4,
123
+ end: 7
124
+ }],
125
+ classes: {},
126
+ onChange: onChange
127
+ }));
128
+ });
129
+ describe('selectedCount', function () {
130
+ it('returns the correct count', function () {
131
+ expect(w.instance().selectedCount()).toEqual(0);
132
+ });
133
+ it('returns the correct count for 1 selected', function () {
134
+ w.setProps({
135
+ tokens: [{
136
+ selected: true
137
+ }]
138
+ });
139
+ expect(w.instance().selectedCount()).toEqual(1);
140
+ });
141
+ });
142
+ describe('canSelectMore', function () {
143
+ it('returns true for undefined max selections', function () {
144
+ w.setProps({
145
+ maxNoOfSelections: undefined
146
+ });
147
+ expect(w.instance().canSelectMore(10)).toEqual(true);
148
+ });
149
+ it('returns true for 0 max selections', function () {
150
+ w.setProps({
151
+ maxNoOfSelections: 0
152
+ });
153
+ expect(w.instance().canSelectMore(10)).toEqual(true);
154
+ });
155
+ it('returns true for -1 max selections', function () {
156
+ w.setProps({
157
+ maxNoOfSelections: -1
158
+ });
159
+ expect(w.instance().canSelectMore(10)).toEqual(true);
160
+ });
161
+ it('returns true for 5 max selections and count 4', function () {
162
+ w.setProps({
163
+ maxNoOfSelections: 5
164
+ });
165
+ expect(w.instance().canSelectMore(4)).toEqual(true);
166
+ });
167
+ it('returns true for 5 max selections and count 5', function () {
168
+ w.setProps({
169
+ maxNoOfSelections: 5
170
+ });
171
+ expect(w.instance().canSelectMore(5)).toEqual(false);
172
+ });
173
+ it('returns false for 5 max selections and count 6', function () {
174
+ w.setProps({
175
+ maxNoOfSelections: 5
176
+ });
177
+ expect(w.instance().canSelectMore(6)).toEqual(false);
178
+ });
179
+ it('returns true for 1 max selections and count 1', function () {
180
+ w.setProps({
181
+ maxNoOfSelections: 1
182
+ });
183
+ expect(w.instance().canSelectMore(1)).toEqual(true);
184
+ });
185
+ });
186
+ describe('toggleToken', function () {
187
+ it('return if clicked target is not selectable', function () {
188
+ w.setProps({
189
+ maxNoOfSelections: 1,
190
+ tokens: [{
191
+ selected: true
192
+ }]
193
+ });
194
+ var closest = jest.fn().mockReturnValue(null);
195
+ var mockedEvent = {
196
+ target: {
197
+ closest: closest
198
+ }
199
+ };
200
+ w.instance().toggleToken(mockedEvent);
201
+ expect(onChange).not.toBeCalled();
202
+ });
203
+ it('calls onChange', function () {
204
+ w.setProps({
205
+ maxNoOfSelections: 0,
206
+ tokens: [{
207
+ selected: true
208
+ }]
209
+ });
210
+ var closest = jest.fn().mockReturnValue({
211
+ dataset: {
212
+ indexkey: '0'
213
+ }
214
+ });
215
+ var mockedEvent = {
216
+ target: {
217
+ closest: closest
218
+ }
219
+ };
220
+ w.instance().toggleToken(mockedEvent);
221
+ expect(onChange).toBeCalled();
222
+ });
223
+ it('returns if max tokens have been selected', function () {
224
+ w.setProps({
225
+ maxNoOfSelections: 0,
226
+ tokens: [{
227
+ selected: true
228
+ }]
229
+ });
230
+ var closest = jest.fn().mockReturnValue({
231
+ dataset: {
232
+ indexkey: '0'
233
+ }
234
+ });
235
+ var mockedEvent = {
236
+ target: {
237
+ closest: closest
238
+ }
239
+ };
240
+ w.instance().toggleToken(mockedEvent);
241
+ expect(onChange).not.toBeCalledWith([{
242
+ selected: true
243
+ }]);
244
+ });
245
+ it('calls onChange if maxNoOfSelections is 1 and selectedCount is 1', function () {
246
+ w.setProps({
247
+ maxNoOfSelections: 1,
248
+ tokens: [{
249
+ selected: true
250
+ }]
251
+ });
252
+ var closest = jest.fn().mockReturnValue({
253
+ dataset: {
254
+ indexkey: '0'
255
+ }
256
+ });
257
+ var mockedEvent = {
258
+ target: {
259
+ closest: closest
260
+ }
261
+ };
262
+ w.instance().toggleToken(mockedEvent);
263
+ expect(onChange).toBeCalled();
264
+ });
265
+ });
266
+ });
267
+ });
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi1zZWxlY3QvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaXQiLCJ3IiwidGV4dCIsInN0YXJ0IiwiZW5kIiwicHJlZGVmaW5lZCIsInNlbGVjdGFibGUiLCJzZWxlY3RlZCIsImplc3QiLCJmbiIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIm9uQ2hhbmdlIiwiYmVmb3JlRWFjaCIsImluc3RhbmNlIiwic2VsZWN0ZWRDb3VudCIsInRvRXF1YWwiLCJzZXRQcm9wcyIsInRva2VucyIsIm1heE5vT2ZTZWxlY3Rpb25zIiwidW5kZWZpbmVkIiwiY2FuU2VsZWN0TW9yZSIsImNsb3Nlc3QiLCJtb2NrUmV0dXJuVmFsdWUiLCJtb2NrZWRFdmVudCIsInRhcmdldCIsInRvZ2dsZVRva2VuIiwibm90IiwidG9CZUNhbGxlZCIsImRhdGFzZXQiLCJpbmRleGtleSIsInRvQmVDYWxsZWRXaXRoIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxjQUFELEVBQWlCLFlBQU07QUFDN0JBLEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QkMsSUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCLFVBQU1DLENBQUMsR0FBRyxtQ0FDUixnQ0FBQyxrQkFBRDtBQUNFLFFBQUEsTUFBTSxFQUFFLENBQ047QUFDRUMsVUFBQUEsSUFBSSxFQUFFLFNBRFI7QUFFRUMsVUFBQUEsS0FBSyxFQUFFLENBRlQ7QUFHRUMsVUFBQUEsR0FBRyxFQUFFLENBSFA7QUFJRUMsVUFBQUEsVUFBVSxFQUFFLElBSmQ7QUFLRUMsVUFBQUEsVUFBVSxFQUFFLElBTGQ7QUFNRUMsVUFBQUEsUUFBUSxFQUFFO0FBTlosU0FETSxDQURWO0FBV0UsUUFBQSxPQUFPLEVBQUUsRUFYWDtBQVlFLFFBQUEsUUFBUSxFQUFFQyxJQUFJLENBQUNDLEVBQUw7QUFa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QWVBUCxNQUFBQSxFQUFFLENBQUMsaUVBQUQsRUFBb0UsWUFBTTtBQUMxRUMsUUFBQUEsQ0FBQyxDQUFDZ0IsUUFBRixDQUFXO0FBQUVFLFVBQUFBLGlCQUFpQixFQUFFLENBQXJCO0FBQXdCRCxVQUFBQSxNQUFNLEVBQUUsQ0FBQztBQUFFWCxZQUFBQSxRQUFRLEVBQUU7QUFBWixXQUFEO0FBQWhDLFNBQVg7QUFFQSxZQUFNZSxPQUFPLEdBQUdkLElBQUksQ0FBQ0MsRUFBTCxHQUFVYyxlQUFWLENBQTBCO0FBQ3hDTSxVQUFBQSxPQUFPLEVBQUU7QUFDUEMsWUFBQUEsUUFBUSxFQUFFO0FBREg7QUFEK0IsU0FBMUIsQ0FBaEI7QUFLQSxZQUFNTixXQUFXLEdBQUc7QUFBRUMsVUFBQUEsTUFBTSxFQUFFO0FBQUVILFlBQUFBLE9BQU8sRUFBUEE7QUFBRjtBQUFWLFNBQXBCO0FBRUFyQixRQUFBQSxDQUFDLENBQUNhLFFBQUYsR0FBYVksV0FBYixDQUF5QkYsV0FBekI7QUFFQWQsUUFBQUEsTUFBTSxDQUFDRSxRQUFELENBQU4sQ0FBaUJnQixVQUFqQjtBQUNELE9BYkMsQ0FBRjtBQWNELEtBeERPLENBQVI7QUF5REQsR0E3SE8sQ0FBUjtBQThIRCxDQTVQTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW5TZWxlY3QgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5cbmRlc2NyaWJlKCd0b2tlbi1zZWxlY3QnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHcgPSBzaGFsbG93KFxuICAgICAgICA8VG9rZW5TZWxlY3RcbiAgICAgICAgICB0b2tlbnM9e1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGV4dDogJ2ZvbyBiYXInLFxuICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgZW5kOiA3LFxuICAgICAgICAgICAgICBwcmVkZWZpbmVkOiB0cnVlLFxuICAgICAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgICAgb25DaGFuZ2U9e2plc3QuZm4oKX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgc2VudGVuY2VzIHByb3Blcmx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHNoYWxsb3coXG4gICAgICAgIDxUb2tlblNlbGVjdFxuICAgICAgICAgIHRva2Vucz17W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnZm9vLCcsXG4gICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICBlbmQ6IDQsXG4gICAgICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdcXG4nLFxuICAgICAgICAgICAgICBzdGFydDogNCxcbiAgICAgICAgICAgICAgZW5kOiA1LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnYmFyJyxcbiAgICAgICAgICAgICAgc3RhcnQ6IDUsXG4gICAgICAgICAgICAgIGVuZDogOCxcbiAgICAgICAgICAgICAgcHJlZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGNsYXNzZXM9e3t9fVxuICAgICAgICAgIG9uQ2hhbmdlPXtqZXN0LmZuKCl9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHBhcmFncmFwaHMgcHJvcGVybHknLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gc2hhbGxvdyhcbiAgICAgICAgPFRva2VuU2VsZWN0XG4gICAgICAgICAgdG9rZW5zPXtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdmb28sJyxcbiAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgIGVuZDogNCxcbiAgICAgICAgICAgICAgcHJlZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGV4dDogJ1xcblxcbicsXG4gICAgICAgICAgICAgIHN0YXJ0OiA0LFxuICAgICAgICAgICAgICBlbmQ6IDUsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdiYXInLFxuICAgICAgICAgICAgICBzdGFydDogNSxcbiAgICAgICAgICAgICAgZW5kOiA4LFxuICAgICAgICAgICAgICBwcmVkZWZpbmVkOiB0cnVlLFxuICAgICAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgICAgb25DaGFuZ2U9e2plc3QuZm4oKX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgaW4gdmlldyBtb2RlIHdpdGggc2VsZWN0ZWQgdG9rZW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHNoYWxsb3coXG4gICAgICAgIDxUb2tlblNlbGVjdFxuICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgdG9rZW5zPXtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdmb28sJyxcbiAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgIGVuZDogNCxcbiAgICAgICAgICAgICAgcHJlZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnXFxuJyxcbiAgICAgICAgICAgICAgc3RhcnQ6IDQsXG4gICAgICAgICAgICAgIGVuZDogNSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgICAgIHN0YXJ0OiA1LFxuICAgICAgICAgICAgICBlbmQ6IDgsXG4gICAgICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGNsYXNzZXM9e3t9fVxuICAgICAgICAgIG9uQ2hhbmdlPXtqZXN0LmZuKCl9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGxldCB3LCBvbkNoYW5nZTtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgICAgdyA9IHNoYWxsb3coXG4gICAgICAgIDxUb2tlblNlbGVjdFxuICAgICAgICAgIHRva2Vucz17W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnZm9vJyxcbiAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgIGVuZDogMyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdiYXInLFxuICAgICAgICAgICAgICBzdGFydDogNCxcbiAgICAgICAgICAgICAgZW5kOiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGNsYXNzZXM9e3t9fVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgIH0pO1xuICAgIGRlc2NyaWJlKCdzZWxlY3RlZENvdW50JywgKCkgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgdGhlIGNvcnJlY3QgY291bnQnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuc2VsZWN0ZWRDb3VudCgpKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZXR1cm5zIHRoZSBjb3JyZWN0IGNvdW50IGZvciAxIHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgICB3LnNldFByb3BzKHsgdG9rZW5zOiBbeyBzZWxlY3RlZDogdHJ1ZSB9XSB9KTtcbiAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5zZWxlY3RlZENvdW50KCkpLnRvRXF1YWwoMSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjYW5TZWxlY3RNb3JlJywgKCkgPT4ge1xuICAgICAgaXQoJ3JldHVybnMgdHJ1ZSBmb3IgdW5kZWZpbmVkIG1heCBzZWxlY3Rpb25zJywgKCkgPT4ge1xuICAgICAgICB3LnNldFByb3BzKHsgbWF4Tm9PZlNlbGVjdGlvbnM6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5jYW5TZWxlY3RNb3JlKDEwKSkudG9FcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3JldHVybnMgdHJ1ZSBmb3IgMCBtYXggc2VsZWN0aW9ucycsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiAwIH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmNhblNlbGVjdE1vcmUoMTApKS50b0VxdWFsKHRydWUpO1xuICAgICAgfSk7XG4gICAgICBpdCgncmV0dXJucyB0cnVlIGZvciAtMSBtYXggc2VsZWN0aW9ucycsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiAtMSB9KTtcbiAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5jYW5TZWxlY3RNb3JlKDEwKSkudG9FcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3JldHVybnMgdHJ1ZSBmb3IgNSBtYXggc2VsZWN0aW9ucyBhbmQgY291bnQgNCcsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiA1IH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmNhblNlbGVjdE1vcmUoNCkpLnRvRXF1YWwodHJ1ZSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3JldHVybnMgdHJ1ZSBmb3IgNSBtYXggc2VsZWN0aW9ucyBhbmQgY291bnQgNScsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiA1IH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmNhblNlbGVjdE1vcmUoNSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZXR1cm5zIGZhbHNlIGZvciA1IG1heCBzZWxlY3Rpb25zIGFuZCBjb3VudCA2JywgKCkgPT4ge1xuICAgICAgICB3LnNldFByb3BzKHsgbWF4Tm9PZlNlbGVjdGlvbnM6IDUgfSk7XG4gICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuY2FuU2VsZWN0TW9yZSg2KSkudG9FcXVhbChmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3JldHVybnMgdHJ1ZSBmb3IgMSBtYXggc2VsZWN0aW9ucyBhbmQgY291bnQgMScsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiAxIH0pO1xuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmNhblNlbGVjdE1vcmUoMSkpLnRvRXF1YWwodHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd0b2dnbGVUb2tlbicsICgpID0+IHtcbiAgICAgIGl0KCdyZXR1cm4gaWYgY2xpY2tlZCB0YXJnZXQgaXMgbm90IHNlbGVjdGFibGUnLCAoKSA9PiB7XG4gICAgICAgIHcuc2V0UHJvcHMoeyBtYXhOb09mU2VsZWN0aW9uczogMSwgdG9rZW5zOiBbeyBzZWxlY3RlZDogdHJ1ZSB9XSB9KTtcblxuICAgICAgICBjb25zdCBjbG9zZXN0ID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShudWxsKTtcbiAgICAgICAgY29uc3QgbW9ja2VkRXZlbnQgPSB7IHRhcmdldDogeyBjbG9zZXN0IH0gfTtcblxuICAgICAgICB3Lmluc3RhbmNlKCkudG9nZ2xlVG9rZW4obW9ja2VkRXZlbnQpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkubm90LnRvQmVDYWxsZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHcuc2V0UHJvcHMoeyBtYXhOb09mU2VsZWN0aW9uczogMCwgdG9rZW5zOiBbeyBzZWxlY3RlZDogdHJ1ZSB9XSB9KTtcblxuICAgICAgICBjb25zdCBjbG9zZXN0ID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgaW5kZXhrZXk6ICcwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbW9ja2VkRXZlbnQgPSB7IHRhcmdldDogeyBjbG9zZXN0IH0gfTtcblxuICAgICAgICB3Lmluc3RhbmNlKCkudG9nZ2xlVG9rZW4obW9ja2VkRXZlbnQpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZXR1cm5zIGlmIG1heCB0b2tlbnMgaGF2ZSBiZWVuIHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgICB3LnNldFByb3BzKHsgbWF4Tm9PZlNlbGVjdGlvbnM6IDAsIHRva2VuczogW3sgc2VsZWN0ZWQ6IHRydWUgfV0gfSk7XG5cbiAgICAgICAgY29uc3QgY2xvc2VzdCA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIGRhdGFzZXQ6IHtcbiAgICAgICAgICAgIGluZGV4a2V5OiAnMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG1vY2tlZEV2ZW50ID0geyB0YXJnZXQ6IHsgY2xvc2VzdCB9IH07XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLnRvZ2dsZVRva2VuKG1vY2tlZEV2ZW50KTtcblxuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLm5vdC50b0JlQ2FsbGVkV2l0aChbeyBzZWxlY3RlZDogdHJ1ZSB9XSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIGlmIG1heE5vT2ZTZWxlY3Rpb25zIGlzIDEgYW5kIHNlbGVjdGVkQ291bnQgaXMgMScsICgpID0+IHtcbiAgICAgICAgdy5zZXRQcm9wcyh7IG1heE5vT2ZTZWxlY3Rpb25zOiAxLCB0b2tlbnM6IFt7IHNlbGVjdGVkOiB0cnVlIH1dIH0pO1xuXG4gICAgICAgIGNvbnN0IGNsb3Nlc3QgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBkYXRhc2V0OiB7XG4gICAgICAgICAgICBpbmRleGtleTogJzAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBtb2NrZWRFdmVudCA9IHsgdGFyZ2V0OiB7IGNsb3Nlc3QgfSB9O1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS50b2dnbGVUb2tlbihtb2NrZWRFdmVudCk7XG5cbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _token = require("../token");
6
+
7
+ var _enzyme = require("enzyme");
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ describe('token', function () {
12
+ describe('snapshot', function () {
13
+ it('renders', function () {
14
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_token.Token, {
15
+ classes: {
16
+ token: 'token',
17
+ selectable: 'selectable'
18
+ },
19
+ text: 'foo bar'
20
+ }));
21
+ expect(w).toMatchSnapshot();
22
+ });
23
+ it('renders with brs', function () {
24
+ var w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_token.Token, {
25
+ classes: {
26
+ token: 'token',
27
+ selectable: 'selectable'
28
+ },
29
+ text: 'foo \nbar'
30
+ }));
31
+ expect(w).toMatchSnapshot();
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi1zZWxlY3QvX190ZXN0c19fL3Rva2VuLnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaXQiLCJ3IiwidG9rZW4iLCJzZWxlY3RhYmxlIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QkEsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCQyxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEIsVUFBTUMsQ0FBQyxHQUFHLG1DQUNSLGdDQUFDLFlBQUQ7QUFDRSxRQUFBLE9BQU8sRUFBRTtBQUNQQyxVQUFBQSxLQUFLLEVBQUUsT0FEQTtBQUVQQyxVQUFBQSxVQUFVLEVBQUU7QUFGTCxTQURYO0FBS0UsUUFBQSxJQUFJLEVBQUU7QUFMUixRQURRLENBQVY7QUFTQUMsTUFBQUEsTUFBTSxDQUFDSCxDQUFELENBQU4sQ0FBVUksZUFBVjtBQUNELEtBWEMsQ0FBRjtBQWFBTCxJQUFBQSxFQUFFLENBQUMsa0JBQUQsRUFBcUIsWUFBTTtBQUMzQixVQUFNQyxDQUFDLEdBQUcsbUNBQ1IsZ0NBQUMsWUFBRDtBQUNFLFFBQUEsT0FBTyxFQUFFO0FBQ1BDLFVBQUFBLEtBQUssRUFBRSxPQURBO0FBRVBDLFVBQUFBLFVBQVUsRUFBRTtBQUZMLFNBRFg7QUFLRSxRQUFBLElBQUksRUFBRTtBQUxSLFFBRFEsQ0FBVjtBQVNBQyxNQUFBQSxNQUFNLENBQUNILENBQUQsQ0FBTixDQUFVSSxlQUFWO0FBQ0QsS0FYQyxDQUFGO0FBWUQsR0ExQk8sQ0FBUjtBQTJCRCxDQTVCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW4gfSBmcm9tICcuLi90b2tlbic7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmRlc2NyaWJlKCd0b2tlbicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHNoYWxsb3coXG4gICAgICAgIDxUb2tlblxuICAgICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICAgIHRva2VuOiAndG9rZW4nLFxuICAgICAgICAgICAgc2VsZWN0YWJsZTogJ3NlbGVjdGFibGUnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdGV4dD17J2ZvbyBiYXInfVxuICAgICAgICAvPixcbiAgICAgICk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGJycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHcgPSBzaGFsbG93KFxuICAgICAgICA8VG9rZW5cbiAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICB0b2tlbjogJ3Rva2VuJyxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6ICdzZWxlY3RhYmxlJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHRleHQ9eydmb28gXFxuYmFyJ31cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -97,9 +97,10 @@ var TokenSelect = /*#__PURE__*/function (_React$Component) {
97
97
  var tokensCloned = (0, _clone["default"])(tokens);
98
98
  var targetSpanWrapper = target.closest(".".concat(_token["default"].rootClassName));
99
99
  var targetedTokenIndex = targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;
100
- var t = targetedTokenIndex && tokensCloned[targetedTokenIndex];
100
+ var t = targetedTokenIndex && tokensCloned[targetedTokenIndex]; // don't toggle if we are in print mode, token correctness is defined or if it's missing
101
+ // (missing means that it was evaluated as correct and not selected)
101
102
 
102
- if (t && t.correct === undefined && !animationsDisabled) {
103
+ if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {
103
104
  var _this$props2 = _this.props,
104
105
  onChange = _this$props2.onChange,
105
106
  maxNoOfSelections = _this$props2.maxNoOfSelections;
@@ -246,4 +247,4 @@ var _default = (0, _styles.withStyles)(function () {
246
247
  })(TokenSelect);
247
248
 
248
249
  exports["default"] = _default;
249
- //# sourceMappingURL=index.js.map
250
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi1zZWxlY3QvaW5kZXguanN4Il0sIm5hbWVzIjpbImxvZyIsIlRva2VuU2VsZWN0IiwicHJvcHMiLCJ0b2tlbnMiLCJmaWx0ZXIiLCJ0Iiwic2VsZWN0ZWQiLCJsZW5ndGgiLCJzZWxlY3RlZENvdW50IiwibWF4Tm9PZlNlbGVjdGlvbnMiLCJpc0Zpbml0ZSIsImV2ZW50IiwidGFyZ2V0IiwiYW5pbWF0aW9uc0Rpc2FibGVkIiwidG9rZW5zQ2xvbmVkIiwidGFyZ2V0U3BhbldyYXBwZXIiLCJjbG9zZXN0IiwiVG9rZW4iLCJyb290Q2xhc3NOYW1lIiwidGFyZ2V0ZWRUb2tlbkluZGV4IiwiZGF0YXNldCIsImluZGV4a2V5IiwiY29ycmVjdCIsInVuZGVmaW5lZCIsImlzTWlzc2luZyIsIm9uQ2hhbmdlIiwic2VsZWN0ZWRUb2tlbiIsInVwZGF0ZWRUb2tlbnMiLCJtYXAiLCJ0b2tlbiIsInNlbGVjdGFibGUiLCJ1cGRhdGUiLCJzcGxpY2UiLCJkaXNhYmxlZCIsImhpZ2hsaWdodENob2ljZXMiLCJpc0xpbmVCcmVhayIsInRleHQiLCJpc05ld1BhcmFncmFwaCIsInJlZHVjZXIiLCJhY2N1bXVsYXRvciIsImluZGV4IiwiY2FuU2VsZWN0TW9yZSIsInNob3dDb3JyZWN0QW5zd2VyIiwiZmluYWxBY2MiLCJwcmVkZWZpbmVkIiwicmVkdWNlUmVzdWx0IiwicmVkdWNlIiwiY2xhc3NlcyIsImNsYXNzTmFtZVByb3AiLCJjbGFzc05hbWUiLCJ0b2tlblNlbGVjdCIsImh0bWwiLCJnZW5lcmF0ZVRva2Vuc0luSHRtbCIsIl9faHRtbCIsInRvZ2dsZVRva2VuIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwic2hhcGUiLCJUb2tlblR5cGVzIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJib29sIiwibnVtYmVyIiwiYmFja2dyb3VuZENvbG9yIiwid2hpdGVTcGFjZSJdLCJtYXBw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QkFBVztBQUFBLFNBQU87QUFDL0IrQyxJQUFBQSxXQUFXO0FBQ1RpQixNQUFBQSxlQUFlLEVBQUUsTUFEUjtBQUVUQyxNQUFBQSxVQUFVLEVBQUU7QUFGSCxPQUdOLDJCQUhNO0FBSVQsYUFBTztBQUNMQSxRQUFBQSxVQUFVLEVBQUU7QUFEUDtBQUpFO0FBRG9CLEdBQVA7QUFBQSxDQUFYLEVBU1huRSxXQVRXLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBUb2tlbiwgeyBUb2tlblR5cGVzIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGNsb25lIGZyb20gJ2xvZGFzaC9jbG9uZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgbm9TZWxlY3QgfSBmcm9tICdAcGllLWxpYi9zdHlsZS11dGlscyc7XG5pbXBvcnQgeyByZW5kZXJUb1N0cmluZyB9IGZyb20gJ3JlYWN0LWRvbS9zZXJ2ZXInO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6dGV4dC1zZWxlY3Q6dG9rZW4tc2VsZWN0Jyk7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblNlbGVjdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdG9rZW5zOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUoVG9rZW5UeXBlcykpLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGlnaGxpZ2h0Q2hvaWNlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgYW5pbWF0aW9uc0Rpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBtYXhOb09mU2VsZWN0aW9uczogUHJvcFR5cGVzLm51bWJlcixcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGhpZ2hsaWdodENob2ljZXM6IGZhbHNlLFxuICAgIG1heE5vT2ZTZWxlY3Rpb25zOiAwLFxuICAgIHRva2VuczogW10sXG4gIH07XG5cbiAgc2VsZWN0ZWRDb3VudCA9ICgpID0+IHRoaXMucHJvcHMudG9rZW5zLmZpbHRlcigodCkgPT4gdC5zZWxlY3RlZCkubGVuZ3RoO1xuXG4gIGNhblNlbGVjdE1vcmUgPSAoc2VsZWN0ZWRDb3VudCkgPT4ge1xuICAgIGNvbnN0IHsgbWF4Tm9PZlNlbGVjdGlvbnMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAobWF4Tm9PZlNlbGVjdGlvbnMgPT09IDEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxvZygnW2NhblNlbGVjdE1vcmVdIG1heE5vT2ZTZWxlY3Rpb25zOiAnLCBtYXhOb09mU2VsZWN0aW9ucywgJ3NlbGVjdGVkQ291bnQ6ICcsIHNlbGVjdGVkQ291bnQpO1xuICAgIHJldHVybiBtYXhOb09mU2VsZWN0aW9ucyA8PSAwIHx8IChpc0Zpbml0ZShtYXhOb09mU2VsZWN0aW9ucykgJiYgc2VsZWN0ZWRDb3VudCA8IG1heE5vT2ZTZWxlY3Rpb25zKTtcbiAgfTtcblxuICAvKipcbiAgIEBmdW5jdGlvblxuICAgQHBhcmFtIHsgb2JqZWN0IH0gZXZlbnRcblxuICAgQGRlc2NyaXB0aW9uXG4gICAgZWFjaCB0b2tlbiBpcyB3cmFwcGVkIGludG8gYSBzcGFuIHRoYXQgaGFzIFRva2VuLnJvb3RDbGFzc05hbWUgY2xhc3MgYW5kIGluZGV4a2V5IGF0dHJpYnV0ZSAocmVwcmVzZW50cyB0aGUgaW5kZXggb2YgdGhlIHRva2VuKVxuICAgIHRva2VucyBhcmUgdXBkYXRlZCB3aXRoIHRoZSB0YXJnZXRlZCB0b2tlbiBoYXZpbmcgdGhlIGNvcnJlY3QgdmFsdWUgc2V0IGZvciAnc2VsZWN0ZWQnIHByb3BlcnR5XG4gICAqL1xuICB0b2dnbGVUb2tlbiA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudDtcbiAgICBjb25zdCB7IHRva2VucywgYW5pbWF0aW9uc0Rpc2FibGVkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHRva2Vuc0Nsb25lZCA9IGNsb25lKHRva2Vucyk7XG4gICAgY29uc3QgdGFyZ2V0U3BhbldyYXBwZXIgPSB0YXJnZXQuY2xvc2VzdChgLiR7VG9rZW4ucm9vdENsYXNzTmFtZX1gKTtcbiAgICBjb25zdCB0YXJnZXRlZFRva2VuSW5kZXggPSB0YXJnZXRTcGFuV3JhcHBlciAmJiB0YXJnZXRTcGFuV3JhcHBlci5kYXRhc2V0ICYmIHRhcmdldFNwYW5XcmFwcGVyLmRhdGFzZXQuaW5kZXhrZXk7XG4gICAgY29uc3QgdCA9IHRhcmdldGVkVG9rZW5JbmRleCAmJiB0b2tlbnNDbG9uZWRbdGFyZ2V0ZWRUb2tlbkluZGV4XTtcblxuICAgIC8vIGRvbid0IHRvZ2dsZSBpZiB3ZSBhcmUgaW4gcHJpbnQgbW9kZSwgdG9rZW4gY29ycmVjdG5lc3MgaXMgZGVmaW5lZCBvciBpZiBpdCdzIG1pc3NpbmdcbiAgICAvLyAobWlzc2luZyBtZWFucyB0aGF0IGl0IHdhcyBldmFsdWF0ZWQgYXMgY29ycmVjdCBhbmQgbm90IHNlbGVjdGVkKVxuICAgIGlmICh0ICYmIHQuY29ycmVjdCA9PT0gdW5kZWZpbmVkICYmICFhbmltYXRpb25zRGlzYWJsZWQgJiYgIXQuaXNNaXNzaW5nKSB7XG4gICAgICBjb25zdCB7IG9uQ2hhbmdlLCBtYXhOb09mU2VsZWN0aW9ucyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gIXQuc2VsZWN0ZWQ7XG5cbiAgICAgIGlmIChtYXhOb09mU2VsZWN0aW9ucyA9PT0gMSAmJiB0aGlzLnNlbGVjdGVkQ291bnQoKSA9PT0gMSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRva2VuID0gKHRva2VucyB8fCBbXSkuZmlsdGVyKCh0KSA9PiB0LnNlbGVjdGVkKTtcblxuICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW5zID0gdG9rZW5zQ2xvbmVkLm1hcCgodG9rZW4pID0+IHtcbiAgICAgICAgICBpZiAoaXNFcXVhbCh0b2tlbiwgc2VsZWN0ZWRUb2tlblswXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnRva2VuLCBzZWxlY3RlZDogZmFsc2UgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4geyAuLi50b2tlbiwgc2VsZWN0YWJsZTogdHJ1ZSB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB1cGRhdGUgPSB7IC4uLnQsIHNlbGVjdGVkOiAhdC5zZWxlY3RlZCB9O1xuXG4gICAgICAgIHVwZGF0ZWRUb2tlbnMuc3BsaWNlKHRhcmdldGVkVG9rZW5JbmRleCwgMSwgdXBkYXRlKTtcbiAgICAgICAgb25DaGFuZ2UodXBkYXRlZFRva2Vucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgbWF4Tm9PZlNlbGVjdGlvbnMgPiAwICYmIHRoaXMuc2VsZWN0ZWRDb3VudCgpID49IG1heE5vT2ZTZWxlY3Rpb25zKSB7XG4gICAgICAgICAgbG9nKCdza2lwIHRvZ2dsZSBtYXggcmVhY2hlZCcpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZSA9IHsgLi4udCwgc2VsZWN0ZWQ6ICF0LnNlbGVjdGVkIH07XG5cbiAgICAgICAgdG9rZW5zQ2xvbmVkLnNwbGljZSh0YXJnZXRlZFRva2VuSW5kZXgsIDEsIHVwZGF0ZSk7XG4gICAgICAgIG9uQ2hhbmdlKHRva2Vuc0Nsb25lZCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGdlbmVyYXRlVG9rZW5zSW5IdG1sID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgdG9rZW5zLCBkaXNhYmxlZCwgaGlnaGxpZ2h0Q2hvaWNlcywgYW5pbWF0aW9uc0Rpc2FibGVkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnQgPSB0aGlzLnNlbGVjdGVkQ291bnQoKTtcbiAgICBjb25zdCBpc0xpbmVCcmVhayA9ICh0ZXh0KSA9PiB0ZXh0ID09PSAnXFxuJztcbiAgICBjb25zdCBpc05ld1BhcmFncmFwaCA9ICh0ZXh0KSA9PiB0ZXh0ID09PSAnXFxuXFxuJztcblxuICAgIGNvbnN0IHJlZHVjZXIgPSAoYWNjdW11bGF0b3IsIHQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RhYmxlID0gdC5zZWxlY3RlZCB8fCAodC5zZWxlY3RhYmxlICYmIHRoaXMuY2FuU2VsZWN0TW9yZShzZWxlY3RlZENvdW50KSk7XG4gICAgICBjb25zdCBzaG93Q29ycmVjdEFuc3dlciA9IHQuY29ycmVjdCAhPT0gdW5kZWZpbmVkICYmICh0LnNlbGVjdGFibGUgfHwgdC5zZWxlY3RlZCk7XG4gICAgICBsZXQgZmluYWxBY2MgPSBhY2N1bXVsYXRvcjtcblxuICAgICAgaWYgKGlzTmV3UGFyYWdyYXBoKHQudGV4dCkpIHtcbiAgICAgICAgcmV0dXJuIGZpbmFsQWNjICsgJzwvcD48cD4nO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNMaW5lQnJlYWsodC50ZXh0KSkge1xuICAgICAgICByZXR1cm4gZmluYWxBY2MgKyAnPGJyPic7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHNlbGVjdGFibGUgJiYgIWRpc2FibGVkKSB8fFxuICAgICAgICBzaG93Q29ycmVjdEFuc3dlciB8fFxuICAgICAgICB0LnNlbGVjdGVkIHx8XG4gICAgICAgIHQuaXNNaXNzaW5nIHx8XG4gICAgICAgIChhbmltYXRpb25zRGlzYWJsZWQgJiYgdC5wcmVkZWZpbmVkKSAvLyBpZiB3ZSBhcmUgaW4gcHJpbnQgbW9kZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgZmluYWxBY2MgK1xuICAgICAgICAgIHJlbmRlclRvU3RyaW5nKFxuICAgICAgICAgICAgPFRva2VuXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICB7Li4udH1cbiAgICAgICAgICAgICAgc2VsZWN0YWJsZT17c2VsZWN0YWJsZX1cbiAgICAgICAgICAgICAgaGlnaGxpZ2h0PXtoaWdobGlnaHRDaG9pY2VzfVxuICAgICAgICAgICAgICBhbmltYXRpb25zRGlzYWJsZWQ9e2FuaW1hdGlvbnNEaXNhYmxlZH1cbiAgICAgICAgICAgIC8+LFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvciArIHQudGV4dDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVkdWNlUmVzdWx0ID0gKHRva2VucyB8fCBbXSkucmVkdWNlKHJlZHVjZXIsICc8cD4nKTtcblxuICAgIHJldHVybiByZWR1Y2VSZXN1bHQgKyAnPC9wPic7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWVQcm9wIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXMoY2xhc3Nlcy50b2tlblNlbGVjdCwgY2xhc3NOYW1lUHJvcCk7XG4gICAgY29uc3QgaHRtbCA9IHRoaXMuZ2VuZXJhdGVUb2tlbnNJbkh0bWwoKTtcblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGh0bWwgfX0gb25DbGljaz17dGhpcy50b2dnbGVUb2tlbn0gLz47XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcygoKSA9PiAoe1xuICB0b2tlblNlbGVjdDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJ25vbmUnLFxuICAgIHdoaXRlU3BhY2U6ICdwcmUnLFxuICAgIC4uLm5vU2VsZWN0KCksXG4gICAgJyYgcCc6IHtcbiAgICAgIHdoaXRlU3BhY2U6ICdicmVhay1zcGFjZXMnLFxuICAgIH0sXG4gIH0sXG59KSkoVG9rZW5TZWxlY3QpO1xuIl19