@pie-lib/text-select 3.0.2 → 3.0.3-next.0

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.
Files changed (69) hide show
  1. package/dist/index.d.ts +15 -0
  2. package/dist/index.js +7 -0
  3. package/dist/legend.d.ts +13 -0
  4. package/dist/legend.js +64 -0
  5. package/dist/text-select.d.ts +34 -0
  6. package/dist/text-select.js +53 -0
  7. package/dist/token-select/index.d.ts +44 -0
  8. package/dist/token-select/index.js +170 -0
  9. package/dist/token-select/token.d.ts +32 -0
  10. package/dist/token-select/token.js +134 -0
  11. package/dist/tokenizer/builder.d.ts +27 -0
  12. package/dist/tokenizer/builder.js +124 -0
  13. package/dist/tokenizer/controls.d.ts +23 -0
  14. package/dist/tokenizer/controls.js +68 -0
  15. package/dist/tokenizer/index.d.ts +35 -0
  16. package/dist/tokenizer/index.js +91 -0
  17. package/dist/tokenizer/selection-utils.d.ts +10 -0
  18. package/dist/tokenizer/selection-utils.js +18 -0
  19. package/dist/tokenizer/token-text.d.ts +27 -0
  20. package/dist/tokenizer/token-text.js +85 -0
  21. package/dist/utils.d.ts +12 -0
  22. package/dist/utils.js +21 -0
  23. package/package.json +29 -28
  24. package/CHANGELOG.json +0 -1
  25. package/CHANGELOG.md +0 -946
  26. package/LICENSE.md +0 -5
  27. package/lib/index.js +0 -57
  28. package/lib/index.js.map +0 -1
  29. package/lib/legend.js +0 -119
  30. package/lib/legend.js.map +0 -1
  31. package/lib/text-select.js +0 -105
  32. package/lib/text-select.js.map +0 -1
  33. package/lib/token-select/index.js +0 -267
  34. package/lib/token-select/index.js.map +0 -1
  35. package/lib/token-select/token.js +0 -236
  36. package/lib/token-select/token.js.map +0 -1
  37. package/lib/tokenizer/builder.js +0 -265
  38. package/lib/tokenizer/builder.js.map +0 -1
  39. package/lib/tokenizer/controls.js +0 -106
  40. package/lib/tokenizer/controls.js.map +0 -1
  41. package/lib/tokenizer/index.js +0 -147
  42. package/lib/tokenizer/index.js.map +0 -1
  43. package/lib/tokenizer/selection-utils.js +0 -55
  44. package/lib/tokenizer/selection-utils.js.map +0 -1
  45. package/lib/tokenizer/token-text.js +0 -176
  46. package/lib/tokenizer/token-text.js.map +0 -1
  47. package/lib/utils.js +0 -51
  48. package/lib/utils.js.map +0 -1
  49. package/src/__tests__/legend.test.jsx +0 -211
  50. package/src/__tests__/text-select.test.jsx +0 -44
  51. package/src/__tests__/utils.test.jsx +0 -27
  52. package/src/index.js +0 -8
  53. package/src/legend.js +0 -102
  54. package/src/text-select.jsx +0 -79
  55. package/src/token-select/__tests__/index.test.jsx +0 -623
  56. package/src/token-select/__tests__/token.test.jsx +0 -236
  57. package/src/token-select/index.jsx +0 -242
  58. package/src/token-select/token.jsx +0 -223
  59. package/src/tokenizer/__tests__/builder.test.js +0 -256
  60. package/src/tokenizer/__tests__/controls.test.jsx +0 -27
  61. package/src/tokenizer/__tests__/index.test.jsx +0 -329
  62. package/src/tokenizer/__tests__/selection-utils.test.js +0 -145
  63. package/src/tokenizer/__tests__/token-text.test.jsx +0 -318
  64. package/src/tokenizer/builder.js +0 -258
  65. package/src/tokenizer/controls.jsx +0 -71
  66. package/src/tokenizer/index.jsx +0 -144
  67. package/src/tokenizer/selection-utils.js +0 -49
  68. package/src/tokenizer/token-text.jsx +0 -135
  69. package/src/utils.js +0 -56
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Controls = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
16
- var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
- var _styles = require("@mui/material/styles");
18
- var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
19
- var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
20
- var _renderUi = require("@pie-lib/render-ui");
21
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
- var StyledControls = (0, _styles.styled)('div')(function () {
24
- return {
25
- display: 'flex',
26
- alignItems: 'center',
27
- justifyContent: 'space-between'
28
- };
29
- });
30
- var StyledButton = (0, _styles.styled)(_Button["default"])(function (_ref) {
31
- var theme = _ref.theme;
32
- return {
33
- marginRight: theme.spacing(1)
34
- };
35
- });
36
- var StyledSwitch = (0, _styles.styled)(_Switch["default"])(function () {
37
- return {
38
- '& .MuiSwitch-thumb': {
39
- '&.Mui-checked': {
40
- color: "".concat(_renderUi.color.tertiary(), " !important")
41
- }
42
- },
43
- '& .MuiSwitch-track': {
44
- '&.Mui-checked': {
45
- backgroundColor: "".concat(_renderUi.color.tertiaryLight(), " !important")
46
- }
47
- }
48
- };
49
- });
50
- var Controls = exports.Controls = /*#__PURE__*/function (_React$Component) {
51
- function Controls() {
52
- (0, _classCallCheck2["default"])(this, Controls);
53
- return _callSuper(this, Controls, arguments);
54
- }
55
- (0, _inherits2["default"])(Controls, _React$Component);
56
- return (0, _createClass2["default"])(Controls, [{
57
- key: "render",
58
- value: function render() {
59
- var _this$props = this.props,
60
- onClear = _this$props.onClear,
61
- onWords = _this$props.onWords,
62
- onSentences = _this$props.onSentences,
63
- onParagraphs = _this$props.onParagraphs,
64
- setCorrectMode = _this$props.setCorrectMode,
65
- onToggleCorrectMode = _this$props.onToggleCorrectMode;
66
- return /*#__PURE__*/_react["default"].createElement(StyledControls, null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(StyledButton, {
67
- onClick: onWords,
68
- size: "small",
69
- color: "primary",
70
- disabled: setCorrectMode
71
- }, "Words"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
72
- onClick: onSentences,
73
- size: "small",
74
- color: "primary",
75
- disabled: setCorrectMode
76
- }, "Sentences"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
77
- onClick: onParagraphs,
78
- size: "small",
79
- color: "primary",
80
- disabled: setCorrectMode
81
- }, "Paragraphs"), /*#__PURE__*/_react["default"].createElement(StyledButton, {
82
- size: "small",
83
- color: "secondary",
84
- onClick: onClear,
85
- disabled: setCorrectMode
86
- }, "Clear")), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
87
- control: /*#__PURE__*/_react["default"].createElement(StyledSwitch, {
88
- checked: setCorrectMode,
89
- onChange: onToggleCorrectMode
90
- }),
91
- label: "Set correct answers"
92
- }));
93
- }
94
- }]);
95
- }(_react["default"].Component);
96
- (0, _defineProperty2["default"])(Controls, "propTypes", {
97
- onClear: _propTypes["default"].func.isRequired,
98
- onWords: _propTypes["default"].func.isRequired,
99
- onSentences: _propTypes["default"].func.isRequired,
100
- onParagraphs: _propTypes["default"].func.isRequired,
101
- setCorrectMode: _propTypes["default"].bool.isRequired,
102
- onToggleCorrectMode: _propTypes["default"].func.isRequired
103
- });
104
- (0, _defineProperty2["default"])(Controls, "defaultProps", {});
105
- var _default = exports["default"] = Controls;
106
- //# sourceMappingURL=controls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls.js","names":["_react","_interopRequireDefault","require","_propTypes","_Button","_styles","_Switch","_FormControlLabel","_renderUi","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledControls","styled","display","alignItems","justifyContent","StyledButton","Button","_ref","theme","marginRight","spacing","StyledSwitch","Switch","color","concat","tertiary","backgroundColor","tertiaryLight","Controls","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","createElement","onClick","size","disabled","control","checked","onChange","label","React","Component","_defineProperty2","PropTypes","func","isRequired","bool","_default"],"sources":["../../src/tokenizer/controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport Switch from '@mui/material/Switch';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledControls = styled('div')(() => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n}));\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledSwitch = styled(Switch)(() => ({\n '& .MuiSwitch-thumb': {\n '&.Mui-checked': {\n color: `${color.tertiary()} !important`,\n },\n },\n '& .MuiSwitch-track': {\n '&.Mui-checked': {\n backgroundColor: `${color.tertiaryLight()} !important`,\n },\n },\n}));\n\nexport class Controls extends React.Component {\n static propTypes = {\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 { onClear, onWords, onSentences, onParagraphs, setCorrectMode, onToggleCorrectMode } = this.props;\n\n return (\n <StyledControls>\n <div>\n <StyledButton onClick={onWords} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Words\n </StyledButton>\n <StyledButton onClick={onSentences} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Sentences\n </StyledButton>\n <StyledButton onClick={onParagraphs} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Paragraphs\n </StyledButton>\n <StyledButton size=\"small\" color=\"secondary\" onClick={onClear} disabled={setCorrectMode}>\n Clear\n </StyledButton>\n </div>\n <FormControlLabel\n control={<StyledSwitch checked={setCorrectMode} onChange={onToggleCorrectMode} />}\n label=\"Set correct answers\"\n />\n </StyledControls>\n );\n }\n}\nexport default Controls;\n"],"mappings":"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","ignoreList":[]}
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Tokenizer = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
16
- var _controls = _interopRequireDefault(require("./controls"));
17
- var _styles = require("@mui/material/styles");
18
- var _builder = require("./builder");
19
- var _lodashEs = require("lodash-es");
20
- var _styleUtils = require("@pie-lib/style-utils");
21
- var _tokenText = _interopRequireDefault(require("./token-text"));
22
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
- var StyledText = (0, _styles.styled)('div')(function (_ref) {
27
- var disabled = _ref.disabled;
28
- return _objectSpread({
29
- whiteSpace: 'pre-wrap'
30
- }, disabled && _objectSpread({}, (0, _styleUtils.noSelect)()));
31
- });
32
- var Tokenizer = exports.Tokenizer = /*#__PURE__*/function (_React$Component) {
33
- function Tokenizer(props) {
34
- var _this;
35
- (0, _classCallCheck2["default"])(this, Tokenizer);
36
- _this = _callSuper(this, Tokenizer, [props]);
37
- (0, _defineProperty2["default"])(_this, "onChangeHandler", function (token, mode) {
38
- _this.props.onChange(token, mode);
39
- _this.setState({
40
- mode: mode
41
- });
42
- });
43
- (0, _defineProperty2["default"])(_this, "toggleCorrectMode", function () {
44
- return _this.setState({
45
- setCorrectMode: !_this.state.setCorrectMode
46
- });
47
- });
48
- (0, _defineProperty2["default"])(_this, "clear", function () {
49
- _this.onChangeHandler([], '');
50
- });
51
- (0, _defineProperty2["default"])(_this, "buildTokens", function (type, fn) {
52
- var text = _this.props.text;
53
- var tokens = fn(text);
54
- _this.onChangeHandler(tokens, type);
55
- });
56
- (0, _defineProperty2["default"])(_this, "selectToken", function (newToken, tokensToRemove) {
57
- var tokens = _this.props.tokens;
58
- var update = (0, _lodashEs.differenceWith)((0, _lodashEs.clone)(tokens), tokensToRemove, _lodashEs.isEqual);
59
- update.push(newToken);
60
- _this.onChangeHandler(update, _this.state.mode);
61
- });
62
- (0, _defineProperty2["default"])(_this, "tokenClick", function (token) {
63
- var setCorrectMode = _this.state.setCorrectMode;
64
- if (setCorrectMode) {
65
- _this.setCorrect(token);
66
- } else {
67
- _this.removeToken(token);
68
- }
69
- });
70
- (0, _defineProperty2["default"])(_this, "tokenIndex", function (token) {
71
- var tokens = _this.props.tokens;
72
- return tokens.findIndex(function (t) {
73
- return t.text == token.text && t.start == token.start && t.end == token.end;
74
- });
75
- });
76
- (0, _defineProperty2["default"])(_this, "setCorrect", function (token) {
77
- var tokens = _this.props.tokens;
78
- var index = _this.tokenIndex(token);
79
- if (index !== -1) {
80
- var t = tokens[index];
81
- t.correct = !t.correct;
82
- var update = (0, _lodashEs.clone)(tokens);
83
- update.splice(index, 1, t);
84
- _this.onChangeHandler(update, _this.state.mode);
85
- }
86
- });
87
- (0, _defineProperty2["default"])(_this, "removeToken", function (token) {
88
- var tokens = _this.props.tokens;
89
- var index = _this.tokenIndex(token);
90
- if (index !== -1) {
91
- var update = (0, _lodashEs.clone)(tokens);
92
- update.splice(index, 1);
93
- _this.onChangeHandler(update, _this.state.mode);
94
- }
95
- });
96
- _this.state = {
97
- setCorrectMode: false,
98
- mode: ''
99
- };
100
- return _this;
101
- }
102
- (0, _inherits2["default"])(Tokenizer, _React$Component);
103
- return (0, _createClass2["default"])(Tokenizer, [{
104
- key: "render",
105
- value: function render() {
106
- var _this2 = this;
107
- var _this$props = this.props,
108
- text = _this$props.text,
109
- tokens = _this$props.tokens;
110
- var setCorrectMode = this.state.setCorrectMode;
111
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_controls["default"], {
112
- onClear: this.clear,
113
- onWords: function onWords() {
114
- return _this2.buildTokens('words', _builder.words);
115
- },
116
- onSentences: function onSentences() {
117
- return _this2.buildTokens('sentence', _builder.sentences);
118
- },
119
- onParagraphs: function onParagraphs() {
120
- return _this2.buildTokens('paragraphs', _builder.paragraphs);
121
- },
122
- setCorrectMode: setCorrectMode,
123
- onToggleCorrectMode: this.toggleCorrectMode
124
- }), /*#__PURE__*/_react["default"].createElement(StyledText, {
125
- disabled: setCorrectMode,
126
- as: _tokenText["default"],
127
- text: text,
128
- tokens: tokens,
129
- onTokenClick: this.tokenClick,
130
- onSelectToken: this.selectToken
131
- }));
132
- }
133
- }]);
134
- }(_react["default"].Component);
135
- (0, _defineProperty2["default"])(Tokenizer, "propTypes", {
136
- text: _propTypes["default"].string.isRequired,
137
- tokens: _propTypes["default"].arrayOf(_propTypes["default"].shape({
138
- text: _propTypes["default"].string,
139
- correct: _propTypes["default"].bool,
140
- start: _propTypes["default"].number,
141
- end: _propTypes["default"].number
142
- })),
143
- onChange: _propTypes["default"].func.isRequired
144
- });
145
- (0, _defineProperty2["default"])(Tokenizer, "defaultProps", {});
146
- var _default = exports["default"] = Tokenizer;
147
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_controls","_styles","_builder","_lodashEs","_styleUtils","_tokenText","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledText","styled","_ref","disabled","whiteSpace","noSelect","Tokenizer","exports","_React$Component","props","_this","_classCallCheck2","token","mode","onChange","setState","setCorrectMode","state","onChangeHandler","type","fn","text","tokens","newToken","tokensToRemove","update","differenceWith","clone","isEqual","setCorrect","removeToken","findIndex","start","end","index","tokenIndex","correct","splice","_inherits2","_createClass2","key","value","render","_this2","_this$props","createElement","onClear","clear","onWords","buildTokens","words","onSentences","sentences","onParagraphs","paragraphs","onToggleCorrectMode","toggleCorrectMode","as","TokenText","onTokenClick","tokenClick","onSelectToken","selectToken","React","Component","PropTypes","string","isRequired","arrayOf","shape","bool","number","func","_default"],"sources":["../../src/tokenizer/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Controls from './controls';\nimport { styled } from '@mui/material/styles';\nimport { paragraphs, sentences, words } from './builder';\nimport { clone, differenceWith, isEqual } from 'lodash-es';\nimport { noSelect } from '@pie-lib/style-utils';\nimport TokenText from './token-text';\n\nconst StyledText = styled('div')(({ disabled }) => ({\n whiteSpace: 'pre-wrap',\n\n ...(disabled && {\n ...noSelect(),\n }),\n}));\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 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 } = this.props;\n const { setCorrectMode } = this.state;\n\n return (\n <div>\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 <StyledText\n disabled={setCorrectMode}\n as={TokenText}\n text={text}\n tokens={tokens}\n onTokenClick={this.tokenClick}\n onSelectToken={this.selectToken}\n />\n </div>\n );\n }\n}\n\nexport default Tokenizer;\n"],"mappings":"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","ignoreList":[]}
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getCaretCharacterOffsetWithin = exports.clearSelection = void 0;
7
- var clearSelection = exports.clearSelection = function clearSelection() {
8
- if (document.getSelection) {
9
- // for all new browsers (IE9+, Chrome, Firefox)
10
- document.getSelection().removeAllRanges();
11
- document.getSelection().addRange(document.createRange());
12
- } else if (window.getSelection) {
13
- // equals with the document.getSelection (MSDN info)
14
- if (window.getSelection().removeAllRanges) {
15
- // for all new browsers (IE9+, Chrome, Firefox)
16
- window.getSelection().removeAllRanges();
17
- window.getSelection().addRange(document.createRange());
18
- } else if (window.getSelection().empty) {
19
- // Chrome supports this as well
20
- window.getSelection().empty();
21
- }
22
- } else if (document.selection) {
23
- // IE8-
24
- document.selection.empty();
25
- }
26
- };
27
- var getCaretCharacterOffsetWithin = exports.getCaretCharacterOffsetWithin = function getCaretCharacterOffsetWithin(element) {
28
- var caretOffset = 0;
29
- var doc = element.ownerDocument || element.document;
30
- var win = doc.defaultView || doc.parentWindow;
31
- var sel;
32
- if (typeof win.getSelection !== 'undefined') {
33
- sel = win.getSelection();
34
- if (sel.rangeCount > 0) {
35
- var range = win.getSelection().getRangeAt(0);
36
- var selected = range.toString().length;
37
- var preCaretRange = range.cloneRange();
38
- preCaretRange.selectNodeContents(element);
39
- preCaretRange.setEnd(range.endContainer, range.endOffset);
40
- if (selected) {
41
- caretOffset = preCaretRange.toString().length - selected;
42
- } else {
43
- caretOffset = preCaretRange.toString().length;
44
- }
45
- }
46
- } else if ((sel = doc.selection) && sel.type !== 'Control') {
47
- var textRange = sel.createRange();
48
- var preCaretTextRange = doc.body.createTextRange();
49
- preCaretTextRange.moveToElementText(element);
50
- preCaretTextRange.setEndPoint('EndToEnd', textRange);
51
- caretOffset = preCaretTextRange.text.length;
52
- }
53
- return caretOffset;
54
- };
55
- //# sourceMappingURL=selection-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection-utils.js","names":["clearSelection","exports","document","getSelection","removeAllRanges","addRange","createRange","window","empty","selection","getCaretCharacterOffsetWithin","element","caretOffset","doc","ownerDocument","win","defaultView","parentWindow","sel","rangeCount","range","getRangeAt","selected","toString","length","preCaretRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","type","textRange","preCaretTextRange","body","createTextRange","moveToElementText","setEndPoint","text"],"sources":["../../src/tokenizer/selection-utils.js"],"sourcesContent":["export const clearSelection = () => {\n if (document.getSelection) {\n // for all new browsers (IE9+, Chrome, Firefox)\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(document.createRange());\n } else if (window.getSelection) {\n // equals with the document.getSelection (MSDN info)\n if (window.getSelection().removeAllRanges) {\n // for all new browsers (IE9+, Chrome, Firefox)\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(document.createRange());\n } else if (window.getSelection().empty) {\n // Chrome supports this as well\n window.getSelection().empty();\n }\n } else if (document.selection) {\n // IE8-\n document.selection.empty();\n }\n};\n\nexport const getCaretCharacterOffsetWithin = (element) => {\n var caretOffset = 0;\n var doc = element.ownerDocument || element.document;\n var win = doc.defaultView || doc.parentWindow;\n var sel;\n if (typeof win.getSelection !== 'undefined') {\n sel = win.getSelection();\n if (sel.rangeCount > 0) {\n var range = win.getSelection().getRangeAt(0);\n var selected = range.toString().length;\n var preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(range.endContainer, range.endOffset);\n if (selected) {\n caretOffset = preCaretRange.toString().length - selected;\n } else {\n caretOffset = preCaretRange.toString().length;\n }\n }\n } else if ((sel = doc.selection) && sel.type !== 'Control') {\n var textRange = sel.createRange();\n var preCaretTextRange = doc.body.createTextRange();\n preCaretTextRange.moveToElementText(element);\n preCaretTextRange.setEndPoint('EndToEnd', textRange);\n caretOffset = preCaretTextRange.text.length;\n }\n return caretOffset;\n};\n"],"mappings":";;;;;;AAAO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAA,EAAS;EAClC,IAAIE,QAAQ,CAACC,YAAY,EAAE;IACzB;IACAD,QAAQ,CAACC,YAAY,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC;IACzCF,QAAQ,CAACC,YAAY,CAAC,CAAC,CAACE,QAAQ,CAACH,QAAQ,CAACI,WAAW,CAAC,CAAC,CAAC;EAC1D,CAAC,MAAM,IAAIC,MAAM,CAACJ,YAAY,EAAE;IAC9B;IACA,IAAII,MAAM,CAACJ,YAAY,CAAC,CAAC,CAACC,eAAe,EAAE;MACzC;MACAG,MAAM,CAACJ,YAAY,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC;MACvCG,MAAM,CAACJ,YAAY,CAAC,CAAC,CAACE,QAAQ,CAACH,QAAQ,CAACI,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC,MAAM,IAAIC,MAAM,CAACJ,YAAY,CAAC,CAAC,CAACK,KAAK,EAAE;MACtC;MACAD,MAAM,CAACJ,YAAY,CAAC,CAAC,CAACK,KAAK,CAAC,CAAC;IAC/B;EACF,CAAC,MAAM,IAAIN,QAAQ,CAACO,SAAS,EAAE;IAC7B;IACAP,QAAQ,CAACO,SAAS,CAACD,KAAK,CAAC,CAAC;EAC5B;AACF,CAAC;AAEM,IAAME,6BAA6B,GAAAT,OAAA,CAAAS,6BAAA,GAAG,SAAhCA,6BAA6BA,CAAIC,OAAO,EAAK;EACxD,IAAIC,WAAW,GAAG,CAAC;EACnB,IAAIC,GAAG,GAAGF,OAAO,CAACG,aAAa,IAAIH,OAAO,CAACT,QAAQ;EACnD,IAAIa,GAAG,GAAGF,GAAG,CAACG,WAAW,IAAIH,GAAG,CAACI,YAAY;EAC7C,IAAIC,GAAG;EACP,IAAI,OAAOH,GAAG,CAACZ,YAAY,KAAK,WAAW,EAAE;IAC3Ce,GAAG,GAAGH,GAAG,CAACZ,YAAY,CAAC,CAAC;IACxB,IAAIe,GAAG,CAACC,UAAU,GAAG,CAAC,EAAE;MACtB,IAAIC,KAAK,GAAGL,GAAG,CAACZ,YAAY,CAAC,CAAC,CAACkB,UAAU,CAAC,CAAC,CAAC;MAC5C,IAAIC,QAAQ,GAAGF,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACC,MAAM;MACtC,IAAIC,aAAa,GAAGL,KAAK,CAACM,UAAU,CAAC,CAAC;MACtCD,aAAa,CAACE,kBAAkB,CAAChB,OAAO,CAAC;MACzCc,aAAa,CAACG,MAAM,CAACR,KAAK,CAACS,YAAY,EAAET,KAAK,CAACU,SAAS,CAAC;MACzD,IAAIR,QAAQ,EAAE;QACZV,WAAW,GAAGa,aAAa,CAACF,QAAQ,CAAC,CAAC,CAACC,MAAM,GAAGF,QAAQ;MAC1D,CAAC,MAAM;QACLV,WAAW,GAAGa,aAAa,CAACF,QAAQ,CAAC,CAAC,CAACC,MAAM;MAC/C;IACF;EACF,CAAC,MAAM,IAAI,CAACN,GAAG,GAAGL,GAAG,CAACJ,SAAS,KAAKS,GAAG,CAACa,IAAI,KAAK,SAAS,EAAE;IAC1D,IAAIC,SAAS,GAAGd,GAAG,CAACZ,WAAW,CAAC,CAAC;IACjC,IAAI2B,iBAAiB,GAAGpB,GAAG,CAACqB,IAAI,CAACC,eAAe,CAAC,CAAC;IAClDF,iBAAiB,CAACG,iBAAiB,CAACzB,OAAO,CAAC;IAC5CsB,iBAAiB,CAACI,WAAW,CAAC,UAAU,EAAEL,SAAS,CAAC;IACpDpB,WAAW,GAAGqB,iBAAiB,CAACK,IAAI,CAACd,MAAM;EAC7C;EACA,OAAOZ,WAAW;AACpB,CAAC","ignoreList":[]}
@@ -1,176 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.Text = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var _react = _interopRequireDefault(require("react"));
16
- var _propTypes = _interopRequireDefault(require("prop-types"));
17
- var _styles = require("@mui/material/styles");
18
- var _builder = require("./builder");
19
- var _debug = _interopRequireDefault(require("debug"));
20
- var _classnames = _interopRequireDefault(require("classnames"));
21
- var _selectionUtils = require("./selection-utils");
22
- var _colors = require("@mui/material/colors");
23
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
24
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
- var log = (0, _debug["default"])('@pie-lib:text-select:token-text');
26
- var StyledText = (0, _styles.styled)('span')(function () {
27
- return {
28
- '&.predefined': {
29
- cursor: 'pointer',
30
- backgroundColor: _colors.yellow[100],
31
- border: "dashed 0px ".concat(_colors.yellow[700]),
32
- // we need this for nested tokenized elements like paragraphs, where p is inside span
33
- '& *': {
34
- cursor: 'pointer',
35
- backgroundColor: _colors.yellow[100],
36
- border: "dashed 0px ".concat(_colors.yellow[700])
37
- }
38
- },
39
- '&.correct': {
40
- backgroundColor: _colors.green[500],
41
- '& *': {
42
- backgroundColor: _colors.green[500]
43
- }
44
- }
45
- };
46
- });
47
- var Text = exports.Text = function Text(_ref) {
48
- var text = _ref.text,
49
- predefined = _ref.predefined,
50
- onClick = _ref.onClick,
51
- correct = _ref.correct;
52
- var formattedText = (text || '').replace(/\n/g, '<br>');
53
- if (predefined) {
54
- var className = (0, _classnames["default"])('predefined', correct && 'correct');
55
- return /*#__PURE__*/_react["default"].createElement(StyledText, {
56
- onClick: onClick,
57
- className: className,
58
- dangerouslySetInnerHTML: {
59
- __html: formattedText
60
- }
61
- });
62
- } else {
63
- return /*#__PURE__*/_react["default"].createElement("span", {
64
- dangerouslySetInnerHTML: {
65
- __html: formattedText
66
- }
67
- });
68
- }
69
- };
70
- var notAllowedCharacters = ['\n', ' ', '\t'];
71
- var TokenText = exports["default"] = /*#__PURE__*/function (_React$Component) {
72
- function TokenText() {
73
- var _this;
74
- (0, _classCallCheck2["default"])(this, TokenText);
75
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
76
- args[_key] = arguments[_key];
77
- }
78
- _this = _callSuper(this, TokenText, [].concat(args));
79
- /*
80
- Change this to onClick instead of mouseUp because previously, in some cases
81
- the onClick event from the <Text /> component was called right after the user
82
- selected token and that token was then removed because the setCorrectMode was not true.
83
- const { setCorrectMode } = this.state;
84
- if (setCorrectMode) {
85
- this.setCorrect(token);
86
- } else {
87
- this.removeToken(token);
88
- }
89
- */
90
- (0, _defineProperty2["default"])(_this, "onClick", function (event) {
91
- var _this$props = _this.props,
92
- onSelectToken = _this$props.onSelectToken,
93
- text = _this$props.text,
94
- tokens = _this$props.tokens;
95
- event.preventDefault();
96
- if (typeof window === 'undefined') {
97
- return;
98
- }
99
- var selection = window.getSelection();
100
- var textSelected = selection.toString();
101
- if (textSelected.length > 0 && notAllowedCharacters.indexOf(textSelected) < 0) {
102
- if (_this.root) {
103
- var offset = (0, _selectionUtils.getCaretCharacterOffsetWithin)(_this.root);
104
- /*
105
- Since we implemented new line functionality (\n) using <br /> dom elements
106
- and window.getSelection is not taking that into consideration, the offset might
107
- be off by a few characters.
108
- To combat that, we check if the selected text is right at the beginning of the offset.
109
- If it's not, we add the additional offset in order for that to be accurate
110
- */
111
- var newLineOffset = text.slice(offset).indexOf(textSelected);
112
- offset += newLineOffset;
113
- if (offset !== undefined) {
114
- var endIndex = offset + textSelected.length;
115
- if (endIndex <= text.length) {
116
- var i = (0, _builder.intersection)({
117
- start: offset,
118
- end: endIndex
119
- }, tokens);
120
- if (i.hasOverlap) {
121
- log('hasOverlap - do nothing');
122
- (0, _selectionUtils.clearSelection)();
123
- } else {
124
- var tokensToRemove = i.surroundedTokens;
125
- var token = {
126
- text: textSelected,
127
- start: offset,
128
- end: endIndex
129
- };
130
- onSelectToken(token, tokensToRemove);
131
- (0, _selectionUtils.clearSelection)();
132
- }
133
- }
134
- }
135
- }
136
- }
137
- });
138
- return _this;
139
- }
140
- (0, _inherits2["default"])(TokenText, _React$Component);
141
- return (0, _createClass2["default"])(TokenText, [{
142
- key: "render",
143
- value: function render() {
144
- var _this2 = this;
145
- var _this$props2 = this.props,
146
- text = _this$props2.text,
147
- tokens = _this$props2.tokens,
148
- className = _this$props2.className,
149
- onTokenClick = _this$props2.onTokenClick;
150
- var normalized = (0, _builder.normalize)(text, tokens);
151
- return /*#__PURE__*/_react["default"].createElement("div", {
152
- className: className,
153
- ref: function ref(r) {
154
- return _this2.root = r;
155
- },
156
- onClick: this.onClick
157
- }, normalized.map(function (t, index) {
158
- return /*#__PURE__*/_react["default"].createElement(Text, (0, _extends2["default"])({
159
- key: index
160
- }, t, {
161
- onClick: function onClick() {
162
- return onTokenClick(t);
163
- }
164
- }));
165
- }));
166
- }
167
- }]);
168
- }(_react["default"].Component);
169
- (0, _defineProperty2["default"])(TokenText, "propTypes", {
170
- text: _propTypes["default"].string.isRequired,
171
- tokens: _propTypes["default"].array.isRequired,
172
- onTokenClick: _propTypes["default"].func.isRequired,
173
- onSelectToken: _propTypes["default"].func.isRequired,
174
- className: _propTypes["default"].string
175
- });
176
- //# sourceMappingURL=token-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-text.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_builder","_debug","_classnames","_selectionUtils","_colors","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","log","debug","StyledText","styled","cursor","backgroundColor","yellow","border","concat","green","Text","exports","_ref","text","predefined","onClick","correct","formattedText","replace","className","classNames","createElement","dangerouslySetInnerHTML","__html","notAllowedCharacters","TokenText","_React$Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_defineProperty2","event","_this$props","props","onSelectToken","tokens","preventDefault","window","selection","getSelection","textSelected","toString","indexOf","root","offset","getCaretCharacterOffsetWithin","newLineOffset","slice","undefined","endIndex","i","intersection","start","end","hasOverlap","clearSelection","tokensToRemove","surroundedTokens","token","_inherits2","_createClass2","key","value","render","_this2","_this$props2","onTokenClick","normalized","normalize","ref","r","map","index","_extends2","React","Component","PropTypes","string","isRequired","array","func"],"sources":["../../src/tokenizer/token-text.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { intersection, normalize } from './builder';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nimport { clearSelection, getCaretCharacterOffsetWithin } from './selection-utils';\n\nimport { green, yellow } from '@mui/material/colors';\n\nconst log = debug('@pie-lib:text-select:token-text');\n\nconst StyledText = styled('span')(() => ({\n '&.predefined': {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n // we need this for nested tokenized elements like paragraphs, where p is inside span\n '& *': {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n },\n },\n '&.correct': {\n backgroundColor: green[500],\n '& *': {\n backgroundColor: green[500],\n },\n },\n}));\n\nexport const Text = ({ text, predefined, onClick, correct }) => {\n const formattedText = (text || '').replace(/\\n/g, '<br>');\n\n if (predefined) {\n const className = classNames('predefined', correct && 'correct');\n\n return <StyledText onClick={onClick} className={className} dangerouslySetInnerHTML={{ __html: formattedText }} />;\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"],"mappings":"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","ignoreList":[]}
package/lib/utils.js DELETED
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.prepareText = exports.parseParagraphs = exports.parseParagraph = exports.parseBrs = void 0;
7
- var createElementFromHTML = function createElementFromHTML() {
8
- var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
9
- var div = document.createElement('div');
10
- div.innerHTML = htmlString.trim();
11
- return div;
12
- };
13
- var parseBrs = exports.parseBrs = function parseBrs(dom) {
14
- var brs = dom.querySelectorAll('br');
15
- brs.forEach(function (br) {
16
- return br.replaceWith('\n');
17
- });
18
- dom.innerHTML = dom.innerHTML.replace(/\n\n/g, '\n');
19
- };
20
- var parseParagraph = exports.parseParagraph = function parseParagraph(paragraph, end) {
21
- if (end) {
22
- return paragraph.innerHTML;
23
- }
24
- return "".concat(paragraph.innerHTML, "\n\n");
25
- };
26
- var parseParagraphs = exports.parseParagraphs = function parseParagraphs(dom) {
27
- var paragraphs = dom.querySelectorAll('p');
28
- // separate variable for easily debugging, if needed
29
- var str = '';
30
- paragraphs.forEach(function (par, index) {
31
- str += parseParagraph(par, index === paragraphs.length - 1);
32
- });
33
- return str || null;
34
- };
35
- var prepareText = exports.prepareText = function prepareText(text) {
36
- var txtDom = createElementFromHTML(text);
37
- var allDomElements = Array.from(txtDom.querySelectorAll('*'));
38
- if (txtDom.querySelectorAll('p').length === 0) {
39
- var div = document.createElement('div');
40
- div.innerHTML = "<p>".concat(txtDom.innerHTML, "</p>");
41
- txtDom = div;
42
- }
43
-
44
- // if no dom elements, we just return the text
45
- if (allDomElements.length === 0) {
46
- return text;
47
- }
48
- parseBrs(txtDom);
49
- return parseParagraphs(txtDom);
50
- };
51
- //# sourceMappingURL=utils.js.map
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseBrs","exports","dom","brs","querySelectorAll","forEach","br","replaceWith","replace","parseParagraph","paragraph","end","concat","parseParagraphs","paragraphs","str","par","index","prepareText","text","txtDom","allDomElements","Array","from"],"sources":["../src/utils.js"],"sourcesContent":["const createElementFromHTML = (htmlString = '') => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport const parseBrs = (dom) => {\n const brs = dom.querySelectorAll('br');\n\n brs.forEach((br) => br.replaceWith('\\n'));\n\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\n};\n\nexport const parseParagraph = (paragraph, end) => {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return `${paragraph.innerHTML}\\n\\n`;\n};\n\nexport const parseParagraphs = (dom) => {\n const paragraphs = dom.querySelectorAll('p');\n // separate variable for easily debugging, if needed\n let str = '';\n\n paragraphs.forEach((par, index) => {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n\n return str || null;\n};\n\nexport const prepareText = (text) => {\n let txtDom = createElementFromHTML(text);\n const allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (txtDom.querySelectorAll('p').length === 0) {\n const div = document.createElement('div');\n\n div.innerHTML = `<p>${txtDom.innerHTML}</p>`;\n txtDom = div;\n }\n\n // if no dom elements, we just return the text\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n\n return parseParagraphs(txtDom);\n};\n"],"mappings":";;;;;;AAAA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAwB;EAAA,IAApBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC5C,IAAMG,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAEzCF,GAAG,CAACG,SAAS,GAAGP,UAAU,CAACQ,IAAI,CAAC,CAAC;EAEjC,OAAOJ,GAAG;AACZ,CAAC;AAEM,IAAMK,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAXA,QAAQA,CAAIE,GAAG,EAAK;EAC/B,IAAMC,GAAG,GAAGD,GAAG,CAACE,gBAAgB,CAAC,IAAI,CAAC;EAEtCD,GAAG,CAACE,OAAO,CAAC,UAACC,EAAE;IAAA,OAAKA,EAAE,CAACC,WAAW,CAAC,IAAI,CAAC;EAAA,EAAC;EAEzCL,GAAG,CAACJ,SAAS,GAAGI,GAAG,CAACJ,SAAS,CAACU,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,CAAC;AAEM,IAAMC,cAAc,GAAAR,OAAA,CAAAQ,cAAA,GAAG,SAAjBA,cAAcA,CAAIC,SAAS,EAAEC,GAAG,EAAK;EAChD,IAAIA,GAAG,EAAE;IACP,OAAOD,SAAS,CAACZ,SAAS;EAC5B;EAEA,UAAAc,MAAA,CAAUF,SAAS,CAACZ,SAAS;AAC/B,CAAC;AAEM,IAAMe,eAAe,GAAAZ,OAAA,CAAAY,eAAA,GAAG,SAAlBA,eAAeA,CAAIX,GAAG,EAAK;EACtC,IAAMY,UAAU,GAAGZ,GAAG,CAACE,gBAAgB,CAAC,GAAG,CAAC;EAC5C;EACA,IAAIW,GAAG,GAAG,EAAE;EAEZD,UAAU,CAACT,OAAO,CAAC,UAACW,GAAG,EAAEC,KAAK,EAAK;IACjCF,GAAG,IAAIN,cAAc,CAACO,GAAG,EAAEC,KAAK,KAAKH,UAAU,CAACrB,MAAM,GAAG,CAAC,CAAC;EAC7D,CAAC,CAAC;EAEF,OAAOsB,GAAG,IAAI,IAAI;AACpB,CAAC;AAEM,IAAMG,WAAW,GAAAjB,OAAA,CAAAiB,WAAA,GAAG,SAAdA,WAAWA,CAAIC,IAAI,EAAK;EACnC,IAAIC,MAAM,GAAG9B,qBAAqB,CAAC6B,IAAI,CAAC;EACxC,IAAME,cAAc,GAAGC,KAAK,CAACC,IAAI,CAACH,MAAM,CAAChB,gBAAgB,CAAC,GAAG,CAAC,CAAC;EAE/D,IAAIgB,MAAM,CAAChB,gBAAgB,CAAC,GAAG,CAAC,CAACX,MAAM,KAAK,CAAC,EAAE;IAC7C,IAAME,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAEzCF,GAAG,CAACG,SAAS,SAAAc,MAAA,CAASQ,MAAM,CAACtB,SAAS,SAAM;IAC5CsB,MAAM,GAAGzB,GAAG;EACd;;EAEA;EACA,IAAI0B,cAAc,CAAC5B,MAAM,KAAK,CAAC,EAAE;IAC/B,OAAO0B,IAAI;EACb;EAEAnB,QAAQ,CAACoB,MAAM,CAAC;EAEhB,OAAOP,eAAe,CAACO,MAAM,CAAC;AAChC,CAAC","ignoreList":[]}