@pie-lib/text-select 1.8.13 → 1.8.14
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 +15 -11
- package/lib/index.js.map +1 -1
- package/lib/text-select.js +19 -17
- package/lib/text-select.js.map +1 -1
- package/lib/token-select/index.js +37 -33
- package/lib/token-select/index.js.map +1 -1
- package/lib/token-select/token.js +21 -17
- package/lib/token-select/token.js.map +1 -1
- package/lib/tokenizer/builder.js +3 -5
- package/lib/tokenizer/builder.js.map +1 -1
- package/lib/tokenizer/controls.js +23 -19
- package/lib/tokenizer/controls.js.map +1 -1
- package/lib/tokenizer/index.js +20 -16
- package/lib/tokenizer/index.js.map +1 -1
- package/lib/tokenizer/token-text.js +19 -17
- package/lib/tokenizer/token-text.js.map +1 -1
- package/package.json +3 -3
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
|
+
## [1.8.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@1.8.13...@pie-lib/text-select@1.8.14) (2022-03-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/text-select
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [1.8.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/text-select@1.8.12...@pie-lib/text-select@1.8.13) (2022-02-21)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @pie-lib/text-select
|
package/lib/index.js
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "TextSelect", {
|
|
7
9
|
enumerable: true,
|
|
8
10
|
get: function get() {
|
|
9
|
-
return
|
|
11
|
+
return _textSelect["default"];
|
|
10
12
|
}
|
|
11
13
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
14
|
+
Object.defineProperty(exports, "Token", {
|
|
13
15
|
enumerable: true,
|
|
14
16
|
get: function get() {
|
|
15
|
-
return
|
|
17
|
+
return _token["default"];
|
|
16
18
|
}
|
|
17
19
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
20
|
+
Object.defineProperty(exports, "TokenSelect", {
|
|
19
21
|
enumerable: true,
|
|
20
22
|
get: function get() {
|
|
21
|
-
return _tokenSelect
|
|
23
|
+
return _tokenSelect["default"];
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
26
|
+
Object.defineProperty(exports, "TokenTypes", {
|
|
25
27
|
enumerable: true,
|
|
26
28
|
get: function get() {
|
|
27
|
-
return
|
|
29
|
+
return _tokenSelect.TokenTypes;
|
|
28
30
|
}
|
|
29
31
|
});
|
|
30
|
-
Object.defineProperty(exports, "
|
|
32
|
+
Object.defineProperty(exports, "Tokenizer", {
|
|
31
33
|
enumerable: true,
|
|
32
34
|
get: function get() {
|
|
33
|
-
return
|
|
35
|
+
return _tokenizer["default"];
|
|
34
36
|
}
|
|
35
37
|
});
|
|
36
38
|
Object.defineProperty(exports, "prepareText", {
|
|
@@ -50,7 +52,9 @@ var _token = _interopRequireDefault(require("./token-select/token"));
|
|
|
50
52
|
|
|
51
53
|
var _utils = require("./utils");
|
|
52
54
|
|
|
53
|
-
function
|
|
55
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
56
|
+
|
|
57
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
54
58
|
|
|
55
59
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
56
60
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import Tokenizer from './tokenizer';\nimport TokenSelect, { TokenTypes } from './token-select';\nimport TextSelect from './text-select';\nimport Token from './token-select/token';\nimport { prepareText } from './utils';\n\nexport { TextSelect, TokenTypes, Tokenizer, TokenSelect, Token, prepareText };\n"],"file":"index.js"}
|
package/lib/text-select.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -19,27 +21,29 @@ var _debug = _interopRequireDefault(require("debug"));
|
|
|
19
21
|
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
23
|
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
25
|
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
27
|
|
|
28
28
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
29
29
|
|
|
30
30
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
31
31
|
|
|
32
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
32
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
35
35
|
|
|
36
|
-
function
|
|
36
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
37
|
+
|
|
38
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
39
|
+
|
|
40
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
37
41
|
|
|
38
42
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
39
43
|
|
|
40
|
-
function
|
|
44
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
41
45
|
|
|
42
|
-
function
|
|
46
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
43
47
|
|
|
44
48
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
45
49
|
|
|
@@ -48,14 +52,12 @@ var log = (0, _debug["default"])('@pie-lib:text-select');
|
|
|
48
52
|
* Built on TokenSelect uses build.normalize to build the token set.
|
|
49
53
|
*/
|
|
50
54
|
|
|
51
|
-
var TextSelect =
|
|
52
|
-
/*#__PURE__*/
|
|
53
|
-
function (_React$Component) {
|
|
55
|
+
var TextSelect = /*#__PURE__*/function (_React$Component) {
|
|
54
56
|
_inherits(TextSelect, _React$Component);
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
var _getPrototypeOf2;
|
|
58
|
+
var _super = _createSuper(TextSelect);
|
|
58
59
|
|
|
60
|
+
function TextSelect() {
|
|
59
61
|
var _this;
|
|
60
62
|
|
|
61
63
|
_classCallCheck(this, TextSelect);
|
|
@@ -64,7 +66,7 @@ function (_React$Component) {
|
|
|
64
66
|
args[_key] = arguments[_key];
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
_this =
|
|
69
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
68
70
|
|
|
69
71
|
_defineProperty(_assertThisInitialized(_this), "change", function (tokens) {
|
|
70
72
|
var onChange = _this.props.onChange;
|
|
@@ -107,13 +109,13 @@ function (_React$Component) {
|
|
|
107
109
|
});
|
|
108
110
|
var selected = selectedIndex !== -1;
|
|
109
111
|
var correct = selected ? t.correct : undefined;
|
|
110
|
-
return _objectSpread({}, t, {
|
|
112
|
+
return _objectSpread(_objectSpread({}, t), {}, {
|
|
111
113
|
selectable: !disabled && t.predefined,
|
|
112
114
|
selected: selected,
|
|
113
115
|
correct: correct
|
|
114
116
|
});
|
|
115
117
|
});
|
|
116
|
-
return _react["default"].createElement(_tokenSelect["default"], {
|
|
118
|
+
return /*#__PURE__*/_react["default"].createElement(_tokenSelect["default"], {
|
|
117
119
|
highlightChoices: !disabled && highlightChoices,
|
|
118
120
|
className: className,
|
|
119
121
|
tokens: prepped,
|
package/lib/text-select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/text-select.jsx"],"names":["log","TextSelect","tokens","onChange","props","out","filter","t","selected","map","start","end","text","disabled","selectedTokens","className","highlightChoices","maxNoOfSelections","animationsDisabled","normalized","prepped","selectedIndex","findIndex","s","correct","undefined","selectable","predefined","change","React","Component","PropTypes","func","bool","arrayOf","shape","TokenTypes","isRequired","string","number"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/text-select.jsx"],"names":["log","TextSelect","tokens","onChange","props","out","filter","t","selected","map","start","end","text","disabled","selectedTokens","className","highlightChoices","maxNoOfSelections","animationsDisabled","normalized","prepped","selectedIndex","findIndex","s","correct","undefined","selectable","predefined","change","React","Component","PropTypes","func","bool","arrayOf","shape","TokenTypes","isRequired","string","number"],"mappings":"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","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 return {\n ...t,\n selectable: !disabled && t.predefined,\n selected,\n correct\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"],"file":"text-select.js"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -25,46 +27,48 @@ var _server = require("react-dom/server");
|
|
|
25
27
|
|
|
26
28
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
27
29
|
|
|
28
|
-
function
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
31
|
|
|
30
|
-
function
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
33
|
|
|
32
|
-
function
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
33
35
|
|
|
34
36
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
35
37
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
39
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
41
|
|
|
40
42
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
41
43
|
|
|
42
44
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
43
45
|
|
|
44
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
46
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
45
47
|
|
|
46
|
-
function
|
|
48
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
47
49
|
|
|
48
|
-
function
|
|
50
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
51
|
+
|
|
52
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
53
|
+
|
|
54
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
49
55
|
|
|
50
56
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
51
57
|
|
|
52
|
-
function
|
|
58
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
53
59
|
|
|
54
|
-
function
|
|
60
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
55
61
|
|
|
56
62
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
57
63
|
|
|
58
64
|
var log = (0, _debug["default"])('@pie-lib:text-select:token-select');
|
|
59
65
|
|
|
60
|
-
var TokenSelect =
|
|
61
|
-
/*#__PURE__*/
|
|
62
|
-
function (_React$Component) {
|
|
66
|
+
var TokenSelect = /*#__PURE__*/function (_React$Component) {
|
|
63
67
|
_inherits(TokenSelect, _React$Component);
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
var _getPrototypeOf2;
|
|
69
|
+
var _super = _createSuper(TokenSelect);
|
|
67
70
|
|
|
71
|
+
function TokenSelect() {
|
|
68
72
|
var _this;
|
|
69
73
|
|
|
70
74
|
_classCallCheck(this, TokenSelect);
|
|
@@ -73,7 +77,7 @@ function (_React$Component) {
|
|
|
73
77
|
args[_key] = arguments[_key];
|
|
74
78
|
}
|
|
75
79
|
|
|
76
|
-
_this =
|
|
80
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
77
81
|
|
|
78
82
|
_defineProperty(_assertThisInitialized(_this), "selectedCount", function () {
|
|
79
83
|
return _this.props.tokens.filter(function (t) {
|
|
@@ -114,17 +118,17 @@ function (_React$Component) {
|
|
|
114
118
|
});
|
|
115
119
|
var updatedTokens = tokensCloned.map(function (token) {
|
|
116
120
|
if ((0, _isEqual["default"])(token, selectedToken[0])) {
|
|
117
|
-
return _objectSpread({}, token, {
|
|
121
|
+
return _objectSpread(_objectSpread({}, token), {}, {
|
|
118
122
|
selected: false
|
|
119
123
|
});
|
|
120
124
|
}
|
|
121
125
|
|
|
122
|
-
return _objectSpread({}, token, {
|
|
126
|
+
return _objectSpread(_objectSpread({}, token), {}, {
|
|
123
127
|
selectable: true
|
|
124
128
|
});
|
|
125
129
|
});
|
|
126
130
|
|
|
127
|
-
var update = _objectSpread({}, t, {
|
|
131
|
+
var update = _objectSpread(_objectSpread({}, t), {}, {
|
|
128
132
|
selected: !t.selected
|
|
129
133
|
});
|
|
130
134
|
|
|
@@ -136,7 +140,7 @@ function (_React$Component) {
|
|
|
136
140
|
return;
|
|
137
141
|
}
|
|
138
142
|
|
|
139
|
-
var _update = _objectSpread({}, t, {
|
|
143
|
+
var _update = _objectSpread(_objectSpread({}, t), {}, {
|
|
140
144
|
selected: !t.selected
|
|
141
145
|
});
|
|
142
146
|
|
|
@@ -179,16 +183,16 @@ function (_React$Component) {
|
|
|
179
183
|
|
|
180
184
|
if (selectable && !disabled || showCorrectAnswer || t.selected || animationsDisabled && t.predefined // if we are in print mode
|
|
181
185
|
) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
186
|
+
return finalAcc + (0, _server.renderToString)( /*#__PURE__*/_react["default"].createElement(_token["default"], _extends({
|
|
187
|
+
key: index,
|
|
188
|
+
disabled: disabled,
|
|
189
|
+
index: index
|
|
190
|
+
}, t, {
|
|
191
|
+
selectable: selectable,
|
|
192
|
+
highlight: highlightChoices,
|
|
193
|
+
animationsDisabled: animationsDisabled
|
|
194
|
+
})));
|
|
195
|
+
} else {
|
|
192
196
|
return accumulator + t.text;
|
|
193
197
|
}
|
|
194
198
|
};
|
|
@@ -208,7 +212,7 @@ function (_React$Component) {
|
|
|
208
212
|
classNameProp = _this$props4.className;
|
|
209
213
|
var className = (0, _classnames["default"])(classes.tokenSelect, classNameProp);
|
|
210
214
|
var html = this.generateTokensInHtml();
|
|
211
|
-
return _react["default"].createElement("div", {
|
|
215
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
212
216
|
className: className,
|
|
213
217
|
dangerouslySetInnerHTML: {
|
|
214
218
|
__html: html
|
|
@@ -242,10 +246,10 @@ _defineProperty(TokenSelect, "defaultProps", {
|
|
|
242
246
|
|
|
243
247
|
var _default = (0, _styles.withStyles)(function () {
|
|
244
248
|
return {
|
|
245
|
-
tokenSelect: _objectSpread({
|
|
249
|
+
tokenSelect: _objectSpread(_objectSpread({
|
|
246
250
|
backgroundColor: 'none',
|
|
247
251
|
whiteSpace: 'pre'
|
|
248
|
-
}, (0, _styleUtils.noSelect)(), {
|
|
252
|
+
}, (0, _styleUtils.noSelect)()), {}, {
|
|
249
253
|
'& p': {
|
|
250
254
|
whiteSpace: 'break-spaces'
|
|
251
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/token-select/index.jsx"],"names":["log","TokenSelect","props","tokens","filter","t","selected","length","selectedCount","maxNoOfSelections","isFinite","event","target","animationsDisabled","tokensCloned","targetSpanWrapper","closest","Token","rootClassName","targetedTokenIndex","dataset","indexkey","correct","undefined","onChange","selectedToken","updatedTokens","map","token","selectable","update","splice","disabled","highlightChoices","isLineBreak","text","isNewParagraph","reducer","accumulator","index","canSelectMore","showCorrectAnswer","finalAcc","predefined","reduceResult","reduce","classes","classNameProp","className","tokenSelect","html","generateTokensInHtml","__html","toggleToken","React","Component","PropTypes","arrayOf","shape","TokenTypes","isRequired","string","object","func","bool","number","backgroundColor","whiteSpace"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Token, { TokenTypes } from './token';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport clone from 'lodash/clone';\nimport debug from 'debug';\nimport { noSelect } from '@pie-lib/style-utils';\nimport { renderToString } from 'react-dom/server';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:text-select:token-select');\n\nexport class TokenSelect extends React.Component {\n static propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\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) {\n return true;\n }\n\n log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);\n return (\n maxNoOfSelections <= 0 || (isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections)\n );\n };\n\n /**\n @function\n @param { object } event\n\n @description\n each token is wrapped into a span that has Token.rootClassName class and indexkey attribute (represents the index of the token)\n tokens are updated with the targeted token having the correct value set for 'selected' property\n */\n toggleToken = event => {\n const { target } = event;\n const { tokens, animationsDisabled } = this.props;\n const tokensCloned = clone(tokens);\n const targetSpanWrapper = target.closest(`.${Token.rootClassName}`);\n const targetedTokenIndex =\n targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;\n const t = targetedTokenIndex && tokensCloned[targetedTokenIndex];\n\n if (t && t.correct === undefined && !animationsDisabled) {\n const { onChange, maxNoOfSelections } = this.props;\n const selected = !t.selected;\n\n if (maxNoOfSelections === 1 && this.selectedCount() === 1) {\n const selectedToken = (tokens || []).filter(t => t.selected);\n\n const updatedTokens = tokensCloned.map(token => {\n if (isEqual(token, selectedToken[0])) {\n return { ...token, selected: false };\n }\n\n return { ...token, selectable: true };\n });\n\n const update = { ...t, selected: !t.selected };\n\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\n const update = { ...t, selected: !t.selected };\n\n tokensCloned.splice(targetedTokenIndex, 1, update);\n onChange(tokensCloned);\n }\n }\n };\n\n generateTokensInHtml = () => {\n const { tokens, disabled, highlightChoices, animationsDisabled } = this.props;\n const selectedCount = this.selectedCount();\n const isLineBreak = text => text === '\\n';\n const isNewParagraph = text => text === '\\n\\n';\n\n const reducer = (accumulator, t, index) => {\n const selectable = t.selected || (t.selectable && this.canSelectMore(selectedCount));\n const showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);\n let finalAcc = accumulator;\n\n if (isNewParagraph(t.text)) {\n return finalAcc + '</p><p>';\n }\n\n if (isLineBreak(t.text)) {\n return finalAcc + '<br>';\n }\n\n if (\n (selectable && !disabled) ||\n showCorrectAnswer ||\n t.selected ||\n (animationsDisabled && t.predefined) // if we are in print mode\n ) {\n return (\n finalAcc +\n renderToString(\n <Token\n key={index}\n disabled={disabled}\n index={index}\n {...t}\n selectable={selectable}\n highlight={highlightChoices}\n animationsDisabled={animationsDisabled}\n />\n )\n );\n } else {\n return accumulator + t.text;\n }\n };\n\n const reduceResult = (tokens || []).reduce(reducer, '<p>');\n\n return reduceResult + '</p>';\n };\n\n render() {\n const { classes, className: classNameProp } = this.props;\n const className = classNames(classes.tokenSelect, classNameProp);\n const html = this.generateTokensInHtml();\n\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: html }}\n onClick={this.toggleToken}\n />\n );\n }\n}\n\nexport default withStyles(() => ({\n tokenSelect: {\n backgroundColor: 'none',\n whiteSpace: 'pre',\n ...noSelect(),\n '& p': {\n whiteSpace: 'break-spaces'\n }\n }\n}))(TokenSelect);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/token-select/index.jsx"],"names":["log","TokenSelect","props","tokens","filter","t","selected","length","selectedCount","maxNoOfSelections","isFinite","event","target","animationsDisabled","tokensCloned","targetSpanWrapper","closest","Token","rootClassName","targetedTokenIndex","dataset","indexkey","correct","undefined","onChange","selectedToken","updatedTokens","map","token","selectable","update","splice","disabled","highlightChoices","isLineBreak","text","isNewParagraph","reducer","accumulator","index","canSelectMore","showCorrectAnswer","finalAcc","predefined","reduceResult","reduce","classes","classNameProp","className","tokenSelect","html","generateTokensInHtml","__html","toggleToken","React","Component","PropTypes","arrayOf","shape","TokenTypes","isRequired","string","object","func","bool","number","backgroundColor","whiteSpace"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,mCAAN,CAAZ;;IAEaC,W;;;;;;;;;;;;;;;;oEAkBK;AAAA,aAAM,MAAKC,KAAL,CAAWC,MAAX,CAAkBC,MAAlB,CAAyB,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACC,QAAN;AAAA,OAA1B,EAA0CC,MAAhD;AAAA,K;;oEAEA,UAAAC,aAAa,EAAI;AAC/B,UAAQC,iBAAR,GAA8B,MAAKP,KAAnC,CAAQO,iBAAR;;AAEA,UAAIA,iBAAiB,KAAK,CAA1B,EAA6B;AAC3B,eAAO,IAAP;AACD;;AAEDT,MAAAA,GAAG,CAAC,qCAAD,EAAwCS,iBAAxC,EAA2D,iBAA3D,EAA8ED,aAA9E,CAAH;AACA,aACEC,iBAAiB,IAAI,CAArB,IAA2BC,QAAQ,CAACD,iBAAD,CAAR,IAA+BD,aAAa,GAAGC,iBAD5E;AAGD,K;;kEAUa,UAAAE,KAAK,EAAI;AACrB,UAAQC,MAAR,GAAmBD,KAAnB,CAAQC,MAAR;AACA,wBAAuC,MAAKV,KAA5C;AAAA,UAAQC,MAAR,eAAQA,MAAR;AAAA,UAAgBU,kBAAhB,eAAgBA,kBAAhB;AACA,UAAMC,YAAY,GAAG,uBAAMX,MAAN,CAArB;AACA,UAAMY,iBAAiB,GAAGH,MAAM,CAACI,OAAP,YAAmBC,kBAAMC,aAAzB,EAA1B;AACA,UAAMC,kBAAkB,GACtBJ,iBAAiB,IAAIA,iBAAiB,CAACK,OAAvC,IAAkDL,iBAAiB,CAACK,OAAlB,CAA0BC,QAD9E;AAEA,UAAMhB,CAAC,GAAGc,kBAAkB,IAAIL,YAAY,CAACK,kBAAD,CAA5C;;AAEA,UAAId,CAAC,IAAIA,CAAC,CAACiB,OAAF,KAAcC,SAAnB,IAAgC,CAACV,kBAArC,EAAyD;AACvD,2BAAwC,MAAKX,KAA7C;AAAA,YAAQsB,QAAR,gBAAQA,QAAR;AAAA,YAAkBf,iBAAlB,gBAAkBA,iBAAlB;AACA,YAAMH,QAAQ,GAAG,CAACD,CAAC,CAACC,QAApB;;AAEA,YAAIG,iBAAiB,KAAK,CAAtB,IAA2B,MAAKD,aAAL,OAAyB,CAAxD,EAA2D;AACzD,cAAMiB,aAAa,GAAG,CAACtB,MAAM,IAAI,EAAX,EAAeC,MAAf,CAAsB,UAAAC,CAAC;AAAA,mBAAIA,CAAC,CAACC,QAAN;AAAA,WAAvB,CAAtB;AAEA,cAAMoB,aAAa,GAAGZ,YAAY,CAACa,GAAb,CAAiB,UAAAC,KAAK,EAAI;AAC9C,gBAAI,yBAAQA,KAAR,EAAeH,aAAa,CAAC,CAAD,CAA5B,CAAJ,EAAsC;AACpC,qDAAYG,KAAZ;AAAmBtB,gBAAAA,QAAQ,EAAE;AAA7B;AACD;;AAED,mDAAYsB,KAAZ;AAAmBC,cAAAA,UAAU,EAAE;AAA/B;AACD,WANqB,CAAtB;;AAQA,cAAMC,MAAM,mCAAQzB,CAAR;AAAWC,YAAAA,QAAQ,EAAE,CAACD,CAAC,CAACC;AAAxB,YAAZ;;AAEAoB,UAAAA,aAAa,CAACK,MAAd,CAAqBZ,kBAArB,EAAyC,CAAzC,EAA4CW,MAA5C;AACAN,UAAAA,QAAQ,CAACE,aAAD,CAAR;AACD,SAfD,MAeO;AACL,cAAIpB,QAAQ,IAAIG,iBAAiB,GAAG,CAAhC,IAAqC,MAAKD,aAAL,MAAwBC,iBAAjE,EAAoF;AAClFT,YAAAA,GAAG,CAAC,yBAAD,CAAH;AACA;AACD;;AAED,cAAM8B,OAAM,mCAAQzB,CAAR;AAAWC,YAAAA,QAAQ,EAAE,CAACD,CAAC,CAACC;AAAxB,YAAZ;;AAEAQ,UAAAA,YAAY,CAACiB,MAAb,CAAoBZ,kBAApB,EAAwC,CAAxC,EAA2CW,OAA3C;AACAN,UAAAA,QAAQ,CAACV,YAAD,CAAR;AACD;AACF;AACF,K;;2EAEsB,YAAM;AAC3B,yBAAmE,MAAKZ,KAAxE;AAAA,UAAQC,MAAR,gBAAQA,MAAR;AAAA,UAAgB6B,QAAhB,gBAAgBA,QAAhB;AAAA,UAA0BC,gBAA1B,gBAA0BA,gBAA1B;AAAA,UAA4CpB,kBAA5C,gBAA4CA,kBAA5C;;AACA,UAAML,aAAa,GAAG,MAAKA,aAAL,EAAtB;;AACA,UAAM0B,WAAW,GAAG,SAAdA,WAAc,CAAAC,IAAI;AAAA,eAAIA,IAAI,KAAK,IAAb;AAAA,OAAxB;;AACA,UAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAD,IAAI;AAAA,eAAIA,IAAI,KAAK,MAAb;AAAA,OAA3B;;AAEA,UAAME,OAAO,GAAG,SAAVA,OAAU,CAACC,WAAD,EAAcjC,CAAd,EAAiBkC,KAAjB,EAA2B;AACzC,YAAMV,UAAU,GAAGxB,CAAC,CAACC,QAAF,IAAeD,CAAC,CAACwB,UAAF,IAAgB,MAAKW,aAAL,CAAmBhC,aAAnB,CAAlD;;AACA,YAAMiC,iBAAiB,GAAGpC,CAAC,CAACiB,OAAF,KAAcC,SAAd,KAA4BlB,CAAC,CAACwB,UAAF,IAAgBxB,CAAC,CAACC,QAA9C,CAA1B;AACA,YAAIoC,QAAQ,GAAGJ,WAAf;;AAEA,YAAIF,cAAc,CAAC/B,CAAC,CAAC8B,IAAH,CAAlB,EAA4B;AAC1B,iBAAOO,QAAQ,GAAG,SAAlB;AACD;;AAED,YAAIR,WAAW,CAAC7B,CAAC,CAAC8B,IAAH,CAAf,EAAyB;AACvB,iBAAOO,QAAQ,GAAG,MAAlB;AACD;;AAED,YACGb,UAAU,IAAI,CAACG,QAAhB,IACAS,iBADA,IAEApC,CAAC,CAACC,QAFF,IAGCO,kBAAkB,IAAIR,CAAC,CAACsC,UAJ3B,CAIuC;AAJvC,UAKE;AACA,iBACED,QAAQ,GACR,0CACE,gCAAC,iBAAD;AACE,YAAA,GAAG,EAAEH,KADP;AAEE,YAAA,QAAQ,EAAEP,QAFZ;AAGE,YAAA,KAAK,EAAEO;AAHT,aAIMlC,CAJN;AAKE,YAAA,UAAU,EAAEwB,UALd;AAME,YAAA,SAAS,EAAEI,gBANb;AAOE,YAAA,kBAAkB,EAAEpB;AAPtB,aADF,CAFF;AAcD,SApBD,MAoBO;AACL,iBAAOyB,WAAW,GAAGjC,CAAC,CAAC8B,IAAvB;AACD;AACF,OApCD;;AAsCA,UAAMS,YAAY,GAAG,CAACzC,MAAM,IAAI,EAAX,EAAe0C,MAAf,CAAsBR,OAAtB,EAA+B,KAA/B,CAArB;AAEA,aAAOO,YAAY,GAAG,MAAtB;AACD,K;;;;;;;WAED,kBAAS;AACP,yBAA8C,KAAK1C,KAAnD;AAAA,UAAQ4C,OAAR,gBAAQA,OAAR;AAAA,UAA4BC,aAA5B,gBAAiBC,SAAjB;AACA,UAAMA,SAAS,GAAG,4BAAWF,OAAO,CAACG,WAAnB,EAAgCF,aAAhC,CAAlB;AACA,UAAMG,IAAI,GAAG,KAAKC,oBAAL,EAAb;AAEA,0BACE;AACE,QAAA,SAAS,EAAEH,SADb;AAEE,QAAA,uBAAuB,EAAE;AAAEI,UAAAA,MAAM,EAAEF;AAAV,SAF3B;AAGE,QAAA,OAAO,EAAE,KAAKG;AAHhB,QADF;AAOD;;;;EAhJ8BC,kBAAMC,S;;;;gBAA1BtD,W,eACQ;AACjBE,EAAAA,MAAM,EAAEqD,sBAAUC,OAAV,CAAkBD,sBAAUE,KAAV,CAAgBC,iBAAhB,CAAlB,EAA+CC,UADtC;AAEjBZ,EAAAA,SAAS,EAAEQ,sBAAUK,MAFJ;AAGjBf,EAAAA,OAAO,EAAEU,sBAAUM,MAAV,CAAiBF,UAHT;AAIjBpC,EAAAA,QAAQ,EAAEgC,sBAAUO,IAAV,CAAeH,UAJR;AAKjB5B,EAAAA,QAAQ,EAAEwB,sBAAUQ,IALH;AAMjB/B,EAAAA,gBAAgB,EAAEuB,sBAAUQ,IANX;AAOjBnD,EAAAA,kBAAkB,EAAE2C,sBAAUQ,IAPb;AAQjBvD,EAAAA,iBAAiB,EAAE+C,sBAAUS;AARZ,C;;gBADRhE,W,kBAYW;AACpBgC,EAAAA,gBAAgB,EAAE,KADE;AAEpBxB,EAAAA,iBAAiB,EAAE,CAFC;AAGpBN,EAAAA,MAAM,EAAE;AAHY,C;;eAuIT,wBAAW;AAAA,SAAO;AAC/B8C,IAAAA,WAAW;AACTiB,MAAAA,eAAe,EAAE,MADR;AAETC,MAAAA,UAAU,EAAE;AAFH,OAGN,2BAHM;AAIT,aAAO;AACLA,QAAAA,UAAU,EAAE;AADP;AAJE;AADoB,GAAP;AAAA,CAAX,EASXlE,WATW,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Token, { TokenTypes } from './token';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport clone from 'lodash/clone';\nimport debug from 'debug';\nimport { noSelect } from '@pie-lib/style-utils';\nimport { renderToString } from 'react-dom/server';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:text-select:token-select');\n\nexport class TokenSelect extends React.Component {\n static propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\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) {\n return true;\n }\n\n log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);\n return (\n maxNoOfSelections <= 0 || (isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections)\n );\n };\n\n /**\n @function\n @param { object } event\n\n @description\n each token is wrapped into a span that has Token.rootClassName class and indexkey attribute (represents the index of the token)\n tokens are updated with the targeted token having the correct value set for 'selected' property\n */\n toggleToken = event => {\n const { target } = event;\n const { tokens, animationsDisabled } = this.props;\n const tokensCloned = clone(tokens);\n const targetSpanWrapper = target.closest(`.${Token.rootClassName}`);\n const targetedTokenIndex =\n targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;\n const t = targetedTokenIndex && tokensCloned[targetedTokenIndex];\n\n if (t && t.correct === undefined && !animationsDisabled) {\n const { onChange, maxNoOfSelections } = this.props;\n const selected = !t.selected;\n\n if (maxNoOfSelections === 1 && this.selectedCount() === 1) {\n const selectedToken = (tokens || []).filter(t => t.selected);\n\n const updatedTokens = tokensCloned.map(token => {\n if (isEqual(token, selectedToken[0])) {\n return { ...token, selected: false };\n }\n\n return { ...token, selectable: true };\n });\n\n const update = { ...t, selected: !t.selected };\n\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\n const update = { ...t, selected: !t.selected };\n\n tokensCloned.splice(targetedTokenIndex, 1, update);\n onChange(tokensCloned);\n }\n }\n };\n\n generateTokensInHtml = () => {\n const { tokens, disabled, highlightChoices, animationsDisabled } = this.props;\n const selectedCount = this.selectedCount();\n const isLineBreak = text => text === '\\n';\n const isNewParagraph = text => text === '\\n\\n';\n\n const reducer = (accumulator, t, index) => {\n const selectable = t.selected || (t.selectable && this.canSelectMore(selectedCount));\n const showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);\n let finalAcc = accumulator;\n\n if (isNewParagraph(t.text)) {\n return finalAcc + '</p><p>';\n }\n\n if (isLineBreak(t.text)) {\n return finalAcc + '<br>';\n }\n\n if (\n (selectable && !disabled) ||\n showCorrectAnswer ||\n t.selected ||\n (animationsDisabled && t.predefined) // if we are in print mode\n ) {\n return (\n finalAcc +\n renderToString(\n <Token\n key={index}\n disabled={disabled}\n index={index}\n {...t}\n selectable={selectable}\n highlight={highlightChoices}\n animationsDisabled={animationsDisabled}\n />\n )\n );\n } else {\n return accumulator + t.text;\n }\n };\n\n const reduceResult = (tokens || []).reduce(reducer, '<p>');\n\n return reduceResult + '</p>';\n };\n\n render() {\n const { classes, className: classNameProp } = this.props;\n const className = classNames(classes.tokenSelect, classNameProp);\n const html = this.generateTokensInHtml();\n\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: html }}\n onClick={this.toggleToken}\n />\n );\n }\n}\n\nexport default withStyles(() => ({\n tokenSelect: {\n backgroundColor: 'none',\n whiteSpace: 'pre',\n ...noSelect(),\n '& p': {\n whiteSpace: 'break-spaces'\n }\n }\n}))(TokenSelect);\n"],"file":"index.js"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports["default"] = exports.
|
|
8
|
+
exports["default"] = exports.TokenTypes = exports.Token = void 0;
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -17,27 +19,29 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
17
19
|
|
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
21
|
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
25
|
|
|
26
26
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
27
27
|
|
|
28
28
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
29
29
|
|
|
30
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
30
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
31
31
|
|
|
32
|
-
function
|
|
32
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
35
35
|
|
|
36
|
-
function
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
37
37
|
|
|
38
|
-
function
|
|
38
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
39
39
|
|
|
40
|
-
function
|
|
40
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
41
|
+
|
|
42
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
|
|
44
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
45
|
|
|
42
46
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
47
|
|
|
@@ -47,15 +51,15 @@ var TokenTypes = {
|
|
|
47
51
|
};
|
|
48
52
|
exports.TokenTypes = TokenTypes;
|
|
49
53
|
|
|
50
|
-
var Token =
|
|
51
|
-
/*#__PURE__*/
|
|
52
|
-
function (_React$Component) {
|
|
54
|
+
var Token = /*#__PURE__*/function (_React$Component) {
|
|
53
55
|
_inherits(Token, _React$Component);
|
|
54
56
|
|
|
57
|
+
var _super = _createSuper(Token);
|
|
58
|
+
|
|
55
59
|
function Token() {
|
|
56
60
|
_classCallCheck(this, Token);
|
|
57
61
|
|
|
58
|
-
return
|
|
62
|
+
return _super.apply(this, arguments);
|
|
59
63
|
}
|
|
60
64
|
|
|
61
65
|
_createClass(Token, [{
|
|
@@ -82,7 +86,7 @@ function (_React$Component) {
|
|
|
82
86
|
className = (0, _classnames["default"])(Token.rootClassName, classes.token, disabled && classes.disabled, selectable && !disabled && classes.selectable, selected && !disabled && classes.selected, selected && disabled && classes.disabledAndSelected, highlight && selectable && !disabled && !selected && classes.highlight, animationsDisabled && classes.print, classNameProp);
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
return _react["default"].createElement("span", {
|
|
89
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
86
90
|
className: className,
|
|
87
91
|
dangerouslySetInnerHTML: {
|
|
88
92
|
__html: (text || '').replace(/\n/g, '<br>')
|
|
@@ -99,7 +103,7 @@ exports.Token = Token;
|
|
|
99
103
|
|
|
100
104
|
_defineProperty(Token, "rootClassName", 'tokenRootClass');
|
|
101
105
|
|
|
102
|
-
_defineProperty(Token, "propTypes", _objectSpread({}, TokenTypes, {
|
|
106
|
+
_defineProperty(Token, "propTypes", _objectSpread(_objectSpread({}, TokenTypes), {}, {
|
|
103
107
|
classes: _propTypes["default"].object.isRequired,
|
|
104
108
|
className: _propTypes["default"].string,
|
|
105
109
|
disabled: _propTypes["default"].bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/token-select/token.jsx"],"names":["TokenTypes","text","PropTypes","string","selectable","bool","Token","props","selected","classes","classNameProp","className","disabled","index","highlight","correct","animationsDisabled","undefined","token","disabledBlack","rootClassName","custom","incorrect","disabledAndSelected","print","__html","replace","React","Component","object","isRequired","theme","cursor","textIndent","padding","spacing","unit","paddingRight","paddingLeft","transition","color","backgroundColor","primaryLight","lineHeight","marginTop","border","boxSizing","display"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/token-select/token.jsx"],"names":["TokenTypes","text","PropTypes","string","selectable","bool","Token","props","selected","classes","classNameProp","className","disabled","index","highlight","correct","animationsDisabled","undefined","token","disabledBlack","rootClassName","custom","incorrect","disabledAndSelected","print","__html","replace","React","Component","object","isRequired","theme","cursor","textIndent","padding","spacing","unit","paddingRight","paddingLeft","transition","color","backgroundColor","primaryLight","lineHeight","marginTop","border","boxSizing","display"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nexport const TokenTypes = {\n text: PropTypes.string,\n selectable: PropTypes.bool\n};\n\nexport class Token extends React.Component {\n static rootClassName = 'tokenRootClass';\n\n static propTypes = {\n ...TokenTypes,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n highlight: PropTypes.bool,\n correct: PropTypes.bool,\n text: PropTypes.string.isRequired\n };\n\n static defaultProps = {\n selectable: false,\n text: ''\n };\n\n render() {\n const {\n text,\n selectable,\n selected,\n classes,\n className: classNameProp,\n disabled,\n index,\n highlight,\n correct,\n animationsDisabled\n } = this.props;\n\n let className;\n\n if (correct === undefined && selected && disabled) {\n className = classNames(classes.token, classes.selected, classes.disabledBlack);\n } else if (correct !== undefined) {\n className = classNames(\n Token.rootClassName,\n classes.custom,\n correct === true && classes.correct,\n correct === false && classes.incorrect\n );\n } else {\n className = classNames(\n Token.rootClassName,\n classes.token,\n disabled && classes.disabled,\n selectable && !disabled && classes.selectable,\n selected && !disabled && classes.selected,\n selected && disabled && classes.disabledAndSelected,\n highlight && selectable && !disabled && !selected && classes.highlight,\n animationsDisabled && classes.print,\n classNameProp\n );\n }\n\n return (\n <span\n className={className}\n dangerouslySetInnerHTML={{ __html: (text || '').replace(/\\n/g, '<br>') }}\n data-indexkey={index}\n />\n );\n }\n}\n\nexport default withStyles(theme => {\n return {\n token: {\n cursor: 'pointer',\n textIndent: 0,\n padding: theme.spacing.unit / 2,\n paddingRight: 0,\n paddingLeft: 0,\n transition: 'background-color 100ms ease-in'\n },\n disabled: {\n cursor: 'inherit',\n color: 'grey' // TODO hardcoded color\n },\n disabledBlack: {\n cursor: 'inherit'\n },\n disabledAndSelected: {\n backgroundColor: 'pink' // TODO hardcoded color\n },\n selectable: {\n '&:hover': {\n backgroundColor: color.primaryLight(),\n '& > *': {\n backgroundColor: color.primaryLight()\n }\n }\n },\n selected: {\n lineHeight: 2,\n marginTop: theme.spacing.unit / 2,\n '&:hover': {\n backgroundColor: color.primaryLight()\n },\n backgroundColor: color.primaryLight(),\n '& > *': {\n backgroundColor: color.primaryLight()\n }\n },\n highlight: {\n // TODO hardcoded color,\n border: 'dashed 2px gray',\n lineHeight: 2,\n boxSizing: 'border-box',\n marginTop: theme.spacing.unit / 2,\n display: 'inline-block',\n padding: theme.spacing.unit\n },\n print: {\n border: 'dashed 2px gray',\n lineHeight: 2,\n boxSizing: 'border-box',\n marginTop: theme.spacing.unit / 2,\n display: 'inline-block',\n padding: theme.spacing.unit,\n color: color.text()\n },\n\n custom: {\n display: 'initial'\n },\n correct: {\n backgroundColor: color.correct()\n },\n incorrect: {\n backgroundColor: color.incorrect()\n }\n };\n})(Token);\n"],"file":"token.js"}
|
package/lib/tokenizer/builder.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.words = exports.sort = exports.sentences = exports.paragraphs = exports.normalize = exports.intersection = exports.handleSentence = void 0;
|
|
7
7
|
|
|
8
8
|
var _compact = _interopRequireDefault(require("lodash/compact"));
|
|
9
9
|
|
|
@@ -17,7 +17,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
17
17
|
|
|
18
18
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
19
19
|
|
|
20
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
20
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
21
21
|
|
|
22
22
|
var g = function g(str, node) {
|
|
23
23
|
if (node.children) {
|
|
@@ -160,9 +160,7 @@ var words = function words(text) {
|
|
|
160
160
|
|
|
161
161
|
exports.words = words;
|
|
162
162
|
|
|
163
|
-
var Intersection =
|
|
164
|
-
/*#__PURE__*/
|
|
165
|
-
function () {
|
|
163
|
+
var Intersection = /*#__PURE__*/function () {
|
|
166
164
|
function Intersection(results) {
|
|
167
165
|
_classCallCheck(this, Intersection);
|
|
168
166
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tokenizer/builder.js"],"names":["g","str","node","children","reduce","value","getParagraph","p","getSentence","s","getWord","w","paragraphs","text","tree","English","parse","out","acc","child","type","paragraph","start","position","offset","end","concat","handleSentence","sentenceChilds","newAcc","length","firstWord","sentence","map","d","join","splice","push","lastWord","sentences","words","Intersection","results","filter","r","t","token","intersection","selection","tokens","startsWithin","endsWithin","mapped","sort","Array","isArray","a","b","e","Error","normalize","textToNormalize","index","outer","lastIndex","substring","predefined","correct","last","result"],"mappings":"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","sourcesContent":["import compact from 'lodash/compact';\nimport English from '@pie-framework/parse-english';\nimport clone from 'lodash/clone';\n\nconst g = (str, node) => {\n if (node.children) {\n return node.children.reduce(g, str);\n } else if (node.value) {\n return str + node.value;\n } else {\n return str;\n }\n};\n\nconst getParagraph = p => g('', p);\n\nconst getSentence = s => g('', s);\n\nconst getWord = w => g('', w);\n\nexport const paragraphs = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n const paragraph = {\n text: getParagraph(child),\n start: child.position.start.offset,\n end: child.position.end.offset\n };\n\n return acc.concat([paragraph]);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nexport const handleSentence = (child, acc) => {\n const sentenceChilds = [];\n // we parse the children of the sentence\n let newAcc = child.children.reduce(function(acc, child) {\n // if we find a whitespace node that's \\n, we end the sentence\n if (child.type === 'WhiteSpaceNode' && child.value === '\\n') {\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n // we create a sentence starting from the first word until the new line\n const sentence = {\n text: sentenceChilds.map(d => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: child.position.start.offset\n };\n\n // we remove all the elements from the array\n sentenceChilds.splice(0, sentenceChilds.length);\n return acc.concat([sentence]);\n }\n } else {\n // otherwise we add it to the array that contains the child forming a sentence\n sentenceChilds.push(child);\n }\n\n return acc;\n }, acc);\n\n // we treat the case when no \\n character is found at the end\n // so we create a sentence from the last words or white spaces found\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n const lastWord = sentenceChilds[sentenceChilds.length - 1];\n const sentence = {\n text: sentenceChilds.map(d => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: lastWord.position.end.offset\n };\n\n newAcc = newAcc.concat([sentence]);\n\n sentenceChilds.splice(0, sentenceChilds.length);\n }\n\n return newAcc;\n};\n\nexport const sentences = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n const newAcc = handleSentence(child, acc);\n\n return newAcc || acc;\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\nexport const words = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'WordNode') {\n const node = {\n text: getWord(child),\n start: child.position.start.offset,\n end: child.position.end.offset\n };\n return acc.concat([node]);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nclass Intersection {\n constructor(results) {\n this.results = results;\n }\n\n get hasOverlap() {\n return this.results.filter(r => r.type === 'overlap').length > 0;\n }\n\n get surroundedTokens() {\n return this.results.filter(r => r.type === 'within-selection').map(t => t.token);\n }\n}\n/**\n * get intersection info for the selection in relation to tokens.\n * @param {{start: number, end: number}} selection\n * @param {{start: number, end: number}[]} tokens\n * @return {tokens: [], type: 'overlap|no-overlap|contains'}\n */\nexport const intersection = (selection, tokens) => {\n const { start, end } = selection;\n\n const startsWithin = t => start >= t.start && start < t.end;\n const endsWithin = t => end > t.start && end <= t.end;\n\n const mapped = tokens.map(t => {\n if (start === t.start && end === t.end) {\n return { token: t, type: 'exact-fit' };\n } else if (start <= t.start && end >= t.end) {\n return { token: t, type: 'within-selection' };\n } else if (startsWithin(t) || endsWithin(t)) {\n return { token: t, type: 'overlap' };\n }\n });\n return new Intersection(compact(mapped));\n};\n\nexport const sort = tokens => {\n if (!Array.isArray(tokens)) {\n return tokens;\n } else {\n const out = clone(tokens);\n out.sort((a, b) => {\n const s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;\n const e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;\n if (s === -1 && e !== -1) {\n throw new Error(\n `sort does not support intersecting tokens. a: ${a.start}-${a.end}, b: ${b.start}-${b.end}`\n );\n }\n return s;\n });\n return out;\n }\n};\n\nexport const normalize = (textToNormalize, tokens) => {\n // making sure text provided is a string\n const text = textToNormalize || '';\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n return [\n {\n text,\n start: 0,\n end: text.length\n }\n ];\n }\n\n const out = sort(tokens).reduce(\n (acc, t, index, outer) => {\n let tokens = [];\n const lastIndex = acc.lastIndex;\n\n if (t.start === lastIndex) {\n tokens = [\n {\n text: text.substring(lastIndex, t.end),\n start: lastIndex,\n end: t.end,\n predefined: true,\n correct: t.correct\n }\n ];\n } else if (lastIndex < t.start) {\n tokens = [\n {\n text: text.substring(lastIndex, t.start),\n start: lastIndex,\n end: t.start\n },\n {\n text: text.substring(t.start, t.end),\n start: t.start,\n end: t.end,\n predefined: true,\n correct: t.correct\n }\n ];\n }\n\n if (index === outer.length - 1 && t.end < text.length) {\n const last = {\n text: text.substring(t.end),\n start: t.end,\n end: text.length\n };\n tokens.push(last);\n }\n\n return {\n lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,\n result: acc.result.concat(tokens)\n };\n },\n { result: [], lastIndex: 0 }\n );\n\n return out.result;\n};\n"],"file":"builder.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/tokenizer/builder.js"],"names":["g","str","node","children","reduce","value","getParagraph","p","getSentence","s","getWord","w","paragraphs","text","tree","English","parse","out","acc","child","type","paragraph","start","position","offset","end","concat","handleSentence","sentenceChilds","newAcc","length","firstWord","sentence","map","d","join","splice","push","lastWord","sentences","words","Intersection","results","filter","r","t","token","intersection","selection","tokens","startsWithin","endsWithin","mapped","sort","Array","isArray","a","b","e","Error","normalize","textToNormalize","index","outer","lastIndex","substring","predefined","correct","last","result"],"mappings":"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","sourcesContent":["import compact from 'lodash/compact';\nimport English from '@pie-framework/parse-english';\nimport clone from 'lodash/clone';\n\nconst g = (str, node) => {\n if (node.children) {\n return node.children.reduce(g, str);\n } else if (node.value) {\n return str + node.value;\n } else {\n return str;\n }\n};\n\nconst getParagraph = p => g('', p);\n\nconst getSentence = s => g('', s);\n\nconst getWord = w => g('', w);\n\nexport const paragraphs = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n const paragraph = {\n text: getParagraph(child),\n start: child.position.start.offset,\n end: child.position.end.offset\n };\n\n return acc.concat([paragraph]);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nexport const handleSentence = (child, acc) => {\n const sentenceChilds = [];\n // we parse the children of the sentence\n let newAcc = child.children.reduce(function(acc, child) {\n // if we find a whitespace node that's \\n, we end the sentence\n if (child.type === 'WhiteSpaceNode' && child.value === '\\n') {\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n // we create a sentence starting from the first word until the new line\n const sentence = {\n text: sentenceChilds.map(d => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: child.position.start.offset\n };\n\n // we remove all the elements from the array\n sentenceChilds.splice(0, sentenceChilds.length);\n return acc.concat([sentence]);\n }\n } else {\n // otherwise we add it to the array that contains the child forming a sentence\n sentenceChilds.push(child);\n }\n\n return acc;\n }, acc);\n\n // we treat the case when no \\n character is found at the end\n // so we create a sentence from the last words or white spaces found\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n const lastWord = sentenceChilds[sentenceChilds.length - 1];\n const sentence = {\n text: sentenceChilds.map(d => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: lastWord.position.end.offset\n };\n\n newAcc = newAcc.concat([sentence]);\n\n sentenceChilds.splice(0, sentenceChilds.length);\n }\n\n return newAcc;\n};\n\nexport const sentences = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n const newAcc = handleSentence(child, acc);\n\n return newAcc || acc;\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\nexport const words = text => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'WordNode') {\n const node = {\n text: getWord(child),\n start: child.position.start.offset,\n end: child.position.end.offset\n };\n return acc.concat([node]);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nclass Intersection {\n constructor(results) {\n this.results = results;\n }\n\n get hasOverlap() {\n return this.results.filter(r => r.type === 'overlap').length > 0;\n }\n\n get surroundedTokens() {\n return this.results.filter(r => r.type === 'within-selection').map(t => t.token);\n }\n}\n/**\n * get intersection info for the selection in relation to tokens.\n * @param {{start: number, end: number}} selection\n * @param {{start: number, end: number}[]} tokens\n * @return {tokens: [], type: 'overlap|no-overlap|contains'}\n */\nexport const intersection = (selection, tokens) => {\n const { start, end } = selection;\n\n const startsWithin = t => start >= t.start && start < t.end;\n const endsWithin = t => end > t.start && end <= t.end;\n\n const mapped = tokens.map(t => {\n if (start === t.start && end === t.end) {\n return { token: t, type: 'exact-fit' };\n } else if (start <= t.start && end >= t.end) {\n return { token: t, type: 'within-selection' };\n } else if (startsWithin(t) || endsWithin(t)) {\n return { token: t, type: 'overlap' };\n }\n });\n return new Intersection(compact(mapped));\n};\n\nexport const sort = tokens => {\n if (!Array.isArray(tokens)) {\n return tokens;\n } else {\n const out = clone(tokens);\n out.sort((a, b) => {\n const s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;\n const e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;\n if (s === -1 && e !== -1) {\n throw new Error(\n `sort does not support intersecting tokens. a: ${a.start}-${a.end}, b: ${b.start}-${b.end}`\n );\n }\n return s;\n });\n return out;\n }\n};\n\nexport const normalize = (textToNormalize, tokens) => {\n // making sure text provided is a string\n const text = textToNormalize || '';\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n return [\n {\n text,\n start: 0,\n end: text.length\n }\n ];\n }\n\n const out = sort(tokens).reduce(\n (acc, t, index, outer) => {\n let tokens = [];\n const lastIndex = acc.lastIndex;\n\n if (t.start === lastIndex) {\n tokens = [\n {\n text: text.substring(lastIndex, t.end),\n start: lastIndex,\n end: t.end,\n predefined: true,\n correct: t.correct\n }\n ];\n } else if (lastIndex < t.start) {\n tokens = [\n {\n text: text.substring(lastIndex, t.start),\n start: lastIndex,\n end: t.start\n },\n {\n text: text.substring(t.start, t.end),\n start: t.start,\n end: t.end,\n predefined: true,\n correct: t.correct\n }\n ];\n }\n\n if (index === outer.length - 1 && t.end < text.length) {\n const last = {\n text: text.substring(t.end),\n start: t.end,\n end: text.length\n };\n tokens.push(last);\n }\n\n return {\n lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,\n result: acc.result.concat(tokens)\n };\n },\n { result: [], lastIndex: 0 }\n );\n\n return out.result;\n};\n"],"file":"builder.js"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -19,35 +21,37 @@ var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormCo
|
|
|
19
21
|
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
23
|
|
|
22
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
23
|
-
|
|
24
24
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
25
|
|
|
26
26
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
27
27
|
|
|
28
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
28
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
29
29
|
|
|
30
|
-
function
|
|
30
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
31
31
|
|
|
32
|
-
function
|
|
32
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
35
35
|
|
|
36
|
-
function
|
|
36
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
37
37
|
|
|
38
|
-
function
|
|
38
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
39
|
+
|
|
40
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
41
|
+
|
|
42
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
39
43
|
|
|
40
44
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
41
45
|
|
|
42
|
-
var Controls =
|
|
43
|
-
/*#__PURE__*/
|
|
44
|
-
function (_React$Component) {
|
|
46
|
+
var Controls = /*#__PURE__*/function (_React$Component) {
|
|
45
47
|
_inherits(Controls, _React$Component);
|
|
46
48
|
|
|
49
|
+
var _super = _createSuper(Controls);
|
|
50
|
+
|
|
47
51
|
function Controls() {
|
|
48
52
|
_classCallCheck(this, Controls);
|
|
49
53
|
|
|
50
|
-
return
|
|
54
|
+
return _super.apply(this, arguments);
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
_createClass(Controls, [{
|
|
@@ -61,34 +65,34 @@ function (_React$Component) {
|
|
|
61
65
|
onParagraphs = _this$props.onParagraphs,
|
|
62
66
|
setCorrectMode = _this$props.setCorrectMode,
|
|
63
67
|
onToggleCorrectMode = _this$props.onToggleCorrectMode;
|
|
64
|
-
return _react["default"].createElement("div", {
|
|
68
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
65
69
|
className: classes.controls
|
|
66
|
-
}, _react["default"].createElement("div", null, _react["default"].createElement(_Button["default"], {
|
|
70
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
67
71
|
onClick: onWords,
|
|
68
72
|
className: classes.button,
|
|
69
73
|
size: "small",
|
|
70
74
|
color: "primary",
|
|
71
75
|
disabled: setCorrectMode
|
|
72
|
-
}, "Words"), _react["default"].createElement(_Button["default"], {
|
|
76
|
+
}, "Words"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
73
77
|
onClick: onSentences,
|
|
74
78
|
className: classes.button,
|
|
75
79
|
size: "small",
|
|
76
80
|
color: "primary",
|
|
77
81
|
disabled: setCorrectMode
|
|
78
|
-
}, "Sentences"), _react["default"].createElement(_Button["default"], {
|
|
82
|
+
}, "Sentences"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
79
83
|
onClick: onParagraphs,
|
|
80
84
|
className: classes.button,
|
|
81
85
|
size: "small",
|
|
82
86
|
color: "primary",
|
|
83
87
|
disabled: setCorrectMode
|
|
84
|
-
}, "Paragraphs"), _react["default"].createElement(_Button["default"], {
|
|
88
|
+
}, "Paragraphs"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
85
89
|
className: classes.button,
|
|
86
90
|
size: "small",
|
|
87
91
|
color: "secondary",
|
|
88
92
|
onClick: onClear,
|
|
89
93
|
disabled: setCorrectMode
|
|
90
|
-
}, "Clear")), _react["default"].createElement(_FormControlLabel["default"], {
|
|
91
|
-
control: _react["default"].createElement(_Switch["default"], {
|
|
94
|
+
}, "Clear")), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
|
|
95
|
+
control: /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
92
96
|
checked: setCorrectMode,
|
|
93
97
|
onChange: onToggleCorrectMode
|
|
94
98
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tokenizer/controls.jsx"],"names":["Controls","props","classes","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","controls","button","React","Component","PropTypes","object","isRequired","func","bool","theme","marginRight","spacing","unit","display","alignItems","justifyContent"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/tokenizer/controls.jsx"],"names":["Controls","props","classes","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","controls","button","React","Component","PropTypes","object","isRequired","func","bool","theme","marginRight","spacing","unit","display","alignItems","justifyContent"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;WAaX,kBAAS;AACP,wBAQI,KAAKC,KART;AAAA,UACEC,OADF,eACEA,OADF;AAAA,UAEEC,OAFF,eAEEA,OAFF;AAAA,UAGEC,OAHF,eAGEA,OAHF;AAAA,UAIEC,WAJF,eAIEA,WAJF;AAAA,UAKEC,YALF,eAKEA,YALF;AAAA,UAMEC,cANF,eAMEA,cANF;AAAA,UAOEC,mBAPF,eAOEA,mBAPF;AAUA,0BACE;AAAK,QAAA,SAAS,EAAEN,OAAO,CAACO;AAAxB,sBACE,0DACE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAEL,OADX;AAEE,QAAA,SAAS,EAAEF,OAAO,CAACQ,MAFrB;AAGE,QAAA,IAAI,EAAC,OAHP;AAIE,QAAA,KAAK,EAAC,SAJR;AAKE,QAAA,QAAQ,EAAEH;AALZ,iBADF,eAUE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAEF,WADX;AAEE,QAAA,SAAS,EAAEH,OAAO,CAACQ,MAFrB;AAGE,QAAA,IAAI,EAAC,OAHP;AAIE,QAAA,KAAK,EAAC,SAJR;AAKE,QAAA,QAAQ,EAAEH;AALZ,qBAVF,eAmBE,gCAAC,kBAAD;AACE,QAAA,OAAO,EAAED,YADX;AAEE,QAAA,SAAS,EAAEJ,OAAO,CAACQ,MAFrB;AAGE,QAAA,IAAI,EAAC,OAHP;AAIE,QAAA,KAAK,EAAC,SAJR;AAKE,QAAA,QAAQ,EAAEH;AALZ,sBAnBF,eA4BE,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEL,OAAO,CAACQ,MADrB;AAEE,QAAA,IAAI,EAAC,OAFP;AAGE,QAAA,KAAK,EAAC,WAHR;AAIE,QAAA,OAAO,EAAEP,OAJX;AAKE,QAAA,QAAQ,EAAEI;AALZ,iBA5BF,CADF,eAuCE,gCAAC,4BAAD;AACE,QAAA,OAAO,eAAE,gCAAC,kBAAD;AAAQ,UAAA,OAAO,EAAEA,cAAjB;AAAiC,UAAA,QAAQ,EAAEC;AAA3C,UADX;AAEE,QAAA,KAAK,EAAC;AAFR,QAvCF,CADF;AA8CD;;;;EAtE2BG,kBAAMC,S;;;;gBAAvBZ,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEW,sBAAUC,MAAV,CAAiBC,UADT;AAEjBZ,EAAAA,OAAO,EAAEU,sBAAUG,IAAV,CAAeD,UAFP;AAGjBX,EAAAA,OAAO,EAAES,sBAAUG,IAAV,CAAeD,UAHP;AAIjBV,EAAAA,WAAW,EAAEQ,sBAAUG,IAAV,CAAeD,UAJX;AAKjBT,EAAAA,YAAY,EAAEO,sBAAUG,IAAV,CAAeD,UALZ;AAMjBR,EAAAA,cAAc,EAAEM,sBAAUI,IAAV,CAAeF,UANd;AAOjBP,EAAAA,mBAAmB,EAAEK,sBAAUG,IAAV,CAAeD;AAPnB,C;;gBADRf,Q,kBAWW,E;;eA6DT,wBAAW,UAAAkB,KAAK;AAAA,SAAK;AAClCR,IAAAA,MAAM,EAAE;AACNS,MAAAA,WAAW,EAAED,KAAK,CAACE,OAAN,CAAcC;AADrB,KAD0B;AAIlCZ,IAAAA,QAAQ,EAAE;AACRa,MAAAA,OAAO,EAAE,MADD;AAERC,MAAAA,UAAU,EAAE,QAFJ;AAGRC,MAAAA,cAAc,EAAE;AAHR;AAJwB,GAAL;AAAA,CAAhB,EASXxB,QATW,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport Switch from '@material-ui/core/Switch';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\n\nexport class Controls extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n onClear: PropTypes.func.isRequired,\n onWords: PropTypes.func.isRequired,\n onSentences: PropTypes.func.isRequired,\n onParagraphs: PropTypes.func.isRequired,\n setCorrectMode: PropTypes.bool.isRequired,\n onToggleCorrectMode: PropTypes.func.isRequired\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n onClear,\n onWords,\n onSentences,\n onParagraphs,\n setCorrectMode,\n onToggleCorrectMode\n } = this.props;\n\n return (\n <div className={classes.controls}>\n <div>\n <Button\n onClick={onWords}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Words\n </Button>\n <Button\n onClick={onSentences}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Sentences\n </Button>\n <Button\n onClick={onParagraphs}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Paragraphs\n </Button>\n <Button\n className={classes.button}\n size=\"small\"\n color=\"secondary\"\n onClick={onClear}\n disabled={setCorrectMode}\n >\n Clear\n </Button>\n </div>\n <FormControlLabel\n control={<Switch checked={setCorrectMode} onChange={onToggleCorrectMode} />}\n label=\"Set correct answers\"\n />\n </div>\n );\n }\n}\nexport default withStyles(theme => ({\n button: {\n marginRight: theme.spacing.unit\n },\n controls: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n}))(Controls);\n"],"file":"controls.js"}
|
package/lib/tokenizer/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -29,41 +31,43 @@ var _tokenText = _interopRequireDefault(require("./token-text"));
|
|
|
29
31
|
|
|
30
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
33
|
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
34
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
35
|
|
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
36
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
37
|
|
|
38
38
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
39
39
|
|
|
40
40
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
41
41
|
|
|
42
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
42
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
43
43
|
|
|
44
|
-
function
|
|
44
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
45
45
|
|
|
46
|
-
function
|
|
46
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
47
|
+
|
|
48
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
49
|
+
|
|
50
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
47
51
|
|
|
48
52
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
49
53
|
|
|
50
|
-
function
|
|
54
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
51
55
|
|
|
52
|
-
function
|
|
56
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
53
57
|
|
|
54
58
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
55
59
|
|
|
56
|
-
var Tokenizer =
|
|
57
|
-
/*#__PURE__*/
|
|
58
|
-
function (_React$Component) {
|
|
60
|
+
var Tokenizer = /*#__PURE__*/function (_React$Component) {
|
|
59
61
|
_inherits(Tokenizer, _React$Component);
|
|
60
62
|
|
|
63
|
+
var _super = _createSuper(Tokenizer);
|
|
64
|
+
|
|
61
65
|
function Tokenizer(props) {
|
|
62
66
|
var _this;
|
|
63
67
|
|
|
64
68
|
_classCallCheck(this, Tokenizer);
|
|
65
69
|
|
|
66
|
-
_this =
|
|
70
|
+
_this = _super.call(this, props);
|
|
67
71
|
|
|
68
72
|
_defineProperty(_assertThisInitialized(_this), "onChangeHandler", function (token, mode) {
|
|
69
73
|
_this.props.onChange(token, mode);
|
|
@@ -163,9 +167,9 @@ function (_React$Component) {
|
|
|
163
167
|
var setCorrectMode = this.state.setCorrectMode;
|
|
164
168
|
var tokenClassName = (0, _classnames["default"])(classes.text, setCorrectMode && classes.noselect);
|
|
165
169
|
var rootName = (0, _classnames["default"])(classes.tokenizer, className);
|
|
166
|
-
return _react["default"].createElement("div", {
|
|
170
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
167
171
|
className: rootName
|
|
168
|
-
}, _react["default"].createElement(_controls["default"], {
|
|
172
|
+
}, /*#__PURE__*/_react["default"].createElement(_controls["default"], {
|
|
169
173
|
onClear: this.clear,
|
|
170
174
|
onWords: function onWords() {
|
|
171
175
|
return _this2.buildTokens('words', _builder.words);
|
|
@@ -178,7 +182,7 @@ function (_React$Component) {
|
|
|
178
182
|
},
|
|
179
183
|
setCorrectMode: setCorrectMode,
|
|
180
184
|
onToggleCorrectMode: this.toggleCorrectMode
|
|
181
|
-
}), _react["default"].createElement(_tokenText["default"], {
|
|
185
|
+
}), /*#__PURE__*/_react["default"].createElement(_tokenText["default"], {
|
|
182
186
|
className: tokenClassName,
|
|
183
187
|
text: text,
|
|
184
188
|
tokens: tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tokenizer/index.jsx"],"names":["Tokenizer","props","token","mode","onChange","setState","setCorrectMode","state","onChangeHandler","type","fn","text","tokens","newToken","tokensToRemove","update","isEqual","push","setCorrect","removeToken","findIndex","t","start","end","index","tokenIndex","correct","splice","classes","className","tokenClassName","noselect","rootName","tokenizer","clear","buildTokens","words","sentences","paragraphs","toggleCorrectMode","tokenClick","selectToken","React","Component","PropTypes","string","isRequired","arrayOf","shape","bool","number","object","func","theme","whiteSpace","marginTop","spacing","unit","paddingTop","paddingBottom"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/tokenizer/index.jsx"],"names":["Tokenizer","props","token","mode","onChange","setState","setCorrectMode","state","onChangeHandler","type","fn","text","tokens","newToken","tokensToRemove","update","isEqual","push","setCorrect","removeToken","findIndex","t","start","end","index","tokenIndex","correct","splice","classes","className","tokenClassName","noselect","rootName","tokenizer","clear","buildTokens","words","sentences","paragraphs","toggleCorrectMode","tokenClick","selectToken","React","Component","PropTypes","string","isRequired","arrayOf","shape","bool","number","object","func","theme","whiteSpace","marginTop","spacing","unit","paddingTop","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Controls from './controls';\nimport { withStyles } from '@material-ui/core/styles';\nimport { words, sentences, paragraphs } from './builder';\nimport clone from 'lodash/clone';\nimport isEqual from 'lodash/isEqual';\nimport differenceWith from 'lodash/differenceWith';\nimport classNames from 'classnames';\nimport { noSelect } from '@pie-lib/style-utils';\nimport TokenText from './token-text';\n\nexport class Tokenizer extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n correct: PropTypes.bool,\n start: PropTypes.number,\n end: PropTypes.number\n })\n ),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n onChange: PropTypes.func.isRequired\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {\n setCorrectMode: false,\n mode: ''\n };\n }\n\n onChangeHandler = (token, mode) => {\n this.props.onChange(token, mode);\n\n this.setState({\n mode\n });\n };\n\n toggleCorrectMode = () => this.setState({ setCorrectMode: !this.state.setCorrectMode });\n\n clear = () => {\n this.onChangeHandler([], '');\n };\n\n buildTokens = (type, fn) => {\n const { text } = this.props;\n const tokens = fn(text);\n\n this.onChangeHandler(tokens, type);\n };\n\n selectToken = (newToken, tokensToRemove) => {\n const { tokens } = this.props;\n const update = differenceWith(clone(tokens), tokensToRemove, isEqual);\n\n update.push(newToken);\n this.onChangeHandler(update, this.state.mode);\n };\n\n tokenClick = token => {\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n };\n\n tokenIndex = token => {\n const { tokens } = this.props;\n\n return tokens.findIndex(t => {\n return t.text == token.text && t.start == token.start && t.end == token.end;\n });\n };\n\n setCorrect = token => {\n const { tokens } = this.props;\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const t = tokens[index];\n\n t.correct = !t.correct;\n\n const update = clone(tokens);\n\n update.splice(index, 1, t);\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n removeToken = token => {\n const { tokens } = this.props;\n\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const update = clone(tokens);\n\n update.splice(index, 1);\n\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n render() {\n const { text, tokens, classes, className } = this.props;\n const { setCorrectMode } = this.state;\n\n const tokenClassName = classNames(classes.text, setCorrectMode && classes.noselect);\n\n const rootName = classNames(classes.tokenizer, className);\n\n return (\n <div className={rootName}>\n <Controls\n onClear={this.clear}\n onWords={() => this.buildTokens('words', words)}\n onSentences={() => this.buildTokens('sentence', sentences)}\n onParagraphs={() => this.buildTokens('paragraphs', paragraphs)}\n setCorrectMode={setCorrectMode}\n onToggleCorrectMode={this.toggleCorrectMode}\n />\n <TokenText\n className={tokenClassName}\n text={text}\n tokens={tokens}\n onTokenClick={this.tokenClick}\n onSelectToken={this.selectToken}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(theme => ({\n text: {\n whiteSpace: 'pre-wrap',\n marginTop: theme.spacing.unit,\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit\n },\n noselect: { ...noSelect() }\n}))(Tokenizer);\n"],"file":"index.js"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -25,25 +27,27 @@ var _selectionUtils = require("./selection-utils");
|
|
|
25
27
|
|
|
26
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
29
|
|
|
28
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
29
|
-
|
|
30
30
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
31
|
|
|
32
32
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
33
33
|
|
|
34
34
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
35
35
|
|
|
36
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
36
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
37
37
|
|
|
38
|
-
function
|
|
38
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
39
39
|
|
|
40
|
-
function
|
|
40
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
41
|
+
|
|
42
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
43
|
+
|
|
44
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
41
45
|
|
|
42
46
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
43
47
|
|
|
44
|
-
function
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
49
|
|
|
46
|
-
function
|
|
50
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
47
51
|
|
|
48
52
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
49
53
|
|
|
@@ -69,7 +73,7 @@ var Text = (0, _styles.withStyles)(function () {
|
|
|
69
73
|
|
|
70
74
|
if (predefined) {
|
|
71
75
|
var className = (0, _classnames["default"])(classes.predefined, correct && classes.correct);
|
|
72
|
-
return _react["default"].createElement("span", {
|
|
76
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
73
77
|
onClick: onClick,
|
|
74
78
|
className: className,
|
|
75
79
|
dangerouslySetInnerHTML: {
|
|
@@ -77,7 +81,7 @@ var Text = (0, _styles.withStyles)(function () {
|
|
|
77
81
|
}
|
|
78
82
|
});
|
|
79
83
|
} else {
|
|
80
|
-
return _react["default"].createElement("span", {
|
|
84
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
81
85
|
dangerouslySetInnerHTML: {
|
|
82
86
|
__html: formattedText
|
|
83
87
|
}
|
|
@@ -87,14 +91,12 @@ var Text = (0, _styles.withStyles)(function () {
|
|
|
87
91
|
exports.Text = Text;
|
|
88
92
|
var notAllowedCharacters = ['\n', ' ', '\t'];
|
|
89
93
|
|
|
90
|
-
var TokenText =
|
|
91
|
-
/*#__PURE__*/
|
|
92
|
-
function (_React$Component) {
|
|
94
|
+
var TokenText = /*#__PURE__*/function (_React$Component) {
|
|
93
95
|
_inherits(TokenText, _React$Component);
|
|
94
96
|
|
|
95
|
-
|
|
96
|
-
var _getPrototypeOf2;
|
|
97
|
+
var _super = _createSuper(TokenText);
|
|
97
98
|
|
|
99
|
+
function TokenText() {
|
|
98
100
|
var _this;
|
|
99
101
|
|
|
100
102
|
_classCallCheck(this, TokenText);
|
|
@@ -103,7 +105,7 @@ function (_React$Component) {
|
|
|
103
105
|
args[_key] = arguments[_key];
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
_this =
|
|
108
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
107
109
|
|
|
108
110
|
_defineProperty(_assertThisInitialized(_this), "onClick", function (event) {
|
|
109
111
|
var _this$props = _this.props,
|
|
@@ -175,14 +177,14 @@ function (_React$Component) {
|
|
|
175
177
|
className = _this$props2.className,
|
|
176
178
|
onTokenClick = _this$props2.onTokenClick;
|
|
177
179
|
var normalized = (0, _builder.normalize)(text, tokens);
|
|
178
|
-
return _react["default"].createElement("div", {
|
|
180
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
179
181
|
className: className,
|
|
180
182
|
ref: function ref(r) {
|
|
181
183
|
return _this2.root = r;
|
|
182
184
|
},
|
|
183
185
|
onClick: this.onClick
|
|
184
186
|
}, normalized.map(function (t, index) {
|
|
185
|
-
return _react["default"].createElement(Text, _extends({
|
|
187
|
+
return /*#__PURE__*/_react["default"].createElement(Text, _extends({
|
|
186
188
|
key: index
|
|
187
189
|
}, t, {
|
|
188
190
|
onClick: function onClick() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tokenizer/token-text.jsx"],"names":["log","Text","predefined","cursor","backgroundColor","yellow","border","correct","green","text","classes","onClick","formattedText","replace","className","__html","notAllowedCharacters","TokenText","event","props","onSelectToken","tokens","preventDefault","window","selection","getSelection","textSelected","toString","length","indexOf","root","offset","newLineOffset","slice","undefined","endIndex","i","start","end","hasOverlap","tokensToRemove","surroundedTokens","token","onTokenClick","normalized","r","map","t","index","React","Component","PropTypes","string","isRequired","array","func"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/tokenizer/token-text.jsx"],"names":["log","Text","predefined","cursor","backgroundColor","yellow","border","correct","green","text","classes","onClick","formattedText","replace","className","__html","notAllowedCharacters","TokenText","event","props","onSelectToken","tokens","preventDefault","window","selection","getSelection","textSelected","toString","length","indexOf","root","offset","newLineOffset","slice","undefined","endIndex","i","start","end","hasOverlap","tokensToRemove","surroundedTokens","token","onTokenClick","normalized","r","map","t","index","React","Component","PropTypes","string","isRequired","array","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { normalize, intersection } from './builder';\nimport yellow from '@material-ui/core/colors/yellow';\nimport green from '@material-ui/core/colors/green';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nimport { clearSelection, getCaretCharacterOffsetWithin } from './selection-utils';\n\nconst log = debug('@pie-lib:text-select:token-text');\n\nexport const Text = withStyles(() => ({\n predefined: {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`\n },\n correct: {\n backgroundColor: green[500]\n }\n}))(({ text, predefined, classes, onClick, correct }) => {\n const formattedText = (text || '').replace(/\\n/g, '<br>');\n\n if (predefined) {\n const className = classNames(classes.predefined, correct && classes.correct);\n\n return (\n <span\n onClick={onClick}\n className={className}\n dangerouslySetInnerHTML={{ __html: formattedText }}\n />\n );\n } else {\n return <span dangerouslySetInnerHTML={{ __html: formattedText }} />;\n }\n});\n\nconst notAllowedCharacters = ['\\n', ' ', '\\t'];\n\nexport default class TokenText extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.array.isRequired,\n onTokenClick: PropTypes.func.isRequired,\n onSelectToken: PropTypes.func.isRequired,\n className: PropTypes.string\n };\n\n /*\n Change this to onClick instead of mouseUp because previously, in some cases\n the onClick event from the <Text /> component was called right after the user\n selected token and that token was then removed because the setCorrectMode was not true.\n\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n */\n onClick = event => {\n const { onSelectToken, text, tokens } = this.props;\n\n event.preventDefault();\n\n if (typeof window === 'undefined') {\n return;\n }\n\n const selection = window.getSelection();\n const textSelected = selection.toString();\n\n if (textSelected.length > 0 && notAllowedCharacters.indexOf(textSelected) < 0) {\n if (this.root) {\n let offset = getCaretCharacterOffsetWithin(this.root);\n /*\n Since we implemented new line functionality (\\n) using <br /> dom elements\n and window.getSelection is not taking that into consideration, the offset might\n be off by a few characters.\n\n To combat that, we check if the selected text is right at the beginning of the offset.\n\n If it's not, we add the additional offset in order for that to be accurate\n */\n const newLineOffset = text.slice(offset).indexOf(textSelected);\n\n offset += newLineOffset;\n\n if (offset !== undefined) {\n const endIndex = offset + textSelected.length;\n\n if (endIndex <= text.length) {\n const i = intersection({ start: offset, end: endIndex }, tokens);\n if (i.hasOverlap) {\n log('hasOverlap - do nothing');\n clearSelection();\n } else {\n const tokensToRemove = i.surroundedTokens;\n const token = {\n text: textSelected,\n start: offset,\n end: endIndex\n };\n\n onSelectToken(token, tokensToRemove);\n clearSelection();\n }\n }\n }\n }\n }\n };\n\n render() {\n const { text, tokens, className, onTokenClick } = this.props;\n const normalized = normalize(text, tokens);\n\n return (\n <div className={className} ref={r => (this.root = r)} onClick={this.onClick}>\n {normalized.map((t, index) => {\n return <Text key={index} {...t} onClick={() => onTokenClick(t)} />;\n })}\n </div>\n );\n }\n}\n"],"file":"token-text.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.8.
|
|
6
|
+
"version": "1.8.14",
|
|
7
7
|
"description": "Some react components for text selection",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@pie-framework/parse-english": "^1.0.0",
|
|
21
|
-
"@pie-lib/render-ui": "^4.12.
|
|
21
|
+
"@pie-lib/render-ui": "^4.12.5",
|
|
22
22
|
"@pie-lib/style-utils": "^0.1.25",
|
|
23
23
|
"classnames": "^2.2.6",
|
|
24
24
|
"debug": "^4.1.1",
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
"@material-ui/core": "^3.8.3",
|
|
39
39
|
"react": "^16.8.1"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "aece71eebc3d81299789f41be579058ca796d106",
|
|
42
42
|
"scripts": {}
|
|
43
43
|
}
|