@pie-lib/text-select 2.1.0-next.2 → 2.1.0-next.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/index.js +64 -0
- package/lib/index.js.map +1 -0
- package/lib/legend.js +131 -0
- package/lib/legend.js.map +1 -0
- package/lib/text-select.js +119 -0
- package/lib/text-select.js.map +1 -0
- package/lib/token-select/index.js +227 -0
- package/lib/token-select/index.js.map +1 -0
- package/lib/token-select/token.js +253 -0
- package/lib/token-select/token.js.map +1 -0
- package/lib/tokenizer/builder.js +276 -0
- package/lib/tokenizer/builder.js.map +1 -0
- package/lib/tokenizer/controls.js +108 -0
- package/lib/tokenizer/controls.js.map +1 -0
- package/lib/tokenizer/index.js +162 -0
- package/lib/tokenizer/index.js.map +1 -0
- package/lib/tokenizer/selection-utils.js +59 -0
- package/lib/tokenizer/selection-utils.js.map +1 -0
- package/lib/tokenizer/token-text.js +187 -0
- package/lib/tokenizer/token-text.js.map +1 -0
- package/lib/utils.js +60 -0
- package/lib/utils.js.map +1 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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
|
+
# [2.1.0-next.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@2.1.0-next.2...@pie-lib/text-select@2.1.0-next.4) (2026-01-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/text-select
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [2.1.0-next.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@2.1.0-next.1...@pie-lib/text-select@2.1.0-next.2) (2026-01-26)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @pie-lib/text-select
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
require("core-js/modules/es.object.define-property.js");
|
|
5
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
6
|
+
require("core-js/modules/es.object.to-string.js");
|
|
7
|
+
require("core-js/modules/es.string.iterator.js");
|
|
8
|
+
require("core-js/modules/es.weak-map.js");
|
|
9
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
11
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
12
|
+
Object.defineProperty(exports, "__esModule", {
|
|
13
|
+
value: true
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "Legend", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function get() {
|
|
18
|
+
return _legend.Legend;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "TextSelect", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _textSelect["default"];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "Token", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function get() {
|
|
30
|
+
return _token["default"];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "TokenSelect", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function get() {
|
|
36
|
+
return _tokenSelect["default"];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "TokenTypes", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function get() {
|
|
42
|
+
return _tokenSelect.TokenTypes;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, "Tokenizer", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function get() {
|
|
48
|
+
return _tokenizer["default"];
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, "prepareText", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function get() {
|
|
54
|
+
return _utils.prepareText;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
var _tokenizer = _interopRequireDefault(require("./tokenizer"));
|
|
58
|
+
var _tokenSelect = _interopRequireWildcard(require("./token-select"));
|
|
59
|
+
var _textSelect = _interopRequireDefault(require("./text-select"));
|
|
60
|
+
var _legend = require("./legend");
|
|
61
|
+
var _token = _interopRequireDefault(require("./token-select/token"));
|
|
62
|
+
var _utils = require("./utils");
|
|
63
|
+
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); }
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_tokenizer","_interopRequireDefault","require","_tokenSelect","_interopRequireWildcard","_textSelect","_legend","_token","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sources":["../src/index.js"],"sourcesContent":["import Tokenizer from './tokenizer';\nimport TokenSelect, { TokenTypes } from './token-select';\nimport TextSelect from './text-select';\nimport { Legend } from './legend';\nimport Token from './token-select/token';\nimport { prepareText } from './utils';\n\nexport { TextSelect, TokenTypes, Tokenizer, TokenSelect, Token, prepareText, Legend };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAsC,SAAAE,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,wBAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA","ignoreList":[]}
|
package/lib/legend.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.filter.js");
|
|
5
|
+
require("core-js/modules/es.array.for-each.js");
|
|
6
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
7
|
+
require("core-js/modules/es.object.define-property.js");
|
|
8
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
10
|
+
require("core-js/modules/es.object.keys.js");
|
|
11
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
12
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
13
|
+
Object.defineProperty(exports, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
exports.Legend = void 0;
|
|
17
|
+
require("core-js/modules/es.array.map.js");
|
|
18
|
+
require("core-js/modules/es.array.splice.js");
|
|
19
|
+
require("core-js/modules/es.object.to-string.js");
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
var _react = _interopRequireDefault(require("react"));
|
|
22
|
+
var _styles = require("@mui/material/styles");
|
|
23
|
+
var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
|
|
24
|
+
var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
|
|
25
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
26
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
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 translator = _translator["default"].translator;
|
|
30
|
+
var StyledFlexContainer = (0, _styles.styled)('div')(function (_ref) {
|
|
31
|
+
var theme = _ref.theme;
|
|
32
|
+
return {
|
|
33
|
+
display: 'flex',
|
|
34
|
+
flexDirection: 'row',
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
gap: theme.spacing(2),
|
|
37
|
+
borderBottom: '1px solid lightgrey',
|
|
38
|
+
borderTop: '1px solid lightgrey',
|
|
39
|
+
paddingBottom: theme.spacing(1),
|
|
40
|
+
paddingTop: theme.spacing(1),
|
|
41
|
+
marginBottom: theme.spacing(1)
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
var StyledKey = (0, _styles.styled)('span')(function (_ref2) {
|
|
45
|
+
var theme = _ref2.theme;
|
|
46
|
+
return {
|
|
47
|
+
fontSize: '14px',
|
|
48
|
+
fontWeight: 'bold',
|
|
49
|
+
color: _renderUi.color.black(),
|
|
50
|
+
marginLeft: theme.spacing(1)
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
var StyledContainer = (0, _styles.styled)('div')(function () {
|
|
54
|
+
return {
|
|
55
|
+
position: 'relative',
|
|
56
|
+
padding: '4px',
|
|
57
|
+
fontSize: '14px',
|
|
58
|
+
borderRadius: '4px'
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
var StyledCorrectContainer = (0, _styles.styled)(StyledContainer)(function () {
|
|
62
|
+
return {
|
|
63
|
+
border: "".concat(_renderUi.color.correctTertiary(), " solid 2px")
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
var StyledIncorrectContainer = (0, _styles.styled)(StyledContainer)(function () {
|
|
67
|
+
return {
|
|
68
|
+
border: "".concat(_renderUi.color.incorrectWithIcon(), " solid 2px")
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
var StyledMissingContainer = (0, _styles.styled)(StyledContainer)(function () {
|
|
72
|
+
return {
|
|
73
|
+
border: "".concat(_renderUi.color.incorrectWithIcon(), " dashed 2px")
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
var baseIconStyles = {
|
|
77
|
+
color: _renderUi.color.white(),
|
|
78
|
+
position: 'absolute',
|
|
79
|
+
top: '-8px',
|
|
80
|
+
left: '-8px',
|
|
81
|
+
borderRadius: '50%',
|
|
82
|
+
fontSize: '12px',
|
|
83
|
+
padding: '2px'
|
|
84
|
+
};
|
|
85
|
+
var StyledCorrectCheckIcon = (0, _styles.styled)(_Check["default"])(function () {
|
|
86
|
+
return _objectSpread(_objectSpread({}, baseIconStyles), {}, {
|
|
87
|
+
backgroundColor: _renderUi.color.correctTertiary()
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
var StyledIncorrectCloseIcon = (0, _styles.styled)(_Close["default"])(function () {
|
|
91
|
+
return _objectSpread(_objectSpread({}, baseIconStyles), {}, {
|
|
92
|
+
backgroundColor: _renderUi.color.incorrectWithIcon()
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
var Legend = exports.Legend = function Legend(_ref3) {
|
|
96
|
+
var language = _ref3.language,
|
|
97
|
+
showOnlyCorrect = _ref3.showOnlyCorrect;
|
|
98
|
+
var legendItems = [{
|
|
99
|
+
Icon: StyledCorrectCheckIcon,
|
|
100
|
+
label: translator.t('selectText.correctAnswerSelected', {
|
|
101
|
+
lng: language
|
|
102
|
+
}),
|
|
103
|
+
Container: StyledCorrectContainer
|
|
104
|
+
}, {
|
|
105
|
+
Icon: StyledIncorrectCloseIcon,
|
|
106
|
+
label: translator.t('selectText.incorrectSelection', {
|
|
107
|
+
lng: language
|
|
108
|
+
}),
|
|
109
|
+
Container: StyledIncorrectContainer
|
|
110
|
+
}, {
|
|
111
|
+
Icon: StyledIncorrectCloseIcon,
|
|
112
|
+
label: translator.t('selectText.correctAnswerNotSelected', {
|
|
113
|
+
lng: language
|
|
114
|
+
}),
|
|
115
|
+
Container: StyledMissingContainer
|
|
116
|
+
}];
|
|
117
|
+
if (showOnlyCorrect) {
|
|
118
|
+
legendItems.splice(1, 2);
|
|
119
|
+
}
|
|
120
|
+
return /*#__PURE__*/_react["default"].createElement(StyledFlexContainer, null, /*#__PURE__*/_react["default"].createElement(StyledKey, null, translator.t('selectText.key', {
|
|
121
|
+
lng: language
|
|
122
|
+
})), legendItems.map(function (_ref4, idx) {
|
|
123
|
+
var Icon = _ref4.Icon,
|
|
124
|
+
label = _ref4.label,
|
|
125
|
+
Container = _ref4.Container;
|
|
126
|
+
return /*#__PURE__*/_react["default"].createElement(Container, {
|
|
127
|
+
key: idx
|
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement(Icon, null), /*#__PURE__*/_react["default"].createElement("span", null, label));
|
|
129
|
+
}));
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=legend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legend.js","names":["_react","_interopRequireDefault","require","_styles","_Check","_Close","_renderUi","_translator","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","translator","Translator","StyledFlexContainer","styled","_ref","theme","display","flexDirection","alignItems","gap","spacing","borderBottom","borderTop","paddingBottom","paddingTop","marginBottom","StyledKey","_ref2","fontSize","fontWeight","color","black","marginLeft","StyledContainer","position","padding","borderRadius","StyledCorrectContainer","border","concat","correctTertiary","StyledIncorrectContainer","incorrectWithIcon","StyledMissingContainer","baseIconStyles","white","top","left","StyledCorrectCheckIcon","Check","backgroundColor","StyledIncorrectCloseIcon","Close","Legend","exports","_ref3","language","showOnlyCorrect","legendItems","Icon","label","lng","Container","splice","createElement","map","_ref4","idx","key"],"sources":["../src/legend.js"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\nimport Check from '@mui/icons-material/Check';\nimport Close from '@mui/icons-material/Close';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst StyledFlexContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(2),\n borderBottom: '1px solid lightgrey',\n borderTop: '1px solid lightgrey',\n paddingBottom: theme.spacing(1),\n paddingTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledKey = styled('span')(({ theme }) => ({\n fontSize: '14px',\n fontWeight: 'bold',\n color: color.black(),\n marginLeft: theme.spacing(1),\n}));\n\nconst StyledContainer = styled('div')(() => ({\n position: 'relative',\n padding: '4px',\n fontSize: '14px',\n borderRadius: '4px',\n}));\n\nconst StyledCorrectContainer = styled(StyledContainer)(() => ({\n border: `${color.correctTertiary()} solid 2px`,\n}));\n\nconst StyledIncorrectContainer = styled(StyledContainer)(() => ({\n border: `${color.incorrectWithIcon()} solid 2px`,\n}));\n\nconst StyledMissingContainer = styled(StyledContainer)(() => ({\n border: `${color.incorrectWithIcon()} dashed 2px`,\n}));\n\nconst baseIconStyles = {\n color: color.white(),\n position: 'absolute',\n top: '-8px',\n left: '-8px',\n borderRadius: '50%',\n fontSize: '12px',\n padding: '2px',\n};\n\nconst StyledCorrectCheckIcon = styled(Check)(() => ({\n ...baseIconStyles,\n backgroundColor: color.correctTertiary(),\n}));\n\nconst StyledIncorrectCloseIcon = styled(Close)(() => ({\n ...baseIconStyles,\n backgroundColor: color.incorrectWithIcon(),\n}));\n\nexport const Legend = ({ language, showOnlyCorrect }) => {\n const legendItems = [\n {\n Icon: StyledCorrectCheckIcon,\n label: translator.t('selectText.correctAnswerSelected', { lng: language }),\n Container: StyledCorrectContainer,\n },\n {\n Icon: StyledIncorrectCloseIcon,\n label: translator.t('selectText.incorrectSelection', { lng: language }),\n Container: StyledIncorrectContainer,\n },\n {\n Icon: StyledIncorrectCloseIcon,\n label: translator.t('selectText.correctAnswerNotSelected', { lng: language }),\n Container: StyledMissingContainer,\n },\n ];\n\n if (showOnlyCorrect) {\n legendItems.splice(1, 2);\n }\n\n return (\n <StyledFlexContainer>\n <StyledKey>{translator.t('selectText.key', { lng: language })}</StyledKey>\n {legendItems.map(({ Icon, label, Container }, idx) => (\n <Container key={idx}>\n <Icon />\n <span>{label}</span>\n </Container>\n ))}\n </StyledFlexContainer>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.for-each.js");
|
|
5
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
6
|
+
require("core-js/modules/es.object.define-property.js");
|
|
7
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
8
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
9
|
+
require("core-js/modules/es.object.keys.js");
|
|
10
|
+
require("core-js/modules/es.reflect.construct.js");
|
|
11
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
12
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
13
|
+
Object.defineProperty(exports, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
exports["default"] = void 0;
|
|
17
|
+
require("core-js/modules/es.array.concat.js");
|
|
18
|
+
require("core-js/modules/es.array.filter.js");
|
|
19
|
+
require("core-js/modules/es.array.find-index.js");
|
|
20
|
+
require("core-js/modules/es.array.map.js");
|
|
21
|
+
require("core-js/modules/es.object.to-string.js");
|
|
22
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
23
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
24
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
26
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
27
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
28
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
30
|
+
var _tokenSelect = _interopRequireDefault(require("./token-select"));
|
|
31
|
+
var _builder = require("./tokenizer/builder");
|
|
32
|
+
var _token = require("./token-select/token");
|
|
33
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
34
|
+
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; }
|
|
35
|
+
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; }
|
|
36
|
+
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)); }
|
|
37
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
38
|
+
var log = (0, _debug["default"])('@pie-lib:text-select');
|
|
39
|
+
/**
|
|
40
|
+
* Built on TokenSelect uses build.normalize to build the token set.
|
|
41
|
+
*/
|
|
42
|
+
var TextSelect = exports["default"] = /*#__PURE__*/function (_React$Component) {
|
|
43
|
+
function TextSelect() {
|
|
44
|
+
var _this;
|
|
45
|
+
(0, _classCallCheck2["default"])(this, TextSelect);
|
|
46
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
|
+
args[_key] = arguments[_key];
|
|
48
|
+
}
|
|
49
|
+
_this = _callSuper(this, TextSelect, [].concat(args));
|
|
50
|
+
(0, _defineProperty2["default"])(_this, "change", function (tokens) {
|
|
51
|
+
var onChange = _this.props.onChange;
|
|
52
|
+
if (!onChange) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
var out = tokens.filter(function (t) {
|
|
56
|
+
return t.selected;
|
|
57
|
+
}).map(function (t) {
|
|
58
|
+
return {
|
|
59
|
+
start: t.start,
|
|
60
|
+
end: t.end
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
onChange(out);
|
|
64
|
+
});
|
|
65
|
+
return _this;
|
|
66
|
+
}
|
|
67
|
+
(0, _inherits2["default"])(TextSelect, _React$Component);
|
|
68
|
+
return (0, _createClass2["default"])(TextSelect, [{
|
|
69
|
+
key: "render",
|
|
70
|
+
value: function render() {
|
|
71
|
+
var _this$props = this.props,
|
|
72
|
+
text = _this$props.text,
|
|
73
|
+
disabled = _this$props.disabled,
|
|
74
|
+
tokens = _this$props.tokens,
|
|
75
|
+
selectedTokens = _this$props.selectedTokens,
|
|
76
|
+
className = _this$props.className,
|
|
77
|
+
highlightChoices = _this$props.highlightChoices,
|
|
78
|
+
maxNoOfSelections = _this$props.maxNoOfSelections,
|
|
79
|
+
animationsDisabled = _this$props.animationsDisabled;
|
|
80
|
+
var normalized = (0, _builder.normalize)(text, tokens);
|
|
81
|
+
log('normalized: ', normalized);
|
|
82
|
+
var prepped = normalized.map(function (t) {
|
|
83
|
+
var selectedIndex = selectedTokens.findIndex(function (s) {
|
|
84
|
+
return s.start === t.start && s.end === t.end;
|
|
85
|
+
});
|
|
86
|
+
var selected = selectedIndex !== -1;
|
|
87
|
+
var correct = selected ? t.correct : undefined;
|
|
88
|
+
var isMissing = t.isMissing;
|
|
89
|
+
return _objectSpread(_objectSpread({}, t), {}, {
|
|
90
|
+
selectable: !disabled && t.predefined,
|
|
91
|
+
selected: selected,
|
|
92
|
+
correct: correct,
|
|
93
|
+
isMissing: isMissing
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
return /*#__PURE__*/_react["default"].createElement(_tokenSelect["default"], {
|
|
97
|
+
highlightChoices: !disabled && highlightChoices,
|
|
98
|
+
className: className,
|
|
99
|
+
tokens: prepped,
|
|
100
|
+
disabled: disabled,
|
|
101
|
+
onChange: this.change,
|
|
102
|
+
maxNoOfSelections: maxNoOfSelections,
|
|
103
|
+
animationsDisabled: animationsDisabled
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}]);
|
|
107
|
+
}(_react["default"].Component);
|
|
108
|
+
(0, _defineProperty2["default"])(TextSelect, "propTypes", {
|
|
109
|
+
onChange: _propTypes["default"].func,
|
|
110
|
+
disabled: _propTypes["default"].bool,
|
|
111
|
+
tokens: _propTypes["default"].arrayOf(_propTypes["default"].shape(_token.TokenTypes)).isRequired,
|
|
112
|
+
selectedTokens: _propTypes["default"].arrayOf(_propTypes["default"].shape(_token.TokenTypes)).isRequired,
|
|
113
|
+
text: _propTypes["default"].string.isRequired,
|
|
114
|
+
className: _propTypes["default"].string,
|
|
115
|
+
highlightChoices: _propTypes["default"].bool,
|
|
116
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
117
|
+
maxNoOfSelections: _propTypes["default"].number
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=text-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-select.js","names":["_react","_interopRequireDefault","require","_propTypes","_tokenSelect","_builder","_token","_debug","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","TextSelect","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","tokens","onChange","props","out","selected","map","start","end","_inherits2","_createClass2","key","value","render","_this$props","text","disabled","selectedTokens","className","highlightChoices","maxNoOfSelections","animationsDisabled","normalized","normalize","prepped","selectedIndex","findIndex","s","correct","undefined","isMissing","selectable","predefined","createElement","change","React","Component","PropTypes","func","bool","arrayOf","shape","TokenTypes","isRequired","string","number"],"sources":["../src/text-select.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport TokenSelect from './token-select';\nimport { normalize } from './tokenizer/builder';\nimport { TokenTypes } from './token-select/token';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:text-select');\n/**\n * Built on TokenSelect uses build.normalize to build the token set.\n */\nexport default class TextSelect extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n selectedTokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n change = (tokens) => {\n const { onChange } = this.props;\n\n if (!onChange) {\n return;\n }\n const out = tokens.filter((t) => t.selected).map((t) => ({ start: t.start, end: t.end }));\n\n onChange(out);\n };\n\n render() {\n const {\n text,\n disabled,\n tokens,\n selectedTokens,\n className,\n highlightChoices,\n maxNoOfSelections,\n animationsDisabled,\n } = this.props;\n\n const normalized = normalize(text, tokens);\n log('normalized: ', normalized);\n const prepped = normalized.map((t) => {\n const selectedIndex = selectedTokens.findIndex((s) => {\n return s.start === t.start && s.end === t.end;\n });\n const selected = selectedIndex !== -1;\n const correct = selected ? t.correct : undefined;\n const isMissing = t.isMissing;\n return {\n ...t,\n selectable: !disabled && t.predefined,\n selected,\n correct,\n isMissing,\n };\n });\n\n return (\n <TokenSelect\n highlightChoices={!disabled && highlightChoices}\n className={className}\n tokens={prepped}\n disabled={disabled}\n onChange={this.change}\n maxNoOfSelections={maxNoOfSelections}\n animationsDisabled={animationsDisabled}\n />\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.iterator.js");
|
|
5
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
6
|
+
require("core-js/modules/es.object.define-property.js");
|
|
7
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
8
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
9
|
+
require("core-js/modules/es.object.keys.js");
|
|
10
|
+
require("core-js/modules/es.reflect.construct.js");
|
|
11
|
+
require("core-js/modules/es.string.iterator.js");
|
|
12
|
+
require("core-js/modules/es.weak-map.js");
|
|
13
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
14
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
15
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
16
|
+
Object.defineProperty(exports, "__esModule", {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
19
|
+
exports["default"] = exports.TokenSelect = void 0;
|
|
20
|
+
require("core-js/modules/es.array.concat.js");
|
|
21
|
+
require("core-js/modules/es.array.filter.js");
|
|
22
|
+
require("core-js/modules/es.array.for-each.js");
|
|
23
|
+
require("core-js/modules/es.array.map.js");
|
|
24
|
+
require("core-js/modules/es.array.splice.js");
|
|
25
|
+
require("core-js/modules/es.object.to-string.js");
|
|
26
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
27
|
+
require("core-js/modules/es.string.replace.js");
|
|
28
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
29
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
30
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
31
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
32
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
33
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
34
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
35
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
36
|
+
var _react = _interopRequireDefault(require("react"));
|
|
37
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
38
|
+
var _token = _interopRequireWildcard(require("./token"));
|
|
39
|
+
var _styles = require("@mui/material/styles");
|
|
40
|
+
var _clone = _interopRequireDefault(require("lodash/clone"));
|
|
41
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
42
|
+
var _styleUtils = require("@pie-lib/style-utils");
|
|
43
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
44
|
+
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); }
|
|
45
|
+
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)); }
|
|
46
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
47
|
+
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; }
|
|
48
|
+
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; }
|
|
49
|
+
var log = (0, _debug["default"])('@pie-lib:text-select:token-select');
|
|
50
|
+
var StyledTokenSelect = (0, _styles.styled)('div')(function () {
|
|
51
|
+
return _objectSpread(_objectSpread({
|
|
52
|
+
backgroundColor: 'none',
|
|
53
|
+
whiteSpace: 'pre'
|
|
54
|
+
}, (0, _styleUtils.noSelect)()), {}, {
|
|
55
|
+
'& p': {
|
|
56
|
+
whiteSpace: 'break-spaces',
|
|
57
|
+
margin: 0
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// strip HTML tags for plain text rendering
|
|
63
|
+
var stripHtmlTags = function stripHtmlTags(text) {
|
|
64
|
+
if (!text) {
|
|
65
|
+
return text;
|
|
66
|
+
}
|
|
67
|
+
return text.replace(/<[^>]+>/g, '');
|
|
68
|
+
};
|
|
69
|
+
var TokenSelect = exports.TokenSelect = /*#__PURE__*/function (_React$Component) {
|
|
70
|
+
function TokenSelect() {
|
|
71
|
+
var _this;
|
|
72
|
+
(0, _classCallCheck2["default"])(this, TokenSelect);
|
|
73
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
74
|
+
args[_key] = arguments[_key];
|
|
75
|
+
}
|
|
76
|
+
_this = _callSuper(this, TokenSelect, [].concat(args));
|
|
77
|
+
(0, _defineProperty2["default"])(_this, "selectedCount", function () {
|
|
78
|
+
return _this.props.tokens.filter(function (t) {
|
|
79
|
+
return t.selected;
|
|
80
|
+
}).length;
|
|
81
|
+
});
|
|
82
|
+
(0, _defineProperty2["default"])(_this, "canSelectMore", function (selectedCount) {
|
|
83
|
+
var maxNoOfSelections = _this.props.maxNoOfSelections;
|
|
84
|
+
if (maxNoOfSelections === 1) return true;
|
|
85
|
+
log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);
|
|
86
|
+
return maxNoOfSelections <= 0 || isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections;
|
|
87
|
+
});
|
|
88
|
+
(0, _defineProperty2["default"])(_this, "toggleToken", function (event) {
|
|
89
|
+
var _target$closest, _targetSpanWrapper$da;
|
|
90
|
+
var target = event.target;
|
|
91
|
+
var _this$props = _this.props,
|
|
92
|
+
tokens = _this$props.tokens,
|
|
93
|
+
animationsDisabled = _this$props.animationsDisabled;
|
|
94
|
+
var tokensCloned = (0, _clone["default"])(tokens);
|
|
95
|
+
var targetSpanWrapper = (_target$closest = target.closest) === null || _target$closest === void 0 ? void 0 : _target$closest.call(target, ".".concat(_token["default"].rootClassName));
|
|
96
|
+
var targetedTokenIndex = targetSpanWrapper === null || targetSpanWrapper === void 0 || (_targetSpanWrapper$da = targetSpanWrapper.dataset) === null || _targetSpanWrapper$da === void 0 ? void 0 : _targetSpanWrapper$da.indexkey;
|
|
97
|
+
var t = targetedTokenIndex !== undefined ? tokensCloned[targetedTokenIndex] : undefined;
|
|
98
|
+
|
|
99
|
+
// don't toggle if in print mode, correctness is defined, or is missing
|
|
100
|
+
if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {
|
|
101
|
+
var _this$props2 = _this.props,
|
|
102
|
+
onChange = _this$props2.onChange,
|
|
103
|
+
maxNoOfSelections = _this$props2.maxNoOfSelections;
|
|
104
|
+
var selected = !t.selected;
|
|
105
|
+
if (maxNoOfSelections === 1 && _this.selectedCount() === 1) {
|
|
106
|
+
var selectedToken = (tokens || []).filter(function (tk) {
|
|
107
|
+
return tk.selected;
|
|
108
|
+
});
|
|
109
|
+
var updatedTokens = tokensCloned.map(function (token) {
|
|
110
|
+
if ((0, _isEqual["default"])(token, selectedToken[0])) {
|
|
111
|
+
return _objectSpread(_objectSpread({}, token), {}, {
|
|
112
|
+
selected: false
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return _objectSpread(_objectSpread({}, token), {}, {
|
|
116
|
+
selectable: true
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
var update = _objectSpread(_objectSpread({}, t), {}, {
|
|
120
|
+
selected: selected
|
|
121
|
+
});
|
|
122
|
+
updatedTokens.splice(targetedTokenIndex, 1, update);
|
|
123
|
+
onChange(updatedTokens);
|
|
124
|
+
} else {
|
|
125
|
+
if (selected && maxNoOfSelections > 0 && _this.selectedCount() >= maxNoOfSelections) {
|
|
126
|
+
log('skip toggle max reached');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
var _update = _objectSpread(_objectSpread({}, t), {}, {
|
|
130
|
+
selected: selected
|
|
131
|
+
});
|
|
132
|
+
tokensCloned.splice(targetedTokenIndex, 1, _update);
|
|
133
|
+
onChange(tokensCloned);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
/** Build a React tree instead of an HTML string so Emotion can inject CSS */
|
|
138
|
+
(0, _defineProperty2["default"])(_this, "generateTokensNodes", function () {
|
|
139
|
+
var _this$props3 = _this.props,
|
|
140
|
+
tokens = _this$props3.tokens,
|
|
141
|
+
disabled = _this$props3.disabled,
|
|
142
|
+
highlightChoices = _this$props3.highlightChoices,
|
|
143
|
+
animationsDisabled = _this$props3.animationsDisabled;
|
|
144
|
+
var selectedCount = _this.selectedCount();
|
|
145
|
+
var isLineBreak = function isLineBreak(text) {
|
|
146
|
+
return text === '\n';
|
|
147
|
+
};
|
|
148
|
+
var isNewParagraph = function isNewParagraph(text) {
|
|
149
|
+
return text === '\n\n';
|
|
150
|
+
};
|
|
151
|
+
var paragraphs = [];
|
|
152
|
+
var currentChildren = [];
|
|
153
|
+
var flushParagraph = function flushParagraph() {
|
|
154
|
+
// Always push a <p>, even if empty, to mirror previous behavior
|
|
155
|
+
paragraphs.push(/*#__PURE__*/_react["default"].createElement("p", {
|
|
156
|
+
key: "p-".concat(paragraphs.length)
|
|
157
|
+
}, currentChildren));
|
|
158
|
+
currentChildren = [];
|
|
159
|
+
};
|
|
160
|
+
(tokens || []).forEach(function (t, index) {
|
|
161
|
+
var selectable = t.selected || t.selectable && _this.canSelectMore(selectedCount);
|
|
162
|
+
var showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);
|
|
163
|
+
if (isNewParagraph(t.text)) {
|
|
164
|
+
flushParagraph();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (isLineBreak(t.text)) {
|
|
168
|
+
currentChildren.push(/*#__PURE__*/_react["default"].createElement("br", {
|
|
169
|
+
key: "br-".concat(index)
|
|
170
|
+
}));
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (selectable && !disabled || showCorrectAnswer || t.selected || t.isMissing || animationsDisabled && t.predefined // print mode
|
|
174
|
+
) {
|
|
175
|
+
currentChildren.push(/*#__PURE__*/_react["default"].createElement(_token["default"], (0, _extends2["default"])({
|
|
176
|
+
key: index,
|
|
177
|
+
disabled: disabled,
|
|
178
|
+
index: index
|
|
179
|
+
}, t, {
|
|
180
|
+
text: stripHtmlTags(t.text),
|
|
181
|
+
selectable: selectable,
|
|
182
|
+
highlight: highlightChoices,
|
|
183
|
+
animationsDisabled: animationsDisabled
|
|
184
|
+
})));
|
|
185
|
+
} else {
|
|
186
|
+
// raw text node – React will escape as needed
|
|
187
|
+
currentChildren.push(/*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
|
|
188
|
+
key: index
|
|
189
|
+
}, stripHtmlTags(t.text)));
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
// flush last paragraph
|
|
194
|
+
flushParagraph();
|
|
195
|
+
return paragraphs;
|
|
196
|
+
});
|
|
197
|
+
return _this;
|
|
198
|
+
}
|
|
199
|
+
(0, _inherits2["default"])(TokenSelect, _React$Component);
|
|
200
|
+
return (0, _createClass2["default"])(TokenSelect, [{
|
|
201
|
+
key: "render",
|
|
202
|
+
value: function render() {
|
|
203
|
+
var classNameProp = this.props.className;
|
|
204
|
+
var nodes = this.generateTokensNodes();
|
|
205
|
+
return /*#__PURE__*/_react["default"].createElement(StyledTokenSelect, {
|
|
206
|
+
className: classNameProp,
|
|
207
|
+
onClick: this.toggleToken
|
|
208
|
+
}, nodes);
|
|
209
|
+
}
|
|
210
|
+
}]);
|
|
211
|
+
}(_react["default"].Component);
|
|
212
|
+
(0, _defineProperty2["default"])(TokenSelect, "propTypes", {
|
|
213
|
+
tokens: _propTypes["default"].arrayOf(_propTypes["default"].shape(_token.TokenTypes)).isRequired,
|
|
214
|
+
className: _propTypes["default"].string,
|
|
215
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
216
|
+
disabled: _propTypes["default"].bool,
|
|
217
|
+
highlightChoices: _propTypes["default"].bool,
|
|
218
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
219
|
+
maxNoOfSelections: _propTypes["default"].number
|
|
220
|
+
});
|
|
221
|
+
(0, _defineProperty2["default"])(TokenSelect, "defaultProps", {
|
|
222
|
+
highlightChoices: false,
|
|
223
|
+
maxNoOfSelections: 0,
|
|
224
|
+
tokens: []
|
|
225
|
+
});
|
|
226
|
+
var _default = exports["default"] = TokenSelect;
|
|
227
|
+
//# sourceMappingURL=index.js.map
|