@pie-lib/text-select 2.1.0-next.0 → 2.1.0-next.4

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.
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var _index = require("../index");
6
- var _react = _interopRequireDefault(require("react"));
7
- var _react2 = require("@testing-library/react");
8
- describe('token-select', function () {
9
- var defaultProps = {
10
- tokens: [{
11
- text: 'foo bar',
12
- start: 0,
13
- end: 7,
14
- predefined: true,
15
- selectable: true,
16
- selected: false
17
- }],
18
- classes: {},
19
- onChange: jest.fn()
20
- };
21
- describe('rendering', function () {
22
- it('renders with default props', function () {
23
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.TokenSelect, defaultProps)),
24
- container = _render.container;
25
- expect(container.firstChild).toBeInTheDocument();
26
- });
27
- it('renders sentences with newlines', function () {
28
- var tokens = [{
29
- text: 'foo,',
30
- start: 0,
31
- end: 4,
32
- predefined: true,
33
- selectable: true,
34
- selected: false
35
- }, {
36
- text: '\n',
37
- start: 4,
38
- end: 5,
39
- selected: false
40
- }, {
41
- text: 'bar',
42
- start: 5,
43
- end: 8,
44
- predefined: true,
45
- selectable: true,
46
- selected: false
47
- }];
48
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.TokenSelect, (0, _extends2["default"])({}, defaultProps, {
49
- tokens: tokens
50
- }))),
51
- container = _render2.container;
52
- expect(container.firstChild).toBeInTheDocument();
53
- });
54
- it('renders paragraphs with double newlines', function () {
55
- var tokens = [{
56
- text: 'foo,',
57
- start: 0,
58
- end: 4,
59
- predefined: true,
60
- selectable: true,
61
- selected: false
62
- }, {
63
- text: '\n\n',
64
- start: 4,
65
- end: 5,
66
- selected: false
67
- }, {
68
- text: 'bar',
69
- start: 5,
70
- end: 8,
71
- predefined: true,
72
- selectable: true,
73
- selected: false
74
- }];
75
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.TokenSelect, (0, _extends2["default"])({}, defaultProps, {
76
- tokens: tokens
77
- }))),
78
- container = _render3.container;
79
- expect(container.firstChild).toBeInTheDocument();
80
- });
81
- it('renders in disabled mode with selected tokens', function () {
82
- var tokens = [{
83
- text: 'foo,',
84
- start: 0,
85
- end: 4,
86
- predefined: true,
87
- selectable: true,
88
- selected: true
89
- }, {
90
- text: '\n',
91
- start: 4,
92
- end: 5,
93
- selected: false
94
- }, {
95
- text: 'bar',
96
- start: 5,
97
- end: 8,
98
- predefined: true,
99
- selectable: true,
100
- selected: true
101
- }];
102
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.TokenSelect, (0, _extends2["default"])({}, defaultProps, {
103
- disabled: true,
104
- tokens: tokens
105
- }))),
106
- container = _render4.container;
107
- expect(container.firstChild).toBeInTheDocument();
108
- });
109
- it('renders with maxNoOfSelections', function () {
110
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.TokenSelect, (0, _extends2["default"])({}, defaultProps, {
111
- maxNoOfSelections: 5
112
- }))),
113
- container = _render5.container;
114
- expect(container.firstChild).toBeInTheDocument();
115
- });
116
- });
117
-
118
- // Note: Tests for internal methods (selectedCount, canSelectMore, toggleToken) are
119
- // implementation details and cannot be directly tested with RTL. The original tests
120
- // used wrapper.instance() to test these methods, which tests implementation rather
121
- // than user-facing behavior. Token selection logic and user interactions should be
122
- // tested through integration/e2e tests.
123
- });
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdDIiLCJkZXNjcmliZSIsImRlZmF1bHRQcm9wcyIsInRva2VucyIsInRleHQiLCJzdGFydCIsImVuZCIsInByZWRlZmluZWQiLCJzZWxlY3RhYmxlIiwic2VsZWN0ZWQiLCJjbGFzc2VzIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiVG9rZW5TZWxlY3QiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsIl9leHRlbmRzMiIsIl9yZW5kZXIzIiwiX3JlbmRlcjQiLCJkaXNhYmxlZCIsIl9yZW5kZXI1IiwibWF4Tm9PZlNlbGVjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9rZW4tc2VsZWN0L19fdGVzdHNfXy9pbmRleC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2tlblNlbGVjdCB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuZGVzY3JpYmUoJ3Rva2VuLXNlbGVjdCcsICgpID0+IHtcbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIHRva2VuczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiAnZm9vIGJhcicsXG4gICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICBlbmQ6IDcsXG4gICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjbGFzc2VzOiB7fSxcbiAgICBvbkNoYW5nZTogamVzdC5mbigpLFxuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VG9rZW5TZWxlY3Qgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgc2VudGVuY2VzIHdpdGggbmV3bGluZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnZm9vLCcsXG4gICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgZW5kOiA0LFxuICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnXFxuJyxcbiAgICAgICAgICBzdGFydDogNCxcbiAgICAgICAgICBlbmQ6IDUsXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgc3RhcnQ6IDUsXG4gICAgICAgICAgZW5kOiA4LFxuICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VG9rZW5TZWxlY3Qgey4uLmRlZmF1bHRQcm9wc30gdG9rZW5zPXt0b2tlbnN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHBhcmFncmFwaHMgd2l0aCBkb3VibGUgbmV3bGluZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnZm9vLCcsXG4gICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgZW5kOiA0LFxuICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnXFxuXFxuJyxcbiAgICAgICAgICBzdGFydDogNCxcbiAgICAgICAgICBlbmQ6IDUsXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgc3RhcnQ6IDUsXG4gICAgICAgICAgZW5kOiA4LFxuICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VG9rZW5TZWxlY3Qgey4uLmRlZmF1bHRQcm9wc30gdG9rZW5zPXt0b2tlbnN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGluIGRpc2FibGVkIG1vZGUgd2l0aCBzZWxlY3RlZCB0b2tlbnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnZm9vLCcsXG4gICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgZW5kOiA0LFxuICAgICAgICAgIHByZWRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdcXG4nLFxuICAgICAgICAgIHN0YXJ0OiA0LFxuICAgICAgICAgIGVuZDogNSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnYmFyJyxcbiAgICAgICAgICBzdGFydDogNSxcbiAgICAgICAgICBlbmQ6IDgsXG4gICAgICAgICAgcHJlZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRva2VuU2VsZWN0IHsuLi5kZWZhdWx0UHJvcHN9IGRpc2FibGVkIHRva2Vucz17dG9rZW5zfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIG1heE5vT2ZTZWxlY3Rpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VG9rZW5TZWxlY3Qgey4uLmRlZmF1bHRQcm9wc30gbWF4Tm9PZlNlbGVjdGlvbnM9ezV9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gTm90ZTogVGVzdHMgZm9yIGludGVybmFsIG1ldGhvZHMgKHNlbGVjdGVkQ291bnQsIGNhblNlbGVjdE1vcmUsIHRvZ2dsZVRva2VuKSBhcmVcbiAgLy8gaW1wbGVtZW50YXRpb24gZGV0YWlscyBhbmQgY2Fubm90IGJlIGRpcmVjdGx5IHRlc3RlZCB3aXRoIFJUTC4gVGhlIG9yaWdpbmFsIHRlc3RzXG4gIC8vIHVzZWQgd3JhcHBlci5pbnN0YW5jZSgpIHRvIHRlc3QgdGhlc2UgbWV0aG9kcywgd2hpY2ggdGVzdHMgaW1wbGVtZW50YXRpb24gcmF0aGVyXG4gIC8vIHRoYW4gdXNlci1mYWNpbmcgYmVoYXZpb3IuIFRva2VuIHNlbGVjdGlvbiBsb2dpYyBhbmQgdXNlciBpbnRlcmFjdGlvbnMgc2hvdWxkIGJlXG4gIC8vIHRlc3RlZCB0aHJvdWdoIGludGVncmF0aW9uL2UyZSB0ZXN0cy5cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBRUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUUsWUFBTTtFQUM3QixJQUFNQyxZQUFZLEdBQUc7SUFDbkJDLE1BQU0sRUFBRSxDQUNOO01BQ0VDLElBQUksRUFBRSxTQUFTO01BQ2ZDLEtBQUssRUFBRSxDQUFDO01BQ1JDLEdBQUcsRUFBRSxDQUFDO01BQ05DLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsUUFBUSxFQUFFO0lBQ1osQ0FBQyxDQUNGO0lBQ0RDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDWEMsUUFBUSxFQUFFQyxJQUFJLENBQUNDLEVBQUUsQ0FBQztFQUNwQixDQUFDO0VBRURaLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQmEsRUFBRSxDQUFDLDRCQUE0QixFQUFFLFlBQU07TUFDckMsSUFBQUMsT0FBQSxHQUFzQixJQUFBQyxjQUFNLGVBQUNsQixNQUFBLFlBQUFtQixhQUFBLENBQUNyQixNQUFBLENBQUFzQixXQUFXLEVBQUtoQixZQUFlLENBQUMsQ0FBQztRQUF2RGlCLFNBQVMsR0FBQUosT0FBQSxDQUFUSSxTQUFTO01BQ2pCQyxNQUFN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
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var _token = require("../token");
6
- var _react = _interopRequireDefault(require("react"));
7
- var _react2 = require("@testing-library/react");
8
- describe('token', function () {
9
- var defaultProps = {
10
- classes: {
11
- token: 'token',
12
- selectable: 'selectable'
13
- },
14
- text: 'foo bar'
15
- };
16
- describe('rendering', function () {
17
- it('renders with text', function () {
18
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_token.Token, defaultProps)),
19
- container = _render.container;
20
- expect(container.firstChild).toBeInTheDocument();
21
- });
22
- it('renders with newlines', function () {
23
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_token.Token, (0, _extends2["default"])({}, defaultProps, {
24
- text: "foo \\nbar"
25
- }))),
26
- container = _render2.container;
27
- expect(container.firstChild).toBeInTheDocument();
28
- });
29
- it('renders with multiple newlines', function () {
30
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_token.Token, (0, _extends2["default"])({}, defaultProps, {
31
- text: "line1\\nline2\\nline3"
32
- }))),
33
- container = _render3.container;
34
- expect(container.firstChild).toBeInTheDocument();
35
- });
36
- });
37
- });
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdDIiLCJkZXNjcmliZSIsImRlZmF1bHRQcm9wcyIsImNsYXNzZXMiLCJ0b2tlbiIsInNlbGVjdGFibGUiLCJ0ZXh0IiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIlRva2VuIiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJfZXh0ZW5kczIiLCJfcmVuZGVyMyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi1zZWxlY3QvX190ZXN0c19fL3Rva2VuLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuIH0gZnJvbSAnLi4vdG9rZW4nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuXG5kZXNjcmliZSgndG9rZW4nLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc2VzOiB7XG4gICAgICB0b2tlbjogJ3Rva2VuJyxcbiAgICAgIHNlbGVjdGFibGU6ICdzZWxlY3RhYmxlJyxcbiAgICB9LFxuICAgIHRleHQ6ICdmb28gYmFyJyxcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggdGV4dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRva2VuIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbmV3bGluZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxUb2tlbiB7Li4uZGVmYXVsdFByb3BzfSB0ZXh0PVwiZm9vIFxcbmJhclwiIC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbXVsdGlwbGUgbmV3bGluZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxUb2tlbiB7Li4uZGVmYXVsdFByb3BzfSB0ZXh0PVwibGluZTFcXG5saW5lMlxcbmxpbmUzXCIgLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBRUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsWUFBTTtFQUN0QixJQUFNQyxZQUFZLEdBQUc7SUFDbkJDLE9BQU8sRUFBRTtNQUNQQyxLQUFLLEVBQUUsT0FBTztNQUNkQyxVQUFVLEVBQUU7SUFDZCxDQUFDO0lBQ0RDLElBQUksRUFBRTtFQUNSLENBQUM7RUFFREwsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFNO0lBQzFCTSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsWUFBTTtNQUM1QixJQUFBQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ1gsTUFBQSxZQUFBWSxhQUFBLENBQUNkLE1BQUEsQ0FBQWUsS0FBSyxFQUFLVCxZQUFlLENBQUMsQ0FBQztRQUFqRFUsU0FBUyxHQUFBSixPQUFBLENBQVRJLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRlIsRUFBRSxDQUFDLHVCQUF1QixFQUFFLFlBQU07TUFDaEMsSUFBQVMsUUFBQSxHQUFzQixJQUFBUCxjQUFNLGVBQUNYLE1BQUEsWUFBQVksYUFBQSxDQUFDZCxNQUFBLENBQUFlLEtBQUssTUFBQU0sU0FBQSxpQkFBS2YsWUFBWTtVQUFFSSxJQUFJLEVBQUM7UUFBVyxFQUFFLENBQUMsQ0FBQztRQUFsRU0sU0FBUyxHQUFBSSxRQUFBLENBQVRKLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRlIsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLFlBQU07TUFDekMsSUFBQVcsUUFBQSxHQUFzQixJQUFBVCxjQUFNLGVBQUNYLE1BQUEsWUFBQVksYUFBQSxDQUFDZCxNQUFBLENBQUFlLEtBQUssTUFBQU0sU0FBQSxpQkFBS2YsWUFBWTtVQUFFSSxJQUFJLEVBQUM7UUFBcUIsRUFBRSxDQUFDLENBQUM7UUFBNUVNLFNBQVMsR0FBQU0sUUFBQSxDQUFUTixTQUFTO01BQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,207 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.TokenSelect = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _react = _interopRequireDefault(require("react"));
17
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
- var _token = _interopRequireWildcard(require("./token"));
19
- var _styles = require("@mui/material/styles");
20
- var _clone = _interopRequireDefault(require("lodash/clone"));
21
- var _debug = _interopRequireDefault(require("debug"));
22
- var _styleUtils = require("@pie-lib/style-utils");
23
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
24
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
25
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
26
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
27
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
- var log = (0, _debug["default"])('@pie-lib:text-select:token-select');
30
- var StyledTokenSelect = (0, _styles.styled)('div')(function () {
31
- return _objectSpread(_objectSpread({
32
- backgroundColor: 'none',
33
- whiteSpace: 'pre'
34
- }, (0, _styleUtils.noSelect)()), {}, {
35
- '& p': {
36
- whiteSpace: 'break-spaces',
37
- margin: 0
38
- }
39
- });
40
- });
41
-
42
- // strip HTML tags for plain text rendering
43
- var stripHtmlTags = function stripHtmlTags(text) {
44
- if (!text) {
45
- return text;
46
- }
47
- return text.replace(/<[^>]+>/g, '');
48
- };
49
- var TokenSelect = exports.TokenSelect = /*#__PURE__*/function (_React$Component) {
50
- function TokenSelect() {
51
- var _this;
52
- (0, _classCallCheck2["default"])(this, TokenSelect);
53
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
- args[_key] = arguments[_key];
55
- }
56
- _this = _callSuper(this, TokenSelect, [].concat(args));
57
- (0, _defineProperty2["default"])(_this, "selectedCount", function () {
58
- return _this.props.tokens.filter(function (t) {
59
- return t.selected;
60
- }).length;
61
- });
62
- (0, _defineProperty2["default"])(_this, "canSelectMore", function (selectedCount) {
63
- var maxNoOfSelections = _this.props.maxNoOfSelections;
64
- if (maxNoOfSelections === 1) return true;
65
- log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);
66
- return maxNoOfSelections <= 0 || isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections;
67
- });
68
- (0, _defineProperty2["default"])(_this, "toggleToken", function (event) {
69
- var _target$closest, _targetSpanWrapper$da;
70
- var target = event.target;
71
- var _this$props = _this.props,
72
- tokens = _this$props.tokens,
73
- animationsDisabled = _this$props.animationsDisabled;
74
- var tokensCloned = (0, _clone["default"])(tokens);
75
- var targetSpanWrapper = (_target$closest = target.closest) === null || _target$closest === void 0 ? void 0 : _target$closest.call(target, ".".concat(_token["default"].rootClassName));
76
- var targetedTokenIndex = targetSpanWrapper === null || targetSpanWrapper === void 0 || (_targetSpanWrapper$da = targetSpanWrapper.dataset) === null || _targetSpanWrapper$da === void 0 ? void 0 : _targetSpanWrapper$da.indexkey;
77
- var t = targetedTokenIndex !== undefined ? tokensCloned[targetedTokenIndex] : undefined;
78
-
79
- // don't toggle if in print mode, correctness is defined, or is missing
80
- if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {
81
- var _this$props2 = _this.props,
82
- onChange = _this$props2.onChange,
83
- maxNoOfSelections = _this$props2.maxNoOfSelections;
84
- var selected = !t.selected;
85
- if (maxNoOfSelections === 1 && _this.selectedCount() === 1) {
86
- var selectedToken = (tokens || []).filter(function (tk) {
87
- return tk.selected;
88
- });
89
- var updatedTokens = tokensCloned.map(function (token) {
90
- if ((0, _isEqual["default"])(token, selectedToken[0])) {
91
- return _objectSpread(_objectSpread({}, token), {}, {
92
- selected: false
93
- });
94
- }
95
- return _objectSpread(_objectSpread({}, token), {}, {
96
- selectable: true
97
- });
98
- });
99
- var update = _objectSpread(_objectSpread({}, t), {}, {
100
- selected: selected
101
- });
102
- updatedTokens.splice(targetedTokenIndex, 1, update);
103
- onChange(updatedTokens);
104
- } else {
105
- if (selected && maxNoOfSelections > 0 && _this.selectedCount() >= maxNoOfSelections) {
106
- log('skip toggle max reached');
107
- return;
108
- }
109
- var _update = _objectSpread(_objectSpread({}, t), {}, {
110
- selected: selected
111
- });
112
- tokensCloned.splice(targetedTokenIndex, 1, _update);
113
- onChange(tokensCloned);
114
- }
115
- }
116
- });
117
- /** Build a React tree instead of an HTML string so Emotion can inject CSS */
118
- (0, _defineProperty2["default"])(_this, "generateTokensNodes", function () {
119
- var _this$props3 = _this.props,
120
- tokens = _this$props3.tokens,
121
- disabled = _this$props3.disabled,
122
- highlightChoices = _this$props3.highlightChoices,
123
- animationsDisabled = _this$props3.animationsDisabled;
124
- var selectedCount = _this.selectedCount();
125
- var isLineBreak = function isLineBreak(text) {
126
- return text === '\n';
127
- };
128
- var isNewParagraph = function isNewParagraph(text) {
129
- return text === '\n\n';
130
- };
131
- var paragraphs = [];
132
- var currentChildren = [];
133
- var flushParagraph = function flushParagraph() {
134
- // Always push a <p>, even if empty, to mirror previous behavior
135
- paragraphs.push(/*#__PURE__*/_react["default"].createElement("p", {
136
- key: "p-".concat(paragraphs.length)
137
- }, currentChildren));
138
- currentChildren = [];
139
- };
140
- (tokens || []).forEach(function (t, index) {
141
- var selectable = t.selected || t.selectable && _this.canSelectMore(selectedCount);
142
- var showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);
143
- if (isNewParagraph(t.text)) {
144
- flushParagraph();
145
- return;
146
- }
147
- if (isLineBreak(t.text)) {
148
- currentChildren.push(/*#__PURE__*/_react["default"].createElement("br", {
149
- key: "br-".concat(index)
150
- }));
151
- return;
152
- }
153
- if (selectable && !disabled || showCorrectAnswer || t.selected || t.isMissing || animationsDisabled && t.predefined // print mode
154
- ) {
155
- currentChildren.push(/*#__PURE__*/_react["default"].createElement(_token["default"], (0, _extends2["default"])({
156
- key: index,
157
- disabled: disabled,
158
- index: index
159
- }, t, {
160
- text: stripHtmlTags(t.text),
161
- selectable: selectable,
162
- highlight: highlightChoices,
163
- animationsDisabled: animationsDisabled
164
- })));
165
- } else {
166
- // raw text node – React will escape as needed
167
- currentChildren.push(/*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
168
- key: index
169
- }, stripHtmlTags(t.text)));
170
- }
171
- });
172
-
173
- // flush last paragraph
174
- flushParagraph();
175
- return paragraphs;
176
- });
177
- return _this;
178
- }
179
- (0, _inherits2["default"])(TokenSelect, _React$Component);
180
- return (0, _createClass2["default"])(TokenSelect, [{
181
- key: "render",
182
- value: function render() {
183
- var classNameProp = this.props.className;
184
- var nodes = this.generateTokensNodes();
185
- return /*#__PURE__*/_react["default"].createElement(StyledTokenSelect, {
186
- className: classNameProp,
187
- onClick: this.toggleToken
188
- }, nodes);
189
- }
190
- }]);
191
- }(_react["default"].Component);
192
- (0, _defineProperty2["default"])(TokenSelect, "propTypes", {
193
- tokens: _propTypes["default"].arrayOf(_propTypes["default"].shape(_token.TokenTypes)).isRequired,
194
- className: _propTypes["default"].string,
195
- onChange: _propTypes["default"].func.isRequired,
196
- disabled: _propTypes["default"].bool,
197
- highlightChoices: _propTypes["default"].bool,
198
- animationsDisabled: _propTypes["default"].bool,
199
- maxNoOfSelections: _propTypes["default"].number
200
- });
201
- (0, _defineProperty2["default"])(TokenSelect, "defaultProps", {
202
- highlightChoices: false,
203
- maxNoOfSelections: 0,
204
- tokens: []
205
- });
206
- var _default = exports["default"] = TokenSelect;
207
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfdG9rZW4iLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9zdHlsZXMiLCJfY2xvbmUiLCJfZGVidWciLCJfc3R5bGVVdGlscyIsIl9pc0VxdWFsIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwibG9nIiwiZGVidWciLCJTdHlsZWRUb2tlblNlbGVjdCIsInN0eWxlZCIsImJhY2tncm91bmRDb2xvciIsIndoaXRlU3BhY2UiLCJub1NlbGVjdCIsIm1hcmdpbiIsInN0cmlwSHRtbFRhZ3MiLCJ0ZXh0IiwicmVwbGFjZSIsIlRva2VuU2VsZWN0IiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsInByb3BzIiwidG9rZW5zIiwic2VsZWN0ZWQiLCJzZWxlY3RlZENvdW50IiwibWF4Tm9PZlNlbGVjdGlvbnMiLCJpc0Zpbml0ZSIsImV2ZW50IiwiX3RhcmdldCRjbG9zZXN0IiwiX3RhcmdldFNwYW5XcmFwcGVyJGRhIiwidGFyZ2V0IiwiX3RoaXMkcHJvcHMiLCJhbmltYXRpb25zRGlzYWJsZWQiLCJ0b2tlbnNDbG9uZWQiLCJjbG9uZSIsInRhcmdldFNwYW5XcmFwcGVyIiwiY2xvc2VzdCIsIlRva2VuIiwicm9vdENsYXNzTmFtZSIsInRhcmdldGVkVG9rZW5JbmRleCIsImRhdGFzZXQiLCJpbmRleGtleSIsInVuZGVmaW5lZCIsImNvcnJlY3QiLCJpc01pc3NpbmciLCJfdGhpcyRwcm9wczIiLCJvbkNoYW5nZSIsInNlbGVjdGVkVG9rZW4iLCJ0ayIsInVwZGF0ZWRUb2tlbnMiLCJtYXAiLCJ0b2tlbiIsImlzRXF1YWwiLCJzZWxlY3RhYmxlIiwidXBkYXRlIiwic3BsaWNlIiwiX3RoaXMkcHJvcHMzIiwiZGlzYWJsZWQiLCJoaWdobGlnaHRDaG9pY2VzIiwiaXNMaW5lQnJlYWsiLCJpc05ld1BhcmFncmFwaCIsInBhcmFncmFwaHMiLCJjdXJyZW50Q2hpbGRyZW4iLCJmbHVzaFBhcmFncmFwaCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJpbmRleCIsImNhblNlbGVjdE1vcmUiLCJzaG93Q29ycmVjdEFuc3dlciIsInByZWRlZmluZWQiLCJfZXh0ZW5kczIiLCJoaWdobGlnaHQiLCJGcmFnbWVudCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJyZW5kZXIiLCJjbGFzc05hbWVQcm9wIiwiY2xhc3NOYW1lIiwibm9kZXMiLCJnZW5lcmF0ZVRva2Vuc05vZGVzIiwib25DbGljayIsInRvZ2dsZVRva2VuIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwic2hhcGUiLCJUb2tlblR5cGVzIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJib29sIiwibnVtYmVyIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4tc2VsZWN0L2luZGV4LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBUb2tlbiwgeyBUb2tlblR5cGVzIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBub1NlbGVjdCB9IGZyb20gJ0BwaWUtbGliL3N0eWxlLXV0aWxzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOnRleHQtc2VsZWN0OnRva2VuLXNlbGVjdCcpO1xuXG5jb25zdCBTdHlsZWRUb2tlblNlbGVjdCA9IHN0eWxlZCgnZGl2JykoKCkgPT4gKHtcbiAgYmFja2dyb3VuZENvbG9yOiAnbm9uZScsXG4gIHdoaXRlU3BhY2U6ICdwcmUnLFxuICAuLi5ub1NlbGVjdCgpLFxuICAnJiBwJzoge1xuICAgIHdoaXRlU3BhY2U6ICdicmVhay1zcGFjZXMnLFxuICAgIG1hcmdpbjogMCxcbiAgfSxcbn0pKTtcblxuLy8gc3RyaXAgSFRNTCB0YWdzIGZvciBwbGFpbiB0ZXh0IHJlbmRlcmluZ1xuY29uc3Qgc3RyaXBIdG1sVGFncyA9ICh0ZXh0KSA9PiB7XG4gIGlmICghdGV4dCkge1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgcmV0dXJuIHRleHQucmVwbGFjZSgvPFtePl0rPi9nLCAnJyk7XG59O1xuXG5leHBvcnQgY2xhc3MgVG9rZW5TZWxlY3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRva2VuczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnNoYXBlKFRva2VuVHlwZXMpKS5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGlnaGxpZ2h0Q2hvaWNlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgYW5pbWF0aW9uc0Rpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBtYXhOb09mU2VsZWN0aW9uczogUHJvcFR5cGVzLm51bWJlcixcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGhpZ2hsaWdodENob2ljZXM6IGZhbHNlLFxuICAgIG1heE5vT2ZTZWxlY3Rpb25zOiAwLFxuICAgIHRva2VuczogW10sXG4gIH07XG5cbiAgc2VsZWN0ZWRDb3VudCA9ICgpID0+IHRoaXMucHJvcHMudG9rZW5zLmZpbHRlcigodCkgPT4gdC5zZWxlY3RlZCkubGVuZ3RoO1xuXG4gIGNhblNlbGVjdE1vcmUgPSAoc2VsZWN0ZWRDb3VudCkgPT4ge1xuICAgIGNvbnN0IHsgbWF4Tm9PZlNlbGVjdGlvbnMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAobWF4Tm9PZlNlbGVjdGlvbnMgPT09IDEpIHJldHVybiB0cnVlO1xuXG4gICAgbG9nKCdbY2FuU2VsZWN0TW9yZV0gbWF4Tm9PZlNlbGVjdGlvbnM6ICcsIG1heE5vT2ZTZWxlY3Rpb25zLCAnc2VsZWN0ZWRDb3VudDogJywgc2VsZWN0ZWRDb3VudCk7XG4gICAgcmV0dXJuIG1heE5vT2ZTZWxlY3Rpb25zIDw9IDAgfHwgKGlzRmluaXRlKG1heE5vT2ZTZWxlY3Rpb25zKSAmJiBzZWxlY3RlZENvdW50IDwgbWF4Tm9PZlNlbGVjdGlvbnMpO1xuICB9O1xuXG4gIHRvZ2dsZVRva2VuID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuICAgIGNvbnN0IHsgdG9rZW5zLCBhbmltYXRpb25zRGlzYWJsZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdG9rZW5zQ2xvbmVkID0gY2xvbmUodG9rZW5zKTtcblxuICAgIGNvbnN0IHRhcmdldFNwYW5XcmFwcGVyID0gdGFyZ2V0LmNsb3Nlc3Q/LihgLiR7VG9rZW4ucm9vdENsYXNzTmFtZX1gKTtcbiAgICBjb25zdCB0YXJnZXRlZFRva2VuSW5kZXggPSB0YXJnZXRTcGFuV3JhcHBlcj8uZGF0YXNldD8uaW5kZXhrZXk7XG4gICAgY29uc3QgdCA9IHRhcmdldGVkVG9rZW5JbmRleCAhPT0gdW5kZWZpbmVkID8gdG9rZW5zQ2xvbmVkW3RhcmdldGVkVG9rZW5JbmRleF0gOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBkb24ndCB0b2dnbGUgaWYgaW4gcHJpbnQgbW9kZSwgY29ycmVjdG5lc3MgaXMgZGVmaW5lZCwgb3IgaXMgbWlzc2luZ1xuICAgIGlmICh0ICYmIHQuY29ycmVjdCA9PT0gdW5kZWZpbmVkICYmICFhbmltYXRpb25zRGlzYWJsZWQgJiYgIXQuaXNNaXNzaW5nKSB7XG4gICAgICBjb25zdCB7IG9uQ2hhbmdlLCBtYXhOb09mU2VsZWN0aW9ucyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gIXQuc2VsZWN0ZWQ7XG5cbiAgICAgIGlmIChtYXhOb09mU2VsZWN0aW9ucyA9PT0gMSAmJiB0aGlzLnNlbGVjdGVkQ291bnQoKSA9PT0gMSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRva2VuID0gKHRva2VucyB8fCBbXSkuZmlsdGVyKCh0aykgPT4gdGsuc2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW5zID0gdG9rZW5zQ2xvbmVkLm1hcCgodG9rZW4pID0+IHtcbiAgICAgICAgICBpZiAoaXNFcXVhbCh0b2tlbiwgc2VsZWN0ZWRUb2tlblswXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnRva2VuLCBzZWxlY3RlZDogZmFsc2UgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgLi4udG9rZW4sIHNlbGVjdGFibGU6IHRydWUgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlID0geyAuLi50LCBzZWxlY3RlZCB9O1xuICAgICAgICB1cGRhdGVkVG9rZW5zLnNwbGljZSh0YXJnZXRlZFRva2VuSW5kZXgsIDEsIHVwZGF0ZSk7XG4gICAgICAgIG9uQ2hhbmdlKHVwZGF0ZWRUb2tlbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkICYmIG1heE5vT2ZTZWxlY3Rpb25zID4gMCAmJiB0aGlzLnNlbGVjdGVkQ291bnQoKSA+PSBtYXhOb09mU2VsZWN0aW9ucykge1xuICAgICAgICAgIGxvZygnc2tpcCB0b2dnbGUgbWF4IHJlYWNoZWQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXBkYXRlID0geyAuLi50LCBzZWxlY3RlZCB9O1xuICAgICAgICB0b2tlbnNDbG9uZWQuc3BsaWNlKHRhcmdldGVkVG9rZW5JbmRleCwgMSwgdXBkYXRlKTtcbiAgICAgICAgb25DaGFuZ2UodG9rZW5zQ2xvbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqIEJ1aWxkIGEgUmVhY3QgdHJlZSBpbnN0ZWFkIG9mIGFuIEhUTUwgc3RyaW5nIHNvIEVtb3Rpb24gY2FuIGluamVjdCBDU1MgKi9cbiAgZ2VuZXJhdGVUb2tlbnNOb2RlcyA9ICgpID0+IHtcbiAgICBjb25zdCB7IHRva2VucywgZGlzYWJsZWQsIGhpZ2hsaWdodENob2ljZXMsIGFuaW1hdGlvbnNEaXNhYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzZWxlY3RlZENvdW50ID0gdGhpcy5zZWxlY3RlZENvdW50KCk7XG5cbiAgICBjb25zdCBpc0xpbmVCcmVhayA9ICh0ZXh0KSA9PiB0ZXh0ID09PSAnXFxuJztcbiAgICBjb25zdCBpc05ld1BhcmFncmFwaCA9ICh0ZXh0KSA9PiB0ZXh0ID09PSAnXFxuXFxuJztcblxuICAgIGNvbnN0IHBhcmFncmFwaHMgPSBbXTtcbiAgICBsZXQgY3VycmVudENoaWxkcmVuID0gW107XG5cbiAgICBjb25zdCBmbHVzaFBhcmFncmFwaCA9ICgpID0+IHtcbiAgICAgIC8vIEFsd2F5cyBwdXNoIGEgPHA+LCBldmVuIGlmIGVtcHR5LCB0byBtaXJyb3IgcHJldmlvdXMgYmVoYXZpb3JcbiAgICAgIHBhcmFncmFwaHMucHVzaCg8cCBrZXk9e2BwLSR7cGFyYWdyYXBocy5sZW5ndGh9YH0+e2N1cnJlbnRDaGlsZHJlbn08L3A+KTtcbiAgICAgIGN1cnJlbnRDaGlsZHJlbiA9IFtdO1xuICAgIH07XG5cbiAgICAodG9rZW5zIHx8IFtdKS5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9IHQuc2VsZWN0ZWQgfHwgKHQuc2VsZWN0YWJsZSAmJiB0aGlzLmNhblNlbGVjdE1vcmUoc2VsZWN0ZWRDb3VudCkpO1xuICAgICAgY29uc3Qgc2hvd0NvcnJlY3RBbnN3ZXIgPSB0LmNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiAodC5zZWxlY3RhYmxlIHx8IHQuc2VsZWN0ZWQpO1xuXG4gICAgICBpZiAoaXNOZXdQYXJhZ3JhcGgodC50ZXh0KSkge1xuICAgICAgICBmbHVzaFBhcmFncmFwaCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0xpbmVCcmVhayh0LnRleHQpKSB7XG4gICAgICAgIGN1cnJlbnRDaGlsZHJlbi5wdXNoKDxiciBrZXk9e2Bici0ke2luZGV4fWB9IC8+KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWxlY3RhYmxlICYmICFkaXNhYmxlZCkgfHxcbiAgICAgICAgc2hvd0NvcnJlY3RBbnN3ZXIgfHxcbiAgICAgICAgdC5zZWxlY3RlZCB8fFxuICAgICAgICB0LmlzTWlzc2luZyB8fFxuICAgICAgICAoYW5pbWF0aW9uc0Rpc2FibGVkICYmIHQucHJlZGVmaW5lZCkgLy8gcHJpbnQgbW9kZVxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRDaGlsZHJlbi5wdXNoKFxuICAgICAgICAgIDxUb2tlblxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIHsuLi50fVxuICAgICAgICAgICAgdGV4dD17c3RyaXBIdG1sVGFncyh0LnRleHQpfVxuICAgICAgICAgICAgc2VsZWN0YWJsZT17c2VsZWN0YWJsZX1cbiAgICAgICAgICAgIGhpZ2hsaWdodD17aGlnaGxpZ2h0Q2hvaWNlc31cbiAgICAgICAgICAgIGFuaW1hdGlvbnNEaXNhYmxlZD17YW5pbWF0aW9uc0Rpc2FibGVkfVxuICAgICAgICAgIC8+LFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gcmF3IHRleHQgbm9kZSDigJMgUmVhY3Qgd2lsbCBlc2NhcGUgYXMgbmVlZGVkXG4gICAgICAgIGN1cnJlbnRDaGlsZHJlbi5wdXNoKDxSZWFjdC5GcmFnbWVudCBrZXk9e2luZGV4fT57c3RyaXBIdG1sVGFncyh0LnRleHQpfTwvUmVhY3QuRnJhZ21lbnQ+KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGZsdXNoIGxhc3QgcGFyYWdyYXBoXG4gICAgZmx1c2hQYXJhZ3JhcGgoKTtcblxuICAgIHJldHVybiBwYXJhZ3JhcGhzO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lUHJvcCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBub2RlcyA9IHRoaXMuZ2VuZXJhdGVUb2tlbnNOb2RlcygpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRUb2tlblNlbGVjdCBjbGFzc05hbWU9e2NsYXNzTmFtZVByb3B9IG9uQ2xpY2s9e3RoaXMudG9nZ2xlVG9rZW59PlxuICAgICAgICB7bm9kZXN9XG4gICAgICA8L1N0eWxlZFRva2VuU2VsZWN0PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9rZW5TZWxlY3Q7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRyx3QkFBQU0sQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVIsdUJBQUEsWUFBQUEsd0JBQUFNLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxD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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_token","_interopRequireWildcard","_styles","_clone","_debug","_styleUtils","_isEqual","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","StyledTokenSelect","styled","backgroundColor","whiteSpace","noSelect","margin","stripHtmlTags","text","replace","TokenSelect","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","props","tokens","selected","selectedCount","maxNoOfSelections","isFinite","event","_target$closest","_targetSpanWrapper$da","target","_this$props","animationsDisabled","tokensCloned","clone","targetSpanWrapper","closest","Token","rootClassName","targetedTokenIndex","dataset","indexkey","undefined","correct","isMissing","_this$props2","onChange","selectedToken","tk","updatedTokens","map","token","isEqual","selectable","update","splice","_this$props3","disabled","highlightChoices","isLineBreak","isNewParagraph","paragraphs","currentChildren","flushParagraph","createElement","key","index","canSelectMore","showCorrectAnswer","predefined","_extends2","highlight","Fragment","_inherits2","_createClass2","value","render","classNameProp","className","nodes","generateTokensNodes","onClick","toggleToken","React","Component","PropTypes","arrayOf","shape","TokenTypes","isRequired","string","func","bool","number","_default"],"sources":["../../src/token-select/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Token, { TokenTypes } from './token';\nimport { styled } from '@mui/material/styles';\nimport clone from 'lodash/clone';\nimport debug from 'debug';\nimport { noSelect } from '@pie-lib/style-utils';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:text-select:token-select');\n\nconst StyledTokenSelect = styled('div')(() => ({\n backgroundColor: 'none',\n whiteSpace: 'pre',\n ...noSelect(),\n '& p': {\n whiteSpace: 'break-spaces',\n margin: 0,\n },\n}));\n\n// strip HTML tags for plain text rendering\nconst stripHtmlTags = (text) => {\n if (!text) {\n return text;\n }\n\n return text.replace(/<[^>]+>/g, '');\n};\n\nexport class TokenSelect extends React.Component {\n static propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n className: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n static defaultProps = {\n highlightChoices: false,\n maxNoOfSelections: 0,\n tokens: [],\n };\n\n selectedCount = () => this.props.tokens.filter((t) => t.selected).length;\n\n canSelectMore = (selectedCount) => {\n const { maxNoOfSelections } = this.props;\n\n if (maxNoOfSelections === 1) return true;\n\n log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);\n return maxNoOfSelections <= 0 || (isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections);\n };\n\n toggleToken = (event) => {\n const { target } = event;\n const { tokens, animationsDisabled } = this.props;\n const tokensCloned = clone(tokens);\n\n const targetSpanWrapper = target.closest?.(`.${Token.rootClassName}`);\n const targetedTokenIndex = targetSpanWrapper?.dataset?.indexkey;\n const t = targetedTokenIndex !== undefined ? tokensCloned[targetedTokenIndex] : undefined;\n\n // don't toggle if in print mode, correctness is defined, or is missing\n if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {\n const { onChange, maxNoOfSelections } = this.props;\n const selected = !t.selected;\n\n if (maxNoOfSelections === 1 && this.selectedCount() === 1) {\n const selectedToken = (tokens || []).filter((tk) => tk.selected);\n const updatedTokens = tokensCloned.map((token) => {\n if (isEqual(token, selectedToken[0])) {\n return { ...token, selected: false };\n }\n return { ...token, selectable: true };\n });\n\n const update = { ...t, selected };\n updatedTokens.splice(targetedTokenIndex, 1, update);\n onChange(updatedTokens);\n } else {\n if (selected && maxNoOfSelections > 0 && this.selectedCount() >= maxNoOfSelections) {\n log('skip toggle max reached');\n return;\n }\n const update = { ...t, selected };\n tokensCloned.splice(targetedTokenIndex, 1, update);\n onChange(tokensCloned);\n }\n }\n };\n\n /** Build a React tree instead of an HTML string so Emotion can inject CSS */\n generateTokensNodes = () => {\n const { tokens, disabled, highlightChoices, animationsDisabled } = this.props;\n const selectedCount = this.selectedCount();\n\n const isLineBreak = (text) => text === '\\n';\n const isNewParagraph = (text) => text === '\\n\\n';\n\n const paragraphs = [];\n let currentChildren = [];\n\n const flushParagraph = () => {\n // Always push a <p>, even if empty, to mirror previous behavior\n paragraphs.push(<p key={`p-${paragraphs.length}`}>{currentChildren}</p>);\n currentChildren = [];\n };\n\n (tokens || []).forEach((t, index) => {\n const selectable = t.selected || (t.selectable && this.canSelectMore(selectedCount));\n const showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);\n\n if (isNewParagraph(t.text)) {\n flushParagraph();\n return;\n }\n\n if (isLineBreak(t.text)) {\n currentChildren.push(<br key={`br-${index}`} />);\n return;\n }\n\n if (\n (selectable && !disabled) ||\n showCorrectAnswer ||\n t.selected ||\n t.isMissing ||\n (animationsDisabled && t.predefined) // print mode\n ) {\n currentChildren.push(\n <Token\n key={index}\n disabled={disabled}\n index={index}\n {...t}\n text={stripHtmlTags(t.text)}\n selectable={selectable}\n highlight={highlightChoices}\n animationsDisabled={animationsDisabled}\n />,\n );\n } else {\n // raw text node – React will escape as needed\n currentChildren.push(<React.Fragment key={index}>{stripHtmlTags(t.text)}</React.Fragment>);\n }\n });\n\n // flush last paragraph\n flushParagraph();\n\n return paragraphs;\n };\n\n render() {\n const { className: classNameProp } = this.props;\n const nodes = this.generateTokensNodes();\n\n return (\n <StyledTokenSelect className={classNameProp} onClick={this.toggleToken}>\n {nodes}\n </StyledTokenSelect>\n );\n }\n}\n\nexport default TokenSelect;\n"],"mappings":"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","ignoreList":[]}