@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 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, "Tokenizer", {
8
+ Object.defineProperty(exports, "TextSelect", {
7
9
  enumerable: true,
8
10
  get: function get() {
9
- return _tokenizer["default"];
11
+ return _textSelect["default"];
10
12
  }
11
13
  });
12
- Object.defineProperty(exports, "TokenSelect", {
14
+ Object.defineProperty(exports, "Token", {
13
15
  enumerable: true,
14
16
  get: function get() {
15
- return _tokenSelect["default"];
17
+ return _token["default"];
16
18
  }
17
19
  });
18
- Object.defineProperty(exports, "TokenTypes", {
20
+ Object.defineProperty(exports, "TokenSelect", {
19
21
  enumerable: true,
20
22
  get: function get() {
21
- return _tokenSelect.TokenTypes;
23
+ return _tokenSelect["default"];
22
24
  }
23
25
  });
24
- Object.defineProperty(exports, "TextSelect", {
26
+ Object.defineProperty(exports, "TokenTypes", {
25
27
  enumerable: true,
26
28
  get: function get() {
27
- return _textSelect["default"];
29
+ return _tokenSelect.TokenTypes;
28
30
  }
29
31
  });
30
- Object.defineProperty(exports, "Token", {
32
+ Object.defineProperty(exports, "Tokenizer", {
31
33
  enumerable: true,
32
34
  get: function get() {
33
- return _token["default"];
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 _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -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 _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
- 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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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
- function TextSelect() {
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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TextSelect)).call.apply(_getPrototypeOf2, [this].concat(args)));
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,
@@ -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":"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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
+ {"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 _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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 _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); }
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); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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
- function TokenSelect() {
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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TokenSelect)).call.apply(_getPrototypeOf2, [this].concat(args)));
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
- return finalAcc + (0, _server.renderToString)(_react["default"].createElement(_token["default"], _extends({
183
- key: index,
184
- disabled: disabled,
185
- index: index
186
- }, t, {
187
- selectable: selectable,
188
- highlight: highlightChoices,
189
- animationsDisabled: animationsDisabled
190
- })));
191
- } else {
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":"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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,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.Token = exports.TokenTypes = void 0;
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 _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); }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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 _possibleConstructorReturn(this, _getPrototypeOf(Token).apply(this, arguments));
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":"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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"}
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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.normalize = exports.sort = exports.intersection = exports.words = exports.sentences = exports.handleSentence = exports.paragraphs = void 0;
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":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,CAAC,GAAG,SAAJA,CAAI,CAACC,GAAD,EAAMC,IAAN,EAAe;AACvB,MAAIA,IAAI,CAACC,QAAT,EAAmB;AACjB,WAAOD,IAAI,CAACC,QAAL,CAAcC,MAAd,CAAqBJ,CAArB,EAAwBC,GAAxB,CAAP;AACD,GAFD,MAEO,IAAIC,IAAI,CAACG,KAAT,EAAgB;AACrB,WAAOJ,GAAG,GAAGC,IAAI,CAACG,KAAlB;AACD,GAFM,MAEA;AACL,WAAOJ,GAAP;AACD;AACF,CARD;;AAUA,IAAMK,YAAY,GAAG,SAAfA,YAAe,CAAAC,CAAC;AAAA,SAAIP,CAAC,CAAC,EAAD,EAAKO,CAAL,CAAL;AAAA,CAAtB;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,CAAC;AAAA,SAAIT,CAAC,CAAC,EAAD,EAAKS,CAAL,CAAL;AAAA,CAArB;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,CAAC;AAAA,SAAIX,CAAC,CAAC,EAAD,EAAKW,CAAL,CAAL;AAAA,CAAjB;;AAEO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,IAAI,EAAI;AAChC,MAAMC,IAAI,GAAG,IAAIC,wBAAJ,GAAcC,KAAd,CAAoBH,IAApB,CAAb;AAEA,MAAMI,GAAG,GAAGH,IAAI,CAACX,QAAL,CAAcC,MAAd,CAAqB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC/C,QAAIA,KAAK,CAACC,IAAN,KAAe,eAAnB,EAAoC;AAClC,UAAMC,SAAS,GAAG;AAChBR,QAAAA,IAAI,EAAEP,YAAY,CAACa,KAAD,CADF;AAEhBG,QAAAA,KAAK,EAAEH,KAAK,CAACI,QAAN,CAAeD,KAAf,CAAqBE,MAFZ;AAGhBC,QAAAA,GAAG,EAAEN,KAAK,CAACI,QAAN,CAAeE,GAAf,CAAmBD;AAHR,OAAlB;AAMA,aAAON,GAAG,CAACQ,MAAJ,CAAW,CAACL,SAAD,CAAX,CAAP;AACD,KARD,MAQO;AACL,aAAOH,GAAP;AACD;AACF,GAZW,EAYT,EAZS,CAAZ;AAcA,SAAOD,GAAP;AACD,CAlBM;;;;AAoBA,IAAMU,cAAc,GAAG,SAAjBA,cAAiB,CAACR,KAAD,EAAQD,GAAR,EAAgB;AAC5C,MAAMU,cAAc,GAAG,EAAvB,CAD4C,CAE5C;;AACA,MAAIC,MAAM,GAAGV,KAAK,CAAChB,QAAN,CAAeC,MAAf,CAAsB,UAASc,GAAT,EAAcC,KAAd,EAAqB;AACtD;AACA,QAAIA,KAAK,CAACC,IAAN,KAAe,gBAAf,IAAmCD,KAAK,CAACd,KAAN,KAAgB,IAAvD,EAA6D;AAC3D,UAAIuB,cAAc,CAACE,MAAnB,EAA2B;AACzB,YAAMC,SAAS,GAAGH,cAAc,CAAC,CAAD,CAAhC,CADyB,CAEzB;;AACA,YAAMI,QAAQ,GAAG;AACfnB,UAAAA,IAAI,EAAEe,cAAc,CAACK,GAAf,CAAmB,UAAAC,CAAC;AAAA,mBAAI1B,WAAW,CAAC0B,CAAD,CAAf;AAAA,WAApB,EAAwCC,IAAxC,CAA6C,EAA7C,CADS;AAEfb,UAAAA,KAAK,EAAES,SAAS,CAACR,QAAV,CAAmBD,KAAnB,CAAyBE,MAFjB;AAGfC,UAAAA,GAAG,EAAEN,KAAK,CAACI,QAAN,CAAeD,KAAf,CAAqBE;AAHX,SAAjB,CAHyB,CASzB;;AACAI,QAAAA,cAAc,CAACQ,MAAf,CAAsB,CAAtB,EAAyBR,cAAc,CAACE,MAAxC;AACA,eAAOZ,GAAG,CAACQ,MAAJ,CAAW,CAACM,QAAD,CAAX,CAAP;AACD;AACF,KAdD,MAcO;AACL;AACAJ,MAAAA,cAAc,CAACS,IAAf,CAAoBlB,KAApB;AACD;;AAED,WAAOD,GAAP;AACD,GAtBY,EAsBVA,GAtBU,CAAb,CAH4C,CA2B5C;AACA;;AACA,MAAIU,cAAc,CAACE,MAAnB,EAA2B;AACzB,QAAMC,SAAS,GAAGH,cAAc,CAAC,CAAD,CAAhC;AACA,QAAMU,QAAQ,GAAGV,cAAc,CAACA,cAAc,CAACE,MAAf,GAAwB,CAAzB,CAA/B;AACA,QAAME,QAAQ,GAAG;AACfnB,MAAAA,IAAI,EAAEe,cAAc,CAACK,GAAf,CAAmB,UAAAC,CAAC;AAAA,eAAI1B,WAAW,CAAC0B,CAAD,CAAf;AAAA,OAApB,EAAwCC,IAAxC,CAA6C,EAA7C,CADS;AAEfb,MAAAA,KAAK,EAAES,SAAS,CAACR,QAAV,CAAmBD,KAAnB,CAAyBE,MAFjB;AAGfC,MAAAA,GAAG,EAAEa,QAAQ,CAACf,QAAT,CAAkBE,GAAlB,CAAsBD;AAHZ,KAAjB;AAMAK,IAAAA,MAAM,GAAGA,MAAM,CAACH,MAAP,CAAc,CAACM,QAAD,CAAd,CAAT;AAEAJ,IAAAA,cAAc,CAACQ,MAAf,CAAsB,CAAtB,EAAyBR,cAAc,CAACE,MAAxC;AACD;;AAED,SAAOD,MAAP;AACD,CA5CM;;;;AA8CA,IAAMU,SAAS,GAAG,SAAZA,SAAY,CAAA1B,IAAI,EAAI;AAC/B,MAAMC,IAAI,GAAG,IAAIC,wBAAJ,GAAcC,KAAd,CAAoBH,IAApB,CAAb;AAEA,MAAMI,GAAG,GAAGH,IAAI,CAACX,QAAL,CAAcC,MAAd,CAAqB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC/C,QAAIA,KAAK,CAACC,IAAN,KAAe,eAAnB,EAAoC;AAClC,aAAOD,KAAK,CAAChB,QAAN,CAAeC,MAAf,CAAsB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC3C,YAAIA,KAAK,CAACC,IAAN,KAAe,cAAnB,EAAmC;AACjC,cAAMS,MAAM,GAAGF,cAAc,CAACR,KAAD,EAAQD,GAAR,CAA7B;AAEA,iBAAOW,MAAM,IAAIX,GAAjB;AACD,SAJD,MAIO;AACL,iBAAOA,GAAP;AACD;AACF,OARM,EAQJA,GARI,CAAP;AASD,KAVD,MAUO;AACL,aAAOA,GAAP;AACD;AACF,GAdW,EAcT,EAdS,CAAZ;AAgBA,SAAOD,GAAP;AACD,CApBM;;;;AAqBA,IAAMuB,KAAK,GAAG,SAARA,KAAQ,CAAA3B,IAAI,EAAI;AAC3B,MAAMC,IAAI,GAAG,IAAIC,wBAAJ,GAAcC,KAAd,CAAoBH,IAApB,CAAb;AAEA,MAAMI,GAAG,GAAGH,IAAI,CAACX,QAAL,CAAcC,MAAd,CAAqB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC/C,QAAIA,KAAK,CAACC,IAAN,KAAe,eAAnB,EAAoC;AAClC,aAAOD,KAAK,CAAChB,QAAN,CAAeC,MAAf,CAAsB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC3C,YAAIA,KAAK,CAACC,IAAN,KAAe,cAAnB,EAAmC;AACjC,iBAAOD,KAAK,CAAChB,QAAN,CAAeC,MAAf,CAAsB,UAACc,GAAD,EAAMC,KAAN,EAAgB;AAC3C,gBAAIA,KAAK,CAACC,IAAN,KAAe,UAAnB,EAA+B;AAC7B,kBAAMlB,IAAI,GAAG;AACXW,gBAAAA,IAAI,EAAEH,OAAO,CAACS,KAAD,CADF;AAEXG,gBAAAA,KAAK,EAAEH,KAAK,CAACI,QAAN,CAAeD,KAAf,CAAqBE,MAFjB;AAGXC,gBAAAA,GAAG,EAAEN,KAAK,CAACI,QAAN,CAAeE,GAAf,CAAmBD;AAHb,eAAb;AAKA,qBAAON,GAAG,CAACQ,MAAJ,CAAW,CAACxB,IAAD,CAAX,CAAP;AACD,aAPD,MAOO;AACL,qBAAOgB,GAAP;AACD;AACF,WAXM,EAWJA,GAXI,CAAP;AAYD,SAbD,MAaO;AACL,iBAAOA,GAAP;AACD;AACF,OAjBM,EAiBJA,GAjBI,CAAP;AAkBD,KAnBD,MAmBO;AACL,aAAOA,GAAP;AACD;AACF,GAvBW,EAuBT,EAvBS,CAAZ;AAyBA,SAAOD,GAAP;AACD,CA7BM;;;;IA+BDwB,Y;AACJ,wBAAYC,OAAZ,EAAqB;AAAA;;AACnB,SAAKA,OAAL,GAAeA,OAAf;AACD;;;;SAED,eAAiB;AACf,aAAO,KAAKA,OAAL,CAAaC,MAAb,CAAoB,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACxB,IAAF,KAAW,SAAf;AAAA,OAArB,EAA+CU,MAA/C,GAAwD,CAA/D;AACD;;;SAED,eAAuB;AACrB,aAAO,KAAKY,OAAL,CAAaC,MAAb,CAAoB,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACxB,IAAF,KAAW,kBAAf;AAAA,OAArB,EAAwDa,GAAxD,CAA4D,UAAAY,CAAC;AAAA,eAAIA,CAAC,CAACC,KAAN;AAAA,OAA7D,CAAP;AACD;;;;;AAEH;AACA;AACA;AACA;AACA;AACA;;;AACO,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,SAAD,EAAYC,MAAZ,EAAuB;AACjD,MAAQ3B,KAAR,GAAuB0B,SAAvB,CAAQ1B,KAAR;AAAA,MAAeG,GAAf,GAAuBuB,SAAvB,CAAevB,GAAf;;AAEA,MAAMyB,YAAY,GAAG,SAAfA,YAAe,CAAAL,CAAC;AAAA,WAAIvB,KAAK,IAAIuB,CAAC,CAACvB,KAAX,IAAoBA,KAAK,GAAGuB,CAAC,CAACpB,GAAlC;AAAA,GAAtB;;AACA,MAAM0B,UAAU,GAAG,SAAbA,UAAa,CAAAN,CAAC;AAAA,WAAIpB,GAAG,GAAGoB,CAAC,CAACvB,KAAR,IAAiBG,GAAG,IAAIoB,CAAC,CAACpB,GAA9B;AAAA,GAApB;;AAEA,MAAM2B,MAAM,GAAGH,MAAM,CAAChB,GAAP,CAAW,UAAAY,CAAC,EAAI;AAC7B,QAAIvB,KAAK,KAAKuB,CAAC,CAACvB,KAAZ,IAAqBG,GAAG,KAAKoB,CAAC,CAACpB,GAAnC,EAAwC;AACtC,aAAO;AAAEqB,QAAAA,KAAK,EAAED,CAAT;AAAYzB,QAAAA,IAAI,EAAE;AAAlB,OAAP;AACD,KAFD,MAEO,IAAIE,KAAK,IAAIuB,CAAC,CAACvB,KAAX,IAAoBG,GAAG,IAAIoB,CAAC,CAACpB,GAAjC,EAAsC;AAC3C,aAAO;AAAEqB,QAAAA,KAAK,EAAED,CAAT;AAAYzB,QAAAA,IAAI,EAAE;AAAlB,OAAP;AACD,KAFM,MAEA,IAAI8B,YAAY,CAACL,CAAD,CAAZ,IAAmBM,UAAU,CAACN,CAAD,CAAjC,EAAsC;AAC3C,aAAO;AAAEC,QAAAA,KAAK,EAAED,CAAT;AAAYzB,QAAAA,IAAI,EAAE;AAAlB,OAAP;AACD;AACF,GARc,CAAf;AASA,SAAO,IAAIqB,YAAJ,CAAiB,yBAAQW,MAAR,CAAjB,CAAP;AACD,CAhBM;;;;AAkBA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAJ,MAAM,EAAI;AAC5B,MAAI,CAACK,KAAK,CAACC,OAAN,CAAcN,MAAd,CAAL,EAA4B;AAC1B,WAAOA,MAAP;AACD,GAFD,MAEO;AACL,QAAMhC,GAAG,GAAG,uBAAMgC,MAAN,CAAZ;AACAhC,IAAAA,GAAG,CAACoC,IAAJ,CAAS,UAACG,CAAD,EAAIC,CAAJ,EAAU;AACjB,UAAMhD,CAAC,GAAG+C,CAAC,CAAClC,KAAF,GAAUmC,CAAC,CAACnC,KAAZ,GAAoB,CAAC,CAArB,GAAyBkC,CAAC,CAAClC,KAAF,GAAUmC,CAAC,CAACnC,KAAZ,GAAoB,CAApB,GAAwB,CAA3D;AACA,UAAMoC,CAAC,GAAGF,CAAC,CAAC/B,GAAF,GAAQgC,CAAC,CAAChC,GAAV,GAAgB,CAAC,CAAjB,GAAqB+B,CAAC,CAAC/B,GAAF,GAAQgC,CAAC,CAAChC,GAAV,GAAgB,CAAhB,GAAoB,CAAnD;;AACA,UAAIhB,CAAC,KAAK,CAAC,CAAP,IAAYiD,CAAC,KAAK,CAAC,CAAvB,EAA0B;AACxB,cAAM,IAAIC,KAAJ,yDAC6CH,CAAC,CAAClC,KAD/C,cACwDkC,CAAC,CAAC/B,GAD1D,kBACqEgC,CAAC,CAACnC,KADvE,cACgFmC,CAAC,CAAChC,GADlF,EAAN;AAGD;;AACD,aAAOhB,CAAP;AACD,KATD;AAUA,WAAOQ,GAAP;AACD;AACF,CAjBM;;;;AAmBA,IAAM2C,SAAS,GAAG,SAAZA,SAAY,CAACC,eAAD,EAAkBZ,MAAlB,EAA6B;AACpD;AACA,MAAMpC,IAAI,GAAGgD,eAAe,IAAI,EAAhC;;AAEA,MAAI,CAACP,KAAK,CAACC,OAAN,CAAcN,MAAd,CAAD,IAA0BA,MAAM,CAACnB,MAAP,KAAkB,CAAhD,EAAmD;AACjD,WAAO,CACL;AACEjB,MAAAA,IAAI,EAAJA,IADF;AAEES,MAAAA,KAAK,EAAE,CAFT;AAGEG,MAAAA,GAAG,EAAEZ,IAAI,CAACiB;AAHZ,KADK,CAAP;AAOD;;AAED,MAAMb,GAAG,GAAGoC,IAAI,CAACJ,MAAD,CAAJ,CAAa7C,MAAb,CACV,UAACc,GAAD,EAAM2B,CAAN,EAASiB,KAAT,EAAgBC,KAAhB,EAA0B;AACxB,QAAId,MAAM,GAAG,EAAb;AACA,QAAMe,SAAS,GAAG9C,GAAG,CAAC8C,SAAtB;;AAEA,QAAInB,CAAC,CAACvB,KAAF,KAAY0C,SAAhB,EAA2B;AACzBf,MAAAA,MAAM,GAAG,CACP;AACEpC,QAAAA,IAAI,EAAEA,IAAI,CAACoD,SAAL,CAAeD,SAAf,EAA0BnB,CAAC,CAACpB,GAA5B,CADR;AAEEH,QAAAA,KAAK,EAAE0C,SAFT;AAGEvC,QAAAA,GAAG,EAAEoB,CAAC,CAACpB,GAHT;AAIEyC,QAAAA,UAAU,EAAE,IAJd;AAKEC,QAAAA,OAAO,EAAEtB,CAAC,CAACsB;AALb,OADO,CAAT;AASD,KAVD,MAUO,IAAIH,SAAS,GAAGnB,CAAC,CAACvB,KAAlB,EAAyB;AAC9B2B,MAAAA,MAAM,GAAG,CACP;AACEpC,QAAAA,IAAI,EAAEA,IAAI,CAACoD,SAAL,CAAeD,SAAf,EAA0BnB,CAAC,CAACvB,KAA5B,CADR;AAEEA,QAAAA,KAAK,EAAE0C,SAFT;AAGEvC,QAAAA,GAAG,EAAEoB,CAAC,CAACvB;AAHT,OADO,EAMP;AACET,QAAAA,IAAI,EAAEA,IAAI,CAACoD,SAAL,CAAepB,CAAC,CAACvB,KAAjB,EAAwBuB,CAAC,CAACpB,GAA1B,CADR;AAEEH,QAAAA,KAAK,EAAEuB,CAAC,CAACvB,KAFX;AAGEG,QAAAA,GAAG,EAAEoB,CAAC,CAACpB,GAHT;AAIEyC,QAAAA,UAAU,EAAE,IAJd;AAKEC,QAAAA,OAAO,EAAEtB,CAAC,CAACsB;AALb,OANO,CAAT;AAcD;;AAED,QAAIL,KAAK,KAAKC,KAAK,CAACjC,MAAN,GAAe,CAAzB,IAA8Be,CAAC,CAACpB,GAAF,GAAQZ,IAAI,CAACiB,MAA/C,EAAuD;AACrD,UAAMsC,IAAI,GAAG;AACXvD,QAAAA,IAAI,EAAEA,IAAI,CAACoD,SAAL,CAAepB,CAAC,CAACpB,GAAjB,CADK;AAEXH,QAAAA,KAAK,EAAEuB,CAAC,CAACpB,GAFE;AAGXA,QAAAA,GAAG,EAAEZ,IAAI,CAACiB;AAHC,OAAb;AAKAmB,MAAAA,MAAM,CAACZ,IAAP,CAAY+B,IAAZ;AACD;;AAED,WAAO;AACLJ,MAAAA,SAAS,EAAEf,MAAM,CAACnB,MAAP,GAAgBmB,MAAM,CAACA,MAAM,CAACnB,MAAP,GAAgB,CAAjB,CAAN,CAA0BL,GAA1C,GAAgDuC,SADtD;AAELK,MAAAA,MAAM,EAAEnD,GAAG,CAACmD,MAAJ,CAAW3C,MAAX,CAAkBuB,MAAlB;AAFH,KAAP;AAID,GA7CS,EA8CV;AAAEoB,IAAAA,MAAM,EAAE,EAAV;AAAcL,IAAAA,SAAS,EAAE;AAAzB,GA9CU,CAAZ;AAiDA,SAAO/C,GAAG,CAACoD,MAAX;AACD,CAhEM","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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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 _possibleConstructorReturn(this, _getPrototypeOf(Controls).apply(this, arguments));
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":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;6BAaF;AAAA,wBASH,KAAKC,KATF;AAAA,UAELC,OAFK,eAELA,OAFK;AAAA,UAGLC,OAHK,eAGLA,OAHK;AAAA,UAILC,OAJK,eAILA,OAJK;AAAA,UAKLC,WALK,eAKLA,WALK;AAAA,UAMLC,YANK,eAMLA,YANK;AAAA,UAOLC,cAPK,eAOLA,cAPK;AAAA,UAQLC,mBARK,eAQLA,mBARK;AAWP,aACE;AAAK,QAAA,SAAS,EAAEN,OAAO,CAACO;AAAxB,SACE,6CACE,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"}
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"}
@@ -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 _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); }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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 = _possibleConstructorReturn(this, _getPrototypeOf(Tokenizer).call(this, props));
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":"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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
+ {"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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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
- function TokenText() {
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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TokenText)).call.apply(_getPrototypeOf2, [this].concat(args)));
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":"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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"}
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.13",
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.4",
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": "cb14b616e7d4d4eb0506b85a5906924adad39165",
41
+ "gitHead": "aece71eebc3d81299789f41be579058ca796d106",
42
42
  "scripts": {}
43
43
  }