@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.
Files changed (26) hide show
  1. package/bundles/skyux-text-editor.umd.js +34 -33
  2. package/documentation.json +32 -76
  3. package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js.map +1 -1
  4. package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js.map +1 -1
  5. package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js +1 -1
  6. package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js.map +1 -1
  7. package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js.map +1 -1
  8. package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js +4 -4
  9. package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js.map +1 -1
  10. package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js +6 -5
  11. package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js.map +1 -1
  12. package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js +1 -1
  13. package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js.map +1 -1
  14. package/esm2015/lib/modules/text-editor/text-editor.component.js +8 -8
  15. package/esm2015/lib/modules/text-editor/text-editor.component.js.map +1 -1
  16. package/esm2015/lib/modules/text-editor/text-editor.module.js +3 -3
  17. package/esm2015/lib/modules/text-editor/text-editor.module.js.map +1 -1
  18. package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js +4 -4
  19. package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js.map +1 -1
  20. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js.map +1 -1
  21. package/fesm2015/skyux-text-editor.js +105 -104
  22. package/fesm2015/skyux-text-editor.js.map +1 -1
  23. package/lib/modules/text-editor/services/text-editor-adapter.service.d.ts +1 -1
  24. package/lib/modules/text-editor/text-editor.component.d.ts +1 -1
  25. package/lib/modules/text-editor/toolbar/text-editor-toolbar.component.d.ts +2 -2
  26. 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/modals'), require('@skyux/i18n'), require('@skyux/indicators'), require('@skyux/layout'), 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/modals', '@skyux/i18n', '@skyux/indicators', '@skyux/layout', '@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.i1$1, global.i2, global.i7, global.i3$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, i1$1, i2, i7, i3$1, i4, i3$2, i6, rxjs, operators, validation) { 'use strict';
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 (!!node.getAttribute('target')) {
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(), node = void 0, lastNode = void 0;
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
- /* istanbul ignore next */
1837
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1837
1838
  this._onTouched = function () { };
1838
- /* istanbul ignore next */
1839
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
1839
1840
  this._onChange = function () { };
1840
1841
  this.ngControl.valueAccessor = this;
1841
1842
  }
@@ -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": 12,
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": 70,
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": 32,
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": 28,
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": 16,
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": 11,
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": 256,
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": 70,
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": 116,
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": 123,
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": 130,
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": 137,
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": 163,
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": 169,
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": 194,
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": 77,
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": 143,
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": 175,
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": 199,
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": 268,
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": 272,
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": 279,
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": 304,
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": 311,
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": 318,
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": 291,
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": 65,
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 { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\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"
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';\n\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"
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 { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SkyIdModule } from '@skyux/core';\n\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"
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;AAEjD,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,GAAW,EAAE,CAAC;IAK5B,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,+FCVxC,qFACA;4FDSa,2BAA2B;kBAJvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,WAAW,EAAE,oCAAoC;iBAClD;4IAMY,QAAQ;sBADlB,KAAK","sourcesContent":["import { Component, Input } from '@angular/core';\n\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: string = '';\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
+ {"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;AAE/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';\n\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"]}
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 { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, } from '@skyux/i18n';
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":"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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 */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS,\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
+ {"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;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,+CAA+C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACpE,sDAAsD,EAAE;YACtD,OAAO,EAAE,QAAQ;SAClB;QACD,iDAAiD,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACxE,wDAAwD,EAAE;YACxD,OAAO,EAAE,QAAQ;SAClB;QACD,oDAAoD,EAAE;YACpD,OAAO,EAAE,WAAW;SACrB;QACD,2DAA2D,EAAE;YAC3D,OAAO,EAAE,QAAQ;SAClB;QACD,wDAAwD,EAAE;YACxD,OAAO,EAAE,eAAe;SACzB;QACD,2DAA2D,EAAE;YAC3D,OAAO,EAAE,kBAAkB;SAC5B;QACD,6CAA6C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAClE,oDAAoD,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC3E,6CAA6C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAClE,oDAAoD,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC3E,4CAA4C,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAChE,mDAAmD,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC1E,6CAA6C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAClE,oDAAoD,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC3E,8CAA8C,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QACpE,qDAAqD,EAAE;YACrD,OAAO,EAAE,QAAQ;SAClB;QACD,mDAAmD,EAAE;YACnD,OAAO,EAAE,YAAY;SACtB;QACD,0DAA0D,EAAE;YAC1D,OAAO,EAAE,QAAQ;SAClB;QACD,oDAAoD,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACzE,sDAAsD,EAAE;YACtD,OAAO,EAAE,QAAQ;SAClB;QACD,sDAAsD,EAAE;YACtD,OAAO,EAAE,oBAAoB;SAC9B;QACD,wCAAwC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QACpE,qCAAqC,EAAE;YACrC,OAAO,EAAE,yBAAyB;SACnC;QACD,sCAAsC,EAAE;YACtC,OAAO,EAAE,uBAAuB;SACjC;QACD,gDAAgD,EAAE;YAChD,OAAO,EAAE,gBAAgB;SAC1B;QACD,4CAA4C,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QACvE,uCAAuC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QACrE,yCAAyC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QACtE,6CAA6C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAClE,+CAA+C,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KACvE;CACF,CAAC;AAEF,MAAM,OAAO,8BAA8B;IAClC,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,4BAA4B;;0HAA5B,4BAA4B;2HAA5B,4BAA4B,YAT7B,aAAa;2HASZ,4BAA4B,aAR5B;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,8BAA8B;YACxC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,4BAA4B;kBAVxC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,8BAA8B;4BACxC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","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":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;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 { FONT_LIST_DEFAULTS } from './font-list-defaults';\n\nimport { SkyTextEditorStyleState } from '../types/style-state';\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
+ {"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 { ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, } from '@angular/core';
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 { forkJoin, Subject } from 'rxjs';
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
- let currentSelection = this.adapterService.getCurrentSelection(this.editorId);
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"]}