@pie-element/select-text 6.5.16 → 6.5.20

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,42 @@
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
+ ## [6.5.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.19...@pie-element/select-text@6.5.20) (2022-02-04)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text
9
+
10
+
11
+
12
+
13
+
14
+ ## [6.5.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.18...@pie-element/select-text@6.5.19) (2022-01-24)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * Try to re-trigger ([04e6e41](https://github.com/pie-framework/pie-elements/commit/04e6e41d36a630b5d11abb8683d6b08ec0d2b3ec))
20
+ * use preview prompt for prompt, rationale and teacher instructions to fix table rendering PD-1456 ([f330601](https://github.com/pie-framework/pie-elements/commit/f3306019a2d1c8ce3e2783823dfe9ef0a0394e4f))
21
+
22
+
23
+
24
+
25
+
26
+ ## [6.5.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.17...@pie-element/select-text@6.5.18) (2022-01-10)
27
+
28
+ **Note:** Version bump only for package @pie-element/select-text
29
+
30
+
31
+
32
+
33
+
34
+ ## [6.5.17](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.16...@pie-element/select-text@6.5.17) (2021-12-23)
35
+
36
+ **Note:** Version bump only for package @pie-element/select-text
37
+
38
+
39
+
40
+
41
+
6
42
  ## [6.5.15](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.14...@pie-element/select-text@6.5.15) (2021-12-13)
7
43
 
8
44
  **Note:** Version bump only for package @pie-element/select-text
@@ -3,6 +3,38 @@
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
+ ## [5.2.16](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.15...@pie-element/select-text-configure@5.2.16) (2022-02-04)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text-configure
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.2.15](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.14...@pie-element/select-text-configure@5.2.15) (2022-01-24)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text-configure
17
+
18
+
19
+
20
+
21
+
22
+ ## [5.2.14](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.13...@pie-element/select-text-configure@5.2.14) (2022-01-10)
23
+
24
+ **Note:** Version bump only for package @pie-element/select-text-configure
25
+
26
+
27
+
28
+
29
+
30
+ ## [5.2.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.12...@pie-element/select-text-configure@5.2.13) (2021-12-23)
31
+
32
+ **Note:** Version bump only for package @pie-element/select-text-configure
33
+
34
+
35
+
36
+
37
+
6
38
  ## [5.2.11](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.10...@pie-element/select-text-configure@5.2.11) (2021-12-13)
7
39
 
8
40
  **Note:** Version bump only for package @pie-element/select-text-configure
@@ -31,7 +31,7 @@ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
31
31
 
32
32
  var _defaultConfiguration = _interopRequireDefault(require("./defaultConfiguration"));
33
33
 
34
- var _textSelect = require("@pie-lib/text-select");
34
+ var _utils = _interopRequireDefault(require("./utils"));
35
35
 
36
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; }
37
37
 
@@ -134,10 +134,6 @@ exports["default"] = SelectTextConfigure;
134
134
 
135
135
  var newModel = _objectSpread(_objectSpread({}, _defaultConfiguration["default"].model), model);
136
136
 
137
- var newText = (0, _textSelect.prepareText)(newModel.text);
138
- return _objectSpread(_objectSpread({}, newModel), {}, {
139
- unpreparedText: newModel.text,
140
- text: newText
141
- });
137
+ return (0, _utils["default"])(newModel);
142
138
  });
143
139
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["SelectTextConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","render","c","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","el","React","createElement","Main","model","onModelChanged","modelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","HTMLElement","newModel","newText","text","unpreparedText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;;;;;;;IAEqBA,mB;;;;;AAenB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,EAAd;AACA,UAAKC,cAAL,GAAsBC,iCAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,CAAuCI,CAAvC,CAAd;AACA,WAAKC,MAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;AACA,WAAKD,MAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,MAAL;AACD;;;WAED,sBAAaD,CAAb,EAAgB;AACd,WAAKL,MAAL,GAAcK,CAAd;AACA,WAAKG,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKT,MAA3B,CAAnB,EAAuD,IAAvD;AACA,WAAKM,MAAL;AACD;;;WAED,gCAAuBC,CAAvB,EAA0B;AACxB,WAAKL,cAAL,GAAsBK,CAAtB;;AAEA,UAAI,KAAKP,MAAT,EAAiB;AACf,aAAKQ,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKT,MAA3B,CAAnB,EAAuD,KAAvD;AACD;;AAED,WAAKM,MAAL;AACD;AAED;AACF;AACA;AACA;;;;WACE,qBAAYI,OAAZ,EAAqB;AACnB,WAAKF,aAAL,CAAmB,IAAIG,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKL,aAAL,CAAmB,IAAIM,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,kBAAS;AACP,UAAI,KAAKb,MAAT,EAAiB;AACf,YAAMe,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,kBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAKnB,MADuB;AAEnCI,UAAAA,aAAa,EAAE,KAAKF,cAFe;AAGnCkB,UAAAA,cAAc,EAAE,KAAKC,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAHmB;AAInCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAJW;AAKnCE,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI;AALqB,SAA1B,CAAX;;AAWAM,6BAAStB,MAAT,CAAgBS,EAAhB,EAAoB,IAApB;AACD;AACF;;;kDA9E8Cc,W;;;iCAA5B9B,mB,wBACS,YAAgB;AAAA,MAAfoB,KAAe,uEAAP,EAAO;;AAC1C,MAAMW,QAAQ,mCACT3B,iCAAcgB,KADL,GAETA,KAFS,CAAd;;AAIA,MAAMY,OAAO,GAAG,6BAAYD,QAAQ,CAACE,IAArB,CAAhB;AAEA,yCACKF,QADL;AAEEG,IAAAA,cAAc,EAAEH,QAAQ,CAACE,IAF3B;AAGEA,IAAAA,IAAI,EAAED;AAHR;AAKD,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Main from './design';\nimport {\n DeleteImageEvent,\n InsertImageEvent,\n ModelUpdatedEvent\n} from '@pie-framework/pie-configure-events';\nimport defaultValues from './defaultConfiguration';\nimport { prepareText } from '@pie-lib/text-select';\n\nexport default class SelectTextConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const newModel = {\n ...defaultValues.model,\n ...model\n };\n const newText = prepareText(newModel.text);\n\n return {\n ...newModel,\n unpreparedText: newModel.text,\n text: newText\n };\n };\n\n constructor() {\n super();\n this._model = SelectTextConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = SelectTextConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {\n this.render();\n }\n\n modelChanged(m) {\n this._model = m;\n this.dispatchEvent(new ModelUpdatedEvent(this._model), true);\n this.render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model), false);\n }\n\n this.render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n render() {\n if (this._model) {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.modelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this)\n }\n });\n\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["SelectTextConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","render","c","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","el","React","createElement","Main","model","onModelChanged","modelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","HTMLElement","newModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;;;;;;;IAEqBA,mB;;;;;AAUnB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,EAAd;AACA,UAAKC,cAAL,GAAsBC,iCAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,CAAuCI,CAAvC,CAAd;AACA,WAAKC,MAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;AACA,WAAKD,MAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,MAAL;AACD;;;WAED,sBAAaD,CAAb,EAAgB;AACd,WAAKL,MAAL,GAAcK,CAAd;AACA,WAAKG,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKT,MAA3B,CAAnB,EAAuD,IAAvD;AACA,WAAKM,MAAL;AACD;;;WAED,gCAAuBC,CAAvB,EAA0B;AACxB,WAAKL,cAAL,GAAsBK,CAAtB;;AAEA,UAAI,KAAKP,MAAT,EAAiB;AACf,aAAKQ,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKT,MAA3B,CAAnB,EAAuD,KAAvD;AACD;;AAED,WAAKM,MAAL;AACD;AAED;AACF;AACA;AACA;;;;WACE,qBAAYI,OAAZ,EAAqB;AACnB,WAAKF,aAAL,CAAmB,IAAIG,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKL,aAAL,CAAmB,IAAIM,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,kBAAS;AACP,UAAI,KAAKb,MAAT,EAAiB;AACf,YAAMe,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,kBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAKnB,MADuB;AAEnCI,UAAAA,aAAa,EAAE,KAAKF,cAFe;AAGnCkB,UAAAA,cAAc,EAAE,KAAKC,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAHmB;AAInCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAJW;AAKnCE,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI;AALqB,SAA1B,CAAX;;AAWAM,6BAAStB,MAAT,CAAgBS,EAAhB,EAAoB,IAApB;AACD;AACF;;;kDAzE8Cc,W;;;iCAA5B9B,mB,wBACS,YAAgB;AAAA,MAAfoB,KAAe,uEAAP,EAAO;;AAC1C,MAAMW,QAAQ,mCACT3B,iCAAcgB,KADL,GAETA,KAFS,CAAd;;AAKA,SAAO,uBAAcW,QAAd,CAAP;AACD,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Main from './design';\nimport {\n DeleteImageEvent,\n InsertImageEvent,\n ModelUpdatedEvent\n} from '@pie-framework/pie-configure-events';\nimport defaultValues from './defaultConfiguration';\nimport generateModel from './utils';\n\nexport default class SelectTextConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const newModel = {\n ...defaultValues.model,\n ...model\n };\n\n return generateModel(newModel);\n };\n\n constructor() {\n super();\n this._model = SelectTextConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = SelectTextConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {\n this.render();\n }\n\n modelChanged(m) {\n this._model = m;\n this.dispatchEvent(new ModelUpdatedEvent(this._model), true);\n this.render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model), false);\n }\n\n this.render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n render() {\n if (this._model) {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.modelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this)\n }\n });\n\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ 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; }
17
+
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
+
20
+ var createElementFromHTML = function createElementFromHTML() {
21
+ var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
22
+ var div = document.createElement('div');
23
+ div.innerHTML = htmlString.trim();
24
+ return div;
25
+ };
26
+
27
+ var parseParagraph = function parseParagraph(paragraph, end) {
28
+ if (end) {
29
+ return paragraph.innerHTML;
30
+ }
31
+
32
+ return ''.concat(paragraph.innerHTML, '\n\n');
33
+ };
34
+
35
+ var parseParagraphs = function parseParagraphs(dom) {
36
+ var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed
37
+
38
+ var str = '';
39
+ paragraphs.forEach(function (par, index) {
40
+ str += parseParagraph(par, index === paragraphs.length - 1);
41
+ });
42
+ return str || null;
43
+ };
44
+
45
+ var prepareText = function prepareText(text) {
46
+ var txtDom = createElementFromHTML(text);
47
+ var div = document.createElement('div');
48
+ div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
49
+ txtDom = div;
50
+ var allDomElements = Array.from(txtDom.querySelectorAll('*'));
51
+
52
+ if (allDomElements.length === 0) {
53
+ return text;
54
+ }
55
+
56
+ return parseParagraphs(txtDom);
57
+ };
58
+
59
+ var _default = function _default(model) {
60
+ if (!model) return model; // parsing
61
+
62
+ var modelText = prepareText(model.text || '');
63
+ var newTokens = (model.tokens || []).reduce(function (acc) {
64
+ var token = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
65
+ var tokenText = prepareText((model.text || '').slice(token.start, token.end));
66
+
67
+ if (!tokenText) {
68
+ return [].concat((0, _toConsumableArray2["default"])(acc), [token]);
69
+ }
70
+
71
+ var getStartIndex = function getStartIndex(start) {
72
+ var length = start;
73
+
74
+ while (length >= 0) {
75
+ var newStartIndex = modelText.slice(length).indexOf(tokenText);
76
+
77
+ if (newStartIndex >= 0) {
78
+ return newStartIndex + length;
79
+ }
80
+
81
+ length--;
82
+ }
83
+
84
+ return 0;
85
+ };
86
+
87
+ var lastToken = acc[acc.length - 1];
88
+ var newStart = getStartIndex(lastToken ? lastToken.end : token.start);
89
+ var newEnd = newStart + tokenText.length;
90
+ return [].concat((0, _toConsumableArray2["default"])(acc), [_objectSpread(_objectSpread({}, token), {}, {
91
+ text: tokenText,
92
+ start: newStart,
93
+ end: newEnd
94
+ })]);
95
+ }, []);
96
+ return _objectSpread(_objectSpread({}, model), {}, {
97
+ tokens: newTokens,
98
+ text: modelText
99
+ });
100
+ };
101
+
102
+ exports["default"] = _default;
103
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd"],"mappings":"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","sourcesContent":["import React from 'react';\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd\n }\n ];\n }, []);\n\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText\n }\n}\n"],"file":"utils.js"}
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@pie-element/select-text-configure",
3
3
  "private": true,
4
- "version": "5.2.12",
4
+ "version": "5.2.16",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-configure-events": "^1.2.0",
11
- "@pie-lib/config-ui": "^10.10.13",
12
- "@pie-lib/editable-html": "^7.17.13",
13
- "@pie-lib/scoring-config": "^3.5.142",
14
- "@pie-lib/text-select": "^1.8.11",
11
+ "@pie-lib/config-ui": "^10.10.18",
12
+ "@pie-lib/editable-html": "^7.17.18",
13
+ "@pie-lib/scoring-config": "^3.5.147",
14
+ "@pie-lib/text-select": "^1.8.12",
15
15
  "debug": "^3.1.0",
16
16
  "lodash": "^4.17.15",
17
17
  "prop-types": "^15.6.2",
@@ -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
+ ## [4.1.28](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.27...@pie-element/select-text-controller@4.1.28) (2022-02-04)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text-controller
9
+
10
+
11
+
12
+
13
+
6
14
  ## [4.1.26](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-controller@4.1.25...@pie-element/select-text-controller@4.1.26) (2021-12-13)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/select-text-controller
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@pie-element/select-text-controller",
3
3
  "private": true,
4
- "version": "4.1.27",
4
+ "version": "4.1.28",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
9
  "@pie-lib/controller-utils": "^0.2.26",
10
10
  "@pie-lib/feedback": "^0.4.27",
11
- "@pie-lib/text-select": "^1.8.11",
11
+ "@pie-lib/text-select": "^1.8.12",
12
12
  "debug": "^3.1.0",
13
13
  "lodash": "^4.17.15"
14
14
  },