@acrolinx/sidebar-sdk 1.1.13 → 2.0.0-dev1
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/README.md +22 -22
- package/dist/index.d.ts +612 -23
- package/dist/index.js +3325 -64
- package/package.json +44 -90
- package/dist/acrolinx-plugin.d.ts +0 -58
- package/dist/acrolinx-plugin.js +0 -318
- package/dist/acrolinx-plugin.js.map +0 -1
- package/dist/acrolinx-sidebar-sdk.js +0 -2
- package/dist/acrolinx-sidebar-sdk.js.LICENSE.txt +0 -16
- package/dist/acrolinx-sidebar-sdk.min.js +0 -1
- package/dist/adapters/AbstractRichtextEditorAdapter.d.ts +0 -35
- package/dist/adapters/AbstractRichtextEditorAdapter.js +0 -267
- package/dist/adapters/AbstractRichtextEditorAdapter.js.map +0 -1
- package/dist/adapters/AdapterInterface.d.ts +0 -63
- package/dist/adapters/AdapterInterface.js +0 -51
- package/dist/adapters/AdapterInterface.js.map +0 -1
- package/dist/adapters/AsyncAutoBindAdapter.d.ts +0 -18
- package/dist/adapters/AsyncAutoBindAdapter.js +0 -77
- package/dist/adapters/AsyncAutoBindAdapter.js.map +0 -1
- package/dist/adapters/AsyncContentEditableAdapter.d.ts +0 -22
- package/dist/adapters/AsyncContentEditableAdapter.js +0 -135
- package/dist/adapters/AsyncContentEditableAdapter.js.map +0 -1
- package/dist/adapters/AsyncMultiEditorAdapter.d.ts +0 -11
- package/dist/adapters/AsyncMultiEditorAdapter.js +0 -97
- package/dist/adapters/AsyncMultiEditorAdapter.js.map +0 -1
- package/dist/adapters/AutoBindAdapter.d.ts +0 -16
- package/dist/adapters/AutoBindAdapter.js +0 -56
- package/dist/adapters/AutoBindAdapter.js.map +0 -1
- package/dist/adapters/CKEditor5Adapter.d.ts +0 -16
- package/dist/adapters/CKEditor5Adapter.js +0 -86
- package/dist/adapters/CKEditor5Adapter.js.map +0 -1
- package/dist/adapters/CKEditorAdapter.d.ts +0 -14
- package/dist/adapters/CKEditorAdapter.js +0 -72
- package/dist/adapters/CKEditorAdapter.js.map +0 -1
- package/dist/adapters/CodeMirror6Adapter.d.ts +0 -29
- package/dist/adapters/CodeMirror6Adapter.js +0 -123
- package/dist/adapters/CodeMirror6Adapter.js.map +0 -1
- package/dist/adapters/CodeMirrorAdapter.d.ts +0 -31
- package/dist/adapters/CodeMirrorAdapter.js +0 -143
- package/dist/adapters/CodeMirrorAdapter.js.map +0 -1
- package/dist/adapters/ContentEditableAdapter.d.ts +0 -11
- package/dist/adapters/ContentEditableAdapter.js +0 -45
- package/dist/adapters/ContentEditableAdapter.js.map +0 -1
- package/dist/adapters/InputAdapter.d.ts +0 -28
- package/dist/adapters/InputAdapter.js +0 -125
- package/dist/adapters/InputAdapter.js.map +0 -1
- package/dist/adapters/MultiEditorAdapter.d.ts +0 -56
- package/dist/adapters/MultiEditorAdapter.js +0 -184
- package/dist/adapters/MultiEditorAdapter.js.map +0 -1
- package/dist/adapters/QuipAdapter.d.ts +0 -16
- package/dist/adapters/QuipAdapter.js +0 -148
- package/dist/adapters/QuipAdapter.js.map +0 -1
- package/dist/adapters/SynchronizeAsyncAdapter.d.ts +0 -22
- package/dist/adapters/SynchronizeAsyncAdapter.js +0 -67
- package/dist/adapters/SynchronizeAsyncAdapter.js.map +0 -1
- package/dist/adapters/TinyMCEAdapter.d.ts +0 -13
- package/dist/adapters/TinyMCEAdapter.js +0 -51
- package/dist/adapters/TinyMCEAdapter.js.map +0 -1
- package/dist/adapters/TinyMCEWordpressAdapter.d.ts +0 -10
- package/dist/adapters/TinyMCEWordpressAdapter.js +0 -78
- package/dist/adapters/TinyMCEWordpressAdapter.js.map +0 -1
- package/dist/adapters/XeditorAdapter.d.ts +0 -130
- package/dist/adapters/XeditorAdapter.js +0 -232
- package/dist/adapters/XeditorAdapter.js.map +0 -1
- package/dist/autobind/autobind.d.ts +0 -8
- package/dist/autobind/autobind.js +0 -120
- package/dist/autobind/autobind.js.map +0 -1
- package/dist/export-for-browser.d.ts +0 -57
- package/dist/export-for-browser.js +0 -73
- package/dist/export-for-browser.js.map +0 -1
- package/dist/floating-sidebar/async-storage.d.ts +0 -11
- package/dist/floating-sidebar/async-storage.js +0 -49
- package/dist/floating-sidebar/async-storage.js.map +0 -1
- package/dist/floating-sidebar/floating-sidebar.d.ts +0 -41
- package/dist/floating-sidebar/floating-sidebar.js +0 -234
- package/dist/floating-sidebar/floating-sidebar.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lookup/diff-based.d.ts +0 -19
- package/dist/lookup/diff-based.js +0 -102
- package/dist/lookup/diff-based.js.map +0 -1
- package/dist/message-adapter/message-adapter.d.ts +0 -10
- package/dist/message-adapter/message-adapter.js +0 -109
- package/dist/message-adapter/message-adapter.js.map +0 -1
- package/dist/utils/adapter-utils.d.ts +0 -2
- package/dist/utils/adapter-utils.js +0 -36
- package/dist/utils/adapter-utils.js.map +0 -1
- package/dist/utils/alignment.d.ts +0 -11
- package/dist/utils/alignment.js +0 -32
- package/dist/utils/alignment.js.map +0 -1
- package/dist/utils/check-selection.d.ts +0 -3
- package/dist/utils/check-selection.js +0 -123
- package/dist/utils/check-selection.js.map +0 -1
- package/dist/utils/detect-browser.d.ts +0 -6
- package/dist/utils/detect-browser.js +0 -71
- package/dist/utils/detect-browser.js.map +0 -1
- package/dist/utils/escaping.d.ts +0 -6
- package/dist/utils/escaping.js +0 -46
- package/dist/utils/escaping.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -2
- package/dist/utils/logging.js +0 -34
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/match.d.ts +0 -10
- package/dist/utils/match.js +0 -33
- package/dist/utils/match.js.map +0 -1
- package/dist/utils/scrolling.d.ts +0 -6
- package/dist/utils/scrolling.js +0 -92
- package/dist/utils/scrolling.js.map +0 -1
- package/dist/utils/sidebar-loader.d.ts +0 -19
- package/dist/utils/sidebar-loader.js +0 -157
- package/dist/utils/sidebar-loader.js.map +0 -1
- package/dist/utils/text-dom-mapping.d.ts +0 -13
- package/dist/utils/text-dom-mapping.js +0 -90
- package/dist/utils/text-dom-mapping.js.map +0 -1
- package/dist/utils/text-extraction.d.ts +0 -8
- package/dist/utils/text-extraction.js +0 -60
- package/dist/utils/text-extraction.js.map +0 -1
- package/dist/utils/utils.d.ts +0 -39
- package/dist/utils/utils.js +0 -155
- package/dist/utils/utils.js.map +0 -1
- package/dist/utils/work-queue.d.ts +0 -7
- package/dist/utils/work-queue.js +0 -66
- package/dist/utils/work-queue.js.map +0 -1
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Check, DocumentSelection, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
|
|
2
|
-
import { AlignedMatch } from '../utils/alignment';
|
|
3
|
-
import { TextDomMapping } from '../utils/text-dom-mapping';
|
|
4
|
-
import { AdapterConf, AdapterInterface, AutobindWrapperAttributes, ContentExtractionResult, ExtractContentForCheckOpts, SuccessfulCheckResult } from './AdapterInterface';
|
|
5
|
-
type TextMapping = TextDomMapping;
|
|
6
|
-
export declare abstract class AbstractRichtextEditorAdapter implements AdapterInterface {
|
|
7
|
-
config: AdapterConf;
|
|
8
|
-
currentContentChecking?: string;
|
|
9
|
-
lastContentChecked?: string;
|
|
10
|
-
protected constructor(conf: AdapterConf);
|
|
11
|
-
abstract getEditorDocument(): Document;
|
|
12
|
-
abstract getContent(opts: ExtractContentForCheckOpts): string;
|
|
13
|
-
protected getEditorElement(): HTMLElement;
|
|
14
|
-
registerCheckCall(_checkInfo: Check): void;
|
|
15
|
-
registerCheckResult(_checkResult: SuccessfulCheckResult): void;
|
|
16
|
-
extractContentForCheck(opts: ExtractContentForCheckOpts): ContentExtractionResult | Promise<ContentExtractionResult>;
|
|
17
|
-
protected getSelection(): DocumentSelection;
|
|
18
|
-
protected scrollIntoView(sel: Selection): void | Promise<void>;
|
|
19
|
-
scrollToCurrentSelection(): void;
|
|
20
|
-
protected scrollElementIntoView(el: HTMLElement): void;
|
|
21
|
-
selectRanges(checkId: string, matches: Match[]): void | Promise<void>;
|
|
22
|
-
protected isCkEditor5(): boolean;
|
|
23
|
-
protected isQuillEditor(): boolean;
|
|
24
|
-
protected selectMatches<T extends Match>(_checkId: string, matches: T[]): [AlignedMatch<T>[], TextMapping];
|
|
25
|
-
protected selectAlignedMatches(matches: AlignedMatch<Match>[], textMapping: TextMapping): void;
|
|
26
|
-
protected selectText(begin: number, length: number, textMapping: TextMapping): void;
|
|
27
|
-
protected createRange(begin: number, length: number, textMapping: TextMapping): Range;
|
|
28
|
-
protected replaceAlignedMatches(matches: AlignedMatch<MatchWithReplacement>[]): void;
|
|
29
|
-
replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): void | Promise<void>;
|
|
30
|
-
protected getTextDomMapping(): TextDomMapping;
|
|
31
|
-
getAutobindWrapperAttributes(): AutobindWrapperAttributes;
|
|
32
|
-
}
|
|
33
|
-
export declare function removeEmptyTextNodesIfNeeded(range: Range): void;
|
|
34
|
-
export declare function removeEmptyTextNodes(range: Range): void;
|
|
35
|
-
export {};
|
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2015-present Acrolinx GmbH
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.AbstractRichtextEditorAdapter = void 0;
|
|
19
|
-
exports.removeEmptyTextNodesIfNeeded = removeEmptyTextNodesIfNeeded;
|
|
20
|
-
exports.removeEmptyTextNodes = removeEmptyTextNodes;
|
|
21
|
-
var tslib_1 = require("tslib");
|
|
22
|
-
var _ = tslib_1.__importStar(require("lodash"));
|
|
23
|
-
var diff_based_1 = require("../lookup/diff-based");
|
|
24
|
-
var adapter_utils_1 = require("../utils/adapter-utils");
|
|
25
|
-
var detect_browser_1 = require("../utils/detect-browser");
|
|
26
|
-
var match_1 = require("../utils/match");
|
|
27
|
-
var scrolling_1 = require("../utils/scrolling");
|
|
28
|
-
var text_dom_mapping_1 = require("../utils/text-dom-mapping");
|
|
29
|
-
var utils_1 = require("../utils/utils");
|
|
30
|
-
// TODO: if you want to extend this adapter with asynchronous methods,
|
|
31
|
-
// then you will have to implement AsyncAdapterInterface at the same time
|
|
32
|
-
// If you make changes here make sure to see AsyncContentEditableAdapter,
|
|
33
|
-
// there are some similar methods with asynchronous calls
|
|
34
|
-
var AbstractRichtextEditorAdapter = /** @class */ (function () {
|
|
35
|
-
function AbstractRichtextEditorAdapter(conf) {
|
|
36
|
-
this.config = conf;
|
|
37
|
-
}
|
|
38
|
-
AbstractRichtextEditorAdapter.prototype.getEditorElement = function () {
|
|
39
|
-
return this.getEditorDocument().querySelector('body');
|
|
40
|
-
};
|
|
41
|
-
AbstractRichtextEditorAdapter.prototype.registerCheckCall = function (_checkInfo) { };
|
|
42
|
-
AbstractRichtextEditorAdapter.prototype.registerCheckResult = function (_checkResult) {
|
|
43
|
-
this.lastContentChecked = this.currentContentChecking;
|
|
44
|
-
};
|
|
45
|
-
AbstractRichtextEditorAdapter.prototype.extractContentForCheck = function (opts) {
|
|
46
|
-
var html = this.getContent(opts);
|
|
47
|
-
this.currentContentChecking = html;
|
|
48
|
-
return { content: html, selection: opts.checkSelection ? this.getSelection() : undefined };
|
|
49
|
-
};
|
|
50
|
-
AbstractRichtextEditorAdapter.prototype.getSelection = function () {
|
|
51
|
-
return { ranges: [] };
|
|
52
|
-
};
|
|
53
|
-
AbstractRichtextEditorAdapter.prototype.scrollIntoView = function (sel) {
|
|
54
|
-
var range = sel.getRangeAt(0);
|
|
55
|
-
var tmp = range.cloneRange();
|
|
56
|
-
tmp.collapse(true);
|
|
57
|
-
var text = document.createElement('span');
|
|
58
|
-
tmp.insertNode(text);
|
|
59
|
-
sel.removeAllRanges();
|
|
60
|
-
sel.addRange(range);
|
|
61
|
-
text.focus();
|
|
62
|
-
this.scrollElementIntoView(text);
|
|
63
|
-
(0, utils_1.removeNode)(text);
|
|
64
|
-
removeEmptyTextNodesIfNeeded(tmp);
|
|
65
|
-
};
|
|
66
|
-
AbstractRichtextEditorAdapter.prototype.scrollToCurrentSelection = function () {
|
|
67
|
-
var selection1 = this.getEditorDocument().getSelection();
|
|
68
|
-
if (selection1) {
|
|
69
|
-
try {
|
|
70
|
-
this.scrollIntoView(selection1);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
console.log('Scrolling Error: ', error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
AbstractRichtextEditorAdapter.prototype.scrollElementIntoView = function (el) {
|
|
78
|
-
(0, scrolling_1.scrollIntoView)(el, this.config.scrollOffsetY);
|
|
79
|
-
};
|
|
80
|
-
AbstractRichtextEditorAdapter.prototype.selectRanges = function (checkId, matches) {
|
|
81
|
-
(0, utils_1.assertElementIsDisplayed)(this.getEditorElement());
|
|
82
|
-
this.selectMatches(checkId, matches);
|
|
83
|
-
if (this.isQuillEditor() || this.isCkEditor5()) {
|
|
84
|
-
// Simple workaround for quill/CKEditor5 editor, as 'scrollIntoView' is messing up the selection range there.
|
|
85
|
-
var selection = this.getEditorDocument().getSelection();
|
|
86
|
-
if (selection && selection.anchorNode && selection.anchorNode.parentElement) {
|
|
87
|
-
(0, scrolling_1.scrollIntoViewCenteredWithFallback)(selection.anchorNode.parentElement);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.scrollToCurrentSelection();
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
AbstractRichtextEditorAdapter.prototype.isCkEditor5 = function () {
|
|
95
|
-
return this.getEditorElement().classList.contains('ck-editor__editable');
|
|
96
|
-
};
|
|
97
|
-
AbstractRichtextEditorAdapter.prototype.isQuillEditor = function () {
|
|
98
|
-
var editorElementIsQuill = this.getEditorElement().classList.contains('ql-editor');
|
|
99
|
-
var editorElementContainsQuill = !!this.getEditorElement().querySelector('.ql-editor');
|
|
100
|
-
return editorElementIsQuill || editorElementContainsQuill;
|
|
101
|
-
};
|
|
102
|
-
AbstractRichtextEditorAdapter.prototype.selectMatches = function (_checkId, matches) {
|
|
103
|
-
var textMapping = this.getTextDomMapping();
|
|
104
|
-
var alignedMatches = (0, diff_based_1.lookupMatches)(this.lastContentChecked, textMapping.text, matches);
|
|
105
|
-
if (_.isEmpty(alignedMatches)) {
|
|
106
|
-
throw new Error('Selected flagged content is modified.');
|
|
107
|
-
}
|
|
108
|
-
this.selectAlignedMatches(alignedMatches, textMapping);
|
|
109
|
-
return [alignedMatches, textMapping];
|
|
110
|
-
};
|
|
111
|
-
AbstractRichtextEditorAdapter.prototype.selectAlignedMatches = function (matches, textMapping) {
|
|
112
|
-
var newBegin = matches[0].range[0];
|
|
113
|
-
var matchLength = (0, match_1.getCompleteFlagLength)(matches);
|
|
114
|
-
this.selectText(newBegin, matchLength, textMapping);
|
|
115
|
-
};
|
|
116
|
-
AbstractRichtextEditorAdapter.prototype.selectText = function (begin, length, textMapping) {
|
|
117
|
-
if (!textMapping.text) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
var selection = this.getEditorDocument().getSelection();
|
|
121
|
-
if (!selection) {
|
|
122
|
-
console.warn('AbstractRichtextEditorAdapter.selectText: Missing selection');
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
selection.removeAllRanges();
|
|
126
|
-
selection.addRange(this.createRange(begin, length, textMapping));
|
|
127
|
-
};
|
|
128
|
-
AbstractRichtextEditorAdapter.prototype.createRange = function (begin, length, textMapping) {
|
|
129
|
-
var doc = this.getEditorDocument();
|
|
130
|
-
var range = doc.createRange();
|
|
131
|
-
var beginDomPosition = textMapping.domPositions[begin];
|
|
132
|
-
var endDomPosition = (0, text_dom_mapping_1.getEndDomPos)(begin + length, textMapping.domPositions);
|
|
133
|
-
// TODO: Handle overflowing offsets more clever and safer
|
|
134
|
-
if (beginDomPosition.offset <= beginDomPosition.node.textContent.length) {
|
|
135
|
-
range.setStart(beginDomPosition.node, beginDomPosition.offset);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
console.warn("Offset of range begin (".concat(beginDomPosition.offset, ") > node text length (").concat(beginDomPosition.node.textContent.length, ")"));
|
|
139
|
-
}
|
|
140
|
-
if (endDomPosition.offset <= endDomPosition.node.textContent.length) {
|
|
141
|
-
range.setEnd(endDomPosition.node, endDomPosition.offset);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
console.warn("Offset of range end (".concat(endDomPosition.offset, ") > node text length (").concat(endDomPosition.node.textContent.length, ")"));
|
|
145
|
-
}
|
|
146
|
-
return range;
|
|
147
|
-
};
|
|
148
|
-
AbstractRichtextEditorAdapter.prototype.replaceAlignedMatches = function (matches) {
|
|
149
|
-
var doc = this.getEditorDocument();
|
|
150
|
-
var reversedMatches = _.clone(matches).reverse();
|
|
151
|
-
for (var _i = 0, reversedMatches_1 = reversedMatches; _i < reversedMatches_1.length; _i++) {
|
|
152
|
-
var match = reversedMatches_1[_i];
|
|
153
|
-
var textDomMapping = this.getTextDomMapping();
|
|
154
|
-
var rangeLength = match.range[1] - match.range[0];
|
|
155
|
-
if (rangeLength > 1) {
|
|
156
|
-
var tail = this.createRange(match.range[0] + 1, rangeLength - 1, textDomMapping);
|
|
157
|
-
var head = this.createRange(match.range[0], 1, textDomMapping);
|
|
158
|
-
var completeRange = this.createRange(match.range[0], rangeLength, textDomMapping);
|
|
159
|
-
(0, utils_1.simulateInputEvent)({
|
|
160
|
-
startNode: completeRange.startContainer,
|
|
161
|
-
endNode: completeRange.endContainer,
|
|
162
|
-
eventType: 'beforeinput',
|
|
163
|
-
replacement: match.originalMatch.replacement,
|
|
164
|
-
startOffset: completeRange.startOffset,
|
|
165
|
-
endOffset: completeRange.endOffset,
|
|
166
|
-
disableSimulation: this.config.disableInputEventSimulation,
|
|
167
|
-
});
|
|
168
|
-
tail.deleteContents();
|
|
169
|
-
head.deleteContents();
|
|
170
|
-
if (match.originalMatch.replacement.length !== 0) {
|
|
171
|
-
head.insertNode(doc.createTextNode(match.originalMatch.replacement));
|
|
172
|
-
}
|
|
173
|
-
(0, utils_1.simulateInputEvent)({
|
|
174
|
-
startNode: completeRange.startContainer,
|
|
175
|
-
endNode: completeRange.endContainer,
|
|
176
|
-
eventType: 'input',
|
|
177
|
-
replacement: match.originalMatch.replacement,
|
|
178
|
-
startOffset: completeRange.startOffset,
|
|
179
|
-
endOffset: completeRange.endOffset,
|
|
180
|
-
disableSimulation: this.config.disableInputEventSimulation,
|
|
181
|
-
});
|
|
182
|
-
removeEmptyTextNodesIfNeeded(tail);
|
|
183
|
-
if (tail.startContainer !== head.startContainer || tail.endContainer !== head.endContainer) {
|
|
184
|
-
removeEmptyTextNodesIfNeeded(head);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
var range = this.createRange(match.range[0], rangeLength, textDomMapping);
|
|
189
|
-
(0, utils_1.simulateInputEvent)({
|
|
190
|
-
startNode: range.startContainer,
|
|
191
|
-
endNode: range.endContainer,
|
|
192
|
-
eventType: 'beforeinput',
|
|
193
|
-
replacement: match.originalMatch.replacement,
|
|
194
|
-
startOffset: range.startOffset,
|
|
195
|
-
endOffset: range.endOffset,
|
|
196
|
-
disableSimulation: this.config.disableInputEventSimulation,
|
|
197
|
-
});
|
|
198
|
-
range.deleteContents();
|
|
199
|
-
if (match.originalMatch.replacement.length !== 0) {
|
|
200
|
-
range.insertNode(doc.createTextNode(match.originalMatch.replacement));
|
|
201
|
-
}
|
|
202
|
-
(0, utils_1.simulateInputEvent)({
|
|
203
|
-
startNode: range.startContainer,
|
|
204
|
-
endNode: range.endContainer,
|
|
205
|
-
eventType: 'input',
|
|
206
|
-
replacement: match.originalMatch.replacement,
|
|
207
|
-
startOffset: range.startOffset,
|
|
208
|
-
endOffset: range.endOffset,
|
|
209
|
-
disableSimulation: this.config.disableInputEventSimulation,
|
|
210
|
-
});
|
|
211
|
-
removeEmptyTextNodesIfNeeded(range);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
AbstractRichtextEditorAdapter.prototype.replaceRanges = function (checkId, matchesWithReplacement) {
|
|
216
|
-
(0, utils_1.assertElementIsDisplayed)(this.getEditorElement());
|
|
217
|
-
var alignedMatches = this.selectMatches(checkId, matchesWithReplacement)[0];
|
|
218
|
-
var replacement = alignedMatches.map(function (m) { return m.originalMatch.replacement; }).join('');
|
|
219
|
-
this.replaceAlignedMatches(alignedMatches);
|
|
220
|
-
// Replacement will remove the selection, so we need to restore it again.
|
|
221
|
-
this.selectText(alignedMatches[0].range[0], replacement.length, this.getTextDomMapping());
|
|
222
|
-
this.scrollToCurrentSelection();
|
|
223
|
-
};
|
|
224
|
-
AbstractRichtextEditorAdapter.prototype.getTextDomMapping = function () {
|
|
225
|
-
return (0, text_dom_mapping_1.extractTextDomMapping)(this.getEditorElement());
|
|
226
|
-
};
|
|
227
|
-
AbstractRichtextEditorAdapter.prototype.getAutobindWrapperAttributes = function () {
|
|
228
|
-
return (0, adapter_utils_1.getAutobindWrapperAttributes)(this.getEditorElement());
|
|
229
|
-
};
|
|
230
|
-
return AbstractRichtextEditorAdapter;
|
|
231
|
-
}());
|
|
232
|
-
exports.AbstractRichtextEditorAdapter = AbstractRichtextEditorAdapter;
|
|
233
|
-
// Workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=811630.
|
|
234
|
-
function removeEmptyTextNodesIfNeeded(range) {
|
|
235
|
-
// This code is just an workaround for a hopefully temporally chrome browser bug.
|
|
236
|
-
// We don't want to risk, that it causes any problems, if not really necessary.
|
|
237
|
-
try {
|
|
238
|
-
if ((0, detect_browser_1.isChrome)()) {
|
|
239
|
-
removeEmptyTextNodes(range);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
console.error('Error in removeEmptyTextNodesIfNeeded:', error);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
function removeEmptyTextNodes(range) {
|
|
247
|
-
var nodeIterator = document.createNodeIterator(range.commonAncestorContainer);
|
|
248
|
-
var currentNode;
|
|
249
|
-
var afterStartNode = false;
|
|
250
|
-
while ((currentNode = nodeIterator.nextNode())) {
|
|
251
|
-
if (currentNode === range.startContainer) {
|
|
252
|
-
afterStartNode = true;
|
|
253
|
-
}
|
|
254
|
-
if (afterStartNode) {
|
|
255
|
-
removeIfEmptyTextNode(currentNode);
|
|
256
|
-
if (currentNode === range.endContainer) {
|
|
257
|
-
break;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
function removeIfEmptyTextNode(node) {
|
|
263
|
-
if (node.nodeType === Node.TEXT_NODE && node.textContent === '') {
|
|
264
|
-
(0, utils_1.removeNode)(node);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
//# sourceMappingURL=AbstractRichtextEditorAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractRichtextEditorAdapter.js","sourceRoot":"","sources":["../../../../src/adapters/AbstractRichtextEditorAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAqRH,oEAUC;AAED,oDAiBC;;AAhTD,gDAA4B;AAE5B,mDAAqD;AACrD,wDAAsE;AAEtE,0DAAmD;AACnD,wCAAuD;AACvD,gDAAwF;AACxF,8DAAgG;AAChG,wCAA0F;AAY1F,sEAAsE;AACtE,0EAA0E;AAC1E,yEAAyE;AACzE,yDAAyD;AAEzD;IAKE,uCAAsB,IAAiB;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAMS,wDAAgB,GAA1B;QACE,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;IACzD,CAAC;IAED,yDAAiB,GAAjB,UAAkB,UAAiB,IAAG,CAAC;IAEvC,2DAAmB,GAAnB,UAAoB,YAAmC;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC;IACxD,CAAC;IAED,8DAAsB,GAAtB,UAAuB,IAAgC;QACrD,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC7F,CAAC;IAES,oDAAY,GAAtB;QACE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAES,sDAAc,GAAxB,UAAyB,GAAc;QACrC,IAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAEjB,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,gEAAwB,GAAxB;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;QAE3D,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAES,6DAAqB,GAA/B,UAAgC,EAAe;QAC7C,IAAA,0BAAc,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,oDAAY,GAAZ,UAAa,OAAe,EAAE,OAAgB;QAC5C,IAAA,gCAAwB,EAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/C,6GAA6G;YAC7G,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;YAC1D,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC5E,IAAA,8CAAkC,EAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAES,mDAAW,GAArB;QACE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IAES,qDAAa,GAAvB;QACE,IAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrF,IAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzF,OAAO,oBAAoB,IAAI,0BAA0B,CAAC;IAC5D,CAAC;IAES,qDAAa,GAAvB,UAAyC,QAAgB,EAAE,OAAY;QACrE,IAAM,WAAW,GAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1D,IAAM,cAAc,GAAsB,IAAA,0BAAa,EAAC,IAAI,CAAC,kBAAmB,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7G,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC;IAES,4DAAoB,GAA9B,UAA+B,OAA8B,EAAE,WAAwB;QACrF,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAM,WAAW,GAAG,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAES,kDAAU,GAApB,UAAqB,KAAa,EAAE,MAAc,EAAE,WAAwB;QAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAC;QAE1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC;IAES,mDAAW,GAArB,UAAsB,KAAa,EAAE,MAAc,EAAE,WAAwB;QAC3E,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrC,IAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAChC,IAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,IAAM,cAAc,GAAG,IAAA,+BAAY,EAAC,KAAK,GAAG,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAE9E,yDAAyD;QACzD,IAAI,gBAAgB,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC;YACzE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,iCAA0B,gBAAgB,CAAC,MAAM,mCAC/C,gBAAgB,CAAC,IAAI,CAAC,WAAY,CAAC,MAAM,MACxC,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC;YACrE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,+BAAwB,cAAc,CAAC,MAAM,mCAC3C,cAAc,CAAC,IAAI,CAAC,WAAY,CAAC,MAAM,MACtC,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,6DAAqB,GAA/B,UAAgC,OAA6C;QAC3E,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrC,IAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACnD,KAAoB,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE,CAAC;YAAjC,IAAM,KAAK,wBAAA;YACd,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;gBACnF,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;gBACjE,IAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEpF,IAAA,0BAAkB,EAAC;oBACjB,SAAS,EAAE,aAAa,CAAC,cAAc;oBACvC,OAAO,EAAE,aAAa,CAAC,YAAY;oBACnC,SAAS,EAAE,aAAa;oBACxB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW;oBAC5C,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;iBAC3D,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAA,0BAAkB,EAAC;oBACjB,SAAS,EAAE,aAAa,CAAC,cAAc;oBACvC,OAAO,EAAE,aAAa,CAAC,YAAY;oBACnC,SAAS,EAAE,OAAO;oBAClB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW;oBAC5C,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;iBAC3D,CAAC,CAAC;gBAEH,4BAA4B,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC3F,4BAA4B,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBAE5E,IAAA,0BAAkB,EAAC;oBACjB,SAAS,EAAE,KAAK,CAAC,cAAc;oBAC/B,OAAO,EAAE,KAAK,CAAC,YAAY;oBAC3B,SAAS,EAAE,aAAa;oBACxB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW;oBAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;iBAC3D,CAAC,CAAC;gBAEH,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;gBACxE,CAAC;gBAED,IAAA,0BAAkB,EAAC;oBACjB,SAAS,EAAE,KAAK,CAAC,cAAc;oBAC/B,OAAO,EAAE,KAAK,CAAC,YAAY;oBAC3B,SAAS,EAAE,OAAO;oBAClB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW;oBAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B;iBAC3D,CAAC,CAAC;gBAEH,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qDAAa,GAAb,UAAc,OAAe,EAAE,sBAA8C;QAC3E,IAAA,gCAAwB,EAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3C,IAAA,cAAc,GAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,sBAAsB,CAAC,GAAvD,CAAwD;QAC7E,IAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,aAAa,CAAC,WAAW,EAA3B,CAA2B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpF,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE3C,yEAAyE;QACzE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAES,yDAAiB,GAA3B;QACE,OAAO,IAAA,wCAAqB,EAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,oEAA4B,GAA5B;QACE,OAAO,IAAA,4CAA4B,EAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/D,CAAC;IACH,oCAAC;AAAD,CAAC,AAtPD,IAsPC;AAtPqB,sEAA6B;AAwPnD,+EAA+E;AAC/E,SAAgB,4BAA4B,CAAC,KAAY;IACvD,iFAAiF;IACjF,+EAA+E;IAC/E,IAAI,CAAC;QACH,IAAI,IAAA,yBAAQ,GAAE,EAAE,CAAC;YACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAY;IAC/C,IAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAChF,IAAI,WAAwB,CAAC;IAC7B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC/C,IAAI,WAAW,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC;YACzC,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,WAAW,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;QAChE,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Match, MatchWithReplacement, Check, DocumentSelection, CheckedDocumentPart, CheckInformationKeyValuePair, ExternalContent, InitResult } from '@acrolinx/sidebar-interface';
|
|
2
|
-
export interface CommonAdapterConf {
|
|
3
|
-
scrollOffsetY?: number;
|
|
4
|
-
disableInputEventSimulation?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export interface HasEditorID extends CommonAdapterConf {
|
|
7
|
-
editorId: string;
|
|
8
|
-
}
|
|
9
|
-
export interface HasElement extends CommonAdapterConf {
|
|
10
|
-
element: HTMLElement;
|
|
11
|
-
}
|
|
12
|
-
export type AdapterConf = HasEditorID | HasElement;
|
|
13
|
-
export interface HasError {
|
|
14
|
-
error: any;
|
|
15
|
-
}
|
|
16
|
-
export interface SuccessfulContentExtractionResult {
|
|
17
|
-
content: string;
|
|
18
|
-
documentReference?: string;
|
|
19
|
-
selection?: DocumentSelection;
|
|
20
|
-
externalContent?: ExternalContent;
|
|
21
|
-
}
|
|
22
|
-
export interface AutobindWrapperAttributes {
|
|
23
|
-
'original-id'?: string;
|
|
24
|
-
'original-class'?: string;
|
|
25
|
-
'original-name'?: string;
|
|
26
|
-
'original-source': string;
|
|
27
|
-
'original-display'?: string;
|
|
28
|
-
[key: string]: string | undefined;
|
|
29
|
-
}
|
|
30
|
-
export type ContentExtractionResult = SuccessfulContentExtractionResult | HasError;
|
|
31
|
-
export interface ExtractContentForCheckOpts {
|
|
32
|
-
checkSelection?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface SuccessfulCheckResult {
|
|
35
|
-
checkedPart: CheckedDocumentPart;
|
|
36
|
-
embedCheckInformation?: CheckInformationKeyValuePair[];
|
|
37
|
-
inputFormat?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface CommonAdapterInterface {
|
|
40
|
-
getFormat?(): string;
|
|
41
|
-
getContent?(opts: ExtractContentForCheckOpts): string;
|
|
42
|
-
extractContentForCheck(opts: ExtractContentForCheckOpts): ContentExtractionResult | Promise<ContentExtractionResult>;
|
|
43
|
-
registerCheckCall(checkInfo: Check): void;
|
|
44
|
-
registerCheckResult(checkResult: SuccessfulCheckResult): void;
|
|
45
|
-
getAutobindWrapperAttributes?(): AutobindWrapperAttributes;
|
|
46
|
-
onInitFinished?(result: InitResult): void;
|
|
47
|
-
}
|
|
48
|
-
export interface AdapterInterface extends CommonAdapterInterface {
|
|
49
|
-
selectRanges(checkId: string, matches: Match[]): void;
|
|
50
|
-
replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): void;
|
|
51
|
-
}
|
|
52
|
-
export interface AsyncAdapterInterface extends CommonAdapterInterface {
|
|
53
|
-
readonly isAsync: true;
|
|
54
|
-
readonly requiresSynchronization: boolean;
|
|
55
|
-
selectRanges(checkId: string, matches: Match[]): Promise<void>;
|
|
56
|
-
replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): Promise<void>;
|
|
57
|
-
}
|
|
58
|
-
export declare function isAsyncAdapterInterface(a: AdapterInterface | AsyncAdapterInterface): a is AsyncAdapterInterface;
|
|
59
|
-
export declare function hasError(a: ContentExtractionResult): a is HasError;
|
|
60
|
-
export declare function isSuccessfulContentExtractionResult(a: ContentExtractionResult): a is SuccessfulContentExtractionResult;
|
|
61
|
-
export declare function hasEditorID(a: AdapterConf): a is HasEditorID;
|
|
62
|
-
export declare function hasElement(a: AdapterConf): a is HasElement;
|
|
63
|
-
export declare function getElementFromAdapterConf(conf: AdapterConf): HTMLElement;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2016-present Acrolinx GmbH
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.isAsyncAdapterInterface = isAsyncAdapterInterface;
|
|
19
|
-
exports.hasError = hasError;
|
|
20
|
-
exports.isSuccessfulContentExtractionResult = isSuccessfulContentExtractionResult;
|
|
21
|
-
exports.hasEditorID = hasEditorID;
|
|
22
|
-
exports.hasElement = hasElement;
|
|
23
|
-
exports.getElementFromAdapterConf = getElementFromAdapterConf;
|
|
24
|
-
function isAsyncAdapterInterface(a) {
|
|
25
|
-
return a.isAsync;
|
|
26
|
-
}
|
|
27
|
-
function hasError(a) {
|
|
28
|
-
return !!a.error;
|
|
29
|
-
}
|
|
30
|
-
function isSuccessfulContentExtractionResult(a) {
|
|
31
|
-
return typeof a.content == 'string';
|
|
32
|
-
}
|
|
33
|
-
function hasEditorID(a) {
|
|
34
|
-
return !!a.editorId;
|
|
35
|
-
}
|
|
36
|
-
function hasElement(a) {
|
|
37
|
-
return !!a.element;
|
|
38
|
-
}
|
|
39
|
-
function getElementFromAdapterConf(conf) {
|
|
40
|
-
if (hasElement(conf)) {
|
|
41
|
-
return conf.element;
|
|
42
|
-
}
|
|
43
|
-
else if (hasEditorID(conf)) {
|
|
44
|
-
return document.getElementById(conf.editorId);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
console.error('Invalid AdapterConf. Missing editorId or element', conf);
|
|
48
|
-
throw new Error('Invalid AdapterConf. Missing editorId or element');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=AdapterInterface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdapterInterface.js","sourceRoot":"","sources":["../../../../src/adapters/AdapterInterface.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAkFH,0DAEC;AAED,4BAEC;AAED,kFAIC;AAED,kCAEC;AAED,gCAEC;AAED,8DASC;AA/BD,SAAgB,uBAAuB,CAAC,CAA2C;IACjF,OAAQ,CAA2B,CAAC,OAAO,CAAC;AAC9C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAA0B;IACjD,OAAO,CAAC,CAAE,CAAc,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,mCAAmC,CACjD,CAA0B;IAE1B,OAAO,OAAQ,CAAuC,CAAC,OAAO,IAAI,QAAQ,CAAC;AAC7E,CAAC;AAED,SAAgB,WAAW,CAAC,CAAc;IACxC,OAAO,CAAC,CAAE,CAAiB,CAAC,QAAQ,CAAC;AACvC,CAAC;AAED,SAAgB,UAAU,CAAC,CAAc;IACvC,OAAO,CAAC,CAAE,CAAgB,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAiB;IACzD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAgB,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Check, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
|
|
2
|
-
import { AutobindConfig } from '../autobind/autobind';
|
|
3
|
-
import { AsyncAdapterInterface, CommonAdapterConf, ContentExtractionResult, ExtractContentForCheckOpts, SuccessfulCheckResult } from './AdapterInterface';
|
|
4
|
-
import { MultiEditorAdapterConfig } from './MultiEditorAdapter';
|
|
5
|
-
export declare class AsyncAutoBindAdapter implements AsyncAdapterInterface {
|
|
6
|
-
private conf;
|
|
7
|
-
readonly isAsync: true;
|
|
8
|
-
readonly requiresSynchronization: true;
|
|
9
|
-
private asyncMultiAdapter;
|
|
10
|
-
constructor(conf: MultiEditorAdapterConfig & CommonAdapterConf & AutobindConfig);
|
|
11
|
-
private initMultiAdapter;
|
|
12
|
-
getFormat(): "HTML" | "AUTO";
|
|
13
|
-
extractContentForCheck(opts: ExtractContentForCheckOpts): Promise<ContentExtractionResult>;
|
|
14
|
-
registerCheckCall(_checkInfo: Check): void;
|
|
15
|
-
registerCheckResult(_checkResult: SuccessfulCheckResult): void;
|
|
16
|
-
selectRanges(checkId: string, matches: Match[]): Promise<void>;
|
|
17
|
-
replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): Promise<void>;
|
|
18
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2020-present Acrolinx GmbH
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.AsyncAutoBindAdapter = void 0;
|
|
19
|
-
var tslib_1 = require("tslib");
|
|
20
|
-
var autobind_1 = require("../autobind/autobind");
|
|
21
|
-
var AsyncMultiEditorAdapter_1 = require("./AsyncMultiEditorAdapter");
|
|
22
|
-
// While making changes here make sure if you also need to do them in synchronous version
|
|
23
|
-
// of this adapter
|
|
24
|
-
var AsyncAutoBindAdapter = /** @class */ (function () {
|
|
25
|
-
function AsyncAutoBindAdapter(conf) {
|
|
26
|
-
this.conf = conf;
|
|
27
|
-
this.isAsync = true;
|
|
28
|
-
this.requiresSynchronization = true;
|
|
29
|
-
this.initMultiAdapter();
|
|
30
|
-
}
|
|
31
|
-
AsyncAutoBindAdapter.prototype.initMultiAdapter = function () {
|
|
32
|
-
this.asyncMultiAdapter = new AsyncMultiEditorAdapter_1.AsyncMultiEditorAdapter(this.conf);
|
|
33
|
-
};
|
|
34
|
-
AsyncAutoBindAdapter.prototype.getFormat = function () {
|
|
35
|
-
return this.asyncMultiAdapter.getFormat();
|
|
36
|
-
};
|
|
37
|
-
AsyncAutoBindAdapter.prototype.extractContentForCheck = function (opts) {
|
|
38
|
-
var _this = this;
|
|
39
|
-
this.initMultiAdapter();
|
|
40
|
-
(0, autobind_1.bindAdaptersForCurrentPage)(this.conf).forEach(function (adapter) {
|
|
41
|
-
var wrapperAttributes = adapter.getAutobindWrapperAttributes ? adapter.getAutobindWrapperAttributes() : {};
|
|
42
|
-
_this.asyncMultiAdapter.addSingleAdapter(adapter, { attributes: wrapperAttributes });
|
|
43
|
-
});
|
|
44
|
-
return this.asyncMultiAdapter.extractContentForCheck(opts);
|
|
45
|
-
};
|
|
46
|
-
AsyncAutoBindAdapter.prototype.registerCheckCall = function (_checkInfo) { };
|
|
47
|
-
AsyncAutoBindAdapter.prototype.registerCheckResult = function (_checkResult) {
|
|
48
|
-
this.asyncMultiAdapter.registerCheckResult(_checkResult);
|
|
49
|
-
};
|
|
50
|
-
AsyncAutoBindAdapter.prototype.selectRanges = function (checkId, matches) {
|
|
51
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
52
|
-
return tslib_1.__generator(this, function (_a) {
|
|
53
|
-
switch (_a.label) {
|
|
54
|
-
case 0: return [4 /*yield*/, this.asyncMultiAdapter.selectRanges(checkId, matches)];
|
|
55
|
-
case 1:
|
|
56
|
-
_a.sent();
|
|
57
|
-
return [2 /*return*/];
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
AsyncAutoBindAdapter.prototype.replaceRanges = function (checkId, matchesWithReplacement) {
|
|
63
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
64
|
-
return tslib_1.__generator(this, function (_a) {
|
|
65
|
-
switch (_a.label) {
|
|
66
|
-
case 0: return [4 /*yield*/, this.asyncMultiAdapter.replaceRanges(checkId, matchesWithReplacement)];
|
|
67
|
-
case 1:
|
|
68
|
-
_a.sent();
|
|
69
|
-
return [2 /*return*/];
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
return AsyncAutoBindAdapter;
|
|
75
|
-
}());
|
|
76
|
-
exports.AsyncAutoBindAdapter = AsyncAutoBindAdapter;
|
|
77
|
-
//# sourceMappingURL=AsyncAutoBindAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncAutoBindAdapter.js","sourceRoot":"","sources":["../../../../src/adapters/AsyncAutoBindAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAGH,iDAAkF;AASlF,qEAAoE;AAEpE,yFAAyF;AACzF,kBAAkB;AAClB;IAKE,8BAAoB,IAAmE;QAAnE,SAAI,GAAJ,IAAI,CAA+D;QAJ9E,YAAO,GAAG,IAAa,CAAC;QACxB,4BAAuB,GAAG,IAAa,CAAC;QAI/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,+CAAgB,GAAxB;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,wCAAS,GAAT;QACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,qDAAsB,GAAtB,UAAuB,IAAgC;QAAvD,iBAOC;QANC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAA,qCAA0B,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,OAAO;YACpD,IAAM,iBAAiB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7G,KAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,gDAAiB,GAAjB,UAAkB,UAAiB,IAAG,CAAC;IAEvC,kDAAmB,GAAnB,UAAoB,YAAmC;QACrD,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAEK,2CAAY,GAAlB,UAAmB,OAAe,EAAE,OAAgB;;;;4BAClD,qBAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAAA;;wBAA3D,SAA2D,CAAC;;;;;KAC7D;IAEK,4CAAa,GAAnB,UAAoB,OAAe,EAAE,sBAA8C;;;;4BACjF,qBAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAA;;wBAA3E,SAA2E,CAAC;;;;;KAC7E;IACH,2BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,oDAAoB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AdapterConf, AsyncAdapterInterface } from './AdapterInterface';
|
|
2
|
-
import { DocumentSelection, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
|
|
3
|
-
import { AbstractRichtextEditorAdapter } from './AbstractRichtextEditorAdapter';
|
|
4
|
-
import { TextDomMapping } from '../utils/text-dom-mapping';
|
|
5
|
-
type TextMapping = TextDomMapping;
|
|
6
|
-
export declare class AsyncContentEditableAdapter extends AbstractRichtextEditorAdapter implements AsyncAdapterInterface {
|
|
7
|
-
element: HTMLElement;
|
|
8
|
-
constructor(conf: AdapterConf);
|
|
9
|
-
readonly isAsync: true;
|
|
10
|
-
readonly requiresSynchronization: true;
|
|
11
|
-
getEditorElement(): HTMLElement;
|
|
12
|
-
getContent(): string;
|
|
13
|
-
protected getSelection(): DocumentSelection;
|
|
14
|
-
getEditorDocument(): Document;
|
|
15
|
-
selectRanges(checkId: string, matches: Match[]): Promise<void>;
|
|
16
|
-
replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): Promise<void>;
|
|
17
|
-
selectText(begin: number, length: number, textMapping: TextMapping): Promise<void>;
|
|
18
|
-
private addSelectionRange;
|
|
19
|
-
scrollIntoView(sel: Selection): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export declare function isStateBasedEditor(el: Element): Element | null;
|
|
22
|
-
export {};
|