@skyux/text-editor 7.0.0-beta.8 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +601 -282
- package/esm2020/lib/modules/rich-text-display/rich-text-display.component.mjs +25 -17
- package/esm2020/lib/modules/rich-text-display/rich-text-display.module.mjs +5 -5
- package/esm2020/lib/modules/shared/sky-text-editor-resources.module.mjs +5 -5
- package/esm2020/lib/modules/text-editor/menubar/text-editor-menubar.component.mjs +93 -87
- package/esm2020/lib/modules/text-editor/services/text-editor-adapter.service.mjs +263 -316
- package/esm2020/lib/modules/text-editor/services/text-editor-selection.service.mjs +16 -22
- package/esm2020/lib/modules/text-editor/services/text-editor.service.mjs +31 -31
- package/esm2020/lib/modules/text-editor/services/text-sanitization.service.mjs +11 -6
- package/esm2020/lib/modules/text-editor/text-editor.component.mjs +226 -173
- package/esm2020/lib/modules/text-editor/text-editor.module.mjs +5 -5
- package/esm2020/lib/modules/text-editor/toolbar/text-editor-toolbar.component.mjs +87 -62
- package/esm2020/lib/modules/text-editor/types/editor-command.mjs +1 -1
- package/esm2020/lib/modules/text-editor/types/editor-setting.mjs +1 -1
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-modal-context.mjs +1 -1
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-modal.component.mjs +36 -35
- package/fesm2015/skyux-text-editor.mjs +786 -735
- package/fesm2015/skyux-text-editor.mjs.map +1 -1
- package/fesm2020/skyux-text-editor.mjs +788 -744
- package/fesm2020/skyux-text-editor.mjs.map +1 -1
- package/lib/modules/rich-text-display/rich-text-display.component.d.ts +2 -4
- package/lib/modules/text-editor/menubar/text-editor-menubar.component.d.ts +6 -13
- package/lib/modules/text-editor/services/text-editor-adapter.service.d.ts +17 -34
- package/lib/modules/text-editor/services/text-editor-selection.service.d.ts +3 -3
- package/lib/modules/text-editor/services/text-editor.service.d.ts +8 -12
- package/lib/modules/text-editor/services/text-sanitization.service.d.ts +1 -1
- package/lib/modules/text-editor/text-editor.component.d.ts +23 -33
- package/lib/modules/text-editor/toolbar/text-editor-toolbar.component.d.ts +7 -13
- package/lib/modules/text-editor/types/editor-command.d.ts +1 -1
- package/lib/modules/text-editor/types/editor-setting.d.ts +4 -4
- package/lib/modules/text-editor/url-modal/text-editor-url-modal-context.d.ts +1 -1
- package/lib/modules/text-editor/url-modal/text-editor-url-modal.component.d.ts +2 -7
- package/package.json +18 -17
|
@@ -5,10 +5,9 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
*/
|
|
6
6
|
export class SkyTextEditorSelectionService {
|
|
7
7
|
isElementSelected(documentEl, element) {
|
|
8
|
-
const selectedNode = this.getCurrentSelection(documentEl)
|
|
9
|
-
.anchorNode;
|
|
8
|
+
const selectedNode = this.getCurrentSelection(documentEl)?.anchorNode;
|
|
10
9
|
/* istanbul ignore next */
|
|
11
|
-
return (selectedNode &&
|
|
10
|
+
return !!(selectedNode &&
|
|
12
11
|
(element.contains(selectedNode) ||
|
|
13
12
|
(selectedNode.parentNode && element.contains(selectedNode.parentNode))));
|
|
14
13
|
}
|
|
@@ -26,9 +25,6 @@ export class SkyTextEditorSelectionService {
|
|
|
26
25
|
selectedEl =
|
|
27
26
|
selectedEl.nodeType !== 1 ? selectedEl.parentElement : selectedEl;
|
|
28
27
|
}
|
|
29
|
-
else if (selection && selection.type !== 'Control') {
|
|
30
|
-
selectedEl = selection.createRange().parentElement();
|
|
31
|
-
}
|
|
32
28
|
else {
|
|
33
29
|
return undefined;
|
|
34
30
|
}
|
|
@@ -39,14 +35,15 @@ export class SkyTextEditorSelectionService {
|
|
|
39
35
|
if (windowEl.getSelection) {
|
|
40
36
|
const sel = windowEl.getSelection();
|
|
41
37
|
/* istanbul ignore else */
|
|
42
|
-
if (sel.getRangeAt && sel.rangeCount) {
|
|
38
|
+
if (sel && sel.getRangeAt && sel.rangeCount) {
|
|
43
39
|
return sel.getRangeAt(0);
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
|
-
else if (documentEl.getSelection()
|
|
47
|
-
documentEl.getSelection()
|
|
48
|
-
return documentEl.getSelection().getRangeAt(0);
|
|
42
|
+
else if (documentEl.getSelection()?.getRangeAt) {
|
|
43
|
+
return documentEl.getSelection()?.getRangeAt(0);
|
|
49
44
|
}
|
|
45
|
+
/* istanbul ignore next */
|
|
46
|
+
return undefined;
|
|
50
47
|
}
|
|
51
48
|
selectElement(documentEl, windowEl, element) {
|
|
52
49
|
/* istanbul ignore else */
|
|
@@ -54,27 +51,24 @@ export class SkyTextEditorSelectionService {
|
|
|
54
51
|
/* istanbul ignore else */
|
|
55
52
|
if (windowEl.getSelection) {
|
|
56
53
|
const sel = windowEl.getSelection();
|
|
57
|
-
sel
|
|
54
|
+
sel?.removeAllRanges();
|
|
58
55
|
const range = documentEl.createRange();
|
|
59
56
|
range.selectNodeContents(element);
|
|
60
|
-
sel
|
|
57
|
+
sel?.addRange(range);
|
|
61
58
|
}
|
|
62
59
|
else if (documentEl.getSelection) {
|
|
63
60
|
const sel = documentEl.getSelection();
|
|
64
|
-
sel
|
|
61
|
+
sel?.removeAllRanges();
|
|
65
62
|
const range = documentEl.createRange();
|
|
66
63
|
range.selectNodeContents(element);
|
|
67
|
-
sel
|
|
64
|
+
sel?.addRange(range);
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
|
-
SkyTextEditorSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
73
|
-
SkyTextEditorSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
75
|
-
type: Injectable
|
|
76
|
-
args: [{
|
|
77
|
-
providedIn: 'root',
|
|
78
|
-
}]
|
|
69
|
+
SkyTextEditorSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
+
SkyTextEditorSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorSelectionService });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorSelectionService, decorators: [{
|
|
72
|
+
type: Injectable
|
|
79
73
|
}] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3Itc2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3NlcnZpY2VzL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUNqQyxpQkFBaUIsQ0FDdEIsVUFBb0IsRUFDcEIsT0FBb0I7UUFFcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQztRQUN0RSwwQkFBMEI7UUFDMUIsT0FBTyxDQUFDLENBQUMsQ0FDUCxZQUFZO1lBQ1osQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztnQkFDN0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxVQUFvQjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0NBQWdDLENBQ3JDLFVBQW9CO1FBRXBCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLFVBQTBCLENBQUM7UUFDL0IsMEJBQTBCO1FBQzFCLElBQ0UsU0FBUztZQUNULFNBQVMsQ0FBQyxVQUFVO1lBQ3BCLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQy9DO1lBQ0EsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQWtDLENBQUM7WUFDeEUsVUFBVTtnQkFDUixVQUFVLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1NBQ3JFO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsVUFBb0IsRUFDcEIsUUFBZ0I7UUFFaEIsMEJBQTBCO1FBQzFCLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRTtZQUN6QixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsMEJBQTBCO1lBQzFCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtnQkFDM0MsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7YUFBTSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUU7WUFDaEQsT0FBTyxVQUFVLENBQUMsWUFBWSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsMEJBQTBCO1FBQzFCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxhQUFhLENBQ2xCLFVBQW9CLEVBQ3BCLFFBQWdCLEVBQ2hCLE9BQW9CO1FBRXBCLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRTtZQUNYLDBCQUEwQjtZQUMxQixJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEMsR0FBRyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dCQUN2QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtpQkFBTSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsR0FBRyxFQUFFLGVBQWUsRUFBRSxDQUFDO2dCQUN2QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQzs7MkhBL0VVLDZCQUE2QjsrSEFBN0IsNkJBQTZCOzRGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RWRpdG9yU2VsZWN0aW9uU2VydmljZSB7XG4gIHB1YmxpYyBpc0VsZW1lbnRTZWxlY3RlZChcbiAgICBkb2N1bWVudEVsOiBEb2N1bWVudCxcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmdldEN1cnJlbnRTZWxlY3Rpb24oZG9jdW1lbnRFbCk/LmFuY2hvck5vZGU7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gISEoXG4gICAgICBzZWxlY3RlZE5vZGUgJiZcbiAgICAgIChlbGVtZW50LmNvbnRhaW5zKHNlbGVjdGVkTm9kZSkgfHxcbiAgICAgICAgKHNlbGVjdGVkTm9kZS5wYXJlbnROb2RlICYmIGVsZW1lbnQuY29udGFpbnMoc2VsZWN0ZWROb2RlLnBhcmVudE5vZGUpKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRTZWxlY3Rpb24oZG9jdW1lbnRFbDogRG9jdW1lbnQpOiBTZWxlY3Rpb24gfCBudWxsIHtcbiAgICByZXR1cm4gZG9jdW1lbnRFbC5nZXRTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50U2VsZWN0aW9uUGFyZW50RWxlbWVudChcbiAgICBkb2N1bWVudEVsOiBEb2N1bWVudFxuICApOiBFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRDdXJyZW50U2VsZWN0aW9uKGRvY3VtZW50RWwpO1xuICAgIGxldCBzZWxlY3RlZEVsOiBFbGVtZW50IHwgbnVsbDtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAmJlxuICAgICAgc2VsZWN0aW9uLmdldFJhbmdlQXQgJiZcbiAgICAgIHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyXG4gICAgKSB7XG4gICAgICBzZWxlY3RlZEVsID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuY29tbW9uQW5jZXN0b3JDb250YWluZXIgYXMgRWxlbWVudDtcbiAgICAgIHNlbGVjdGVkRWwgPVxuICAgICAgICBzZWxlY3RlZEVsLm5vZGVUeXBlICE9PSAxID8gc2VsZWN0ZWRFbC5wYXJlbnRFbGVtZW50IDogc2VsZWN0ZWRFbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkRWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFNlbGVjdGlvblJhbmdlKFxuICAgIGRvY3VtZW50RWw6IERvY3VtZW50LFxuICAgIHdpbmRvd0VsOiBXaW5kb3dcbiAgKTogUmFuZ2UgfCB1bmRlZmluZWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdpbmRvd0VsLmdldFNlbGVjdGlvbikge1xuICAgICAgY29uc3Qgc2VsID0gd2luZG93RWwuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHNlbCAmJiBzZWwuZ2V0UmFuZ2VBdCAmJiBzZWwucmFuZ2VDb3VudCkge1xuICAgICAgICByZXR1cm4gc2VsLmdldFJhbmdlQXQoMCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsLmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnRFbC5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RWxlbWVudChcbiAgICBkb2N1bWVudEVsOiBEb2N1bWVudCxcbiAgICB3aW5kb3dFbDogV2luZG93LFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAod2luZG93RWwuZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNlbCA9IHdpbmRvd0VsLmdldFNlbGVjdGlvbigpO1xuICAgICAgICBzZWw/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50RWwuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsZW1lbnQpO1xuICAgICAgICBzZWw/LmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRFbC5nZXRTZWxlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgc2VsID0gZG9jdW1lbnRFbC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgc2VsPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudEVsLmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbGVtZW50KTtcbiAgICAgICAgc2VsPy5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
var _SkyTextEditorService__editor;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { Injectable } from '@angular/core';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
/**
|
|
@@ -5,57 +7,55 @@ import * as i0 from "@angular/core";
|
|
|
5
7
|
*/
|
|
6
8
|
export class SkyTextEditorService {
|
|
7
9
|
constructor() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
_SkyTextEditorService__editor.set(this, void 0);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A dictionary representing all active text editors and their settings.
|
|
14
|
+
*/
|
|
15
|
+
set editor(value) {
|
|
16
|
+
__classPrivateFieldSet(this, _SkyTextEditorService__editor, value, "f");
|
|
17
|
+
}
|
|
18
|
+
get editor() {
|
|
19
|
+
if (!__classPrivateFieldGet(this, _SkyTextEditorService__editor, "f")) {
|
|
20
|
+
throw new Error('Editor has not been initialized.');
|
|
21
|
+
}
|
|
22
|
+
return __classPrivateFieldGet(this, _SkyTextEditorService__editor, "f");
|
|
12
23
|
}
|
|
13
24
|
/**
|
|
14
25
|
* Returns the blur observable from the editor with the corresponding id.
|
|
15
26
|
*/
|
|
16
|
-
blurListener(
|
|
17
|
-
return this.
|
|
27
|
+
blurListener() {
|
|
28
|
+
return this.editor.blurObservable;
|
|
18
29
|
}
|
|
19
30
|
/**
|
|
20
31
|
* Returns the click observable from the editor with the corresponding id.
|
|
21
32
|
*/
|
|
22
|
-
clickListener(
|
|
23
|
-
return this.
|
|
33
|
+
clickListener() {
|
|
34
|
+
return this.editor.clickObservable;
|
|
24
35
|
}
|
|
25
36
|
/**
|
|
26
37
|
* Returns the command change observable from the editor with the corresponding id.
|
|
27
38
|
*/
|
|
28
|
-
commandChangeListener(
|
|
29
|
-
return this.
|
|
39
|
+
commandChangeListener() {
|
|
40
|
+
return this.editor.commandChangeObservable;
|
|
30
41
|
}
|
|
31
42
|
/**
|
|
32
43
|
* Returns the input change observable from the editor with the corresponding id.
|
|
33
44
|
*/
|
|
34
|
-
inputListener(
|
|
35
|
-
return this.
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Removes editor from the `editors` index by id.
|
|
39
|
-
*/
|
|
40
|
-
removeEditor(id) {
|
|
41
|
-
/* istanbul ignore else */
|
|
42
|
-
if (id in this.editors) {
|
|
43
|
-
delete this.editors[id];
|
|
44
|
-
}
|
|
45
|
+
inputListener() {
|
|
46
|
+
return this.editor.inputObservable;
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
49
|
* Returns the selection change observable from the editor with the corresponding id.
|
|
48
50
|
*/
|
|
49
|
-
selectionChangeListener(
|
|
50
|
-
return this.
|
|
51
|
+
selectionChangeListener() {
|
|
52
|
+
return this.editor.selectionChangeObservable;
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
SkyTextEditorService.ɵ
|
|
55
|
-
i0.ɵɵ
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
providedIn: 'root',
|
|
59
|
-
}]
|
|
55
|
+
_SkyTextEditorService__editor = new WeakMap();
|
|
56
|
+
SkyTextEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
+
SkyTextEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorService });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextEditorService, decorators: [{
|
|
59
|
+
type: Injectable
|
|
60
60
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3Ivc2VydmljZXMvdGV4dC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQWlCRSxnREFBb0M7S0FvQ3JDO0lBbkRDOztPQUVHO0lBQ0gsSUFBVyxNQUFNLENBQUMsS0FBb0I7UUFDcEMsdUJBQUEsSUFBSSxpQ0FBWSxLQUFLLE1BQUEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsSUFBSSxDQUFDLHVCQUFBLElBQUkscUNBQVMsRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxPQUFPLHVCQUFBLElBQUkscUNBQVMsQ0FBQztJQUN2QixDQUFDO0lBSUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUM7SUFDL0MsQ0FBQzs7O2tIQW5EVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVkaXRvclNldHRpbmcgfSBmcm9tICcuLi90eXBlcy9lZGl0b3Itc2V0dGluZyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RWRpdG9yU2VydmljZSB7XG4gIC8qKlxuICAgKiBBIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIGFsbCBhY3RpdmUgdGV4dCBlZGl0b3JzIGFuZCB0aGVpciBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBzZXQgZWRpdG9yKHZhbHVlOiBFZGl0b3JTZXR0aW5nKSB7XG4gICAgdGhpcy4jX2VkaXRvciA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBlZGl0b3IoKTogRWRpdG9yU2V0dGluZyB7XG4gICAgaWYgKCF0aGlzLiNfZWRpdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VkaXRvciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI19lZGl0b3I7XG4gIH1cblxuICAjX2VkaXRvcjogRWRpdG9yU2V0dGluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYmx1ciBvYnNlcnZhYmxlIGZyb20gdGhlIGVkaXRvciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlkLlxuICAgKi9cbiAgcHVibGljIGJsdXJMaXN0ZW5lcigpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IuYmx1ck9ic2VydmFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY2xpY2sgb2JzZXJ2YWJsZSBmcm9tIHRoZSBlZGl0b3Igd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZC5cbiAgICovXG4gIHB1YmxpYyBjbGlja0xpc3RlbmVyKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5jbGlja09ic2VydmFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29tbWFuZCBjaGFuZ2Ugb2JzZXJ2YWJsZSBmcm9tIHRoZSBlZGl0b3Igd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZC5cbiAgICovXG4gIHB1YmxpYyBjb21tYW5kQ2hhbmdlTGlzdGVuZXIoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmNvbW1hbmRDaGFuZ2VPYnNlcnZhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGlucHV0IGNoYW5nZSBvYnNlcnZhYmxlIGZyb20gdGhlIGVkaXRvciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlkLlxuICAgKi9cbiAgcHVibGljIGlucHV0TGlzdGVuZXIoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmlucHV0T2JzZXJ2YWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzZWxlY3Rpb24gY2hhbmdlIG9ic2VydmFibGUgZnJvbSB0aGUgZWRpdG9yIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgaWQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLnNlbGVjdGlvbkNoYW5nZU9ic2VydmFibGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
var _SkyTextSanitizationService_allowedAttributes;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
1
3
|
import { Injectable } from '@angular/core';
|
|
2
4
|
import createDOMPurify from 'dompurify';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
@@ -18,21 +20,24 @@ domPurify.addHook('afterSanitizeAttributes', (node) => {
|
|
|
18
20
|
*/
|
|
19
21
|
export class SkyTextSanitizationService {
|
|
20
22
|
constructor() {
|
|
21
|
-
this
|
|
23
|
+
_SkyTextSanitizationService_allowedAttributes.set(this, ['target']);
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Returns a sanitized string, allowing target attribute for new tab links.
|
|
25
27
|
*/
|
|
26
28
|
sanitize(htmlString) {
|
|
27
|
-
return domPurify.sanitize(htmlString, {
|
|
29
|
+
return domPurify.sanitize(htmlString, {
|
|
30
|
+
ADD_ATTR: __classPrivateFieldGet(this, _SkyTextSanitizationService_allowedAttributes, "f"),
|
|
31
|
+
});
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
|
-
|
|
31
|
-
SkyTextSanitizationService.ɵ
|
|
32
|
-
i0.ɵɵ
|
|
34
|
+
_SkyTextSanitizationService_allowedAttributes = new WeakMap();
|
|
35
|
+
SkyTextSanitizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextSanitizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
SkyTextSanitizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextSanitizationService, providedIn: 'root' });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyTextSanitizationService, decorators: [{
|
|
33
38
|
type: Injectable,
|
|
34
39
|
args: [{
|
|
35
40
|
providedIn: 'root',
|
|
36
41
|
}]
|
|
37
42
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zYW5pdGl6YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3Ivc2VydmljZXMvdGV4dC1zYW5pdGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxlQUFlLE1BQU0sV0FBVyxDQUFDOztBQUV4QyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLElBQWEsRUFBRSxFQUFFO0lBQzdELGtEQUFrRDtJQUNsRCx5REFBeUQ7SUFDekQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUM7S0FDakQ7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVIOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlFLHdEQUErQixDQUFDLFFBQVEsQ0FBQyxFQUFDO0tBVTNDO0lBUkM7O09BRUc7SUFDSSxRQUFRLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxRQUFRLEVBQUUsdUJBQUEsSUFBSSxxREFBbUI7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O3dIQVZVLDBCQUEwQjs0SEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IGNyZWF0ZURPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xuXG5jb25zdCBkb21QdXJpZnkgPSBjcmVhdGVET01QdXJpZnkod2luZG93KTtcblxuZG9tUHVyaWZ5LmFkZEhvb2soJ2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzJywgKG5vZGU6IEVsZW1lbnQpID0+IHtcbiAgLy8gU2V0IGFsbCBlbGVtZW50cyBvd25pbmcgdGFyZ2V0IHRvIHRhcmdldD1fYmxhbmtcbiAgLy8gc28gd2Ugb25seSBhbGxvdyB0aGUgdGFyZ2V0IGF0dHJpYnV0ZSB3aXRoIHRoYXQgdmFsdWUuXG4gIGlmIChub2RlLmdldEF0dHJpYnV0ZSgndGFyZ2V0JykpIHtcbiAgICBub2RlLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKCdyZWwnLCAnbm9vcGVuZXIgbm9yZWZlcnJlcicpO1xuICB9XG59KTtcblxuLyoqXG4gKiBUaGUgYFNreVRleHRTYW5pdGl6YXRpb25TZXJ2aWNlYCB1c2VyIHRoZSBgRE9NUHVyaWZ5YCBsaWJyYXJ5IHRvIHNhbml0aXplIHN0cmluZ3MgZm9yIHVzZVxuICogaW4gdGhlIERPTS4gYERPTVB1cmlmeWAgYWxsb3dzIG1vcmUgY3VzdG9taXphdGlvbiB0aGFuIEFuZ3VsYXIncyBpbnRlcm5hbCBgRG9tU2FuaXRpemVyYCBzbyB3ZVxuICogY2FuIHByZXNlcnZlIGA8c3R5bGU+YCB0YWdzIGFuZCBhbGxvdyBgdGFyZ2V0YCBhdHRyaWJ1dGVzIGZvciBuZXcgdGFiIGxpbmtzLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0U2FuaXRpemF0aW9uU2VydmljZSB7XG4gICNhbGxvd2VkQXR0cmlidXRlczogc3RyaW5nW10gPSBbJ3RhcmdldCddO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc2FuaXRpemVkIHN0cmluZywgYWxsb3dpbmcgdGFyZ2V0IGF0dHJpYnV0ZSBmb3IgbmV3IHRhYiBsaW5rcy5cbiAgICovXG4gIHB1YmxpYyBzYW5pdGl6ZShodG1sU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkb21QdXJpZnkuc2FuaXRpemUoaHRtbFN0cmluZywge1xuICAgICAgQUREX0FUVFI6IHRoaXMuI2FsbG93ZWRBdHRyaWJ1dGVzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|