@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.
Files changed (122) hide show
  1. package/README.md +22 -22
  2. package/dist/index.d.ts +612 -23
  3. package/dist/index.js +3325 -64
  4. package/package.json +44 -90
  5. package/dist/acrolinx-plugin.d.ts +0 -58
  6. package/dist/acrolinx-plugin.js +0 -318
  7. package/dist/acrolinx-plugin.js.map +0 -1
  8. package/dist/acrolinx-sidebar-sdk.js +0 -2
  9. package/dist/acrolinx-sidebar-sdk.js.LICENSE.txt +0 -16
  10. package/dist/acrolinx-sidebar-sdk.min.js +0 -1
  11. package/dist/adapters/AbstractRichtextEditorAdapter.d.ts +0 -35
  12. package/dist/adapters/AbstractRichtextEditorAdapter.js +0 -267
  13. package/dist/adapters/AbstractRichtextEditorAdapter.js.map +0 -1
  14. package/dist/adapters/AdapterInterface.d.ts +0 -63
  15. package/dist/adapters/AdapterInterface.js +0 -51
  16. package/dist/adapters/AdapterInterface.js.map +0 -1
  17. package/dist/adapters/AsyncAutoBindAdapter.d.ts +0 -18
  18. package/dist/adapters/AsyncAutoBindAdapter.js +0 -77
  19. package/dist/adapters/AsyncAutoBindAdapter.js.map +0 -1
  20. package/dist/adapters/AsyncContentEditableAdapter.d.ts +0 -22
  21. package/dist/adapters/AsyncContentEditableAdapter.js +0 -135
  22. package/dist/adapters/AsyncContentEditableAdapter.js.map +0 -1
  23. package/dist/adapters/AsyncMultiEditorAdapter.d.ts +0 -11
  24. package/dist/adapters/AsyncMultiEditorAdapter.js +0 -97
  25. package/dist/adapters/AsyncMultiEditorAdapter.js.map +0 -1
  26. package/dist/adapters/AutoBindAdapter.d.ts +0 -16
  27. package/dist/adapters/AutoBindAdapter.js +0 -56
  28. package/dist/adapters/AutoBindAdapter.js.map +0 -1
  29. package/dist/adapters/CKEditor5Adapter.d.ts +0 -16
  30. package/dist/adapters/CKEditor5Adapter.js +0 -86
  31. package/dist/adapters/CKEditor5Adapter.js.map +0 -1
  32. package/dist/adapters/CKEditorAdapter.d.ts +0 -14
  33. package/dist/adapters/CKEditorAdapter.js +0 -72
  34. package/dist/adapters/CKEditorAdapter.js.map +0 -1
  35. package/dist/adapters/CodeMirror6Adapter.d.ts +0 -29
  36. package/dist/adapters/CodeMirror6Adapter.js +0 -123
  37. package/dist/adapters/CodeMirror6Adapter.js.map +0 -1
  38. package/dist/adapters/CodeMirrorAdapter.d.ts +0 -31
  39. package/dist/adapters/CodeMirrorAdapter.js +0 -143
  40. package/dist/adapters/CodeMirrorAdapter.js.map +0 -1
  41. package/dist/adapters/ContentEditableAdapter.d.ts +0 -11
  42. package/dist/adapters/ContentEditableAdapter.js +0 -45
  43. package/dist/adapters/ContentEditableAdapter.js.map +0 -1
  44. package/dist/adapters/InputAdapter.d.ts +0 -28
  45. package/dist/adapters/InputAdapter.js +0 -125
  46. package/dist/adapters/InputAdapter.js.map +0 -1
  47. package/dist/adapters/MultiEditorAdapter.d.ts +0 -56
  48. package/dist/adapters/MultiEditorAdapter.js +0 -184
  49. package/dist/adapters/MultiEditorAdapter.js.map +0 -1
  50. package/dist/adapters/QuipAdapter.d.ts +0 -16
  51. package/dist/adapters/QuipAdapter.js +0 -148
  52. package/dist/adapters/QuipAdapter.js.map +0 -1
  53. package/dist/adapters/SynchronizeAsyncAdapter.d.ts +0 -22
  54. package/dist/adapters/SynchronizeAsyncAdapter.js +0 -67
  55. package/dist/adapters/SynchronizeAsyncAdapter.js.map +0 -1
  56. package/dist/adapters/TinyMCEAdapter.d.ts +0 -13
  57. package/dist/adapters/TinyMCEAdapter.js +0 -51
  58. package/dist/adapters/TinyMCEAdapter.js.map +0 -1
  59. package/dist/adapters/TinyMCEWordpressAdapter.d.ts +0 -10
  60. package/dist/adapters/TinyMCEWordpressAdapter.js +0 -78
  61. package/dist/adapters/TinyMCEWordpressAdapter.js.map +0 -1
  62. package/dist/adapters/XeditorAdapter.d.ts +0 -130
  63. package/dist/adapters/XeditorAdapter.js +0 -232
  64. package/dist/adapters/XeditorAdapter.js.map +0 -1
  65. package/dist/autobind/autobind.d.ts +0 -8
  66. package/dist/autobind/autobind.js +0 -120
  67. package/dist/autobind/autobind.js.map +0 -1
  68. package/dist/export-for-browser.d.ts +0 -57
  69. package/dist/export-for-browser.js +0 -73
  70. package/dist/export-for-browser.js.map +0 -1
  71. package/dist/floating-sidebar/async-storage.d.ts +0 -11
  72. package/dist/floating-sidebar/async-storage.js +0 -49
  73. package/dist/floating-sidebar/async-storage.js.map +0 -1
  74. package/dist/floating-sidebar/floating-sidebar.d.ts +0 -41
  75. package/dist/floating-sidebar/floating-sidebar.js +0 -234
  76. package/dist/floating-sidebar/floating-sidebar.js.map +0 -1
  77. package/dist/index.js.map +0 -1
  78. package/dist/lookup/diff-based.d.ts +0 -19
  79. package/dist/lookup/diff-based.js +0 -102
  80. package/dist/lookup/diff-based.js.map +0 -1
  81. package/dist/message-adapter/message-adapter.d.ts +0 -10
  82. package/dist/message-adapter/message-adapter.js +0 -109
  83. package/dist/message-adapter/message-adapter.js.map +0 -1
  84. package/dist/utils/adapter-utils.d.ts +0 -2
  85. package/dist/utils/adapter-utils.js +0 -36
  86. package/dist/utils/adapter-utils.js.map +0 -1
  87. package/dist/utils/alignment.d.ts +0 -11
  88. package/dist/utils/alignment.js +0 -32
  89. package/dist/utils/alignment.js.map +0 -1
  90. package/dist/utils/check-selection.d.ts +0 -3
  91. package/dist/utils/check-selection.js +0 -123
  92. package/dist/utils/check-selection.js.map +0 -1
  93. package/dist/utils/detect-browser.d.ts +0 -6
  94. package/dist/utils/detect-browser.js +0 -71
  95. package/dist/utils/detect-browser.js.map +0 -1
  96. package/dist/utils/escaping.d.ts +0 -6
  97. package/dist/utils/escaping.js +0 -46
  98. package/dist/utils/escaping.js.map +0 -1
  99. package/dist/utils/logging.d.ts +0 -2
  100. package/dist/utils/logging.js +0 -34
  101. package/dist/utils/logging.js.map +0 -1
  102. package/dist/utils/match.d.ts +0 -10
  103. package/dist/utils/match.js +0 -33
  104. package/dist/utils/match.js.map +0 -1
  105. package/dist/utils/scrolling.d.ts +0 -6
  106. package/dist/utils/scrolling.js +0 -92
  107. package/dist/utils/scrolling.js.map +0 -1
  108. package/dist/utils/sidebar-loader.d.ts +0 -19
  109. package/dist/utils/sidebar-loader.js +0 -157
  110. package/dist/utils/sidebar-loader.js.map +0 -1
  111. package/dist/utils/text-dom-mapping.d.ts +0 -13
  112. package/dist/utils/text-dom-mapping.js +0 -90
  113. package/dist/utils/text-dom-mapping.js.map +0 -1
  114. package/dist/utils/text-extraction.d.ts +0 -8
  115. package/dist/utils/text-extraction.js +0 -60
  116. package/dist/utils/text-extraction.js.map +0 -1
  117. package/dist/utils/utils.d.ts +0 -39
  118. package/dist/utils/utils.js +0 -155
  119. package/dist/utils/utils.js.map +0 -1
  120. package/dist/utils/work-queue.d.ts +0 -7
  121. package/dist/utils/work-queue.js +0 -66
  122. package/dist/utils/work-queue.js.map +0 -1
@@ -1,123 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2022-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.CodeMirror6Adapter = void 0;
19
- var tslib_1 = require("tslib");
20
- var _ = tslib_1.__importStar(require("lodash"));
21
- var diff_based_1 = require("../lookup/diff-based");
22
- var match_1 = require("../utils/match");
23
- var CodeMirror6Adapter = /** @class */ (function () {
24
- function CodeMirror6Adapter(conf) {
25
- this.cmSelectionToRange = function (selection) {
26
- var range = [selection.from, selection.to];
27
- range.sort(function (a, b) { return a - b; });
28
- return range;
29
- };
30
- this.configure(conf);
31
- }
32
- CodeMirror6Adapter.prototype.configure = function (partialConfig) {
33
- var newConf = tslib_1.__assign(tslib_1.__assign({}, this.config), partialConfig);
34
- this.validateConf(newConf);
35
- this.config = newConf;
36
- };
37
- CodeMirror6Adapter.prototype.validateConf = function (conf) {
38
- if (!conf) {
39
- throw new Error('CodeMirrorAdapter config is missing');
40
- }
41
- if (!conf.editor) {
42
- throw new Error('CodeMirrorAdapter config is missing "editor"');
43
- }
44
- };
45
- CodeMirror6Adapter.prototype.getContent = function () {
46
- return this.config.editor.state.doc.toString();
47
- };
48
- CodeMirror6Adapter.prototype.getFormat = function () {
49
- return this.config.format || 'AUTO';
50
- };
51
- CodeMirror6Adapter.prototype.extractContentForCheck = function (opts) {
52
- this.currentContentChecking = this.getContent();
53
- return {
54
- content: this.currentContentChecking,
55
- selection: opts.checkSelection ? this.getSelection() : undefined,
56
- };
57
- };
58
- CodeMirror6Adapter.prototype.getSelection = function () {
59
- return {
60
- ranges: this.config.editor.state.selection.ranges.map(this.cmSelectionToRange),
61
- };
62
- };
63
- CodeMirror6Adapter.prototype.registerCheckResult = function (checkResult) {
64
- this.formatDetectedByCheck = checkResult.inputFormat;
65
- this.lastContentChecked = this.currentContentChecking;
66
- };
67
- CodeMirror6Adapter.prototype.registerCheckCall = function (_checkInfo) {
68
- return;
69
- };
70
- CodeMirror6Adapter.prototype.lookupMatchesOrThrow = function (matches) {
71
- var alignedMatches = (0, diff_based_1.lookupMatches)(this.lastContentChecked, this.getContent(), matches, 'TEXT');
72
- if (_.isEmpty(alignedMatches)) {
73
- throw Error('Selected flagged content is modified.');
74
- }
75
- return alignedMatches;
76
- };
77
- CodeMirror6Adapter.prototype.selectRanges = function (_checkId, matches) {
78
- var alignedMatches = this.lookupMatchesOrThrow(matches);
79
- this.selectRangeAndScroll([alignedMatches[0].range[0], alignedMatches[alignedMatches.length - 1].range[1]]);
80
- };
81
- CodeMirror6Adapter.prototype.replaceRanges = function (_checkId, matchesWithReplacement) {
82
- var _this = this;
83
- var alignedMatches = this.lookupMatchesOrThrow(matchesWithReplacement);
84
- var escapeFunction = this.getEscapeFunction();
85
- var replacementLength = 0;
86
- _.forEachRight(alignedMatches, function (match) {
87
- if (!(0, match_1.isDangerousToReplace)(_this.lastContentChecked, match.originalMatch)) {
88
- var escapedReplacement = escapeFunction(match.originalMatch.replacement);
89
- _this.config.editor.dispatch({
90
- changes: {
91
- from: match.range[0],
92
- to: match.range[1],
93
- insert: escapedReplacement,
94
- },
95
- });
96
- replacementLength += escapedReplacement.length;
97
- }
98
- });
99
- this.selectRangeAndScroll([alignedMatches[0].range[0], alignedMatches[0].range[0] + replacementLength]);
100
- };
101
- CodeMirror6Adapter.prototype.getEscapeFunction = function () {
102
- var configuredFormat = this.getFormat();
103
- var format = (configuredFormat === 'AUTO' && this.formatDetectedByCheck) || configuredFormat;
104
- switch (format) {
105
- case 'XML':
106
- case 'HTML':
107
- return _.escape;
108
- default:
109
- return _.identity;
110
- }
111
- };
112
- CodeMirror6Adapter.prototype.selectRange = function (range) {
113
- this.config.editor.dispatch({ selection: { anchor: range[0], head: range[1] }, scrollIntoView: true });
114
- return [range[0], range[1]];
115
- };
116
- CodeMirror6Adapter.prototype.selectRangeAndScroll = function (range) {
117
- this.selectRange(range);
118
- this.config.editor.focus();
119
- };
120
- return CodeMirror6Adapter;
121
- }());
122
- exports.CodeMirror6Adapter = CodeMirror6Adapter;
123
- //# sourceMappingURL=CodeMirror6Adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeMirror6Adapter.js","sourceRoot":"","sources":["../../../../src/adapters/CodeMirror6Adapter.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { EditorFromTextArea } from 'codemirror';
2
- import { Check, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
3
- import { AdapterInterface, ContentExtractionResult, ExtractContentForCheckOpts, SuccessfulCheckResult } from './AdapterInterface';
4
- export type CodeMirrorAdapterConf = {
5
- editor: CodeMirror.Editor | EditorFromTextArea;
6
- format?: string;
7
- };
8
- export declare class CodeMirrorAdapter implements AdapterInterface {
9
- private config;
10
- private currentContentChecking?;
11
- private lastContentChecked?;
12
- private formatDetectedByCheck;
13
- constructor(conf: CodeMirrorAdapterConf);
14
- configure(partialConfig: Partial<CodeMirrorAdapterConf>): void;
15
- private validateConf;
16
- getContent(): string;
17
- getFormat(): string;
18
- private getFormatFromCodeMirror;
19
- extractContentForCheck(opts: ExtractContentForCheckOpts): ContentExtractionResult;
20
- private getSelection;
21
- registerCheckResult(checkResult: SuccessfulCheckResult): void;
22
- registerCheckCall(_checkInfo: Check): void;
23
- private lookupMatchesOrThrow;
24
- selectRanges(_checkId: string, matches: Match[]): void;
25
- replaceRanges(_checkId: string, matchesWithReplacement: MatchWithReplacement[]): void;
26
- private getEscapeFunction;
27
- private getDoc;
28
- private selectRange;
29
- private selectRangeAndScroll;
30
- private cmSelectionToRange;
31
- }
@@ -1,143 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2017-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.CodeMirrorAdapter = void 0;
19
- var tslib_1 = require("tslib");
20
- var _ = tslib_1.__importStar(require("lodash"));
21
- var diff_based_1 = require("../lookup/diff-based");
22
- var match_1 = require("../utils/match");
23
- var FORMAT_BY_MIME_TYPE = {
24
- 'text/html': 'HTML',
25
- 'text/xml': 'HTML',
26
- 'application/xml': 'XML',
27
- 'text/x-markdown': 'MARKDOWN',
28
- 'text/plain': 'TEXT',
29
- };
30
- var FORMAT_BY_MODE = {
31
- htmlmixed: 'HTML',
32
- xml: 'XML',
33
- markdown: 'MARKDOWN',
34
- };
35
- var CodeMirrorAdapter = /** @class */ (function () {
36
- function CodeMirrorAdapter(conf) {
37
- var _this = this;
38
- this.cmSelectionToRange = function (selection) {
39
- var doc = _this.getDoc();
40
- var range = [doc.indexFromPos(selection.anchor), doc.indexFromPos(selection.head)];
41
- range.sort(function (a, b) { return a - b; });
42
- return range;
43
- };
44
- this.configure(conf);
45
- }
46
- CodeMirrorAdapter.prototype.configure = function (partialConfig) {
47
- var newConf = tslib_1.__assign(tslib_1.__assign({}, this.config), partialConfig);
48
- this.validateConf(newConf);
49
- this.config = newConf;
50
- };
51
- CodeMirrorAdapter.prototype.validateConf = function (conf) {
52
- if (!conf) {
53
- throw new Error('CodeMirrorAdapter config is missing');
54
- }
55
- if (!conf.editor) {
56
- throw new Error('CodeMirrorAdapter config is missing "editor"');
57
- }
58
- };
59
- CodeMirrorAdapter.prototype.getContent = function () {
60
- return this.config.editor.getValue();
61
- };
62
- CodeMirrorAdapter.prototype.getFormat = function () {
63
- return this.config.format || this.getFormatFromCodeMirror() || 'AUTO';
64
- };
65
- CodeMirrorAdapter.prototype.getFormatFromCodeMirror = function () {
66
- return (FORMAT_BY_MODE[this.config.editor.getDoc().getMode().name || ''] ||
67
- FORMAT_BY_MIME_TYPE[this.config.editor.getOption('mode')]);
68
- };
69
- CodeMirrorAdapter.prototype.extractContentForCheck = function (opts) {
70
- this.currentContentChecking = this.getContent();
71
- return {
72
- content: this.currentContentChecking,
73
- selection: opts.checkSelection ? this.getSelection() : undefined,
74
- };
75
- };
76
- CodeMirrorAdapter.prototype.getSelection = function () {
77
- return {
78
- ranges: this.getDoc().listSelections().map(this.cmSelectionToRange),
79
- };
80
- };
81
- CodeMirrorAdapter.prototype.registerCheckResult = function (checkResult) {
82
- this.formatDetectedByCheck = checkResult.inputFormat;
83
- this.lastContentChecked = this.currentContentChecking;
84
- };
85
- CodeMirrorAdapter.prototype.registerCheckCall = function (_checkInfo) { };
86
- CodeMirrorAdapter.prototype.lookupMatchesOrThrow = function (matches) {
87
- var alignedMatches = (0, diff_based_1.lookupMatches)(this.lastContentChecked, this.getContent(), matches, 'TEXT');
88
- if (_.isEmpty(alignedMatches)) {
89
- throw Error('Selected flagged content is modified.');
90
- }
91
- return alignedMatches;
92
- };
93
- CodeMirrorAdapter.prototype.selectRanges = function (_checkId, matches) {
94
- var alignedMatches = this.lookupMatchesOrThrow(matches);
95
- this.selectRangeAndScroll([alignedMatches[0].range[0], alignedMatches[alignedMatches.length - 1].range[1]]);
96
- };
97
- CodeMirrorAdapter.prototype.replaceRanges = function (_checkId, matchesWithReplacement) {
98
- var _this = this;
99
- var doc = this.getDoc();
100
- var alignedMatches = this.lookupMatchesOrThrow(matchesWithReplacement);
101
- var escapeFunction = this.getEscapeFunction();
102
- var replacementLength = 0;
103
- _.forEachRight(alignedMatches, function (match) {
104
- if (!(0, match_1.isDangerousToReplace)(_this.lastContentChecked, match.originalMatch)) {
105
- var positionRange = _this.selectRange(match.range);
106
- var escapedReplacement = escapeFunction(match.originalMatch.replacement);
107
- doc.replaceRange(escapedReplacement, positionRange[0], positionRange[1]);
108
- replacementLength += escapedReplacement.length;
109
- }
110
- });
111
- this.selectRangeAndScroll([alignedMatches[0].range[0], alignedMatches[0].range[0] + replacementLength]);
112
- };
113
- CodeMirrorAdapter.prototype.getEscapeFunction = function () {
114
- var configuredFormat = this.getFormat();
115
- var format = (configuredFormat === 'AUTO' && this.formatDetectedByCheck) || configuredFormat;
116
- switch (format) {
117
- case 'XML':
118
- case 'HTML':
119
- return _.escape;
120
- default:
121
- return _.identity;
122
- }
123
- };
124
- CodeMirrorAdapter.prototype.getDoc = function () {
125
- return this.config.editor.getDoc();
126
- };
127
- CodeMirrorAdapter.prototype.selectRange = function (range) {
128
- var doc = this.getDoc();
129
- var startPos = doc.posFromIndex(range[0]);
130
- var endPos = doc.posFromIndex(range[1]);
131
- doc.setSelection(startPos, endPos);
132
- return [startPos, endPos];
133
- };
134
- CodeMirrorAdapter.prototype.selectRangeAndScroll = function (range) {
135
- var positionRange = this.selectRange(range);
136
- var editor = this.config.editor;
137
- editor.scrollIntoView(positionRange[0]);
138
- editor.focus();
139
- };
140
- return CodeMirrorAdapter;
141
- }());
142
- exports.CodeMirrorAdapter = CodeMirrorAdapter;
143
- //# sourceMappingURL=CodeMirrorAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeMirrorAdapter.js","sourceRoot":"","sources":["../../../../src/adapters/CodeMirrorAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { AbstractRichtextEditorAdapter } from './AbstractRichtextEditorAdapter';
2
- import { AdapterConf } from './AdapterInterface';
3
- import { DocumentSelection } from '@acrolinx/sidebar-interface';
4
- export declare class ContentEditableAdapter extends AbstractRichtextEditorAdapter {
5
- element: HTMLElement;
6
- constructor(conf: AdapterConf);
7
- getEditorElement(): HTMLElement;
8
- getContent(): string;
9
- protected getSelection(): DocumentSelection;
10
- getEditorDocument(): Document;
11
- }
@@ -1,45 +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.ContentEditableAdapter = void 0;
19
- var tslib_1 = require("tslib");
20
- var AbstractRichtextEditorAdapter_1 = require("./AbstractRichtextEditorAdapter");
21
- var AdapterInterface_1 = require("./AdapterInterface");
22
- var check_selection_1 = require("../utils/check-selection");
23
- var ContentEditableAdapter = /** @class */ (function (_super) {
24
- tslib_1.__extends(ContentEditableAdapter, _super);
25
- function ContentEditableAdapter(conf) {
26
- var _this = _super.call(this, conf) || this;
27
- _this.element = (0, AdapterInterface_1.getElementFromAdapterConf)(conf);
28
- return _this;
29
- }
30
- ContentEditableAdapter.prototype.getEditorElement = function () {
31
- return this.element;
32
- };
33
- ContentEditableAdapter.prototype.getContent = function () {
34
- return this.element.innerHTML;
35
- };
36
- ContentEditableAdapter.prototype.getSelection = function () {
37
- return { ranges: (0, check_selection_1.getSelectionHtmlRanges)(this.getEditorElement()) };
38
- };
39
- ContentEditableAdapter.prototype.getEditorDocument = function () {
40
- return this.element.ownerDocument;
41
- };
42
- return ContentEditableAdapter;
43
- }(AbstractRichtextEditorAdapter_1.AbstractRichtextEditorAdapter));
44
- exports.ContentEditableAdapter = ContentEditableAdapter;
45
- //# sourceMappingURL=ContentEditableAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentEditableAdapter.js","sourceRoot":"","sources":["../../../../src/adapters/ContentEditableAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,iFAAgF;AAChF,uDAA4E;AAE5E,4DAAkE;AAElE;IAA4C,kDAA6B;IAGvE,gCAAY,IAAiB;QAC3B,YAAA,MAAK,YAAC,IAAI,CAAC,SAAC;QACZ,KAAI,CAAC,OAAO,GAAG,IAAA,4CAAyB,EAAC,IAAI,CAAC,CAAC;;IACjD,CAAC;IAED,iDAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,2CAAU,GAAV;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAES,6CAAY,GAAtB;QACE,OAAO,EAAE,MAAM,EAAE,IAAA,wCAAsB,EAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,kDAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpC,CAAC;IACH,6BAAC;AAAD,CAAC,AAvBD,CAA4C,6DAA6B,GAuBxE;AAvBY,wDAAsB"}
@@ -1,28 +0,0 @@
1
- import { Check, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
2
- import { AdapterConf, AdapterInterface, AutobindWrapperAttributes, ContentExtractionResult, ExtractContentForCheckOpts, SuccessfulCheckResult } from './AdapterInterface';
3
- import { AlignedMatch } from '../utils/alignment';
4
- export type ValidInputElement = HTMLInputElement | HTMLTextAreaElement;
5
- export type Format = 'TEXT' | 'MARKDOWN';
6
- export type InputAdapterConf = AdapterConf & {
7
- format?: Format;
8
- };
9
- export declare class InputAdapter implements AdapterInterface {
10
- readonly element: ValidInputElement;
11
- config: InputAdapterConf;
12
- private currentContentChecking?;
13
- private lastContentChecked?;
14
- constructor(conf: InputAdapterConf);
15
- getContent(): string;
16
- getCurrentText(): string;
17
- getFormat(): Format;
18
- extractContentForCheck(opts: ExtractContentForCheckOpts): ContentExtractionResult;
19
- private getSelection;
20
- registerCheckResult(_checkResult: SuccessfulCheckResult): void;
21
- registerCheckCall(_checkInfo: Check): void;
22
- scrollAndSelect(matches: AlignedMatch<Match>[]): void;
23
- selectRanges(checkId: string, matches: Match[]): void;
24
- selectMatches<T extends Match>(_checkId: string, matches: T[]): AlignedMatch<T>[];
25
- replaceAlignedMatches(matches: AlignedMatch<MatchWithReplacement>[]): void;
26
- replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): void;
27
- getAutobindWrapperAttributes(): AutobindWrapperAttributes;
28
- }
@@ -1,125 +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.InputAdapter = void 0;
19
- var tslib_1 = require("tslib");
20
- var _ = tslib_1.__importStar(require("lodash"));
21
- var AdapterInterface_1 = require("./AdapterInterface");
22
- var match_1 = require("../utils/match");
23
- var scrolling_1 = require("../utils/scrolling");
24
- var diff_based_1 = require("../lookup/diff-based");
25
- var utils_1 = require("../utils/utils");
26
- var adapter_utils_1 = require("../utils/adapter-utils");
27
- var InputAdapter = /** @class */ (function () {
28
- function InputAdapter(conf) {
29
- this.element = (0, AdapterInterface_1.getElementFromAdapterConf)(conf);
30
- this.config = _.cloneDeep(conf);
31
- }
32
- InputAdapter.prototype.getContent = function () {
33
- return this.element.value;
34
- };
35
- InputAdapter.prototype.getCurrentText = function () {
36
- return this.getContent();
37
- };
38
- InputAdapter.prototype.getFormat = function () {
39
- return this.config.format || 'TEXT';
40
- };
41
- InputAdapter.prototype.extractContentForCheck = function (opts) {
42
- this.currentContentChecking = this.getContent();
43
- return {
44
- content: this.currentContentChecking,
45
- selection: opts.checkSelection ? this.getSelection() : undefined,
46
- };
47
- };
48
- InputAdapter.prototype.getSelection = function () {
49
- var selectionStart = this.element.selectionStart;
50
- var selectionEnd = this.element.selectionEnd;
51
- if (_.isNumber(selectionStart) &&
52
- _.isNumber(selectionEnd) &&
53
- selectionStart < selectionEnd &&
54
- this.getContent().slice(selectionStart, selectionEnd).trim() !== '') {
55
- return {
56
- ranges: [[selectionStart, selectionEnd]],
57
- };
58
- }
59
- else {
60
- return undefined;
61
- }
62
- };
63
- InputAdapter.prototype.registerCheckResult = function (_checkResult) {
64
- this.lastContentChecked = this.currentContentChecking;
65
- };
66
- InputAdapter.prototype.registerCheckCall = function (_checkInfo) { };
67
- InputAdapter.prototype.scrollAndSelect = function (matches) {
68
- var newBegin = matches[0].range[0];
69
- var matchLength = (0, match_1.getCompleteFlagLength)(matches);
70
- var el = this.element;
71
- if (el.clientHeight < el.scrollHeight) {
72
- // This funny trick causes scrolling inside of the textarea.
73
- var text = this.element.value;
74
- el.value = text.slice(0, newBegin);
75
- el.focus();
76
- el.scrollTop = 1e9; // Scroll to the end of the textarea.
77
- var cursorScrollTop = el.scrollTop;
78
- el.value = text;
79
- if (cursorScrollTop > 0) {
80
- el.scrollTop = cursorScrollTop + el.clientHeight / 2;
81
- }
82
- }
83
- el.setSelectionRange(newBegin, newBegin + matchLength);
84
- el.focus();
85
- (0, scrolling_1.scrollIntoView)(el, this.config.scrollOffsetY);
86
- };
87
- InputAdapter.prototype.selectRanges = function (checkId, matches) {
88
- this.selectMatches(checkId, matches);
89
- };
90
- InputAdapter.prototype.selectMatches = function (_checkId, matches) {
91
- (0, utils_1.assertElementIsDisplayed)(this.element);
92
- var alignedMatches = (0, diff_based_1.lookupMatches)(this.lastContentChecked, this.getCurrentText(), matches, 'TEXT');
93
- if (_.isEmpty(alignedMatches)) {
94
- throw Error('Selected flagged content is modified.');
95
- }
96
- this.scrollAndSelect(alignedMatches);
97
- return alignedMatches;
98
- };
99
- InputAdapter.prototype.replaceAlignedMatches = function (matches) {
100
- var reversedMatches = _.clone(matches).reverse();
101
- var el = this.element;
102
- var text = el.value;
103
- for (var _i = 0, reversedMatches_1 = reversedMatches; _i < reversedMatches_1.length; _i++) {
104
- var match = reversedMatches_1[_i];
105
- if (!(0, match_1.isDangerousToReplace)(this.lastContentChecked, match.originalMatch)) {
106
- text = text.slice(0, match.range[0]) + match.originalMatch.replacement + text.slice(match.range[1]);
107
- }
108
- }
109
- el.value = text;
110
- };
111
- InputAdapter.prototype.replaceRanges = function (checkId, matchesWithReplacement) {
112
- var alignedMatches = this.selectMatches(checkId, matchesWithReplacement);
113
- this.scrollAndSelect(alignedMatches);
114
- this.replaceAlignedMatches(alignedMatches);
115
- var startOfSelection = alignedMatches[0].range[0];
116
- var replacement = alignedMatches.map(function (m) { return m.originalMatch.replacement; }).join('');
117
- this.element.setSelectionRange(startOfSelection, startOfSelection + replacement.length);
118
- };
119
- InputAdapter.prototype.getAutobindWrapperAttributes = function () {
120
- return (0, adapter_utils_1.getAutobindWrapperAttributes)(this.element);
121
- };
122
- return InputAdapter;
123
- }());
124
- exports.InputAdapter = InputAdapter;
125
- //# sourceMappingURL=InputAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputAdapter.js","sourceRoot":"","sources":["../../../../src/adapters/InputAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import 'es6-promise/auto';
2
- import { Check, Match, MatchWithReplacement } from '@acrolinx/sidebar-interface';
3
- import { EscapeHtmlCharactersResult } from '../utils/escaping';
4
- import { AdapterInterface, AsyncAdapterInterface, ContentExtractionResult, ExtractContentForCheckOpts, SuccessfulCheckResult } from './AdapterInterface';
5
- export interface RemappedMatches<T extends Match> {
6
- matches: T[];
7
- adapter: AdapterInterface;
8
- }
9
- export type AttributeMap = {
10
- [key: string]: any;
11
- };
12
- export interface WrapperConfOptions {
13
- tagName?: string;
14
- attributes?: AttributeMap;
15
- }
16
- export type AddSingleAdapterOptions = WrapperConfOptions;
17
- export interface WrapperConf extends WrapperConfOptions {
18
- tagName: string;
19
- attributes: AttributeMap;
20
- }
21
- export interface RegisteredAdapter {
22
- id: string;
23
- adapter: AdapterInterface | AsyncAdapterInterface;
24
- wrapper: WrapperConf;
25
- checkedRange?: [number, number];
26
- escapeResult?: EscapeHtmlCharactersResult;
27
- }
28
- export interface CheckedRegisteredAdapter extends RegisteredAdapter {
29
- checkedRange: [number, number];
30
- }
31
- export interface MultiEditorAdapterConfig {
32
- aggregateFormat?: 'AUTO' | 'HTML';
33
- documentHeader?: string;
34
- rootElement?: WrapperConfOptions;
35
- beforeCheck?: (multiAdapter: MultiEditorAdapter) => void;
36
- }
37
- export declare class MultiEditorAdapter implements AdapterInterface {
38
- private config;
39
- private rootElementWrapper?;
40
- private adapters;
41
- private adaptersOfLastSuccessfulCheck?;
42
- constructor(config?: MultiEditorAdapterConfig);
43
- getFormat(): "HTML" | "AUTO";
44
- protected addSingleAdapterInternal(singleAdapter: AdapterInterface | AsyncAdapterInterface, opts?: AddSingleAdapterOptions, id?: string): void;
45
- addSingleAdapter(singleAdapter: AdapterInterface, opts?: AddSingleAdapterOptions, id?: string): void;
46
- removeAllAdapters(): void;
47
- extractContentForCheck(opts: ExtractContentForCheckOpts): Promise<ContentExtractionResult>;
48
- registerCheckCall(_checkInfo: Check): void;
49
- registerCheckResult(checkResult: SuccessfulCheckResult): void;
50
- selectRanges(checkId: string, matches: Match[]): void;
51
- remapMatches<T extends Match>(matches: T[]): {
52
- [id: string]: RemappedMatches<T>;
53
- };
54
- getAdapterForMatch(match: Match): CheckedRegisteredAdapter;
55
- replaceRanges(checkId: string, matchesWithReplacement: MatchWithReplacement[]): void;
56
- }