@skyux/text-editor 5.0.1 → 5.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +7 -1
  2. package/bundles/skyux-text-editor.umd.js +370 -223
  3. package/documentation.json +316 -302
  4. package/esm2015/index.js +15 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js +39 -0
  7. package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js.map +1 -0
  8. package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js +18 -0
  9. package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js.map +1 -0
  10. package/esm2015/lib/modules/shared/forms-utility.js +10 -0
  11. package/esm2015/lib/modules/shared/forms-utility.js.map +1 -0
  12. package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js +106 -0
  13. package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js.map +1 -0
  14. package/esm2015/lib/modules/text-editor/defaults/font-list-defaults.js +42 -0
  15. package/esm2015/lib/modules/text-editor/defaults/font-list-defaults.js.map +1 -0
  16. package/esm2015/lib/modules/text-editor/defaults/font-size-list-defaults.js +7 -0
  17. package/esm2015/lib/modules/text-editor/defaults/font-size-list-defaults.js.map +1 -0
  18. package/esm2015/lib/modules/text-editor/defaults/menu-defaults.js +5 -0
  19. package/esm2015/lib/modules/text-editor/defaults/menu-defaults.js.map +1 -0
  20. package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js +15 -0
  21. package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js.map +1 -0
  22. package/esm2015/lib/modules/text-editor/defaults/toolbar-action-defaults.js +12 -0
  23. package/esm2015/lib/modules/text-editor/defaults/toolbar-action-defaults.js.map +1 -0
  24. package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js +196 -0
  25. package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js.map +1 -0
  26. package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js +473 -0
  27. package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js.map +1 -0
  28. package/esm2015/lib/modules/text-editor/services/text-editor-selection.service.js +80 -0
  29. package/esm2015/lib/modules/text-editor/services/text-editor-selection.service.js.map +1 -0
  30. package/esm2015/lib/modules/text-editor/services/text-editor.service.js +61 -0
  31. package/esm2015/lib/modules/text-editor/services/text-editor.service.js.map +1 -0
  32. package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js +38 -0
  33. package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js.map +1 -0
  34. package/esm2015/lib/modules/text-editor/text-editor.component.js +322 -0
  35. package/esm2015/lib/modules/text-editor/text-editor.component.js.map +1 -0
  36. package/esm2015/lib/modules/text-editor/text-editor.module.js +99 -0
  37. package/esm2015/lib/modules/text-editor/text-editor.module.js.map +1 -0
  38. package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js +175 -0
  39. package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js.map +1 -0
  40. package/esm2015/lib/modules/text-editor/types/editor-command.js +2 -0
  41. package/esm2015/lib/modules/text-editor/types/editor-command.js.map +1 -0
  42. package/esm2015/lib/modules/text-editor/types/editor-setting.js +2 -0
  43. package/esm2015/lib/modules/text-editor/types/editor-setting.js.map +1 -0
  44. package/esm2015/lib/modules/text-editor/types/font-state.js +2 -0
  45. package/esm2015/lib/modules/text-editor/types/font-state.js.map +1 -0
  46. package/esm2015/lib/modules/text-editor/types/menu-type.js +2 -0
  47. package/esm2015/lib/modules/text-editor/types/menu-type.js.map +1 -0
  48. package/esm2015/lib/modules/text-editor/types/style-state.js +2 -0
  49. package/esm2015/lib/modules/text-editor/types/style-state.js.map +1 -0
  50. package/esm2015/lib/modules/text-editor/types/text-editor-merge-field.js +2 -0
  51. package/esm2015/lib/modules/text-editor/types/text-editor-merge-field.js.map +1 -0
  52. package/esm2015/lib/modules/text-editor/types/toolbar-action-type.js +2 -0
  53. package/esm2015/lib/modules/text-editor/types/toolbar-action-type.js.map +1 -0
  54. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-context.js +6 -0
  55. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-context.js.map +1 -0
  56. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-result.js +2 -0
  57. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-result.js.map +1 -0
  58. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js +121 -0
  59. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js.map +1 -0
  60. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-target.js +9 -0
  61. package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-target.js.map +1 -0
  62. package/esm2015/skyux-text-editor.js +2 -2
  63. package/esm2015/skyux-text-editor.js.map +1 -0
  64. package/fesm2015/skyux-text-editor.js +411 -265
  65. package/fesm2015/skyux-text-editor.js.map +1 -1
  66. package/index.d.ts +12 -0
  67. package/{modules → lib/modules}/rich-text-display/rich-text-display.component.d.ts +0 -0
  68. package/{modules → lib/modules}/rich-text-display/rich-text-display.module.d.ts +0 -0
  69. package/{modules → lib/modules}/shared/forms-utility.d.ts +0 -0
  70. package/{modules → lib/modules}/shared/sky-text-editor-resources.module.d.ts +0 -0
  71. package/{modules → lib/modules}/text-editor/defaults/font-list-defaults.d.ts +0 -0
  72. package/{modules → lib/modules}/text-editor/defaults/font-size-list-defaults.d.ts +0 -0
  73. package/{modules → lib/modules}/text-editor/defaults/menu-defaults.d.ts +0 -0
  74. package/{modules → lib/modules}/text-editor/defaults/style-state-defaults.d.ts +0 -0
  75. package/{modules → lib/modules}/text-editor/defaults/toolbar-action-defaults.d.ts +0 -0
  76. package/{modules → lib/modules}/text-editor/menubar/text-editor-menubar.component.d.ts +0 -0
  77. package/{modules → lib/modules}/text-editor/services/text-editor-adapter.service.d.ts +0 -0
  78. package/{modules → lib/modules}/text-editor/services/text-editor-selection.service.d.ts +0 -0
  79. package/{modules → lib/modules}/text-editor/services/text-editor.service.d.ts +8 -0
  80. package/{modules → lib/modules}/text-editor/services/text-sanitization.service.d.ts +0 -0
  81. package/{modules → lib/modules}/text-editor/text-editor.component.d.ts +24 -10
  82. package/{modules → lib/modules}/text-editor/text-editor.module.d.ts +0 -0
  83. package/{modules → lib/modules}/text-editor/toolbar/text-editor-toolbar.component.d.ts +0 -0
  84. package/{modules → lib/modules}/text-editor/types/editor-command.d.ts +0 -0
  85. package/{modules → lib/modules}/text-editor/types/editor-setting.d.ts +6 -2
  86. package/{modules → lib/modules}/text-editor/types/font-state.d.ts +0 -0
  87. package/{modules → lib/modules}/text-editor/types/menu-type.d.ts +0 -0
  88. package/{modules → lib/modules}/text-editor/types/style-state.d.ts +0 -0
  89. package/{modules → lib/modules}/text-editor/types/text-editor-merge-field.d.ts +0 -0
  90. package/{modules → lib/modules}/text-editor/types/toolbar-action-type.d.ts +0 -0
  91. package/{modules → lib/modules}/text-editor/url-modal/text-editor-url-modal-context.d.ts +0 -0
  92. package/{modules → lib/modules}/text-editor/url-modal/text-editor-url-modal-result.d.ts +0 -0
  93. package/{modules → lib/modules}/text-editor/url-modal/text-editor-url-modal.component.d.ts +0 -0
  94. package/{modules → lib/modules}/text-editor/url-modal/text-editor-url-target.d.ts +0 -0
  95. package/package.json +13 -13
  96. package/skyux-text-editor.d.ts +1 -1
  97. package/LICENSE +0 -21
  98. package/bundles/skyux-text-editor.umd.js.map +0 -1
  99. package/esm2015/modules/rich-text-display/rich-text-display.component.js +0 -37
  100. package/esm2015/modules/rich-text-display/rich-text-display.module.js +0 -26
  101. package/esm2015/modules/shared/forms-utility.js +0 -10
  102. package/esm2015/modules/shared/sky-text-editor-resources.module.js +0 -41
  103. package/esm2015/modules/text-editor/defaults/font-list-defaults.js +0 -42
  104. package/esm2015/modules/text-editor/defaults/font-size-list-defaults.js +0 -5
  105. package/esm2015/modules/text-editor/defaults/menu-defaults.js +0 -8
  106. package/esm2015/modules/text-editor/defaults/style-state-defaults.js +0 -15
  107. package/esm2015/modules/text-editor/defaults/toolbar-action-defaults.js +0 -12
  108. package/esm2015/modules/text-editor/menubar/text-editor-menubar.component.js +0 -189
  109. package/esm2015/modules/text-editor/services/text-editor-adapter.service.js +0 -451
  110. package/esm2015/modules/text-editor/services/text-editor-selection.service.js +0 -76
  111. package/esm2015/modules/text-editor/services/text-editor.service.js +0 -49
  112. package/esm2015/modules/text-editor/services/text-sanitization.service.js +0 -38
  113. package/esm2015/modules/text-editor/text-editor.component.js +0 -282
  114. package/esm2015/modules/text-editor/text-editor.module.js +0 -101
  115. package/esm2015/modules/text-editor/toolbar/text-editor-toolbar.component.js +0 -163
  116. package/esm2015/modules/text-editor/types/editor-command.js +0 -2
  117. package/esm2015/modules/text-editor/types/editor-setting.js +0 -2
  118. package/esm2015/modules/text-editor/types/font-state.js +0 -2
  119. package/esm2015/modules/text-editor/types/menu-type.js +0 -2
  120. package/esm2015/modules/text-editor/types/style-state.js +0 -2
  121. package/esm2015/modules/text-editor/types/text-editor-merge-field.js +0 -2
  122. package/esm2015/modules/text-editor/types/toolbar-action-type.js +0 -2
  123. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-context.js +0 -6
  124. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-result.js +0 -2
  125. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal.component.js +0 -112
  126. package/esm2015/modules/text-editor/url-modal/text-editor-url-target.js +0 -9
  127. package/esm2015/public-api.js +0 -15
  128. package/public-api.d.ts +0 -12
@@ -2,7 +2,7 @@
2
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
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
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, i8, i0, i1, createDOMPurify, i5, i6$1, i3, i4$1, i1$1, i2, i7, i3$1, i4, i3$2, i6, rxjs, operators, validation) { 'use strict';
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';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -24,11 +24,11 @@
24
24
  return Object.freeze(n);
25
25
  }
26
26
 
27
- var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
27
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
28
28
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
29
29
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
30
30
  var createDOMPurify__default = /*#__PURE__*/_interopDefaultLegacy(createDOMPurify);
31
- var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
31
+ var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
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);
@@ -67,12 +67,12 @@
67
67
  };
68
68
  return SkyTextSanitizationService;
69
69
  }());
70
- SkyTextSanitizationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextSanitizationService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
71
- SkyTextSanitizationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextSanitizationService, providedIn: 'root' });
72
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextSanitizationService, decorators: [{
70
+ SkyTextSanitizationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextSanitizationService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
71
+ SkyTextSanitizationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextSanitizationService, providedIn: 'root' });
72
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextSanitizationService, decorators: [{
73
73
  type: i0.Injectable,
74
74
  args: [{
75
- providedIn: 'root'
75
+ providedIn: 'root',
76
76
  }]
77
77
  }] });
78
78
 
@@ -102,13 +102,13 @@
102
102
  });
103
103
  return SkyRichTextDisplayComponent;
104
104
  }());
105
- SkyRichTextDisplayComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayComponent, deps: [{ token: i1__namespace.DomSanitizer }, { token: SkyTextSanitizationService }], target: i0__namespace.ɵɵFactoryTarget.Component });
106
- SkyRichTextDisplayComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SkyRichTextDisplayComponent, selector: "sky-rich-text-display", inputs: { richText: "richText" }, ngImport: i0__namespace, template: "<span\n class=\"sky-rich-text-display-text\"\n [innerHTML]=\"sanitizedText\"\n>\n</span>\n" });
107
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayComponent, decorators: [{
105
+ SkyRichTextDisplayComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayComponent, deps: [{ token: i1__namespace.DomSanitizer }, { token: SkyTextSanitizationService }], target: i0__namespace.ɵɵFactoryTarget.Component });
106
+ SkyRichTextDisplayComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyRichTextDisplayComponent, selector: "sky-rich-text-display", inputs: { richText: "richText" }, ngImport: i0__namespace, template: "<span class=\"sky-rich-text-display-text\" [innerHTML]=\"sanitizedText\"> </span>\n" });
107
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayComponent, decorators: [{
108
108
  type: i0.Component,
109
109
  args: [{
110
110
  selector: 'sky-rich-text-display',
111
- templateUrl: './rich-text-display.component.html'
111
+ template: "<span class=\"sky-rich-text-display-text\" [innerHTML]=\"sanitizedText\"> </span>\n",
112
112
  }]
113
113
  }], ctorParameters: function () { return [{ type: i1__namespace.DomSanitizer }, { type: SkyTextSanitizationService }]; }, propDecorators: { richText: [{
114
114
  type: i0.Input
@@ -119,23 +119,15 @@
119
119
  }
120
120
  return SkyRichTextDisplayModule;
121
121
  }());
122
- SkyRichTextDisplayModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
123
- SkyRichTextDisplayModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayModule, declarations: [SkyRichTextDisplayComponent], imports: [i8.CommonModule], exports: [SkyRichTextDisplayComponent] });
124
- SkyRichTextDisplayModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayModule, imports: [[
125
- i8.CommonModule
126
- ]] });
127
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyRichTextDisplayModule, decorators: [{
122
+ SkyRichTextDisplayModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
123
+ SkyRichTextDisplayModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayModule, declarations: [SkyRichTextDisplayComponent], imports: [i5.CommonModule], exports: [SkyRichTextDisplayComponent] });
124
+ SkyRichTextDisplayModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayModule, imports: [[i5.CommonModule]] });
125
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyRichTextDisplayModule, decorators: [{
128
126
  type: i0.NgModule,
129
127
  args: [{
130
- imports: [
131
- i8.CommonModule
132
- ],
133
- exports: [
134
- SkyRichTextDisplayComponent
135
- ],
136
- declarations: [
137
- SkyRichTextDisplayComponent
138
- ]
128
+ imports: [i5.CommonModule],
129
+ exports: [SkyRichTextDisplayComponent],
130
+ declarations: [SkyRichTextDisplayComponent],
139
131
  }]
140
132
  }] });
141
133
 
@@ -146,7 +138,68 @@
146
138
  * To update this file, simply rerun the command.
147
139
  */
148
140
  var RESOURCES = {
149
- 'EN-US': { "skyux_text_editor_format_menu_action_bold_label": { "message": "Bold" }, "skyux_text_editor_format_menu_action_bold_key_shortcut": { "message": "Ctrl+B" }, "skyux_text_editor_format_menu_action_italic_label": { "message": "Italic" }, "skyux_text_editor_format_menu_action_italic_key_shortcut": { "message": "Ctrl+I" }, "skyux_text_editor_format_menu_action_underline_label": { "message": "Underline" }, "skyux_text_editor_format_menu_action_underline_key_shortcut": { "message": "Ctrl+U" }, "skyux_text_editor_format_menu_action_strikethrough_label": { "message": "Strikethrough" }, "skyux_text_editor_format_menu_action_clear_formatting_label": { "message": "Clear formatting" }, "skyux_text_editor_edit_menu_action_undo_label": { "message": "Undo" }, "skyux_text_editor_edit_menu_action_undo_key_shortcut": { "message": "Ctrl+Z" }, "skyux_text_editor_edit_menu_action_redo_label": { "message": "Redo" }, "skyux_text_editor_edit_menu_action_redo_key_shortcut": { "message": "Ctrl+Y" }, "skyux_text_editor_edit_menu_action_cut_label": { "message": "Cut" }, "skyux_text_editor_edit_menu_action_cut_key_shortcut": { "message": "Ctrl+X" }, "skyux_text_editor_edit_menu_action_copy_label": { "message": "Copy" }, "skyux_text_editor_edit_menu_action_copy_key_shortcut": { "message": "Ctrl+C" }, "skyux_text_editor_edit_menu_action_paste_label": { "message": "Paste" }, "skyux_text_editor_edit_menu_action_paste_key_shortcut": { "message": "Ctrl+V" }, "skyux_text_editor_edit_menu_action_select_all_label": { "message": "Select all" }, "skyux_text_editor_edit_menu_action_select_all_key_shortcut": { "message": "Ctrl+A" }, "skyux_text_editor_menubar_dropdown_button_edit_label": { "message": "Edit" }, "skyux_text_editor_menubar_dropdown_button_format_label": { "message": "Format" }, "skyux_text_editor_menubar_dropdown_button_insert_label": { "message": "Insert merge field" }, "skyux_text_editor_url_modal_header_label": { "message": "Create link" }, "skyux_text_editor_url_modal_url_label": { "message": "Enter a URL to link to:" }, "skyux_text_editor_url_modal_open_label": { "message": "Where should it open?" }, "skyux_text_editor_url_modal_current_option_label": { "message": "Current window" }, "skyux_text_editor_url_modal_new_option_label": { "message": "New window" }, "skyux_text_editor_url_modal_email_label": { "message": "Email address" }, "skyux_text_editor_url_modal_subject_label": { "message": "Subject line" }, "skyux_text_editor_url_modal_save_button_label": { "message": "Save" }, "skyux_text_editor_url_modal_cancel_button_label": { "message": "Cancel" } },
141
+ 'EN-US': {
142
+ skyux_text_editor_format_menu_action_bold_label: { message: 'Bold' },
143
+ skyux_text_editor_format_menu_action_bold_key_shortcut: {
144
+ message: 'Ctrl+B',
145
+ },
146
+ skyux_text_editor_format_menu_action_italic_label: { message: 'Italic' },
147
+ skyux_text_editor_format_menu_action_italic_key_shortcut: {
148
+ message: 'Ctrl+I',
149
+ },
150
+ skyux_text_editor_format_menu_action_underline_label: {
151
+ message: 'Underline',
152
+ },
153
+ skyux_text_editor_format_menu_action_underline_key_shortcut: {
154
+ message: 'Ctrl+U',
155
+ },
156
+ skyux_text_editor_format_menu_action_strikethrough_label: {
157
+ message: 'Strikethrough',
158
+ },
159
+ skyux_text_editor_format_menu_action_clear_formatting_label: {
160
+ message: 'Clear formatting',
161
+ },
162
+ skyux_text_editor_edit_menu_action_undo_label: { message: 'Undo' },
163
+ skyux_text_editor_edit_menu_action_undo_key_shortcut: { message: 'Ctrl+Z' },
164
+ skyux_text_editor_edit_menu_action_redo_label: { message: 'Redo' },
165
+ skyux_text_editor_edit_menu_action_redo_key_shortcut: { message: 'Ctrl+Y' },
166
+ skyux_text_editor_edit_menu_action_cut_label: { message: 'Cut' },
167
+ skyux_text_editor_edit_menu_action_cut_key_shortcut: { message: 'Ctrl+X' },
168
+ skyux_text_editor_edit_menu_action_copy_label: { message: 'Copy' },
169
+ skyux_text_editor_edit_menu_action_copy_key_shortcut: { message: 'Ctrl+C' },
170
+ skyux_text_editor_edit_menu_action_paste_label: { message: 'Paste' },
171
+ skyux_text_editor_edit_menu_action_paste_key_shortcut: {
172
+ message: 'Ctrl+V',
173
+ },
174
+ skyux_text_editor_edit_menu_action_select_all_label: {
175
+ message: 'Select all',
176
+ },
177
+ skyux_text_editor_edit_menu_action_select_all_key_shortcut: {
178
+ message: 'Ctrl+A',
179
+ },
180
+ skyux_text_editor_menubar_dropdown_button_edit_label: { message: 'Edit' },
181
+ skyux_text_editor_menubar_dropdown_button_format_label: {
182
+ message: 'Format',
183
+ },
184
+ skyux_text_editor_menubar_dropdown_button_insert_label: {
185
+ message: 'Insert merge field',
186
+ },
187
+ skyux_text_editor_url_modal_header_label: { message: 'Create link' },
188
+ skyux_text_editor_url_modal_url_label: {
189
+ message: 'Enter a URL to link to:',
190
+ },
191
+ skyux_text_editor_url_modal_open_label: {
192
+ message: 'Where should it open?',
193
+ },
194
+ skyux_text_editor_url_modal_current_option_label: {
195
+ message: 'Current window',
196
+ },
197
+ skyux_text_editor_url_modal_new_option_label: { message: 'New window' },
198
+ skyux_text_editor_url_modal_email_label: { message: 'Email address' },
199
+ skyux_text_editor_url_modal_subject_label: { message: 'Subject line' },
200
+ skyux_text_editor_url_modal_save_button_label: { message: 'Save' },
201
+ skyux_text_editor_url_modal_cancel_button_label: { message: 'Cancel' },
202
+ },
150
203
  };
151
204
  var SkyTextEditorResourcesProvider = /** @class */ (function () {
152
205
  function SkyTextEditorResourcesProvider() {
@@ -164,22 +217,26 @@
164
217
  }
165
218
  return SkyTextEditorResourcesModule;
166
219
  }());
167
- SkyTextEditorResourcesModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
168
- SkyTextEditorResourcesModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, exports: [i2.SkyI18nModule] });
169
- SkyTextEditorResourcesModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, providers: [{
220
+ SkyTextEditorResourcesModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
221
+ SkyTextEditorResourcesModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, exports: [i2.SkyI18nModule] });
222
+ SkyTextEditorResourcesModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, providers: [
223
+ {
170
224
  provide: i2.SKY_LIB_RESOURCES_PROVIDERS,
171
225
  useClass: SkyTextEditorResourcesProvider,
172
- multi: true
173
- }], imports: [i2.SkyI18nModule] });
174
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, decorators: [{
226
+ multi: true,
227
+ },
228
+ ], imports: [i2.SkyI18nModule] });
229
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorResourcesModule, decorators: [{
175
230
  type: i0.NgModule,
176
231
  args: [{
177
232
  exports: [i2.SkyI18nModule],
178
- providers: [{
233
+ providers: [
234
+ {
179
235
  provide: i2.SKY_LIB_RESOURCES_PROVIDERS,
180
236
  useClass: SkyTextEditorResourcesProvider,
181
- multi: true
182
- }]
237
+ multi: true,
238
+ },
239
+ ],
183
240
  }]
184
241
  }] });
185
242
 
@@ -520,40 +577,40 @@
520
577
  var FONT_LIST_DEFAULTS = [
521
578
  {
522
579
  name: 'Blackbaud Sans',
523
- value: '"Blackbaud Sans", Arial, sans-serif'
580
+ value: '"Blackbaud Sans", Arial, sans-serif',
524
581
  },
525
582
  {
526
583
  name: 'Arial',
527
- value: 'Arial'
584
+ value: 'Arial',
528
585
  },
529
586
  {
530
587
  name: 'Arial Black',
531
- value: '"Arial Black"'
588
+ value: '"Arial Black"',
532
589
  },
533
590
  {
534
591
  name: 'Courier New',
535
- value: '"Courier New"'
592
+ value: '"Courier New"',
536
593
  },
537
594
  {
538
595
  name: 'Georgia',
539
- value: 'Georgia, serif'
596
+ value: 'Georgia, serif',
540
597
  },
541
598
  {
542
599
  name: 'Tahoma',
543
- value: 'Tahoma, Geneva, sans-serif'
600
+ value: 'Tahoma, Geneva, sans-serif',
544
601
  },
545
602
  {
546
603
  name: 'Times New Roman',
547
- value: '"Times New Roman"'
604
+ value: '"Times New Roman"',
548
605
  },
549
606
  {
550
607
  name: 'Trebuchet MS',
551
- value: '"Trebuchet MS", sans-serif'
608
+ value: '"Trebuchet MS", sans-serif',
552
609
  },
553
610
  {
554
611
  name: 'Verdana',
555
- value: 'Verdana, Geneva, sans-serif'
556
- }
612
+ value: 'Verdana, Geneva, sans-serif',
613
+ },
557
614
  ];
558
615
 
559
616
  /**
@@ -567,7 +624,7 @@
567
624
  boldState: false,
568
625
  italicState: false,
569
626
  underlineState: false,
570
- linkState: false
627
+ linkState: false,
571
628
  };
572
629
 
573
630
  /**
@@ -586,10 +643,12 @@
586
643
  function SkyTextEditorSelectionService() {
587
644
  }
588
645
  SkyTextEditorSelectionService.prototype.isElementSelected = function (documentEl, element) {
589
- var selectedNode = this.getCurrentSelection(documentEl).anchorNode;
646
+ var selectedNode = this.getCurrentSelection(documentEl)
647
+ .anchorNode;
590
648
  /* istanbul ignore next */
591
- return selectedNode &&
592
- (element.contains(selectedNode) || (selectedNode.parentNode && element.contains(selectedNode.parentNode)));
649
+ return (selectedNode &&
650
+ (element.contains(selectedNode) ||
651
+ (selectedNode.parentNode && element.contains(selectedNode.parentNode))));
593
652
  };
594
653
  SkyTextEditorSelectionService.prototype.getCurrentSelection = function (documentEl) {
595
654
  return documentEl.getSelection();
@@ -602,7 +661,8 @@
602
661
  selection.getRangeAt &&
603
662
  selection.getRangeAt(0).commonAncestorContainer) {
604
663
  selectedEl = selection.getRangeAt(0).commonAncestorContainer;
605
- selectedEl = selectedEl.nodeType !== 1 ? selectedEl.parentElement : selectedEl;
664
+ selectedEl =
665
+ selectedEl.nodeType !== 1 ? selectedEl.parentElement : selectedEl;
606
666
  }
607
667
  else if (selection && selection.type !== 'Control') {
608
668
  selectedEl = selection.createRange().parentElement();
@@ -621,7 +681,8 @@
621
681
  return sel.getRangeAt(0);
622
682
  }
623
683
  }
624
- else if (documentEl.getSelection() && documentEl.getSelection().getRangeAt) {
684
+ else if (documentEl.getSelection() &&
685
+ documentEl.getSelection().getRangeAt) {
625
686
  return documentEl.getSelection().getRangeAt(0);
626
687
  }
627
688
  };
@@ -647,12 +708,12 @@
647
708
  };
648
709
  return SkyTextEditorSelectionService;
649
710
  }());
650
- SkyTextEditorSelectionService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorSelectionService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
651
- SkyTextEditorSelectionService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorSelectionService, providedIn: 'root' });
652
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorSelectionService, decorators: [{
711
+ SkyTextEditorSelectionService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorSelectionService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
712
+ SkyTextEditorSelectionService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorSelectionService, providedIn: 'root' });
713
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorSelectionService, decorators: [{
653
714
  type: i0.Injectable,
654
715
  args: [{
655
- providedIn: 'root'
716
+ providedIn: 'root',
656
717
  }]
657
718
  }] });
658
719
 
@@ -666,6 +727,12 @@
666
727
  */
667
728
  this.editors = {};
668
729
  }
730
+ /**
731
+ * Returns the blur observable from the editor with the corresponding id.
732
+ */
733
+ SkyTextEditorService.prototype.blurListener = function (id) {
734
+ return this.editors[id].blurObservable;
735
+ };
669
736
  /**
670
737
  * Returns the click observable from the editor with the corresponding id.
671
738
  */
@@ -678,6 +745,12 @@
678
745
  SkyTextEditorService.prototype.commandChangeListener = function (id) {
679
746
  return this.editors[id].commandChangeObservable;
680
747
  };
748
+ /**
749
+ * Returns the input change observable from the editor with the corresponding id.
750
+ */
751
+ SkyTextEditorService.prototype.inputListener = function (id) {
752
+ return this.editors[id].inputObservable;
753
+ };
681
754
  /**
682
755
  * Removes editor from the `editors` index by id.
683
756
  */
@@ -695,12 +768,12 @@
695
768
  };
696
769
  return SkyTextEditorService;
697
770
  }());
698
- SkyTextEditorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
699
- SkyTextEditorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorService, providedIn: 'root' });
700
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorService, decorators: [{
771
+ SkyTextEditorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
772
+ SkyTextEditorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorService, providedIn: 'root' });
773
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorService, decorators: [{
701
774
  type: i0.Injectable,
702
775
  args: [{
703
- providedIn: 'root'
776
+ providedIn: 'root',
704
777
  }]
705
778
  }] });
706
779
 
@@ -814,7 +887,7 @@
814
887
  boldState: documentEl.queryCommandState('Bold'),
815
888
  italicState: documentEl.queryCommandState('Italic'),
816
889
  underlineState: documentEl.queryCommandState('Underline'),
817
- linkState: this.hasLink(id)
890
+ linkState: this.hasLink(id),
818
891
  };
819
892
  }
820
893
  /* istanbul ignore next */
@@ -841,7 +914,9 @@
841
914
  var windowEl = this.getContentWindowEl(id);
842
915
  var iframeDocumentEl = this.getIframeDocumentEl(id);
843
916
  var currentSelection = this.selectionService.getCurrentSelectionRange(iframeDocumentEl, windowEl);
844
- var cursorIsNotActiveAndHasReset = currentSelection && (currentSelection.startOffset === 0 && currentSelection.endOffset === 0);
917
+ var cursorIsNotActiveAndHasReset = currentSelection &&
918
+ currentSelection.startOffset === 0 &&
919
+ currentSelection.endOffset === 0;
845
920
  if (!this.editorSelected(id) || cursorIsNotActiveAndHasReset) {
846
921
  // focus the end of the editor
847
922
  var documentEl = this.windowService.nativeWindow.document;
@@ -877,8 +952,10 @@
877
952
  var anchorEl = this.getSelectedAnchorTag(editorId);
878
953
  if (anchorEl && anchorEl.href) {
879
954
  link = {
880
- target: anchorEl.getAttribute('target') === '_blank' ? UrlTarget.NewWindow : UrlTarget.None,
881
- url: anchorEl.href
955
+ target: anchorEl.getAttribute('target') === '_blank'
956
+ ? UrlTarget.NewWindow
957
+ : UrlTarget.None,
958
+ url: anchorEl.href,
882
959
  };
883
960
  }
884
961
  return link;
@@ -906,7 +983,7 @@
906
983
  for (var fontElements_1 = __values(fontElements), fontElements_1_1 = fontElements_1.next(); !fontElements_1_1.done; fontElements_1_1 = fontElements_1.next()) {
907
984
  var element = fontElements_1_1.value;
908
985
  element.removeAttribute('size');
909
- element.style.fontSize = (fontSize + 'px');
986
+ element.style.fontSize = fontSize + 'px';
910
987
  }
911
988
  }
912
989
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -922,9 +999,9 @@
922
999
  };
923
1000
  SkyTextEditorAdapterService.prototype.removeObservers = function (setting) {
924
1001
  /* istanbul ignore next */
925
- var documentEl = setting.iframeElementRef.contentWindow ?
926
- setting.iframeElementRef.contentWindow.document :
927
- setting.iframeElementRef.contentDocument;
1002
+ var documentEl = setting.iframeElementRef.contentWindow
1003
+ ? setting.iframeElementRef.contentWindow.document
1004
+ : setting.iframeElementRef.contentDocument;
928
1005
  setting.selectionChangeObservable.complete();
929
1006
  setting.clickObservable.complete();
930
1007
  setting.commandChangeObservable.complete();
@@ -956,13 +1033,14 @@
956
1033
  }
957
1034
  var tempRange = document.createRange();
958
1035
  tempRange.selectNodeContents(element);
959
- return (selectedRange.compareBoundaryPoints(Range.START_TO_START, tempRange) !== -1
960
- && selectedRange.compareBoundaryPoints(Range.START_TO_END, tempRange) !== 1) ||
961
- (selectedRange.compareBoundaryPoints(Range.END_TO_START, tempRange) !== -1
962
- && selectedRange.compareBoundaryPoints(Range.END_TO_END, tempRange) !== 1);
1036
+ return ((selectedRange.compareBoundaryPoints(Range.START_TO_START, tempRange) !== -1 &&
1037
+ selectedRange.compareBoundaryPoints(Range.START_TO_END, tempRange) !== 1) ||
1038
+ (selectedRange.compareBoundaryPoints(Range.END_TO_START, tempRange) !== -1 &&
1039
+ selectedRange.compareBoundaryPoints(Range.END_TO_END, tempRange) !==
1040
+ 1));
963
1041
  }
964
1042
  // Normal non-IE
965
- return !!element && !!element.href && selectedRange.intersectsNode(element);
1043
+ return (!!element && !!element.href && selectedRange.intersectsNode(element));
966
1044
  });
967
1045
  };
968
1046
  SkyTextEditorAdapterService.prototype.getIframeDocumentEl = function (id) {
@@ -999,9 +1077,9 @@
999
1077
  };
1000
1078
  SkyTextEditorAdapterService.prototype.createObservers = function (id, element) {
1001
1079
  /* istanbul ignore next */
1002
- var documentEl = element.contentWindow ?
1003
- element.contentWindow.document :
1004
- element.contentDocument;
1080
+ var documentEl = element.contentWindow
1081
+ ? element.contentWindow.document
1082
+ : element.contentDocument;
1005
1083
  // Firefox bug where we need to open/close to cancel load so it doesn't overwrite attrs
1006
1084
  documentEl.open();
1007
1085
  documentEl.close();
@@ -1010,18 +1088,27 @@
1010
1088
  var clickObservable = new rxjs.Subject();
1011
1089
  var clickListener = function () { return clickObservable.next(); };
1012
1090
  var pasteListener = this.getPasteOverride(id);
1091
+ var blurObservable = new rxjs.Subject();
1092
+ var blurListener = function () { return blurObservable.next(); };
1093
+ var inputObservable = new rxjs.Subject();
1094
+ var inputListener = function () { return inputObservable.next(); };
1013
1095
  documentEl.addEventListener('selectionchange', selectionListener);
1014
- documentEl.addEventListener('input', selectionListener);
1096
+ documentEl.addEventListener('input', inputListener);
1015
1097
  documentEl.addEventListener('mousedown', clickListener);
1016
1098
  documentEl.body.addEventListener('paste', pasteListener);
1099
+ documentEl.body.addEventListener('blur', blurListener);
1017
1100
  return {
1101
+ blurObservable: blurObservable,
1102
+ clickObservable: clickObservable,
1103
+ commandChangeObservable: new rxjs.Subject(),
1018
1104
  iframeElementRef: element,
1019
- selectionListener: selectionListener,
1105
+ inputObservable: inputObservable,
1106
+ selectionChangeObservable: selectionObservable,
1107
+ blurListener: blurListener,
1020
1108
  clickListener: clickListener,
1109
+ inputListener: inputListener,
1021
1110
  pasteListener: pasteListener,
1022
- selectionChangeObservable: selectionObservable,
1023
- clickObservable: clickObservable,
1024
- commandChangeObservable: new rxjs.Subject()
1111
+ selectionListener: selectionListener,
1025
1112
  };
1026
1113
  };
1027
1114
  /* istanbul ignore next */
@@ -1043,11 +1130,15 @@
1043
1130
  if (typeof commandValue === 'number') {
1044
1131
  /* istanbul ignore next */
1045
1132
  // tslint:disable-next-line: no-bitwise
1046
- return 'rgb(' + (commandValue & 0xFF) + ', ' +
1133
+ return ('rgb(' +
1134
+ (commandValue & 0xff) +
1135
+ ', ' +
1047
1136
  // tslint:disable-next-line: no-bitwise
1048
- ((commandValue & 0xFF00) >> 8) + ', ' +
1137
+ ((commandValue & 0xff00) >> 8) +
1138
+ ', ' +
1049
1139
  // tslint:disable-next-line: no-bitwise
1050
- ((commandValue & 0xFF0000) >> 16) + ')';
1140
+ ((commandValue & 0xff0000) >> 16) +
1141
+ ')');
1051
1142
  }
1052
1143
  // Firefox uses 'Transparent' instead of a color value
1053
1144
  /* istanbul ignore next */
@@ -1122,8 +1213,8 @@
1122
1213
  }
1123
1214
  var removableElements = orphanElements.filter(function (element) {
1124
1215
  var tagName = element.tagName.toUpperCase();
1125
- return (tagName === 'FONT' || tagName === 'SPAN') &&
1126
- (element.attributes.length === 0 || !element.hasChildNodes);
1216
+ return ((tagName === 'FONT' || tagName === 'SPAN') &&
1217
+ (element.attributes.length === 0 || !element.hasChildNodes));
1127
1218
  });
1128
1219
  try {
1129
1220
  for (var removableElements_1 = __values(removableElements), removableElements_1_1 = removableElements_1.next(); !removableElements_1_1.done; removableElements_1_1 = removableElements_1.next()) {
@@ -1148,7 +1239,8 @@
1148
1239
  };
1149
1240
  // Certain values are encoded in html and need to be decoded
1150
1241
  SkyTextEditorAdapterService.prototype.replaceHtmlCodes = function (str) {
1151
- return str.replace(/&nbsp;/, String.fromCharCode(160))
1242
+ return str
1243
+ .replace(/&nbsp;/, String.fromCharCode(160))
1152
1244
  .replace(/&lt;/g, '<')
1153
1245
  .replace(/&gt;/g, '>')
1154
1246
  .replace(/&amp;/g, '&');
@@ -1166,12 +1258,12 @@
1166
1258
  };
1167
1259
  return SkyTextEditorAdapterService;
1168
1260
  }());
1169
- SkyTextEditorAdapterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorAdapterService, deps: [{ token: SkyTextEditorSelectionService }, { token: SkyTextEditorService }, { token: i3__namespace.SkyAppWindowRef }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1170
- SkyTextEditorAdapterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorAdapterService, providedIn: 'root' });
1171
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorAdapterService, decorators: [{
1261
+ SkyTextEditorAdapterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorAdapterService, deps: [{ token: SkyTextEditorSelectionService }, { token: SkyTextEditorService }, { token: i3__namespace.SkyAppWindowRef }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1262
+ SkyTextEditorAdapterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorAdapterService, providedIn: 'root' });
1263
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorAdapterService, decorators: [{
1172
1264
  type: i0.Injectable,
1173
1265
  args: [{
1174
- providedIn: 'root'
1266
+ providedIn: 'root',
1175
1267
  }]
1176
1268
  }], ctorParameters: function () { return [{ type: SkyTextEditorSelectionService }, { type: SkyTextEditorService }, { type: i3__namespace.SkyAppWindowRef }]; } });
1177
1269
 
@@ -1208,8 +1300,7 @@
1208
1300
  });
1209
1301
  SkyTextEditorMenubarComponent.prototype.ngOnInit = function () {
1210
1302
  var _this = this;
1211
- this.editorFocusStream
1212
- .pipe(operators.takeUntil(this.ngUnsubscribe)).subscribe(function () {
1303
+ this.editorFocusStream.pipe(operators.takeUntil(this.ngUnsubscribe)).subscribe(function () {
1213
1304
  _this.closeDropdowns();
1214
1305
  });
1215
1306
  rxjs.forkJoin([
@@ -1234,7 +1325,7 @@
1234
1325
  this.resources.getString('skyux_text_editor_edit_menu_action_paste_label'),
1235
1326
  this.resources.getString('skyux_text_editor_edit_menu_action_paste_key_shortcut'),
1236
1327
  this.resources.getString('skyux_text_editor_edit_menu_action_select_all_label'),
1237
- this.resources.getString('skyux_text_editor_edit_menu_action_select_all_key_shortcut')
1328
+ this.resources.getString('skyux_text_editor_edit_menu_action_select_all_key_shortcut'),
1238
1329
  ])
1239
1330
  .pipe(operators.take(1))
1240
1331
  .subscribe(function (resources) {
@@ -1242,67 +1333,67 @@
1242
1333
  {
1243
1334
  function: function () { return _this.execCommand('bold'); },
1244
1335
  label: resources[0],
1245
- keyShortcut: resources[1]
1336
+ keyShortcut: resources[1],
1246
1337
  },
1247
1338
  {
1248
1339
  function: function () { return _this.execCommand('italic'); },
1249
1340
  label: resources[2],
1250
- keyShortcut: resources[3]
1341
+ keyShortcut: resources[3],
1251
1342
  },
1252
1343
  {
1253
1344
  function: function () { return _this.execCommand('underline'); },
1254
1345
  label: resources[4],
1255
- keyShortcut: resources[5]
1346
+ keyShortcut: resources[5],
1256
1347
  },
1257
1348
  {
1258
1349
  function: function () { return _this.execCommand('strikethrough'); },
1259
- label: resources[6]
1350
+ label: resources[6],
1260
1351
  },
1261
1352
  {
1262
- isDivider: true
1353
+ isDivider: true,
1263
1354
  },
1264
1355
  {
1265
1356
  function: function () { return _this.clearFormat(); },
1266
- label: resources[7]
1267
- }
1357
+ label: resources[7],
1358
+ },
1268
1359
  ];
1269
1360
  _this.editItems = [
1270
1361
  {
1271
1362
  function: function () { return _this.execCommand('undo'); },
1272
1363
  label: resources[8],
1273
- keyShortcut: resources[9]
1364
+ keyShortcut: resources[9],
1274
1365
  },
1275
1366
  {
1276
1367
  function: function () { return _this.execCommand('redo'); },
1277
1368
  label: resources[10],
1278
- keyShortcut: resources[11]
1369
+ keyShortcut: resources[11],
1279
1370
  },
1280
1371
  {
1281
- isDivider: true
1372
+ isDivider: true,
1282
1373
  },
1283
1374
  {
1284
1375
  function: function () { return _this.execCommand('cut'); },
1285
1376
  label: resources[12],
1286
- keyShortcut: resources[13]
1377
+ keyShortcut: resources[13],
1287
1378
  },
1288
1379
  {
1289
1380
  function: function () { return _this.execCommand('copy'); },
1290
1381
  label: resources[14],
1291
- keyShortcut: resources[15]
1382
+ keyShortcut: resources[15],
1292
1383
  },
1293
1384
  {
1294
1385
  function: function () { return _this.execCommand('paste'); },
1295
1386
  label: resources[16],
1296
- keyShortcut: resources[17]
1387
+ keyShortcut: resources[17],
1297
1388
  },
1298
1389
  {
1299
- isDivider: true
1390
+ isDivider: true,
1300
1391
  },
1301
1392
  {
1302
1393
  function: function () { return _this.execCommand('selectAll'); },
1303
1394
  label: resources[18],
1304
- keyShortcut: resources[19]
1305
- }
1395
+ keyShortcut: resources[19],
1396
+ },
1306
1397
  ];
1307
1398
  });
1308
1399
  };
@@ -1314,13 +1405,18 @@
1314
1405
  if (value === void 0) { value = ''; }
1315
1406
  this.adapterService.execCommand(this.editorId, {
1316
1407
  command: command,
1317
- value: value
1408
+ value: value,
1318
1409
  });
1319
1410
  };
1320
1411
  SkyTextEditorMenubarComponent.prototype.insertMergeField = function (field) {
1321
- this.execCommand('insertHTML', '<img style="display: inline; cursor: grab;" data-fieldid="' + field.id +
1322
- '" data-fielddisplay="' + field.name +
1323
- '" src="' + (field.previewImageUrl || this.adapterService.getMergeFieldDataURI(field.name)) + '">');
1412
+ this.execCommand('insertHTML', '<img style="display: inline; cursor: grab;" data-fieldid="' +
1413
+ field.id +
1414
+ '" data-fielddisplay="' +
1415
+ field.name +
1416
+ '" src="' +
1417
+ (field.previewImageUrl ||
1418
+ this.adapterService.getMergeFieldDataURI(field.name)) +
1419
+ '">');
1324
1420
  };
1325
1421
  SkyTextEditorMenubarComponent.prototype.closeDropdowns = function () {
1326
1422
  this.editDropdownStream.next({ type: i4.SkyDropdownMessageType.Close });
@@ -1330,22 +1426,23 @@
1330
1426
  SkyTextEditorMenubarComponent.prototype.clearFormat = function () {
1331
1427
  var currentSelection = this.adapterService.getCurrentSelection(this.editorId);
1332
1428
  /* istanbul ignore else */
1333
- if (currentSelection.rangeCount > 0 && currentSelection.getRangeAt(0).toString().length <= 0) {
1429
+ if (currentSelection.rangeCount > 0 &&
1430
+ currentSelection.getRangeAt(0).toString().length <= 0) {
1334
1431
  this.execCommand('selectAll');
1335
1432
  }
1336
1433
  this.execCommand('removeFormat');
1337
1434
  };
1338
1435
  return SkyTextEditorMenubarComponent;
1339
1436
  }());
1340
- SkyTextEditorMenubarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorMenubarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.SkyLibResourcesService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1341
- SkyTextEditorMenubarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SkyTextEditorMenubarComponent, selector: "sky-text-editor-menubar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", menus: "menus", mergeFields: "mergeFields", disabled: "disabled" }, ngImport: i0__namespace, template: "\n <sky-toolbar-item *ngFor=\"let menu of menus\"\n class=\"sky-text-editor-menu\"\n [ngClass]=\"'sky-text-editor-menu-' + menu\"\n >\n <ng-container\n [ngSwitch]=\"menu\"\n >\n <ng-container *ngSwitchCase=\"'edit'\">\n <sky-dropdown\n label=\"Edit menu\"\n [disabled]=\"disabled\"\n [messageStream]=\"editDropdownStream\"\n >\n <sky-dropdown-button>\n {{ 'skyux_text_editor_menubar_dropdown_button_edit_label' | skyLibResources }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let editItem of editItems\">\n <button *ngIf=\"!editItem.isDivider\"\n type=\"button\"\n (click)=\"editItem.function()\"\n >\n {{ editItem.label }}\n <div *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 *ngIf=\"editItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n >\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 {{ 'skyux_text_editor_menubar_dropdown_button_format_label' | skyLibResources }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let formatItem of formatItems\">\n <button *ngIf=\"!formatItem.isDivider\"\n type=\"button\"\n (click)=\"formatItem.function()\"\n >\n {{ formatItem.label }}\n <div *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 *ngIf=\"formatItem.isDivider\"\n class=\"sky-text-editor-dropdown-item-divider\"\n role=\"divider\"\n >\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 *ngIf=\"mergeFields && mergeFields.length > 0\"\n label=\"Insert merge field\"\n [disabled]=\"disabled\"\n [messageStream]=\"mergeFieldDropdownStream\"\n >\n <sky-dropdown-button>\n {{ 'skyux_text_editor_menubar_dropdown_button_insert_label' | skyLibResources }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let mergeField of mergeFields\">\n <button\n type=\"button\"\n (click)=\"insertMergeField(mergeField)\"\n >\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", styles: [".sky-text-editor-dropdown-item-divider{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,.1);cursor:default;filter:none}.sky-text-editor-menu-key-shortcut{float:right;margin-left:15px}\n"], components: [{ type: i3__namespace$1.λ39, selector: "sky-toolbar-item" }, { type: i4__namespace.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4__namespace.λ2, selector: "sky-dropdown-button" }, { type: i4__namespace.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4__namespace.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }], directives: [{ type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i2__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1342
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorMenubarComponent, decorators: [{
1437
+ SkyTextEditorMenubarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorMenubarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.SkyLibResourcesService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1438
+ SkyTextEditorMenubarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyTextEditorMenubarComponent, selector: "sky-text-editor-menubar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", menus: "menus", mergeFields: "mergeFields", disabled: "disabled" }, ngImport: i0__namespace, template: "<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", styles: [".sky-text-editor-dropdown-item-divider{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,.1);cursor:default;filter:none}.sky-text-editor-menu-key-shortcut{float:right;margin-left:15px}\n"], components: [{ type: i3__namespace$1.λ39, selector: "sky-toolbar-item" }, { type: i4__namespace.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4__namespace.λ2, selector: "sky-dropdown-button" }, { type: i4__namespace.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4__namespace.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }], directives: [{ type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i2__namespace.SkyLibResourcesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1439
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorMenubarComponent, decorators: [{
1343
1440
  type: i0.Component,
1344
1441
  args: [{
1345
1442
  selector: 'sky-text-editor-menubar',
1346
- templateUrl: './text-editor-menubar.component.html',
1347
- styleUrls: ['./text-editor-menubar.component.scss'],
1348
- changeDetection: i0.ChangeDetectionStrategy.OnPush
1443
+ template: "<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",
1444
+ styles: [".sky-text-editor-dropdown-item-divider{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,.1);cursor:default;filter:none}.sky-text-editor-menu-key-shortcut{float:right;margin-left:15px}\n"],
1445
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1349
1446
  }]
1350
1447
  }], ctorParameters: function () { return [{ type: SkyTextEditorAdapterService }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.SkyLibResourcesService }]; }, propDecorators: { editorFocusStream: [{
1351
1448
  type: i0.Input
@@ -1387,7 +1484,10 @@
1387
1484
  if (modalContext.urlResult.url.startsWith(emailKey)) {
1388
1485
  this.emailAddress = modalContext.urlResult.url.replace(emailKey, '');
1389
1486
  var queryStringIndex = this.emailAddress.indexOf(queryStringParamKey);
1390
- queryStringIndex = queryStringIndex > -1 ? queryStringIndex : this.emailAddress.indexOf(queryStringParamKey.toLowerCase());
1487
+ queryStringIndex =
1488
+ queryStringIndex > -1
1489
+ ? queryStringIndex
1490
+ : this.emailAddress.indexOf(queryStringParamKey.toLowerCase());
1391
1491
  /* istanbul ignore else */
1392
1492
  if (queryStringIndex > -1) {
1393
1493
  this.subject = decodeURI(this.emailAddress).slice(queryStringIndex + queryStringParamKey.length);
@@ -1397,8 +1497,8 @@
1397
1497
  this.activeTab = 1;
1398
1498
  }
1399
1499
  else {
1400
- this.url = modalContext.urlResult.url,
1401
- this.target = modalContext.urlResult.target;
1500
+ (this.url = modalContext.urlResult.url),
1501
+ (this.target = modalContext.urlResult.target);
1402
1502
  // set active tab to web page
1403
1503
  this.activeTab = 0;
1404
1504
  }
@@ -1446,13 +1546,15 @@
1446
1546
  if (this.activeTab === 0) {
1447
1547
  this.modalInstance.save({
1448
1548
  url: this.url,
1449
- target: this.target ? parseInt(this.target, undefined) : UrlTarget.None
1549
+ target: this.target
1550
+ ? parseInt(this.target, undefined)
1551
+ : UrlTarget.None,
1450
1552
  });
1451
1553
  }
1452
1554
  else {
1453
1555
  this.modalInstance.save({
1454
1556
  url: this.getEmailUrl(),
1455
- target: UrlTarget.None
1557
+ target: UrlTarget.None,
1456
1558
  });
1457
1559
  }
1458
1560
  }
@@ -1461,7 +1563,9 @@
1461
1563
  this.modalInstance.cancel();
1462
1564
  };
1463
1565
  SkyTextEditorUrlModalComponent.prototype.getEmailUrl = function () {
1464
- return emailKey + this.emailAddress + (this.subject ? '?Subject=' + encodeURI(this.subject) : '');
1566
+ return (emailKey +
1567
+ this.emailAddress +
1568
+ (this.subject ? '?Subject=' + encodeURI(this.subject) : ''));
1465
1569
  };
1466
1570
  SkyTextEditorUrlModalComponent.prototype.isValid = function () {
1467
1571
  if (this.activeTab === 0) {
@@ -1471,14 +1575,14 @@
1471
1575
  };
1472
1576
  return SkyTextEditorUrlModalComponent;
1473
1577
  }());
1474
- SkyTextEditorUrlModalComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorUrlModalComponent, deps: [{ token: i1__namespace$1.SkyModalInstance }, { token: SkyUrlModalContext }], target: i0__namespace.ɵɵFactoryTarget.Component });
1475
- SkyTextEditorUrlModalComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SkyTextEditorUrlModalComponent, selector: "sky-text-editor-url-modal", ngImport: i0__namespace, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_text_editor_url_modal_header_label' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-tabset\n data-sky-id=\"test-tabset\"\n [active]=\"activeTab\"\n (activeChange)=\"activeTabChanged($event)\"\n >\n <sky-tab\n tabHeading=\"Web page\"\n >\n <div class=\"sky-form-group sky-text-editor-url-modal-first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"urlInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_url_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"url\"\n skyId\n #urlInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label\n class=\"sky-control-label\"\n [for]=\"targetInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_open_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n [(ngModel)]=\"target\"\n skyId\n #targetInput=\"skyId\"\n >\n <option value=\"0\">\n {{ 'skyux_text_editor_url_modal_current_option_label' | skyLibResources }}\n </option>\n <option value=\"1\">\n {{ 'skyux_text_editor_url_modal_new_option_label' | skyLibResources }}\n </option>\n </select>\n </sky-input-box>\n </sky-tab>\n <sky-tab\n tabHeading=\"Email address\"\n >\n <div class=\"sky-form-group first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"emailAddressInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_email_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"emailAddress\"\n skyId\n #emailAddressInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label\n class=\"sky-control-label\"\n [for]=\"subjectInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_subject_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"subject\"\n skyId\n #subjectInput=\"skyId\"\n />\n </sky-input-box>\n </sky-tab>\n </sky-tabset>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"submit\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!valid\"\n (click)=\"save()\"\n >\n {{ 'skyux_text_editor_url_modal_save_button_label' | skyLibResources }}\n </button>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancel()\"\n >\n {{ 'skyux_text_editor_url_modal_cancel_button_label' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-editor-url-modal-first-field{margin-top:15px}\n"], components: [{ type: i1__namespace$1.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i1__namespace$1.λ4, selector: "sky-modal-header" }, { type: i1__namespace$1.λ2, selector: "sky-modal-content" }, { type: i3__namespace$2.λ2, selector: "sky-tabset", inputs: ["active", "ariaLabel", "ariaLabelledBy", "permalinkId", "tabStyle"], outputs: ["activeChange", "newTab", "openTab", "tabIndexesChange"] }, { type: i3__namespace$2.λ1, selector: "sky-tab", inputs: ["active", "disabled", "permalinkValue", "tabHeaderCount", "tabHeading", "tabIndex"], outputs: ["close"] }, { type: i4__namespace$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: i1__namespace$1.λ3, selector: "sky-modal-footer" }], directives: [{ type: i5__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3__namespace.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { type: i5__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "skyLibResources": i2__namespace.SkyLibResourcesPipe } });
1476
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorUrlModalComponent, decorators: [{
1578
+ SkyTextEditorUrlModalComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorUrlModalComponent, deps: [{ token: i1__namespace$1.SkyModalInstance }, { token: SkyUrlModalContext }], target: i0__namespace.ɵɵFactoryTarget.Component });
1579
+ SkyTextEditorUrlModalComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyTextEditorUrlModalComponent, selector: "sky-text-editor-url-modal", ngImport: i0__namespace, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_text_editor_url_modal_header_label' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-tabset\n data-sky-id=\"test-tabset\"\n [active]=\"activeTab\"\n (activeChange)=\"activeTabChanged($event)\"\n >\n <sky-tab tabHeading=\"Web page\">\n <div class=\"sky-form-group sky-text-editor-url-modal-first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"urlInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_url_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"url\"\n skyId\n #urlInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label class=\"sky-control-label\" [for]=\"targetInput.id\">\n {{ 'skyux_text_editor_url_modal_open_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n [(ngModel)]=\"target\"\n skyId\n #targetInput=\"skyId\"\n >\n <option value=\"0\">\n {{\n 'skyux_text_editor_url_modal_current_option_label'\n | skyLibResources\n }}\n </option>\n <option value=\"1\">\n {{\n 'skyux_text_editor_url_modal_new_option_label' | skyLibResources\n }}\n </option>\n </select>\n </sky-input-box>\n </sky-tab>\n <sky-tab tabHeading=\"Email address\">\n <div class=\"sky-form-group first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"emailAddressInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_email_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"emailAddress\"\n skyId\n #emailAddressInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label class=\"sky-control-label\" [for]=\"subjectInput.id\">\n {{ 'skyux_text_editor_url_modal_subject_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"subject\"\n skyId\n #subjectInput=\"skyId\"\n />\n </sky-input-box>\n </sky-tab>\n </sky-tabset>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"submit\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!valid\"\n (click)=\"save()\"\n >\n {{ 'skyux_text_editor_url_modal_save_button_label' | skyLibResources }}\n </button>\n <button type=\"button\" class=\"sky-btn sky-btn-link\" (click)=\"cancel()\">\n {{ 'skyux_text_editor_url_modal_cancel_button_label' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-editor-url-modal-first-field{margin-top:15px}\n"], components: [{ type: i1__namespace$1.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i1__namespace$1.λ4, selector: "sky-modal-header" }, { type: i1__namespace$1.λ2, selector: "sky-modal-content" }, { type: i3__namespace$2.λ2, selector: "sky-tabset", inputs: ["active", "ariaLabel", "ariaLabelledBy", "permalinkId", "tabStyle"], outputs: ["activeChange", "newTab", "openTab", "tabIndexesChange"] }, { type: i3__namespace$2.λ1, selector: "sky-tab", inputs: ["active", "disabled", "permalinkValue", "tabHeaderCount", "tabHeading", "tabIndex"], outputs: ["close"] }, { type: i4__namespace$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: i1__namespace$1.λ3, selector: "sky-modal-footer" }], directives: [{ type: i5__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3__namespace.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { type: i5__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "skyLibResources": i2__namespace.SkyLibResourcesPipe } });
1580
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorUrlModalComponent, decorators: [{
1477
1581
  type: i0.Component,
1478
1582
  args: [{
1479
1583
  selector: 'sky-text-editor-url-modal',
1480
- templateUrl: './text-editor-url-modal.component.html',
1481
- styleUrls: ['./text-editor-url-modal.component.scss']
1584
+ template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_text_editor_url_modal_header_label' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-tabset\n data-sky-id=\"test-tabset\"\n [active]=\"activeTab\"\n (activeChange)=\"activeTabChanged($event)\"\n >\n <sky-tab tabHeading=\"Web page\">\n <div class=\"sky-form-group sky-text-editor-url-modal-first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"urlInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_url_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"url\"\n skyId\n #urlInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label class=\"sky-control-label\" [for]=\"targetInput.id\">\n {{ 'skyux_text_editor_url_modal_open_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n [(ngModel)]=\"target\"\n skyId\n #targetInput=\"skyId\"\n >\n <option value=\"0\">\n {{\n 'skyux_text_editor_url_modal_current_option_label'\n | skyLibResources\n }}\n </option>\n <option value=\"1\">\n {{\n 'skyux_text_editor_url_modal_new_option_label' | skyLibResources\n }}\n </option>\n </select>\n </sky-input-box>\n </sky-tab>\n <sky-tab tabHeading=\"Email address\">\n <div class=\"sky-form-group first-field\">\n <sky-input-box>\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"emailAddressInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_email_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"emailAddress\"\n skyId\n #emailAddressInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box class=\"sky-form-group\">\n <label class=\"sky-control-label\" [for]=\"subjectInput.id\">\n {{ 'skyux_text_editor_url_modal_subject_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"subject\"\n skyId\n #subjectInput=\"skyId\"\n />\n </sky-input-box>\n </sky-tab>\n </sky-tabset>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"submit\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!valid\"\n (click)=\"save()\"\n >\n {{ 'skyux_text_editor_url_modal_save_button_label' | skyLibResources }}\n </button>\n <button type=\"button\" class=\"sky-btn sky-btn-link\" (click)=\"cancel()\">\n {{ 'skyux_text_editor_url_modal_cancel_button_label' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n",
1585
+ styles: [".sky-text-editor-url-modal-first-field{margin-top:15px}\n"],
1482
1586
  }]
1483
1587
  }], ctorParameters: function () { return [{ type: i1__namespace$1.SkyModalInstance }, { type: SkyUrlModalContext }]; } });
1484
1588
 
@@ -1505,7 +1609,7 @@
1505
1609
  set: function (value) {
1506
1610
  this._styleState = value;
1507
1611
  if (value.font !== this.styleStateFontName) {
1508
- if (value.font === '\"Blackbaud Sans\", Arial, sans-serif') {
1612
+ if (value.font === '"Blackbaud Sans", Arial, sans-serif') {
1509
1613
  this.styleStateFontName = this.getFontName('Blackbaud Sans');
1510
1614
  }
1511
1615
  else {
@@ -1542,7 +1646,7 @@
1542
1646
  if (value === void 0) { value = ''; }
1543
1647
  this.adapterService.execCommand(this.editorId, {
1544
1648
  command: command,
1545
- value: value
1649
+ value: value,
1546
1650
  });
1547
1651
  this.styleState = Object.assign(Object.assign({}, this.styleState), this.adapterService.getStyleState(this.editorId));
1548
1652
  };
@@ -1557,10 +1661,12 @@
1557
1661
  var _this = this;
1558
1662
  var priorSelection = this.adapterService.saveSelection(this.editorId);
1559
1663
  var currentLink = this.adapterService.getLink(this.editorId);
1560
- var inputModal = this.modalService.open(SkyTextEditorUrlModalComponent, [{
1664
+ var inputModal = this.modalService.open(SkyTextEditorUrlModalComponent, [
1665
+ {
1561
1666
  provide: SkyUrlModalContext,
1562
- useValue: { urlResult: currentLink }
1563
- }]);
1667
+ useValue: { urlResult: currentLink },
1668
+ },
1669
+ ]);
1564
1670
  inputModal.closed.subscribe(function (result) {
1565
1671
  if (result.reason === 'save' && priorSelection) {
1566
1672
  if (currentLink) {
@@ -1575,13 +1681,19 @@
1575
1681
  else {
1576
1682
  // New Window
1577
1683
  var sText = _this.adapterService.getCurrentSelection(_this.editorId);
1578
- _this.execCommand('insertHTML', '<a href="' + result.data.url + '" rel="noopener noreferrer" target="_blank">' + sText + '</a>');
1684
+ _this.execCommand('insertHTML', '<a href="' +
1685
+ result.data.url +
1686
+ '" rel="noopener noreferrer" target="_blank">' +
1687
+ sText +
1688
+ '</a>');
1579
1689
  }
1580
1690
  }
1581
1691
  });
1582
1692
  };
1583
1693
  SkyTextEditorToolbarComponent.prototype.unlink = function () {
1584
- var currentSelectionRange = this.adapterService.getCurrentSelection(this.editorId).getRangeAt(0);
1694
+ var currentSelectionRange = this.adapterService
1695
+ .getCurrentSelection(this.editorId)
1696
+ .getRangeAt(0);
1585
1697
  if (currentSelectionRange.toString().length <= 0) {
1586
1698
  var anchorTag = this.adapterService.getSelectedAnchorTag(this.editorId);
1587
1699
  this.adapterService.selectElement(this.editorId, anchorTag);
@@ -1597,7 +1709,9 @@
1597
1709
  this.execCommand(isBackground ? 'backColor' : 'foreColor', color.hex);
1598
1710
  };
1599
1711
  SkyTextEditorToolbarComponent.prototype.closeDropdowns = function () {
1600
- var message = { type: i6$1.SkyColorpickerMessageType.Close };
1712
+ var message = {
1713
+ type: i6$1.SkyColorpickerMessageType.Close,
1714
+ };
1601
1715
  this.colorpickerStream.next(message);
1602
1716
  this.backColorpickerStream.next(message);
1603
1717
  this.fontPickerStream.next({ type: i4.SkyDropdownMessageType.Close });
@@ -1612,15 +1726,15 @@
1612
1726
  };
1613
1727
  return SkyTextEditorToolbarComponent;
1614
1728
  }());
1615
- SkyTextEditorToolbarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorToolbarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace$1.SkyModalService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1616
- SkyTextEditorToolbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SkyTextEditorToolbarComponent, selector: "sky-text-editor-toolbar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", fontList: "fontList", fontSizeList: "fontSizeList", toolbarActions: "toolbarActions", styleState: "styleState", disabled: "disabled" }, ngImport: i0__namespace, template: "\n <sky-toolbar-item *ngFor=\"let action of toolbarActions\"\n class=\"sky-text-editor-toolbar-action\"\n [ngClass]=\"'sky-text-editor-toolbar-action-' + action\"\n >\n <ng-container\n [ngSwitch]=\"action\"\n >\n <ng-container *ngSwitchCase=\"'font-family'\">\n <sky-dropdown\n class=\"sky-text-editor-font-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font: ' + styleStateFontName\"\n [messageStream]=\"fontPickerStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.font\n }\"\n >\n {{ styleStateFontName }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let fontModel of fontList\">\n <button\n type=\"button\"\n [ngStyle]=\"{\n 'font-family': fontModel.value\n }\"\n (click)=\"execCommand('fontname', fontModel.name)\"\n >\n {{ fontModel.name }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-size'\">\n <sky-dropdown\n class=\"sky-text-editor-font-size-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font size: ' + styleState.fontSize + 'px'\"\n [messageStream]=\"fontSizeStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.fontSize\n }\"\n >\n {{ styleState.fontSize + 'px' }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let size of fontSizeList\">\n <button\n type=\"button\"\n (click)=\"changeFontSize(size)\"\n >\n {{ size + 'px' }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-style'\">\n <div\n class=\"sky-switch-icon-group sky-text-editor-font-style-picker\"\n >\n <sky-checkbox\n icon=\"bold\"\n label=\"Bold\"\n title=\"Bold\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.boldState\"\n (ngModelChange)=\"toggleFontStyle(styleState.boldState, $event, 'bold')\"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"italic\"\n label=\"Italicized\"\n title=\"Italicized\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.italicState\"\n (ngModelChange)=\"toggleFontStyle(styleState.italicState, $event, 'italic')\"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"underline\"\n label=\"Underline\"\n title=\"Underline\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.underlineState\"\n (ngModelChange)=\"toggleFontStyle(styleState.underlineState, $event, 'underline')\"\n >\n </sky-checkbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'color'\">\n <div class=\"sky-text-editor-colorpicker-group\">\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-font-color-picker\"\n label=\"Font color\"\n [messageStream]=\"colorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event)\"\n #colorPicker\n >\n <input\n outputFormat=\"hex\"\n type=\"text\"\n [allowTransparency]=\"false\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.fontColor\"\n [skyColorpickerInput]=\"colorPicker\"\n />\n </sky-colorpicker>\n </div>\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-background-color-picker\"\n label=\"Background color\"\n [messageStream]=\"backColorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event, true)\"\n #backColorPicker\n >\n <input\n outputFormat=\"rgba\"\n type=\"text\"\n [allowTransparency]=\"true\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.backColor\"\n [skyColorpickerInput]=\"backColorPicker\"\n />\n </sky-colorpicker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'list'\">\n <div\n class=\"sky-switch-icon-group\"\n >\n <button\n aria-label=\"Bulleted list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Bulleted list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertUnorderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"list-ul\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"bullet-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Numbered list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Numbered list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertOrderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"list-ol\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"number-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'alignment'\">\n <div\n class=\"sky-switch-icon-group\"\n >\n <button\n aria-label=\"Align left\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align left\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyLeft')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"align-left\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"align-left-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align center\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align center\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyCenter')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"align-center\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"center-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align right\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align right\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyRight')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"align-right\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"align-right-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'indentation'\">\n <div\n class=\"sky-switch-icon-group\"\n >\n <button\n aria-label=\"Outdent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Outdent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('outdent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"outdent\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"outdent-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Indent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Indent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('indent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"indent\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"indent-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'undo-redo'\">\n <div\n class=\"sky-switch-icon-group\"\n >\n <button\n aria-label=\"Undo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Undo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('undo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"undo\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"undo-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Redo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Redo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('redo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"repeat\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"redo-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'link'\">\n <div\n class=\"sky-switch-icon-group\"\n >\n <button\n aria-label=\"Link\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Link\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'icon-btn-active': styleState.linkState\n }\"\n (click)=\"link()\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"link\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"link-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Unlink\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Unlink\"\n [disabled]=\"!styleState.linkState || disabled\"\n (click)=\"unlink()\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"unlink\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"unlink-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </sky-toolbar-item>\n", styles: [".sky-text-editor-toolbar-action .sky-toolbar-item{margin-right:15px}.sky-text-editor-toolbar-action .sky-text-editor-font-picker ::ng-deep .sky-dropdown-button-content-container{width:140px;height:20px;text-align:left}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group{display:flex}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{position:relative;top:3px;margin:0 10px 0 0}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child{margin-right:0}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn{margin-left:0;margin-right:0;border-radius:0;border-right:none}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;border-right:1px solid #cdcfd2}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:first-of-type,:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}:host-context(.sky-theme-modern) .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}.sky-theme-modern .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}.sky-theme-modern .sky-switch-icon-group .sky-btn:first-of-type,.sky-theme-modern .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}.sky-theme-modern .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}\n"], components: [{ type: i3__namespace$1.λ39, selector: "sky-toolbar-item" }, { type: i4__namespace.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4__namespace.λ2, selector: "sky-dropdown-button" }, { type: i4__namespace.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4__namespace.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { type: i4__namespace$1.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6__namespace$1.λ1, selector: "sky-colorpicker", inputs: ["pickerButtonIcon", "pickerButtonIconType", "label", "labelledBy", "messageStream", "showResetButton"], outputs: ["selectedColorChanged", "selectedColorApplied"] }, { type: i7__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6__namespace$1.λ2, selector: "[skyColorpickerInput]", inputs: ["skyColorpickerInput", "initialColor", "returnFormat", "outputFormat", "presetColors", "alphaChannel", "allowTransparency"] }, { type: i6__namespace.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1617
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorToolbarComponent, decorators: [{
1729
+ SkyTextEditorToolbarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorToolbarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace$1.SkyModalService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1730
+ SkyTextEditorToolbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyTextEditorToolbarComponent, selector: "sky-text-editor-toolbar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", fontList: "fontList", fontSizeList: "fontSizeList", toolbarActions: "toolbarActions", styleState: "styleState", disabled: "disabled" }, ngImport: i0__namespace, template: "<sky-toolbar-item\n *ngFor=\"let action of toolbarActions\"\n class=\"sky-text-editor-toolbar-action\"\n [ngClass]=\"'sky-text-editor-toolbar-action-' + action\"\n>\n <ng-container [ngSwitch]=\"action\">\n <ng-container *ngSwitchCase=\"'font-family'\">\n <sky-dropdown\n class=\"sky-text-editor-font-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font: ' + styleStateFontName\"\n [messageStream]=\"fontPickerStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.font\n }\"\n >\n {{ styleStateFontName }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let fontModel of fontList\">\n <button\n type=\"button\"\n [ngStyle]=\"{\n 'font-family': fontModel.value\n }\"\n (click)=\"execCommand('fontname', fontModel.name)\"\n >\n {{ fontModel.name }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-size'\">\n <sky-dropdown\n class=\"sky-text-editor-font-size-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font size: ' + styleState.fontSize + 'px'\"\n [messageStream]=\"fontSizeStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.fontSize\n }\"\n >\n {{ styleState.fontSize + 'px' }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let size of fontSizeList\">\n <button type=\"button\" (click)=\"changeFontSize(size)\">\n {{ size + 'px' }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-style'\">\n <div class=\"sky-switch-icon-group sky-text-editor-font-style-picker\">\n <sky-checkbox\n icon=\"bold\"\n label=\"Bold\"\n title=\"Bold\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.boldState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.boldState, $event, 'bold')\n \"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"italic\"\n label=\"Italicized\"\n title=\"Italicized\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.italicState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.italicState, $event, 'italic')\n \"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"underline\"\n label=\"Underline\"\n title=\"Underline\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.underlineState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.underlineState, $event, 'underline')\n \"\n >\n </sky-checkbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'color'\">\n <div class=\"sky-text-editor-colorpicker-group\">\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-font-color-picker\"\n label=\"Font color\"\n [messageStream]=\"colorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event)\"\n #colorPicker\n >\n <input\n outputFormat=\"hex\"\n type=\"text\"\n [allowTransparency]=\"false\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.fontColor\"\n [skyColorpickerInput]=\"colorPicker\"\n />\n </sky-colorpicker>\n </div>\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-background-color-picker\"\n label=\"Background color\"\n [messageStream]=\"backColorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event, true)\"\n #backColorPicker\n >\n <input\n outputFormat=\"rgba\"\n type=\"text\"\n [allowTransparency]=\"true\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.backColor\"\n [skyColorpickerInput]=\"backColorPicker\"\n />\n </sky-colorpicker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'list'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Bulleted list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Bulleted list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertUnorderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"list-ul\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"bullet-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Numbered list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Numbered list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertOrderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"list-ol\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"number-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'alignment'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Align left\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align left\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyLeft')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-left\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"align-left-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align center\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align center\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyCenter')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-center\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"center-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align right\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align right\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyRight')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-right\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"align-right-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'indentation'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Outdent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Outdent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('outdent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"outdent\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"outdent-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Indent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Indent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('indent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"indent\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"indent-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'undo-redo'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Undo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Undo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('undo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"undo\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"undo-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Redo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Redo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('redo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"repeat\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"redo-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'link'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Link\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Link\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'icon-btn-active': styleState.linkState\n }\"\n (click)=\"link()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"link\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"link-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Unlink\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Unlink\"\n [disabled]=\"!styleState.linkState || disabled\"\n (click)=\"unlink()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"unlink\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"unlink-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n </ng-container>\n</sky-toolbar-item>\n", styles: [".sky-text-editor-toolbar-action .sky-toolbar-item{margin-right:15px}.sky-text-editor-toolbar-action .sky-text-editor-font-picker ::ng-deep .sky-dropdown-button-content-container{width:140px;height:20px;text-align:left}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group{display:flex}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{position:relative;top:3px;margin:0 10px 0 0}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child{margin-right:0}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn{margin-left:0;margin-right:0;border-radius:0;border-right:none}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;border-right:1px solid #cdcfd2}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:first-of-type,:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}:host-context(.sky-theme-modern) .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}.sky-theme-modern .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}.sky-theme-modern .sky-switch-icon-group .sky-btn:first-of-type,.sky-theme-modern .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}.sky-theme-modern .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}\n"], components: [{ type: i3__namespace$1.λ39, selector: "sky-toolbar-item" }, { type: i4__namespace.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4__namespace.λ2, selector: "sky-dropdown-button" }, { type: i4__namespace.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4__namespace.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { type: i4__namespace$1.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6__namespace$1.λ1, selector: "sky-colorpicker", inputs: ["pickerButtonIcon", "pickerButtonIconType", "label", "labelledBy", "messageStream", "showResetButton"], outputs: ["selectedColorChanged", "selectedColorApplied"] }, { type: i7__namespace.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6__namespace$1.λ2, selector: "[skyColorpickerInput]", inputs: ["skyColorpickerInput", "initialColor", "returnFormat", "outputFormat", "presetColors", "alphaChannel", "allowTransparency"] }, { type: i6__namespace.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1731
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorToolbarComponent, decorators: [{
1618
1732
  type: i0.Component,
1619
1733
  args: [{
1620
1734
  selector: 'sky-text-editor-toolbar',
1621
- templateUrl: './text-editor-toolbar.component.html',
1622
- styleUrls: ['./text-editor-toolbar.component.scss'],
1623
- changeDetection: i0.ChangeDetectionStrategy.OnPush
1735
+ template: "<sky-toolbar-item\n *ngFor=\"let action of toolbarActions\"\n class=\"sky-text-editor-toolbar-action\"\n [ngClass]=\"'sky-text-editor-toolbar-action-' + action\"\n>\n <ng-container [ngSwitch]=\"action\">\n <ng-container *ngSwitchCase=\"'font-family'\">\n <sky-dropdown\n class=\"sky-text-editor-font-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font: ' + styleStateFontName\"\n [messageStream]=\"fontPickerStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.font\n }\"\n >\n {{ styleStateFontName }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let fontModel of fontList\">\n <button\n type=\"button\"\n [ngStyle]=\"{\n 'font-family': fontModel.value\n }\"\n (click)=\"execCommand('fontname', fontModel.name)\"\n >\n {{ fontModel.name }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-size'\">\n <sky-dropdown\n class=\"sky-text-editor-font-size-picker\"\n [disabled]=\"disabled\"\n [label]=\"'Font size: ' + styleState.fontSize + 'px'\"\n [messageStream]=\"fontSizeStream\"\n >\n <sky-dropdown-button\n [ngStyle]=\"{\n 'font-family': styleState.fontSize\n }\"\n >\n {{ styleState.fontSize + 'px' }}\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let size of fontSizeList\">\n <button type=\"button\" (click)=\"changeFontSize(size)\">\n {{ size + 'px' }}\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </ng-container>\n <ng-container *ngSwitchCase=\"'font-style'\">\n <div class=\"sky-switch-icon-group sky-text-editor-font-style-picker\">\n <sky-checkbox\n icon=\"bold\"\n label=\"Bold\"\n title=\"Bold\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.boldState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.boldState, $event, 'bold')\n \"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"italic\"\n label=\"Italicized\"\n title=\"Italicized\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.italicState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.italicState, $event, 'italic')\n \"\n >\n </sky-checkbox>\n <sky-checkbox\n icon=\"underline\"\n label=\"Underline\"\n title=\"Underline\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.underlineState\"\n (ngModelChange)=\"\n toggleFontStyle(styleState.underlineState, $event, 'underline')\n \"\n >\n </sky-checkbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'color'\">\n <div class=\"sky-text-editor-colorpicker-group\">\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-font-color-picker\"\n label=\"Font color\"\n [messageStream]=\"colorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event)\"\n #colorPicker\n >\n <input\n outputFormat=\"hex\"\n type=\"text\"\n [allowTransparency]=\"false\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.fontColor\"\n [skyColorpickerInput]=\"colorPicker\"\n />\n </sky-colorpicker>\n </div>\n <div class=\"sky-text-editor-colorpicker-container\">\n <sky-colorpicker\n class=\"sky-text-editor-background-color-picker\"\n label=\"Background color\"\n [messageStream]=\"backColorpickerStream\"\n [showResetButton]=\"false\"\n (selectedColorChanged)=\"onColorpickerColorChanged($event, true)\"\n #backColorPicker\n >\n <input\n outputFormat=\"rgba\"\n type=\"text\"\n [allowTransparency]=\"true\"\n [disabled]=\"disabled\"\n [ngModel]=\"styleState.backColor\"\n [skyColorpickerInput]=\"backColorPicker\"\n />\n </sky-colorpicker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'list'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Bulleted list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Bulleted list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertUnorderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"list-ul\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"bullet-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Numbered list\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Numbered list\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('insertOrderedList')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"list-ol\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"number-list-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'alignment'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Align left\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align left\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyLeft')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-left\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"align-left-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align center\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align center\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyCenter')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-center\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"center-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n <button\n aria-label=\"Align right\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Align right\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('justifyRight')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"align-right\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"align-right-text-line\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'indentation'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Outdent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Outdent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('outdent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"outdent\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"outdent-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Indent\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Indent\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('indent')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"indent\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"indent-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'undo-redo'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Undo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Undo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('undo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"undo\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"undo-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Redo\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Redo\"\n [disabled]=\"disabled\"\n (click)=\"execCommand('redo')\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"repeat\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"redo-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'link'\">\n <div class=\"sky-switch-icon-group\">\n <button\n aria-label=\"Link\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Link\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'icon-btn-active': styleState.linkState\n }\"\n (click)=\"link()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"link\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"link-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n <button\n aria-label=\"Unlink\"\n class=\"sky-btn sky-btn-default sky-btn-icon\"\n title=\"Unlink\"\n [disabled]=\"!styleState.linkState || disabled\"\n (click)=\"unlink()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"unlink\"> </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"unlink-line\" iconType=\"skyux\">\n </sky-icon>\n </button>\n </div>\n </ng-container>\n </ng-container>\n</sky-toolbar-item>\n",
1736
+ styles: [".sky-text-editor-toolbar-action .sky-toolbar-item{margin-right:15px}.sky-text-editor-toolbar-action .sky-text-editor-font-picker ::ng-deep .sky-dropdown-button-content-container{width:140px;height:20px;text-align:left}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group{display:flex}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{position:relative;top:3px;margin:0 10px 0 0}.sky-text-editor-toolbar-action .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child{margin-right:0}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn{margin-left:0;margin-right:0;border-radius:0;border-right:none}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;border-right:1px solid #cdcfd2}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}:host-context(.sky-theme-modern) .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:first-of-type,:host-context(.sky-theme-modern) .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}:host-context(.sky-theme-modern) .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container{top:-2px;margin:0}.sky-theme-modern .sky-text-editor-colorpicker-group .sky-text-editor-colorpicker-container:last-child ::ng-deep sky-colorpicker .sky-colorpicker-button{margin-right:0}.sky-theme-modern .sky-switch-icon-group .sky-btn{margin:inherit;border-radius:6px}.sky-theme-modern .sky-switch-icon-group .sky-btn:first-of-type,.sky-theme-modern .sky-switch-icon-group .sky-btn:last-of-type{border-radius:6px}.sky-theme-modern .sky-text-editor-toolbar-action .sky-switch-icon-group .sky-btn:last-of-type{border:none}\n"],
1737
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1624
1738
  }]
1625
1739
  }], ctorParameters: function () { return [{ type: SkyTextEditorAdapterService }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace$1.SkyModalService }]; }, propDecorators: { editorFocusStream: [{
1626
1740
  type: i0.Input
@@ -1641,10 +1755,7 @@
1641
1755
  /**
1642
1756
  * @internal
1643
1757
  */
1644
- var MENU_DEFAULTS = [
1645
- 'edit',
1646
- 'format'
1647
- ];
1758
+ var MENU_DEFAULTS = ['edit', 'format'];
1648
1759
 
1649
1760
  /**
1650
1761
  * @internal
@@ -1655,13 +1766,15 @@
1655
1766
  'font-style',
1656
1767
  'color',
1657
1768
  'list',
1658
- 'link'
1769
+ 'link',
1659
1770
  ];
1660
1771
 
1661
1772
  /**
1662
1773
  * @internal
1663
1774
  */
1664
- var FONT_SIZE_LIST_DEFAULTS = [6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 48];
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
+ ];
1665
1778
 
1666
1779
  /**
1667
1780
  * Auto-incrementing integer used to generate unique ids for radio components.
@@ -1671,23 +1784,23 @@
1671
1784
  * The text editor component lets users format and manipulate text.
1672
1785
  */
1673
1786
  var SkyTextEditorComponent = /** @class */ (function () {
1674
- function SkyTextEditorComponent(changeDetector, coreAdapterService, adapterService, editorService, sanitizationService) {
1787
+ function SkyTextEditorComponent(changeDetector, coreAdapterService, adapterService, editorService, sanitizationService, ngControl, zone) {
1675
1788
  this.changeDetector = changeDetector;
1676
1789
  this.coreAdapterService = coreAdapterService;
1677
1790
  this.adapterService = adapterService;
1678
1791
  this.editorService = editorService;
1679
1792
  this.sanitizationService = sanitizationService;
1793
+ this.ngControl = ngControl;
1794
+ this.zone = zone;
1680
1795
  /**
1681
1796
  * Indicates whether to put focus on the editor after it renders.
1682
1797
  */
1683
1798
  this.autofocus = false;
1684
1799
  this.editorFocusStream = new rxjs.Subject();
1685
- // tslint:disable: max-line-length
1686
1800
  /**
1687
1801
  * Specifies the fonts to include in the font picker.
1688
1802
  * @default [{name: 'Blackbaud Sans', value: '"Blackbaud Sans", Arial, sans-serif'}, {name: 'Arial', value: 'Arial'}, {name: 'Arial Black', value: '"Arial Black"'}, {name: 'Courier New', value: '"Courier New"'}, {name: 'Georgia', value: 'Georgia, serif'}, {name: 'Tahoma', value: 'Tahoma, Geneva, sans-serif'}, {name: 'Times New Roman', value: '"Times New Roman"'}, {name: 'Trebuchet MS', value: '"Trebuchet MS", sans-serif'}, {name: 'Verdana', value: 'Verdana, Geneva, sans-serif'}]
1689
1803
  */
1690
- // tslint:enable: max-line-length
1691
1804
  this.fontList = FONT_LIST_DEFAULTS;
1692
1805
  /**
1693
1806
  * Specifies the font sizes to include in the font size picker.
@@ -1708,12 +1821,10 @@
1708
1821
  * Specifies the merge fields to include in the merge field menu.
1709
1822
  */
1710
1823
  this.mergeFields = [];
1711
- // tslint:disable: max-line-length
1712
1824
  /**
1713
1825
  * Specifies the actions to include in the toolbar and determines their order.
1714
1826
  * @default [ 'font-family', 'font-size', 'font-style', 'color', 'list', 'link ]
1715
1827
  */
1716
- // tslint:enable: max-line-length
1717
1828
  this.toolbarActions = TOOLBAR_ACTION_DEFAULTS;
1718
1829
  this.focusInitialized = false;
1719
1830
  this.initialized = false;
@@ -1723,9 +1834,10 @@
1723
1834
  this._placeholder = '';
1724
1835
  this._value = '<p></p>';
1725
1836
  /* istanbul ignore next */
1726
- this.onTouch = function () { };
1837
+ this._onTouched = function () { };
1727
1838
  /* istanbul ignore next */
1728
- this._onChange = function (_) { };
1839
+ this._onChange = function () { };
1840
+ this.ngControl.valueAccessor = this;
1729
1841
  }
1730
1842
  Object.defineProperty(SkyTextEditorComponent.prototype, "disabled", {
1731
1843
  get: function () {
@@ -1745,7 +1857,7 @@
1745
1857
  if (this.iframeRef) {
1746
1858
  focusableChildren = this.coreAdapterService.getFocusableChildren(this.iframeRef.nativeElement.contentDocument.body, {
1747
1859
  ignoreVisibility: true,
1748
- ignoreTabIndex: true
1860
+ ignoreTabIndex: true,
1749
1861
  });
1750
1862
  }
1751
1863
  if (this._disabled) {
@@ -1800,22 +1912,37 @@
1800
1912
  get: function () {
1801
1913
  return this._value;
1802
1914
  },
1915
+ /**
1916
+ * The internal value of the control.
1917
+ */
1803
1918
  set: function (value) {
1804
- // Set clear state to be an empty string
1805
- var valueString = value;
1806
- if (!value || value.trim() === '<p></p>' || value.trim() === '<br>') {
1807
- valueString = '';
1919
+ // Normalize value and set any empty state to an empty string.
1920
+ var normalizedValue = value;
1921
+ if (!value ||
1922
+ value.trim() === '<p></p>' ||
1923
+ value.trim() === '<br>' ||
1924
+ value.trim() === '<p><br></p>') {
1925
+ normalizedValue = '';
1808
1926
  }
1809
- valueString = this.sanitizationService.sanitize(valueString).trim();
1810
- if (this._value !== valueString) {
1811
- this._value = valueString;
1927
+ normalizedValue = this.sanitizationService.sanitize(normalizedValue).trim();
1928
+ if (this._value !== normalizedValue) {
1929
+ this._value = normalizedValue;
1930
+ // Update angular form control if model has been normalized.
1931
+ /* istanbul ignore else */
1932
+ if (this.ngControl && this.ngControl.control) {
1933
+ /* istanbul ignore else */
1934
+ if (normalizedValue !== this.ngControl.control.value) {
1935
+ this.ngControl.control.setValue(normalizedValue, {
1936
+ emitModelToViewChange: false,
1937
+ });
1938
+ }
1939
+ }
1812
1940
  // Autofocus isn't testable in Firefox and IE.
1813
1941
  /* istanbul ignore next */
1814
1942
  if (this.autofocus && !this.focusInitialized) {
1815
1943
  this.adapterService.focusEditor(this.id);
1816
1944
  this.focusInitialized = true;
1817
1945
  }
1818
- this.onChange();
1819
1946
  }
1820
1947
  },
1821
1948
  enumerable: false,
@@ -1838,19 +1965,28 @@
1838
1965
  this.initIframe();
1839
1966
  }
1840
1967
  };
1841
- SkyTextEditorComponent.prototype.writeValue = function (obj) {
1842
- this.value = obj;
1968
+ /**
1969
+ * Implemented as part of ControlValueAccessor.
1970
+ */
1971
+ SkyTextEditorComponent.prototype.writeValue = function (value) {
1972
+ this.value = value;
1843
1973
  // Update HTML if necessary.
1844
1974
  var editorValue = this.adapterService.getEditorInnerHtml(this.id);
1845
1975
  if (this.initialized && editorValue !== this._value) {
1846
1976
  this.adapterService.setEditorInnerHtml(this.id, this._value);
1847
1977
  }
1848
1978
  };
1979
+ /**
1980
+ * Implemented as part of ControlValueAccessor.
1981
+ */
1849
1982
  SkyTextEditorComponent.prototype.registerOnChange = function (fn) {
1850
1983
  this._onChange = fn;
1851
1984
  };
1985
+ /**
1986
+ * Implemented as part of ControlValueAccessor.
1987
+ */
1852
1988
  SkyTextEditorComponent.prototype.registerOnTouched = function (fn) {
1853
- this.onTouch = fn;
1989
+ this._onTouched = fn;
1854
1990
  };
1855
1991
  /**
1856
1992
  * Implemented as part of ControlValueAccessor.
@@ -1858,31 +1994,51 @@
1858
1994
  SkyTextEditorComponent.prototype.setDisabledState = function (isDisabled) {
1859
1995
  this.disabled = isDisabled;
1860
1996
  };
1861
- SkyTextEditorComponent.prototype.onChange = function () {
1862
- this._onChange(this.value);
1863
- };
1864
- SkyTextEditorComponent.prototype.updateValueAndStyle = function () {
1865
- this.value = this.adapterService.getEditorInnerHtml(this.id);
1997
+ SkyTextEditorComponent.prototype.updateStyle = function () {
1866
1998
  this._initialStyleState = Object.assign(Object.assign({}, this._initialStyleState), this.adapterService.getStyleState(this.id));
1867
1999
  };
1868
2000
  SkyTextEditorComponent.prototype.initIframe = function () {
1869
2001
  var _this = this;
1870
2002
  this.adapterService.addEditor(this.id, this.iframeRef.nativeElement, this.initialStyleState, this.placeholder);
1871
- this.editorService.selectionChangeListener(this.id)
2003
+ this.editorService
2004
+ .inputListener(this.id)
1872
2005
  .pipe(operators.takeUntil(this.ngUnsubscribe))
1873
2006
  .subscribe(function () {
1874
- _this.updateValueAndStyle();
2007
+ // Angular doesn't run change detection for changes originating inside an iframe,
2008
+ // so we have to call the onChange() event inside NgZone to force change propigation to consuming components.
2009
+ _this.zone.run(function () {
2010
+ _this.ViewToModelUpdate();
2011
+ });
2012
+ });
2013
+ this.editorService
2014
+ .selectionChangeListener(this.id)
2015
+ .pipe(operators.takeUntil(this.ngUnsubscribe))
2016
+ .subscribe(function () {
2017
+ _this.updateStyle();
1875
2018
  _this.editorFocusStream.next();
1876
2019
  });
1877
- this.editorService.clickListener(this.id)
2020
+ this.editorService
2021
+ .clickListener(this.id)
1878
2022
  .pipe(operators.takeUntil(this.ngUnsubscribe))
1879
2023
  .subscribe(function () {
1880
2024
  _this.editorFocusStream.next();
1881
2025
  });
1882
- this.editorService.commandChangeListener(this.id)
2026
+ this.editorService
2027
+ .blurListener(this.id)
2028
+ .pipe(operators.takeUntil(this.ngUnsubscribe))
2029
+ .subscribe(function () {
2030
+ // Angular doesn't run change detection for changes originating inside an iframe,
2031
+ // so we have to run markForCheck() inside the NgZone to force change propigation to consuming components.
2032
+ _this.zone.run(function () {
2033
+ _this._onTouched();
2034
+ });
2035
+ });
2036
+ this.editorService
2037
+ .commandChangeListener(this.id)
1883
2038
  .pipe(operators.takeUntil(this.ngUnsubscribe))
1884
2039
  .subscribe(function () {
1885
- _this.updateValueAndStyle();
2040
+ _this.updateStyle();
2041
+ _this.ViewToModelUpdate();
1886
2042
  });
1887
2043
  this.adapterService.setEditorInnerHtml(this.id, this._value);
1888
2044
  /* istanbul ignore next */
@@ -1891,35 +2047,28 @@
1891
2047
  }
1892
2048
  this.initialized = true;
1893
2049
  };
2050
+ SkyTextEditorComponent.prototype.ViewToModelUpdate = function (emitChange) {
2051
+ if (emitChange === void 0) { emitChange = true; }
2052
+ this.value = this.adapterService.getEditorInnerHtml(this.id);
2053
+ /* istanbul ignore else */
2054
+ if (emitChange) {
2055
+ this._onChange(this._value);
2056
+ }
2057
+ };
1894
2058
  return SkyTextEditorComponent;
1895
2059
  }());
1896
- SkyTextEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.SkyCoreAdapterService }, { token: SkyTextEditorAdapterService }, { token: SkyTextEditorService }, { token: SkyTextSanitizationService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1897
- SkyTextEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SkyTextEditorComponent, selector: "sky-text-editor", inputs: { autofocus: "autofocus", disabled: "disabled", fontList: "fontList", fontSizeList: "fontSizeList", id: "id", initialStyleState: "initialStyleState", menus: "menus", mergeFields: "mergeFields", placeholder: "placeholder", toolbarActions: "toolbarActions" }, providers: [
1898
- {
1899
- provide: i5.NG_VALUE_ACCESSOR,
1900
- // tslint:disable-next-line: no-forward-ref
1901
- useExisting: i0.forwardRef(function () { return SkyTextEditorComponent; }),
1902
- multi: true
1903
- }
1904
- ], viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0__namespace, template: "<div\n class=\"sky-text-editor\"\n>\n <sky-toolbar\n class=\"sky-text-editor-toolbar\"\n >\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"menubar\"\n role=\"toolbar\"\n >\n <sky-text-editor-menubar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [menus]=\"menus\"\n [mergeFields]=\"mergeFields\"\n >\n </sky-text-editor-menubar>\n </sky-toolbar-section>\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"toolbar\"\n role=\"toolbar\"\n >\n <sky-text-editor-toolbar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [fontList]=\"fontList\"\n [fontSizeList]=\"fontSizeList\"\n [toolbarActions]=\"toolbarActions\"\n [styleState]=\"initialStyleState\"\n >\n </sky-text-editor-toolbar>\n </sky-toolbar-section>\n </sky-toolbar>\n <iframe\n class=\"sky-text-editor-wrapper\"\n src=\"about:blank\"\n title=\"Text Editor\"\n [ngClass]=\"{\n 'sky-text-editor-wrapper-disabled': disabled\n }\"\n (load)=\"onIframeLoad()\"\n #iframe\n >\n </iframe>\n</div>\n", styles: [".sky-text-editor .sky-text-editor-wrapper{display:flex;flex-wrap:wrap;background-color:#fff;width:100%;height:300px;padding:1rem;font-size:1.2rem;border:1px solid #C0C0C0;overflow-y:auto;outline:none}.sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ededee}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-left:1px solid #cdcfd2!important;border-right:1px solid #cdcfd2!important}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-dropdown-button{border:none}.sky-text-editor .sky-text-editor-toolbar sky-text-editor-menubar,.sky-text-editor .sky-text-editor-toolbar sky-text-editor-toolbar{display:flex;flex-wrap:wrap}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper{border:1px solid #d2d2d2}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ececed}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar{padding:10px 10px 0}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-top:1px solid #d2d2d2!important;border-left:1px solid #d2d2d2!important;border-right:1px solid #d2d2d2!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 0 0!important}\n"], components: [{ type: i3__namespace$1.λ37, selector: "sky-toolbar" }, { type: i3__namespace$1.λ38, selector: "sky-toolbar-section" }, { type: SkyTextEditorMenubarComponent, selector: "sky-text-editor-menubar", inputs: ["editorFocusStream", "editorId", "menus", "mergeFields", "disabled"] }, { type: SkyTextEditorToolbarComponent, selector: "sky-text-editor-toolbar", inputs: ["editorFocusStream", "editorId", "fontList", "fontSizeList", "toolbarActions", "styleState", "disabled"] }], directives: [{ type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1905
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorComponent, decorators: [{
2060
+ SkyTextEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.SkyCoreAdapterService }, { token: SkyTextEditorAdapterService }, { token: SkyTextEditorService }, { token: SkyTextSanitizationService }, { token: i5__namespace$1.NgControl }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
2061
+ SkyTextEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyTextEditorComponent, selector: "sky-text-editor", inputs: { autofocus: "autofocus", disabled: "disabled", fontList: "fontList", fontSizeList: "fontSizeList", id: "id", initialStyleState: "initialStyleState", menus: "menus", mergeFields: "mergeFields", placeholder: "placeholder", toolbarActions: "toolbarActions" }, viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0__namespace, template: "<div class=\"sky-text-editor\">\n <sky-toolbar class=\"sky-text-editor-toolbar\">\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"menubar\"\n role=\"toolbar\"\n >\n <sky-text-editor-menubar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [menus]=\"menus\"\n [mergeFields]=\"mergeFields\"\n >\n </sky-text-editor-menubar>\n </sky-toolbar-section>\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"toolbar\"\n role=\"toolbar\"\n >\n <sky-text-editor-toolbar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [fontList]=\"fontList\"\n [fontSizeList]=\"fontSizeList\"\n [toolbarActions]=\"toolbarActions\"\n [styleState]=\"initialStyleState\"\n >\n </sky-text-editor-toolbar>\n </sky-toolbar-section>\n </sky-toolbar>\n <iframe\n class=\"sky-text-editor-wrapper\"\n src=\"about:blank\"\n title=\"Text Editor\"\n [ngClass]=\"{\n 'sky-text-editor-wrapper-disabled': disabled\n }\"\n (load)=\"onIframeLoad()\"\n #iframe\n >\n </iframe>\n</div>\n", styles: [".sky-text-editor .sky-text-editor-wrapper{display:flex;flex-wrap:wrap;background-color:#fff;width:100%;height:300px;padding:1rem;font-size:1.2rem;border:1px solid #c0c0c0;overflow-y:auto;outline:none}.sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ededee}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-left:1px solid #cdcfd2!important;border-right:1px solid #cdcfd2!important}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-dropdown-button{border:none}.sky-text-editor .sky-text-editor-toolbar sky-text-editor-menubar,.sky-text-editor .sky-text-editor-toolbar sky-text-editor-toolbar{display:flex;flex-wrap:wrap}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper{border:1px solid #d2d2d2}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ececed}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar{padding:10px 10px 0}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-top:1px solid #d2d2d2!important;border-left:1px solid #d2d2d2!important;border-right:1px solid #d2d2d2!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 0 0!important}\n"], components: [{ type: i3__namespace$1.λ37, selector: "sky-toolbar" }, { type: i3__namespace$1.λ38, selector: "sky-toolbar-section" }, { type: SkyTextEditorMenubarComponent, selector: "sky-text-editor-menubar", inputs: ["editorFocusStream", "editorId", "menus", "mergeFields", "disabled"] }, { type: SkyTextEditorToolbarComponent, selector: "sky-text-editor-toolbar", inputs: ["editorFocusStream", "editorId", "fontList", "fontSizeList", "toolbarActions", "styleState", "disabled"] }], directives: [{ type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
2062
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorComponent, decorators: [{
1906
2063
  type: i0.Component,
1907
2064
  args: [{
1908
2065
  selector: 'sky-text-editor',
1909
- templateUrl: './text-editor.component.html',
1910
- styleUrls: ['./text-editor.component.scss'],
1911
- providers: [
1912
- {
1913
- provide: i5.NG_VALUE_ACCESSOR,
1914
- // tslint:disable-next-line: no-forward-ref
1915
- useExisting: i0.forwardRef(function () { return SkyTextEditorComponent; }),
1916
- multi: true
1917
- }
1918
- ],
2066
+ template: "<div class=\"sky-text-editor\">\n <sky-toolbar class=\"sky-text-editor-toolbar\">\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"menubar\"\n role=\"toolbar\"\n >\n <sky-text-editor-menubar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [menus]=\"menus\"\n [mergeFields]=\"mergeFields\"\n >\n </sky-text-editor-menubar>\n </sky-toolbar-section>\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"toolbar\"\n role=\"toolbar\"\n >\n <sky-text-editor-toolbar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [fontList]=\"fontList\"\n [fontSizeList]=\"fontSizeList\"\n [toolbarActions]=\"toolbarActions\"\n [styleState]=\"initialStyleState\"\n >\n </sky-text-editor-toolbar>\n </sky-toolbar-section>\n </sky-toolbar>\n <iframe\n class=\"sky-text-editor-wrapper\"\n src=\"about:blank\"\n title=\"Text Editor\"\n [ngClass]=\"{\n 'sky-text-editor-wrapper-disabled': disabled\n }\"\n (load)=\"onIframeLoad()\"\n #iframe\n >\n </iframe>\n</div>\n",
2067
+ styles: [".sky-text-editor .sky-text-editor-wrapper{display:flex;flex-wrap:wrap;background-color:#fff;width:100%;height:300px;padding:1rem;font-size:1.2rem;border:1px solid #c0c0c0;overflow-y:auto;outline:none}.sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ededee}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-left:1px solid #cdcfd2!important;border-right:1px solid #cdcfd2!important}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-dropdown-button{border:none}.sky-text-editor .sky-text-editor-toolbar sky-text-editor-menubar,.sky-text-editor .sky-text-editor-toolbar sky-text-editor-toolbar{display:flex;flex-wrap:wrap}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper{border:1px solid #d2d2d2}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ececed}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar{padding:10px 10px 0}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-top:1px solid #d2d2d2!important;border-left:1px solid #d2d2d2!important;border-right:1px solid #d2d2d2!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 0 0!important}\n"],
1919
2068
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1920
- encapsulation: i0.ViewEncapsulation.None
2069
+ encapsulation: i0.ViewEncapsulation.None,
1921
2070
  }]
1922
- }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.SkyCoreAdapterService }, { type: SkyTextEditorAdapterService }, { type: SkyTextEditorService }, { type: SkyTextSanitizationService }]; }, propDecorators: { autofocus: [{
2071
+ }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.SkyCoreAdapterService }, { type: SkyTextEditorAdapterService }, { type: SkyTextEditorService }, { type: SkyTextSanitizationService }, { type: i5__namespace$1.NgControl }, { type: i0__namespace.NgZone }]; }, propDecorators: { autofocus: [{
1923
2072
  type: i0.Input
1924
2073
  }], disabled: [{
1925
2074
  type: i0.Input
@@ -1949,13 +2098,13 @@
1949
2098
  }
1950
2099
  return SkyTextEditorModule;
1951
2100
  }());
1952
- SkyTextEditorModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1953
- SkyTextEditorModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorModule, declarations: [SkyTextEditorComponent,
2101
+ SkyTextEditorModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2102
+ SkyTextEditorModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorModule, declarations: [SkyTextEditorComponent,
1954
2103
  SkyTextEditorUrlModalComponent,
1955
2104
  SkyTextEditorToolbarComponent,
1956
- SkyTextEditorMenubarComponent], imports: [i8.CommonModule,
1957
- i5.FormsModule,
1958
- i5.ReactiveFormsModule,
2105
+ SkyTextEditorMenubarComponent], imports: [i5.CommonModule,
2106
+ i5$1.FormsModule,
2107
+ i5$1.ReactiveFormsModule,
1959
2108
  i3.SkyCoreAdapterModule,
1960
2109
  SkyTextEditorResourcesModule,
1961
2110
  i2.SkyI18nModule,
@@ -1972,10 +2121,10 @@
1972
2121
  SkyTextEditorUrlModalComponent,
1973
2122
  SkyTextEditorToolbarComponent,
1974
2123
  SkyTextEditorMenubarComponent] });
1975
- SkyTextEditorModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorModule, imports: [[
1976
- i8.CommonModule,
1977
- i5.FormsModule,
1978
- i5.ReactiveFormsModule,
2124
+ SkyTextEditorModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorModule, imports: [[
2125
+ i5.CommonModule,
2126
+ i5$1.FormsModule,
2127
+ i5$1.ReactiveFormsModule,
1979
2128
  i3.SkyCoreAdapterModule,
1980
2129
  SkyTextEditorResourcesModule,
1981
2130
  i2.SkyI18nModule,
@@ -1988,15 +2137,15 @@
1988
2137
  i1$1.SkyModalModule,
1989
2138
  i3$2.SkyTabsModule,
1990
2139
  i6.SkyThemeModule,
1991
- i3$1.SkyToolbarModule
2140
+ i3$1.SkyToolbarModule,
1992
2141
  ]] });
1993
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: SkyTextEditorModule, decorators: [{
2142
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyTextEditorModule, decorators: [{
1994
2143
  type: i0.NgModule,
1995
2144
  args: [{
1996
2145
  imports: [
1997
- i8.CommonModule,
1998
- i5.FormsModule,
1999
- i5.ReactiveFormsModule,
2146
+ i5.CommonModule,
2147
+ i5$1.FormsModule,
2148
+ i5$1.ReactiveFormsModule,
2000
2149
  i3.SkyCoreAdapterModule,
2001
2150
  SkyTextEditorResourcesModule,
2002
2151
  i2.SkyI18nModule,
@@ -2009,23 +2158,21 @@
2009
2158
  i1$1.SkyModalModule,
2010
2159
  i3$2.SkyTabsModule,
2011
2160
  i6.SkyThemeModule,
2012
- i3$1.SkyToolbarModule
2161
+ i3$1.SkyToolbarModule,
2013
2162
  ],
2014
2163
  exports: [
2015
2164
  SkyTextEditorComponent,
2016
2165
  SkyTextEditorUrlModalComponent,
2017
2166
  SkyTextEditorToolbarComponent,
2018
- SkyTextEditorMenubarComponent
2167
+ SkyTextEditorMenubarComponent,
2019
2168
  ],
2020
2169
  declarations: [
2021
2170
  SkyTextEditorComponent,
2022
2171
  SkyTextEditorUrlModalComponent,
2023
2172
  SkyTextEditorToolbarComponent,
2024
- SkyTextEditorMenubarComponent
2173
+ SkyTextEditorMenubarComponent,
2025
2174
  ],
2026
- entryComponents: [
2027
- SkyTextEditorUrlModalComponent
2028
- ]
2175
+ entryComponents: [SkyTextEditorUrlModalComponent],
2029
2176
  }]
2030
2177
  }] });
2031
2178