@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 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
@@ -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