@skyux/text-editor 5.5.0 → 5.6.2
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/bundles/skyux-text-editor.umd.js +34 -33
- package/documentation.json +32 -76
- package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js.map +1 -1
- package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js.map +1 -1
- package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js.map +1 -1
- package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js.map +1 -1
- package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js +4 -4
- package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js.map +1 -1
- package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js +6 -5
- package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js.map +1 -1
- package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js +1 -1
- package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js.map +1 -1
- package/esm2015/lib/modules/text-editor/text-editor.component.js +8 -8
- package/esm2015/lib/modules/text-editor/text-editor.component.js.map +1 -1
- package/esm2015/lib/modules/text-editor/text-editor.module.js +3 -3
- package/esm2015/lib/modules/text-editor/text-editor.module.js.map +1 -1
- package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js +4 -4
- package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js.map +1 -1
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js.map +1 -1
- package/fesm2015/skyux-text-editor.js +105 -104
- package/fesm2015/skyux-text-editor.js.map +1 -1
- package/lib/modules/text-editor/services/text-editor-adapter.service.d.ts +1 -1
- package/lib/modules/text-editor/text-editor.component.d.ts +1 -1
- package/lib/modules/text-editor/toolbar/text-editor-toolbar.component.d.ts +2 -2
- package/package.json +22 -19
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/platform-browser'), require('dompurify'), require('@angular/forms'), require('@skyux/colorpicker'), require('@skyux/core'), require('@skyux/forms'), require('@skyux/
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@skyux/text-editor', ['exports', '@angular/common', '@angular/core', '@angular/platform-browser', 'dompurify', '@angular/forms', '@skyux/colorpicker', '@skyux/core', '@skyux/forms', '@skyux/
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.skyux = global.skyux || {}, global.skyux["text-editor"] = {}), global.ng.common, global.ng.core, global.ng.platformBrowser, global.createDOMPurify, global.ng.forms, global.i6$1, global.i3, global.i4$1, global.
|
|
5
|
-
})(this, (function (exports, i5, i0, i1, createDOMPurify, i5$1, i6$1, i3, i4$1,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/platform-browser'), require('dompurify'), require('@angular/forms'), require('@skyux/colorpicker'), require('@skyux/core'), require('@skyux/forms'), require('@skyux/i18n'), require('@skyux/indicators'), require('@skyux/layout'), require('@skyux/modals'), require('@skyux/popovers'), require('@skyux/tabs'), require('@skyux/theme'), require('rxjs'), require('rxjs/operators'), require('@skyux/validation')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@skyux/text-editor', ['exports', '@angular/common', '@angular/core', '@angular/platform-browser', 'dompurify', '@angular/forms', '@skyux/colorpicker', '@skyux/core', '@skyux/forms', '@skyux/i18n', '@skyux/indicators', '@skyux/layout', '@skyux/modals', '@skyux/popovers', '@skyux/tabs', '@skyux/theme', 'rxjs', 'rxjs/operators', '@skyux/validation'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.skyux = global.skyux || {}, global.skyux["text-editor"] = {}), global.ng.common, global.ng.core, global.ng.platformBrowser, global.createDOMPurify, global.ng.forms, global.i6$1, global.i3, global.i4$1, global.i2, global.i7, global.i3$1, global.i1$1, global.i4, global.i3$2, global.i6, global.rxjs, global.rxjs.operators, global.validation));
|
|
5
|
+
})(this, (function (exports, i5, i0, i1, createDOMPurify, i5$1, i6$1, i3, i4$1, i2, i7, i3$1, i1$1, i4, i3$2, i6, rxjs, operators, validation) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
|
|
33
33
|
var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
|
|
34
34
|
var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
|
|
35
|
-
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
|
|
36
35
|
var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
|
|
37
36
|
var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
|
|
38
37
|
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
|
|
38
|
+
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
|
|
39
39
|
var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
|
|
40
40
|
var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
|
|
41
41
|
var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
domPurify.addHook('afterSanitizeAttributes', function (node) {
|
|
45
45
|
// Set all elements owning target to target=_blank
|
|
46
46
|
// so we only allow the target attribute with that value.
|
|
47
|
-
if (
|
|
47
|
+
if (node.getAttribute('target')) {
|
|
48
48
|
node.setAttribute('target', '_blank');
|
|
49
49
|
node.setAttribute('rel', 'noopener noreferrer');
|
|
50
50
|
}
|
|
@@ -1177,7 +1177,8 @@
|
|
|
1177
1177
|
range.deleteContents();
|
|
1178
1178
|
var el = documentEl.createElement('div');
|
|
1179
1179
|
el.innerHTML = html;
|
|
1180
|
-
var frag = documentEl.createDocumentFragment()
|
|
1180
|
+
var frag = documentEl.createDocumentFragment();
|
|
1181
|
+
var node = void 0, lastNode = void 0;
|
|
1181
1182
|
while (el.firstChild) {
|
|
1182
1183
|
node = el.firstChild;
|
|
1183
1184
|
lastNode = frag.appendChild(node);
|
|
@@ -1456,6 +1457,30 @@
|
|
|
1456
1457
|
type: i0.Input
|
|
1457
1458
|
}] } });
|
|
1458
1459
|
|
|
1460
|
+
/**
|
|
1461
|
+
* @internal
|
|
1462
|
+
*/
|
|
1463
|
+
var FONT_SIZE_LIST_DEFAULTS = [
|
|
1464
|
+
6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 48,
|
|
1465
|
+
];
|
|
1466
|
+
|
|
1467
|
+
/**
|
|
1468
|
+
* @internal
|
|
1469
|
+
*/
|
|
1470
|
+
var MENU_DEFAULTS = ['edit', 'format'];
|
|
1471
|
+
|
|
1472
|
+
/**
|
|
1473
|
+
* @internal
|
|
1474
|
+
*/
|
|
1475
|
+
var TOOLBAR_ACTION_DEFAULTS = [
|
|
1476
|
+
'font-family',
|
|
1477
|
+
'font-size',
|
|
1478
|
+
'font-style',
|
|
1479
|
+
'color',
|
|
1480
|
+
'list',
|
|
1481
|
+
'link',
|
|
1482
|
+
];
|
|
1483
|
+
|
|
1459
1484
|
/**
|
|
1460
1485
|
* @internal
|
|
1461
1486
|
*/
|
|
@@ -1752,30 +1777,6 @@
|
|
|
1752
1777
|
type: i0.Input
|
|
1753
1778
|
}] } });
|
|
1754
1779
|
|
|
1755
|
-
/**
|
|
1756
|
-
* @internal
|
|
1757
|
-
*/
|
|
1758
|
-
var MENU_DEFAULTS = ['edit', 'format'];
|
|
1759
|
-
|
|
1760
|
-
/**
|
|
1761
|
-
* @internal
|
|
1762
|
-
*/
|
|
1763
|
-
var TOOLBAR_ACTION_DEFAULTS = [
|
|
1764
|
-
'font-family',
|
|
1765
|
-
'font-size',
|
|
1766
|
-
'font-style',
|
|
1767
|
-
'color',
|
|
1768
|
-
'list',
|
|
1769
|
-
'link',
|
|
1770
|
-
];
|
|
1771
|
-
|
|
1772
|
-
/**
|
|
1773
|
-
* @internal
|
|
1774
|
-
*/
|
|
1775
|
-
var FONT_SIZE_LIST_DEFAULTS = [
|
|
1776
|
-
6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 48,
|
|
1777
|
-
];
|
|
1778
|
-
|
|
1779
1780
|
/**
|
|
1780
1781
|
* Auto-incrementing integer used to generate unique ids for radio components.
|
|
1781
1782
|
*/
|
|
@@ -1833,9 +1834,9 @@
|
|
|
1833
1834
|
this._initialStyleState = Object.assign({}, STYLE_STATE_DEFAULTS);
|
|
1834
1835
|
this._placeholder = '';
|
|
1835
1836
|
this._value = '<p></p>';
|
|
1836
|
-
|
|
1837
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1837
1838
|
this._onTouched = function () { };
|
|
1838
|
-
|
|
1839
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1839
1840
|
this._onChange = function () { };
|
|
1840
1841
|
this.ngControl.valueAccessor = this;
|
|
1841
1842
|
}
|
package/documentation.json
CHANGED
|
@@ -38,29 +38,7 @@
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
],
|
|
41
|
-
"children": [
|
|
42
|
-
{
|
|
43
|
-
"id": 226,
|
|
44
|
-
"name": "constructor",
|
|
45
|
-
"kind": 512,
|
|
46
|
-
"kindString": "Constructor",
|
|
47
|
-
"flags": {},
|
|
48
|
-
"signatures": [
|
|
49
|
-
{
|
|
50
|
-
"id": 227,
|
|
51
|
-
"name": "new SkyRichTextDisplayModule",
|
|
52
|
-
"kind": 16384,
|
|
53
|
-
"kindString": "Constructor signature",
|
|
54
|
-
"flags": {},
|
|
55
|
-
"type": {
|
|
56
|
-
"type": "reference",
|
|
57
|
-
"id": 225,
|
|
58
|
-
"name": "SkyRichTextDisplayModule"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
}
|
|
63
|
-
],
|
|
41
|
+
"children": [],
|
|
64
42
|
"groups": [
|
|
65
43
|
{
|
|
66
44
|
"title": "Constructors",
|
|
@@ -73,7 +51,7 @@
|
|
|
73
51
|
"sources": [
|
|
74
52
|
{
|
|
75
53
|
"fileName": "projects/text-editor/src/modules/rich-text-display/rich-text-display.module.ts",
|
|
76
|
-
"line":
|
|
54
|
+
"line": 11,
|
|
77
55
|
"character": 13
|
|
78
56
|
}
|
|
79
57
|
]
|
|
@@ -98,29 +76,7 @@
|
|
|
98
76
|
}
|
|
99
77
|
}
|
|
100
78
|
],
|
|
101
|
-
"children": [
|
|
102
|
-
{
|
|
103
|
-
"id": 247,
|
|
104
|
-
"name": "constructor",
|
|
105
|
-
"kind": 512,
|
|
106
|
-
"kindString": "Constructor",
|
|
107
|
-
"flags": {},
|
|
108
|
-
"signatures": [
|
|
109
|
-
{
|
|
110
|
-
"id": 248,
|
|
111
|
-
"name": "new SkyTextEditorModule",
|
|
112
|
-
"kind": 16384,
|
|
113
|
-
"kindString": "Constructor signature",
|
|
114
|
-
"flags": {},
|
|
115
|
-
"type": {
|
|
116
|
-
"type": "reference",
|
|
117
|
-
"id": 246,
|
|
118
|
-
"name": "SkyTextEditorModule"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
}
|
|
123
|
-
],
|
|
79
|
+
"children": [],
|
|
124
80
|
"groups": [
|
|
125
81
|
{
|
|
126
82
|
"title": "Constructors",
|
|
@@ -133,7 +89,7 @@
|
|
|
133
89
|
"sources": [
|
|
134
90
|
{
|
|
135
91
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.module.ts",
|
|
136
|
-
"line":
|
|
92
|
+
"line": 55,
|
|
137
93
|
"character": 13
|
|
138
94
|
}
|
|
139
95
|
]
|
|
@@ -168,7 +124,7 @@
|
|
|
168
124
|
"sources": [
|
|
169
125
|
{
|
|
170
126
|
"fileName": "projects/text-editor/src/modules/rich-text-display/rich-text-display.component.ts",
|
|
171
|
-
"line":
|
|
127
|
+
"line": 31,
|
|
172
128
|
"character": 2
|
|
173
129
|
}
|
|
174
130
|
],
|
|
@@ -224,7 +180,7 @@
|
|
|
224
180
|
"sources": [
|
|
225
181
|
{
|
|
226
182
|
"fileName": "projects/text-editor/src/modules/rich-text-display/rich-text-display.component.ts",
|
|
227
|
-
"line":
|
|
183
|
+
"line": 27,
|
|
228
184
|
"character": 9
|
|
229
185
|
}
|
|
230
186
|
],
|
|
@@ -259,7 +215,7 @@
|
|
|
259
215
|
"sources": [
|
|
260
216
|
{
|
|
261
217
|
"fileName": "projects/text-editor/src/modules/rich-text-display/rich-text-display.component.ts",
|
|
262
|
-
"line":
|
|
218
|
+
"line": 15,
|
|
263
219
|
"character": 13
|
|
264
220
|
}
|
|
265
221
|
],
|
|
@@ -320,7 +276,7 @@
|
|
|
320
276
|
"sources": [
|
|
321
277
|
{
|
|
322
278
|
"fileName": "projects/text-editor/src/modules/rich-text-display/rich-text-display.component.ts",
|
|
323
|
-
"line":
|
|
279
|
+
"line": 10,
|
|
324
280
|
"character": 13
|
|
325
281
|
}
|
|
326
282
|
]
|
|
@@ -358,7 +314,7 @@
|
|
|
358
314
|
"sources": [
|
|
359
315
|
{
|
|
360
316
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
361
|
-
"line":
|
|
317
|
+
"line": 241,
|
|
362
318
|
"character": 2
|
|
363
319
|
}
|
|
364
320
|
],
|
|
@@ -488,7 +444,7 @@
|
|
|
488
444
|
"sources": [
|
|
489
445
|
{
|
|
490
446
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
491
|
-
"line":
|
|
447
|
+
"line": 55,
|
|
492
448
|
"character": 9
|
|
493
449
|
}
|
|
494
450
|
],
|
|
@@ -509,7 +465,7 @@
|
|
|
509
465
|
"sources": [
|
|
510
466
|
{
|
|
511
467
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
512
|
-
"line":
|
|
468
|
+
"line": 101,
|
|
513
469
|
"character": 9
|
|
514
470
|
}
|
|
515
471
|
],
|
|
@@ -559,7 +515,7 @@
|
|
|
559
515
|
"sources": [
|
|
560
516
|
{
|
|
561
517
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
562
|
-
"line":
|
|
518
|
+
"line": 108,
|
|
563
519
|
"character": 9
|
|
564
520
|
}
|
|
565
521
|
],
|
|
@@ -605,7 +561,7 @@
|
|
|
605
561
|
"sources": [
|
|
606
562
|
{
|
|
607
563
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
608
|
-
"line":
|
|
564
|
+
"line": 115,
|
|
609
565
|
"character": 9
|
|
610
566
|
}
|
|
611
567
|
],
|
|
@@ -644,7 +600,7 @@
|
|
|
644
600
|
"sources": [
|
|
645
601
|
{
|
|
646
602
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
647
|
-
"line":
|
|
603
|
+
"line": 122,
|
|
648
604
|
"character": 9
|
|
649
605
|
}
|
|
650
606
|
],
|
|
@@ -686,7 +642,7 @@
|
|
|
686
642
|
"sources": [
|
|
687
643
|
{
|
|
688
644
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
689
|
-
"line":
|
|
645
|
+
"line": 148,
|
|
690
646
|
"character": 9
|
|
691
647
|
}
|
|
692
648
|
],
|
|
@@ -726,7 +682,7 @@
|
|
|
726
682
|
"sources": [
|
|
727
683
|
{
|
|
728
684
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
729
|
-
"line":
|
|
685
|
+
"line": 154,
|
|
730
686
|
"character": 9
|
|
731
687
|
}
|
|
732
688
|
],
|
|
@@ -772,7 +728,7 @@
|
|
|
772
728
|
"sources": [
|
|
773
729
|
{
|
|
774
730
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
775
|
-
"line":
|
|
731
|
+
"line": 179,
|
|
776
732
|
"character": 9
|
|
777
733
|
}
|
|
778
734
|
],
|
|
@@ -809,7 +765,7 @@
|
|
|
809
765
|
"sources": [
|
|
810
766
|
{
|
|
811
767
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
812
|
-
"line":
|
|
768
|
+
"line": 62,
|
|
813
769
|
"character": 13
|
|
814
770
|
}
|
|
815
771
|
],
|
|
@@ -894,7 +850,7 @@
|
|
|
894
850
|
"sources": [
|
|
895
851
|
{
|
|
896
852
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
897
|
-
"line":
|
|
853
|
+
"line": 128,
|
|
898
854
|
"character": 13
|
|
899
855
|
}
|
|
900
856
|
],
|
|
@@ -969,7 +925,7 @@
|
|
|
969
925
|
"sources": [
|
|
970
926
|
{
|
|
971
927
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
972
|
-
"line":
|
|
928
|
+
"line": 160,
|
|
973
929
|
"character": 13
|
|
974
930
|
}
|
|
975
931
|
],
|
|
@@ -1030,7 +986,7 @@
|
|
|
1030
986
|
"sources": [
|
|
1031
987
|
{
|
|
1032
988
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1033
|
-
"line":
|
|
989
|
+
"line": 184,
|
|
1034
990
|
"character": 13
|
|
1035
991
|
}
|
|
1036
992
|
],
|
|
@@ -1091,7 +1047,7 @@
|
|
|
1091
1047
|
"sources": [
|
|
1092
1048
|
{
|
|
1093
1049
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1094
|
-
"line":
|
|
1050
|
+
"line": 253,
|
|
1095
1051
|
"character": 9
|
|
1096
1052
|
}
|
|
1097
1053
|
],
|
|
@@ -1128,7 +1084,7 @@
|
|
|
1128
1084
|
"sources": [
|
|
1129
1085
|
{
|
|
1130
1086
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1131
|
-
"line":
|
|
1087
|
+
"line": 257,
|
|
1132
1088
|
"character": 9
|
|
1133
1089
|
}
|
|
1134
1090
|
],
|
|
@@ -1165,7 +1121,7 @@
|
|
|
1165
1121
|
"sources": [
|
|
1166
1122
|
{
|
|
1167
1123
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1168
|
-
"line":
|
|
1124
|
+
"line": 264,
|
|
1169
1125
|
"character": 9
|
|
1170
1126
|
}
|
|
1171
1127
|
],
|
|
@@ -1194,7 +1150,7 @@
|
|
|
1194
1150
|
"sources": [
|
|
1195
1151
|
{
|
|
1196
1152
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1197
|
-
"line":
|
|
1153
|
+
"line": 289,
|
|
1198
1154
|
"character": 9
|
|
1199
1155
|
}
|
|
1200
1156
|
],
|
|
@@ -1271,7 +1227,7 @@
|
|
|
1271
1227
|
"sources": [
|
|
1272
1228
|
{
|
|
1273
1229
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1274
|
-
"line":
|
|
1230
|
+
"line": 296,
|
|
1275
1231
|
"character": 9
|
|
1276
1232
|
}
|
|
1277
1233
|
],
|
|
@@ -1335,7 +1291,7 @@
|
|
|
1335
1291
|
"sources": [
|
|
1336
1292
|
{
|
|
1337
1293
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1338
|
-
"line":
|
|
1294
|
+
"line": 303,
|
|
1339
1295
|
"character": 9
|
|
1340
1296
|
}
|
|
1341
1297
|
],
|
|
@@ -1380,7 +1336,7 @@
|
|
|
1380
1336
|
"sources": [
|
|
1381
1337
|
{
|
|
1382
1338
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1383
|
-
"line":
|
|
1339
|
+
"line": 276,
|
|
1384
1340
|
"character": 9
|
|
1385
1341
|
}
|
|
1386
1342
|
],
|
|
@@ -1464,7 +1420,7 @@
|
|
|
1464
1420
|
"sources": [
|
|
1465
1421
|
{
|
|
1466
1422
|
"fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
|
|
1467
|
-
"line":
|
|
1423
|
+
"line": 50,
|
|
1468
1424
|
"character": 13
|
|
1469
1425
|
}
|
|
1470
1426
|
],
|
|
@@ -1981,7 +1937,7 @@
|
|
|
1981
1937
|
{
|
|
1982
1938
|
"fileName": "rich-text-display-demo.module.ts",
|
|
1983
1939
|
"filePath": "/projects/text-editor/documentation/code-examples/rich-text-display/rich-text-display-demo.module.ts",
|
|
1984
|
-
"rawContents": "import {
|
|
1940
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyRichTextDisplayModule } from '@skyux/text-editor';\n\nimport { RichTextDisplayDemoComponent } from './rich-text-display-demo.component';\n\n@NgModule({\n imports: [CommonModule, SkyRichTextDisplayModule],\n declarations: [RichTextDisplayDemoComponent],\n exports: [RichTextDisplayDemoComponent],\n})\nexport class RichTextDisplayDemoModule {}\n"
|
|
1985
1941
|
},
|
|
1986
1942
|
{
|
|
1987
1943
|
"fileName": "text-editor-demo.component.html",
|
|
@@ -1991,12 +1947,12 @@
|
|
|
1991
1947
|
{
|
|
1992
1948
|
"fileName": "text-editor-demo.component.ts",
|
|
1993
1949
|
"filePath": "/projects/text-editor/documentation/code-examples/text-editor/text-editor-demo.component.ts",
|
|
1994
|
-
"rawContents": "import { Component, OnInit } from '@angular/core';\
|
|
1950
|
+
"rawContents": "import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-text-editor-demo',\n templateUrl: './text-editor-demo.component.html',\n})\nexport class TextEditorDemoComponent implements OnInit {\n public myForm: FormGroup;\n\n private richText = `<font style=\"font-size: 18px\" face=\"Arial\" color=\"#a25353\"><b>Exclusively committed to your impact</b></font><p>Since day one, Blackbaud has been 100% focused on driving impact for social good organizations.</p><p>We equip change agents with <b>cloud software</b>, <i>services</i>, <u>expertise</u>, and <font color=\"#a25353\">data intelligence</font> designed with unmatched insight and supported with unparalleled commitment. Every day, our <b>customers</b> achieve unmatched impact as they advance their missions.</p><ul><li><a href=\"#\">Build a better world</a></li><li><a href=\"#\">Explore our solutions</a></li></ul>`;\n\n constructor(private formBuilder: FormBuilder) {}\n\n public ngOnInit(): void {\n this.myForm = this.formBuilder.group({\n myText: new FormControl(this.richText),\n });\n }\n}\n"
|
|
1995
1951
|
},
|
|
1996
1952
|
{
|
|
1997
1953
|
"fileName": "text-editor-demo.module.ts",
|
|
1998
1954
|
"filePath": "/projects/text-editor/documentation/code-examples/text-editor/text-editor-demo.module.ts",
|
|
1999
|
-
"rawContents": "import {
|
|
1955
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyTextEditorModule } from '@skyux/text-editor';\n\nimport { TextEditorDemoComponent } from './text-editor-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyIdModule,\n SkyTextEditorModule,\n ],\n declarations: [TextEditorDemoComponent],\n exports: [TextEditorDemoComponent],\n})\nexport class TextEditorDemoModule {}\n"
|
|
2000
1956
|
}
|
|
2001
1957
|
]
|
|
2002
1958
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-display.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.component.ts","../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"rich-text-display.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.component.ts","../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAY,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;;;;AAM/F,MAAM,OAAO,2BAA2B;IAqBtC,YACU,SAAuB,EACvB,mBAA+C;QAD/C,cAAS,GAAT,SAAS,CAAc;QACvB,wBAAmB,GAAnB,mBAAmB,CAA4B;QANlD,kBAAa,GAAa,EAAE,CAAC;QAE5B,cAAS,GAAG,EAAE,CAAC;IAKpB,CAAC;IAvBJ;;OAEG;IACH,IACW,QAAQ,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzD,0BAA0B;QAC1B,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YAEzB,oDAAoD;YACpD,wDAAwD;YACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACtE;IACH,CAAC;;yHAfU,2BAA2B;6GAA3B,2BAA2B,+FCTxC,qFACA;4FDQa,2BAA2B;kBAJvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,WAAW,EAAE,oCAAoC;iBAClD;4IAMY,QAAQ;sBADlB,KAAK","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { SkyTextSanitizationService } from '../text-editor/services/text-sanitization.service';\n\n@Component({\n selector: 'sky-rich-text-display',\n templateUrl: './rich-text-display.component.html',\n})\nexport class SkyRichTextDisplayComponent {\n /**\n * Specifies the rich text to display.\n */\n @Input()\n public set richText(value: string) {\n const cleaned = this.sanitizationService.sanitize(value);\n /* istanbul ignore else */\n if (cleaned !== this._richText) {\n this._richText = cleaned;\n\n // Text has already been sanitized with DOMPurifier.\n // Tell Angular to bypass its own internal sanitization.\n this.sanitizedText = this.sanitizer.bypassSecurityTrustHtml(cleaned);\n }\n }\n\n public sanitizedText: SafeHtml = '';\n\n private _richText = '';\n\n constructor(\n private sanitizer: DomSanitizer,\n private sanitizationService: SkyTextSanitizationService\n ) {}\n}\n","<span class=\"sky-rich-text-display-text\" [innerHTML]=\"sanitizedText\"> </span>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-display.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"rich-text-display.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/rich-text-display/rich-text-display.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;;AAO5E,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,iBAFpB,2BAA2B,aAFhC,YAAY,aACZ,2BAA2B;uHAG1B,wBAAwB,YAJ1B,CAAC,YAAY,CAAC;4FAIZ,wBAAwB;kBALpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,YAAY,EAAE,CAAC,2BAA2B,CAAC;iBAC5C","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyRichTextDisplayComponent } from './rich-text-display.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [SkyRichTextDisplayComponent],\n declarations: [SkyRichTextDisplayComponent],\n})\nexport class SkyRichTextDisplayModule {}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* To update this file, simply rerun the command.
|
|
6
6
|
*/
|
|
7
7
|
import { NgModule } from '@angular/core';
|
|
8
|
-
import {
|
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
const RESOURCES = {
|
|
11
11
|
'EN-US': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-text-editor-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/shared/sky-text-editor-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sky-text-editor-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/text-editor/src/lib/modules/shared/sky-text-editor-resources.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-text-editor' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_text_editor_format_menu_action_bold_label: { message: 'Bold' },\n skyux_text_editor_format_menu_action_bold_key_shortcut: {\n message: 'Ctrl+B',\n },\n skyux_text_editor_format_menu_action_italic_label: { message: 'Italic' },\n skyux_text_editor_format_menu_action_italic_key_shortcut: {\n message: 'Ctrl+I',\n },\n skyux_text_editor_format_menu_action_underline_label: {\n message: 'Underline',\n },\n skyux_text_editor_format_menu_action_underline_key_shortcut: {\n message: 'Ctrl+U',\n },\n skyux_text_editor_format_menu_action_strikethrough_label: {\n message: 'Strikethrough',\n },\n skyux_text_editor_format_menu_action_clear_formatting_label: {\n message: 'Clear formatting',\n },\n skyux_text_editor_edit_menu_action_undo_label: { message: 'Undo' },\n skyux_text_editor_edit_menu_action_undo_key_shortcut: { message: 'Ctrl+Z' },\n skyux_text_editor_edit_menu_action_redo_label: { message: 'Redo' },\n skyux_text_editor_edit_menu_action_redo_key_shortcut: { message: 'Ctrl+Y' },\n skyux_text_editor_edit_menu_action_cut_label: { message: 'Cut' },\n skyux_text_editor_edit_menu_action_cut_key_shortcut: { message: 'Ctrl+X' },\n skyux_text_editor_edit_menu_action_copy_label: { message: 'Copy' },\n skyux_text_editor_edit_menu_action_copy_key_shortcut: { message: 'Ctrl+C' },\n skyux_text_editor_edit_menu_action_paste_label: { message: 'Paste' },\n skyux_text_editor_edit_menu_action_paste_key_shortcut: {\n message: 'Ctrl+V',\n },\n skyux_text_editor_edit_menu_action_select_all_label: {\n message: 'Select all',\n },\n skyux_text_editor_edit_menu_action_select_all_key_shortcut: {\n message: 'Ctrl+A',\n },\n skyux_text_editor_menubar_dropdown_button_edit_label: { message: 'Edit' },\n skyux_text_editor_menubar_dropdown_button_format_label: {\n message: 'Format',\n },\n skyux_text_editor_menubar_dropdown_button_insert_label: {\n message: 'Insert merge field',\n },\n skyux_text_editor_url_modal_header_label: { message: 'Create link' },\n skyux_text_editor_url_modal_url_label: {\n message: 'Enter a URL to link to:',\n },\n skyux_text_editor_url_modal_open_label: {\n message: 'Where should it open?',\n },\n skyux_text_editor_url_modal_current_option_label: {\n message: 'Current window',\n },\n skyux_text_editor_url_modal_new_option_label: { message: 'New window' },\n skyux_text_editor_url_modal_email_label: { message: 'Email address' },\n skyux_text_editor_url_modal_subject_label: { message: 'Subject line' },\n skyux_text_editor_url_modal_save_button_label: { message: 'Save' },\n skyux_text_editor_url_modal_cancel_button_label: { message: 'Cancel' },\n },\n};\n\nexport class SkyTextEditorResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyTextEditorResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyTextEditorResourcesModule {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-state-defaults.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/defaults/style-state-defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style-state-defaults.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/defaults/style-state-defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IAC3D,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK;IACjC,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,KAAK;CACjB,CAAC","sourcesContent":["import { SkyTextEditorStyleState } from '../types/style-state';\n\nimport { FONT_LIST_DEFAULTS } from './font-list-defaults';\n\n/**\n * @internal\n */\nexport const STYLE_STATE_DEFAULTS: SkyTextEditorStyleState = {\n backColor: 'rgba(0, 0, 0, 0)',\n fontColor: '#000',\n fontSize: 14,\n font: FONT_LIST_DEFAULTS[0].value,\n boldState: false,\n italicState: false,\n underlineState: false,\n linkState: false,\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
2
|
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
3
3
|
import { SkyDropdownMessageType } from '@skyux/popovers';
|
|
4
|
-
import {
|
|
4
|
+
import { Subject, forkJoin } from 'rxjs';
|
|
5
5
|
import { take, takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { SkyTextEditorAdapterService } from '../services/text-editor-adapter.service';
|
|
7
6
|
import { SkyFormsUtility } from '../../shared/forms-utility';
|
|
7
|
+
import { SkyTextEditorAdapterService } from '../services/text-editor-adapter.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../services/text-editor-adapter.service";
|
|
10
10
|
import * as i2 from "@skyux/i18n";
|
|
@@ -163,7 +163,7 @@ export class SkyTextEditorMenubarComponent {
|
|
|
163
163
|
this.mergeFieldDropdownStream.next({ type: SkyDropdownMessageType.Close });
|
|
164
164
|
}
|
|
165
165
|
clearFormat() {
|
|
166
|
-
|
|
166
|
+
const currentSelection = this.adapterService.getCurrentSelection(this.editorId);
|
|
167
167
|
/* istanbul ignore else */
|
|
168
168
|
if (currentSelection.rangeCount > 0 &&
|
|
169
169
|
currentSelection.getRangeAt(0).toString().length <= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor-menubar.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/menubar/text-editor-menubar.component.ts","../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/menubar/text-editor-menubar.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyDropdownMessage, SkyDropdownMessageType } from '@skyux/popovers';\n\nimport { forkJoin, Subject } from 'rxjs';\n\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyTextEditorAdapterService } from '../services/text-editor-adapter.service';\n\nimport { SkyTextEditorMenuType } from '../types/menu-type';\n\nimport { SkyTextEditorMergeField } from '../types/text-editor-merge-field';\n\nimport { SkyFormsUtility } from '../../shared/forms-utility';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-editor-menubar',\n templateUrl: './text-editor-menubar.component.html',\n styleUrls: ['./text-editor-menubar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTextEditorMenubarComponent implements OnDestroy, OnInit {\n @Input()\n public editorFocusStream = new Subject();\n\n @Input()\n public editorId: string;\n\n @Input()\n public menus: SkyTextEditorMenuType[] = [];\n\n @Input()\n public mergeFields: SkyTextEditorMergeField[] = [];\n\n @Input()\n public set disabled(value: boolean) {\n const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);\n if (coercedValue !== this.disabled) {\n this._disabled = coercedValue;\n this.changeDetector.markForCheck();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n private _disabled: boolean = false;\n\n public editDropdownStream = new Subject<SkyDropdownMessage>();\n\n public editItems: {\n function?: () => void;\n isDivider?: boolean;\n label?: string;\n keyShortcut?: string;\n }[];\n\n public formatDropdownStream = new Subject<SkyDropdownMessage>();\n\n public formatItems: {\n function?: () => void;\n isDivider?: boolean;\n label?: string;\n keyShortcut?: string;\n }[];\n\n public mergeFieldDropdownStream = new Subject<SkyDropdownMessage>();\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private adapterService: SkyTextEditorAdapterService,\n private changeDetector: ChangeDetectorRef,\n private resources: SkyLibResourcesService\n ) {}\n\n public ngOnInit(): void {\n this.editorFocusStream.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.closeDropdowns();\n });\n\n forkJoin([\n // Format menu strings.\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_bold_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_bold_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_italic_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_italic_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_underline_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_underline_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_strikethrough_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_clear_formatting_label'\n ),\n\n // Edit menu string - start at index 8.\n this.resources.getString('skyux_text_editor_edit_menu_action_undo_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_undo_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_redo_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_redo_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_cut_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_cut_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_copy_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_copy_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_paste_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_paste_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_select_all_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_select_all_key_shortcut'\n ),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.formatItems = [\n {\n function: () => this.execCommand('bold'),\n label: resources[0],\n keyShortcut: resources[1],\n },\n {\n function: () => this.execCommand('italic'),\n label: resources[2],\n keyShortcut: resources[3],\n },\n {\n function: () => this.execCommand('underline'),\n label: resources[4],\n keyShortcut: resources[5],\n },\n {\n function: () => this.execCommand('strikethrough'),\n label: resources[6],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.clearFormat(),\n label: resources[7],\n },\n ];\n this.editItems = [\n {\n function: () => this.execCommand('undo'),\n label: resources[8],\n keyShortcut: resources[9],\n },\n {\n function: () => this.execCommand('redo'),\n label: resources[10],\n keyShortcut: resources[11],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.execCommand('cut'),\n label: resources[12],\n keyShortcut: resources[13],\n },\n {\n function: () => this.execCommand('copy'),\n label: resources[14],\n keyShortcut: resources[15],\n },\n {\n function: () => this.execCommand('paste'),\n label: resources[16],\n keyShortcut: resources[17],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.execCommand('selectAll'),\n label: resources[18],\n keyShortcut: resources[19],\n },\n ];\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public execCommand(command: string, value: any = ''): void {\n this.adapterService.execCommand(this.editorId, {\n command: command,\n value: value,\n });\n }\n\n public insertMergeField(field: SkyTextEditorMergeField): void {\n this.execCommand(\n 'insertHTML',\n '<img style=\"display: inline; cursor: grab;\" data-fieldid=\"' +\n field.id +\n '\" data-fielddisplay=\"' +\n field.name +\n '\" src=\"' +\n (field.previewImageUrl ||\n this.adapterService.getMergeFieldDataURI(field.name)) +\n '\">'\n );\n }\n\n private closeDropdowns(): void {\n this.editDropdownStream.next({ type: SkyDropdownMessageType.Close });\n this.formatDropdownStream.next({ type: SkyDropdownMessageType.Close });\n this.mergeFieldDropdownStream.next({ type: SkyDropdownMessageType.Close });\n }\n\n private clearFormat(): void {\n let currentSelection = this.adapterService.getCurrentSelection(\n this.editorId\n );\n /* istanbul ignore else */\n if (\n currentSelection.rangeCount > 0 &&\n currentSelection.getRangeAt(0).toString().length <= 0\n ) {\n this.execCommand('selectAll');\n }\n this.execCommand('removeFormat');\n }\n}\n","<sky-toolbar-item\n *ngFor=\"let menu of menus\"\n class=\"sky-text-editor-menu\"\n [ngClass]=\"'sky-text-editor-menu-' + menu\"\n>\n <ng-container [ngSwitch]=\"menu\">\n <ng-container *ngSwitchCase=\"'edit'\">\n <sky-dropdown\n label=\"Edit menu\"\n [disabled]=\"disabled\"\n [messageStream]=\"editDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_edit_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let editItem of editItems\">\n <button\n *ngIf=\"!editItem.isDivider\"\n type=\"button\"\n (click)=\"editItem.function()\"\n >\n {{ editItem.label }}\n <div\n *ngIf=\"editItem.keyShortcut\"\n class=\"sky-text-editor-menu-key-shortcut\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{ editItem.keyShortcut }}\n </div>\n </button>\n <div\n *ngIf=\"editItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n ></div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'format'\">\n <sky-dropdown\n label=\"Format menu\"\n [disabled]=\"disabled\"\n [messageStream]=\"formatDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_format_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let formatItem of formatItems\">\n <button\n *ngIf=\"!formatItem.isDivider\"\n type=\"button\"\n (click)=\"formatItem.function()\"\n >\n {{ formatItem.label }}\n <div\n *ngIf=\"formatItem.keyShortcut\"\n class=\"sky-text-editor-menu-key-shortcut\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{ formatItem.keyShortcut }}\n </div>\n </button>\n <div\n *ngIf=\"formatItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n ></div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'merge-field'\">\n <sky-dropdown\n *ngIf=\"mergeFields && mergeFields.length > 0\"\n label=\"Insert merge field\"\n [disabled]=\"disabled\"\n [messageStream]=\"mergeFieldDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_insert_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let mergeField of mergeFields\">\n <button type=\"button\" (click)=\"insertMergeField(mergeField)\">\n {{ mergeField.name }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n </ng-container>\n</sky-toolbar-item>\n"]}
|
|
1
|
+
{"version":3,"file":"text-editor-menubar.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/menubar/text-editor-menubar.component.ts","../../../../../../../../../libs/components/text-editor/src/lib/modules/text-editor/menubar/text-editor-menubar.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyDropdownMessage, SkyDropdownMessageType } from '@skyux/popovers';\n\nimport { Subject, forkJoin } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyFormsUtility } from '../../shared/forms-utility';\nimport { SkyTextEditorAdapterService } from '../services/text-editor-adapter.service';\nimport { SkyTextEditorMenuType } from '../types/menu-type';\nimport { SkyTextEditorMergeField } from '../types/text-editor-merge-field';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-editor-menubar',\n templateUrl: './text-editor-menubar.component.html',\n styleUrls: ['./text-editor-menubar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTextEditorMenubarComponent implements OnDestroy, OnInit {\n @Input()\n public editorFocusStream = new Subject();\n\n @Input()\n public editorId: string;\n\n @Input()\n public menus: SkyTextEditorMenuType[] = [];\n\n @Input()\n public mergeFields: SkyTextEditorMergeField[] = [];\n\n @Input()\n public set disabled(value: boolean) {\n const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);\n if (coercedValue !== this.disabled) {\n this._disabled = coercedValue;\n this.changeDetector.markForCheck();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n private _disabled = false;\n\n public editDropdownStream = new Subject<SkyDropdownMessage>();\n\n public editItems: {\n function?: () => void;\n isDivider?: boolean;\n label?: string;\n keyShortcut?: string;\n }[];\n\n public formatDropdownStream = new Subject<SkyDropdownMessage>();\n\n public formatItems: {\n function?: () => void;\n isDivider?: boolean;\n label?: string;\n keyShortcut?: string;\n }[];\n\n public mergeFieldDropdownStream = new Subject<SkyDropdownMessage>();\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private adapterService: SkyTextEditorAdapterService,\n private changeDetector: ChangeDetectorRef,\n private resources: SkyLibResourcesService\n ) {}\n\n public ngOnInit(): void {\n this.editorFocusStream.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.closeDropdowns();\n });\n\n forkJoin([\n // Format menu strings.\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_bold_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_bold_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_italic_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_italic_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_underline_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_underline_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_strikethrough_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_format_menu_action_clear_formatting_label'\n ),\n\n // Edit menu string - start at index 8.\n this.resources.getString('skyux_text_editor_edit_menu_action_undo_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_undo_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_redo_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_redo_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_cut_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_cut_key_shortcut'\n ),\n this.resources.getString('skyux_text_editor_edit_menu_action_copy_label'),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_copy_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_paste_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_paste_key_shortcut'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_select_all_label'\n ),\n this.resources.getString(\n 'skyux_text_editor_edit_menu_action_select_all_key_shortcut'\n ),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.formatItems = [\n {\n function: () => this.execCommand('bold'),\n label: resources[0],\n keyShortcut: resources[1],\n },\n {\n function: () => this.execCommand('italic'),\n label: resources[2],\n keyShortcut: resources[3],\n },\n {\n function: () => this.execCommand('underline'),\n label: resources[4],\n keyShortcut: resources[5],\n },\n {\n function: () => this.execCommand('strikethrough'),\n label: resources[6],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.clearFormat(),\n label: resources[7],\n },\n ];\n this.editItems = [\n {\n function: () => this.execCommand('undo'),\n label: resources[8],\n keyShortcut: resources[9],\n },\n {\n function: () => this.execCommand('redo'),\n label: resources[10],\n keyShortcut: resources[11],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.execCommand('cut'),\n label: resources[12],\n keyShortcut: resources[13],\n },\n {\n function: () => this.execCommand('copy'),\n label: resources[14],\n keyShortcut: resources[15],\n },\n {\n function: () => this.execCommand('paste'),\n label: resources[16],\n keyShortcut: resources[17],\n },\n {\n isDivider: true,\n },\n {\n function: () => this.execCommand('selectAll'),\n label: resources[18],\n keyShortcut: resources[19],\n },\n ];\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public execCommand(command: string, value: any = ''): void {\n this.adapterService.execCommand(this.editorId, {\n command: command,\n value: value,\n });\n }\n\n public insertMergeField(field: SkyTextEditorMergeField): void {\n this.execCommand(\n 'insertHTML',\n '<img style=\"display: inline; cursor: grab;\" data-fieldid=\"' +\n field.id +\n '\" data-fielddisplay=\"' +\n field.name +\n '\" src=\"' +\n (field.previewImageUrl ||\n this.adapterService.getMergeFieldDataURI(field.name)) +\n '\">'\n );\n }\n\n private closeDropdowns(): void {\n this.editDropdownStream.next({ type: SkyDropdownMessageType.Close });\n this.formatDropdownStream.next({ type: SkyDropdownMessageType.Close });\n this.mergeFieldDropdownStream.next({ type: SkyDropdownMessageType.Close });\n }\n\n private clearFormat(): void {\n const currentSelection = this.adapterService.getCurrentSelection(\n this.editorId\n );\n /* istanbul ignore else */\n if (\n currentSelection.rangeCount > 0 &&\n currentSelection.getRangeAt(0).toString().length <= 0\n ) {\n this.execCommand('selectAll');\n }\n this.execCommand('removeFormat');\n }\n}\n","<sky-toolbar-item\n *ngFor=\"let menu of menus\"\n class=\"sky-text-editor-menu\"\n [ngClass]=\"'sky-text-editor-menu-' + menu\"\n>\n <ng-container [ngSwitch]=\"menu\">\n <ng-container *ngSwitchCase=\"'edit'\">\n <sky-dropdown\n label=\"Edit menu\"\n [disabled]=\"disabled\"\n [messageStream]=\"editDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_edit_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let editItem of editItems\">\n <button\n *ngIf=\"!editItem.isDivider\"\n type=\"button\"\n (click)=\"editItem.function()\"\n >\n {{ editItem.label }}\n <div\n *ngIf=\"editItem.keyShortcut\"\n class=\"sky-text-editor-menu-key-shortcut\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{ editItem.keyShortcut }}\n </div>\n </button>\n <div\n *ngIf=\"editItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n ></div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'format'\">\n <sky-dropdown\n label=\"Format menu\"\n [disabled]=\"disabled\"\n [messageStream]=\"formatDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_format_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let formatItem of formatItems\">\n <button\n *ngIf=\"!formatItem.isDivider\"\n type=\"button\"\n (click)=\"formatItem.function()\"\n >\n {{ formatItem.label }}\n <div\n *ngIf=\"formatItem.keyShortcut\"\n class=\"sky-text-editor-menu-key-shortcut\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{ formatItem.keyShortcut }}\n </div>\n </button>\n <div\n *ngIf=\"formatItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n ></div>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'merge-field'\">\n <sky-dropdown\n *ngIf=\"mergeFields && mergeFields.length > 0\"\n label=\"Insert merge field\"\n [disabled]=\"disabled\"\n [messageStream]=\"mergeFieldDropdownStream\"\n >\n <sky-dropdown-button>\n {{\n 'skyux_text_editor_menubar_dropdown_button_insert_label'\n | skyLibResources\n }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let mergeField of mergeFields\">\n <button type=\"button\" (click)=\"insertMergeField(mergeField)\">\n {{ mergeField.name }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n </ng-container>\n</sky-toolbar-item>\n"]}
|