@skyux/text-editor 4.0.0-beta.2 → 5.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/bundles/skyux-text-editor.umd.js +730 -562
- package/bundles/skyux-text-editor.umd.js.map +1 -1
- package/documentation.json +1961 -0
- package/esm2015/modules/rich-text-display/rich-text-display.component.js +17 -20
- package/esm2015/modules/rich-text-display/rich-text-display.module.js +22 -17
- package/esm2015/modules/shared/forms-utility.js +1 -1
- package/esm2015/modules/shared/sky-text-editor-resources.module.js +41 -0
- package/esm2015/modules/text-editor/defaults/font-list-defaults.js +1 -1
- package/esm2015/modules/text-editor/defaults/font-size-list-defaults.js +1 -1
- package/esm2015/modules/text-editor/defaults/menu-defaults.js +1 -1
- package/esm2015/modules/text-editor/defaults/style-state-defaults.js +1 -1
- package/esm2015/modules/text-editor/defaults/toolbar-action-defaults.js +1 -1
- package/esm2015/modules/text-editor/menubar/text-editor-menubar.component.js +32 -36
- package/esm2015/modules/text-editor/services/text-editor-adapter.service.js +17 -22
- package/esm2015/modules/text-editor/services/text-editor-selection.service.js +12 -13
- package/esm2015/modules/text-editor/services/text-editor.service.js +11 -11
- package/esm2015/modules/text-editor/services/text-sanitization.service.js +12 -14
- package/esm2015/modules/text-editor/text-editor.component.js +63 -68
- package/esm2015/modules/text-editor/text-editor.module.js +68 -27
- package/esm2015/modules/text-editor/toolbar/text-editor-toolbar.component.js +40 -42
- package/esm2015/modules/text-editor/types/editor-command.js +2 -1
- package/esm2015/modules/text-editor/types/editor-setting.js +2 -1
- package/esm2015/modules/text-editor/types/font-state.js +2 -1
- package/esm2015/modules/text-editor/types/menu-type.js +2 -1
- package/esm2015/modules/text-editor/types/style-state.js +2 -1
- package/esm2015/modules/text-editor/types/text-editor-merge-field.js +2 -1
- package/esm2015/modules/text-editor/types/toolbar-action-type.js +2 -1
- package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-context.js +1 -1
- package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-result.js +2 -1
- package/esm2015/modules/text-editor/url-modal/text-editor-url-modal.component.js +21 -18
- package/esm2015/modules/text-editor/url-modal/text-editor-url-target.js +1 -1
- package/esm2015/public-api.js +15 -0
- package/esm2015/skyux-text-editor.js +2 -14
- package/fesm2015/skyux-text-editor.js +359 -312
- package/fesm2015/skyux-text-editor.js.map +1 -1
- package/modules/rich-text-display/rich-text-display.component.d.ts +3 -0
- package/modules/rich-text-display/rich-text-display.module.d.ts +6 -0
- package/modules/shared/sky-text-editor-resources.module.d.ts +14 -0
- package/modules/text-editor/menubar/text-editor-menubar.component.d.ts +3 -0
- package/modules/text-editor/services/text-editor-adapter.service.d.ts +3 -0
- package/modules/text-editor/services/text-editor-selection.service.d.ts +3 -0
- package/modules/text-editor/services/text-editor.service.d.ts +3 -0
- package/modules/text-editor/services/text-sanitization.service.d.ts +3 -0
- package/modules/text-editor/text-editor.component.d.ts +3 -0
- package/modules/text-editor/text-editor.module.d.ts +21 -0
- package/modules/text-editor/toolbar/text-editor-toolbar.component.d.ts +3 -0
- package/modules/text-editor/url-modal/text-editor-url-modal.component.d.ts +3 -0
- package/package.json +20 -36
- package/public-api.d.ts +12 -0
- package/skyux-text-editor.d.ts +2 -13
- package/CHANGELOG.md +0 -13
- package/bundles/skyux-text-editor.umd.min.js +0 -2
- package/bundles/skyux-text-editor.umd.min.js.map +0 -1
- package/esm2015/plugin-resources/text-editor-resources-provider.js +0 -16
- package/esm2015/plugin-resources/text-editor-resources.module.js +0 -19
- package/esm2015/public_api.js +0 -3
- package/esm5/modules/rich-text-display/rich-text-display.component.js +0 -44
- package/esm5/modules/rich-text-display/rich-text-display.module.js +0 -24
- package/esm5/modules/shared/forms-utility.js +0 -14
- package/esm5/modules/text-editor/defaults/font-list-defaults.js +0 -42
- package/esm5/modules/text-editor/defaults/font-size-list-defaults.js +0 -5
- package/esm5/modules/text-editor/defaults/menu-defaults.js +0 -8
- package/esm5/modules/text-editor/defaults/style-state-defaults.js +0 -15
- package/esm5/modules/text-editor/defaults/toolbar-action-defaults.js +0 -12
- package/esm5/modules/text-editor/menubar/text-editor-menubar.component.js +0 -199
- package/esm5/modules/text-editor/services/text-editor-adapter.service.js +0 -470
- package/esm5/modules/text-editor/services/text-editor-selection.service.js +0 -77
- package/esm5/modules/text-editor/services/text-editor.service.js +0 -49
- package/esm5/modules/text-editor/services/text-sanitization.service.js +0 -41
- package/esm5/modules/text-editor/text-editor.component.js +0 -287
- package/esm5/modules/text-editor/text-editor.module.js +0 -63
- package/esm5/modules/text-editor/toolbar/text-editor-toolbar.component.js +0 -178
- package/esm5/modules/text-editor/types/editor-command.js +0 -1
- package/esm5/modules/text-editor/types/editor-setting.js +0 -1
- package/esm5/modules/text-editor/types/font-state.js +0 -1
- package/esm5/modules/text-editor/types/menu-type.js +0 -1
- package/esm5/modules/text-editor/types/style-state.js +0 -1
- package/esm5/modules/text-editor/types/text-editor-merge-field.js +0 -1
- package/esm5/modules/text-editor/types/toolbar-action-type.js +0 -1
- package/esm5/modules/text-editor/url-modal/text-editor-url-modal-context.js +0 -10
- package/esm5/modules/text-editor/url-modal/text-editor-url-modal-result.js +0 -1
- package/esm5/modules/text-editor/url-modal/text-editor-url-modal.component.js +0 -120
- package/esm5/modules/text-editor/url-modal/text-editor-url-target.js +0 -9
- package/esm5/plugin-resources/text-editor-resources-provider.js +0 -17
- package/esm5/plugin-resources/text-editor-resources.module.js +0 -22
- package/esm5/public_api.js +0 -3
- package/esm5/skyux-text-editor.js +0 -17
- package/fesm5/skyux-text-editor.js +0 -1620
- package/fesm5/skyux-text-editor.js.map +0 -1
- package/plugin-resources/text-editor-resources-provider.d.ts +0 -5
- package/plugin-resources/text-editor-resources.module.d.ts +0 -2
- package/public_api.d.ts +0 -7
- package/skyux-text-editor.metadata.json +0 -1
- package/src/assets/img/default-anatomy.png +0 -0
- package/src/assets/img/default-option-menu-toolbar-items.png +0 -0
- package/src/assets/img/default-use-when.png +0 -0
- package/src/assets/img/modern-anatomy.png +0 -0
- package/src/assets/img/modern-option-menu-toolbar-items.png +0 -0
- package/src/assets/img/modern-use-when.png +0 -0
- package/src/assets/locales/resources_en_US.json +0 -130
|
@@ -1,27 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as i8 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable, Component, Input, NgModule, ChangeDetectionStrategy, forwardRef, ViewEncapsulation, ViewChild } from '@angular/core';
|
|
5
|
+
import * as i1 from '@angular/platform-browser';
|
|
6
|
+
import createDOMPurify from 'dompurify';
|
|
7
|
+
import * as i5 from '@angular/forms';
|
|
6
8
|
import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import * as i6$1 from '@skyux/colorpicker';
|
|
7
10
|
import { SkyColorpickerMessageType, SkyColorpickerModule } from '@skyux/colorpicker';
|
|
8
|
-
import
|
|
11
|
+
import * as i3 from '@skyux/core';
|
|
12
|
+
import { SkyCoreAdapterModule, SkyIdModule } from '@skyux/core';
|
|
13
|
+
import * as i4$1 from '@skyux/forms';
|
|
9
14
|
import { SkyInputBoxModule, SkyCheckboxModule } from '@skyux/forms';
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
15
|
+
import * as i1$1 from '@skyux/modals';
|
|
16
|
+
import { SkyModalModule } from '@skyux/modals';
|
|
17
|
+
import * as i2 from '@skyux/i18n';
|
|
18
|
+
import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
|
|
19
|
+
import * as i7 from '@skyux/indicators';
|
|
12
20
|
import { SkyIconModule } from '@skyux/indicators';
|
|
21
|
+
import * as i3$1 from '@skyux/layout';
|
|
13
22
|
import { SkyToolbarModule } from '@skyux/layout';
|
|
23
|
+
import * as i4 from '@skyux/popovers';
|
|
14
24
|
import { SkyDropdownMessageType, SkyDropdownModule } from '@skyux/popovers';
|
|
25
|
+
import * as i3$2 from '@skyux/tabs';
|
|
15
26
|
import { SkyTabsModule } from '@skyux/tabs';
|
|
27
|
+
import * as i6 from '@skyux/theme';
|
|
16
28
|
import { SkyThemeModule } from '@skyux/theme';
|
|
17
29
|
import { Subject, forkJoin } from 'rxjs';
|
|
18
30
|
import { takeUntil, take } from 'rxjs/operators';
|
|
19
31
|
import { SkyValidation } from '@skyux/validation';
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
// import DOMPurify from 'dompurify';
|
|
23
|
-
|
|
24
|
-
const domPurify = dompurify(window);
|
|
33
|
+
const domPurify = createDOMPurify(window);
|
|
25
34
|
domPurify.addHook('afterSanitizeAttributes', (node) => {
|
|
26
35
|
// Set all elements owning target to target=_blank
|
|
27
36
|
// so we only allow the target attribute with that value.
|
|
@@ -36,7 +45,7 @@ domPurify.addHook('afterSanitizeAttributes', (node) => {
|
|
|
36
45
|
* can preserve `<style>` tags and allow `target` attributes for new tab links.
|
|
37
46
|
* @internal
|
|
38
47
|
*/
|
|
39
|
-
|
|
48
|
+
class SkyTextSanitizationService {
|
|
40
49
|
constructor() {
|
|
41
50
|
this.allowedAttributes = ['target'];
|
|
42
51
|
}
|
|
@@ -46,15 +55,17 @@ let SkyTextSanitizationService = class SkyTextSanitizationService {
|
|
|
46
55
|
sanitize(htmlString) {
|
|
47
56
|
return domPurify.sanitize(htmlString, { ADD_ATTR: this.allowedAttributes });
|
|
48
57
|
}
|
|
49
|
-
}
|
|
50
|
-
SkyTextSanitizationService.ɵ
|
|
51
|
-
SkyTextSanitizationService =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
}
|
|
59
|
+
SkyTextSanitizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextSanitizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
SkyTextSanitizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextSanitizationService, providedIn: 'root' });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextSanitizationService, decorators: [{
|
|
62
|
+
type: Injectable,
|
|
63
|
+
args: [{
|
|
64
|
+
providedIn: 'root'
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
56
67
|
|
|
57
|
-
|
|
68
|
+
class SkyRichTextDisplayComponent {
|
|
58
69
|
constructor(sanitizer, sanitizationService) {
|
|
59
70
|
this.sanitizer = sanitizer;
|
|
60
71
|
this.sanitizationService = sanitizationService;
|
|
@@ -73,62 +84,88 @@ let SkyRichTextDisplayComponent = class SkyRichTextDisplayComponent {
|
|
|
73
84
|
this.sanitizedText = this.sanitizer.bypassSecurityTrustHtml(cleaned);
|
|
74
85
|
}
|
|
75
86
|
}
|
|
76
|
-
}
|
|
77
|
-
SkyRichTextDisplayComponent
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
})
|
|
89
|
-
], SkyRichTextDisplayComponent);
|
|
87
|
+
}
|
|
88
|
+
SkyRichTextDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayComponent, deps: [{ token: i1.DomSanitizer }, { token: SkyTextSanitizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
SkyRichTextDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyRichTextDisplayComponent, selector: "sky-rich-text-display", inputs: { richText: "richText" }, ngImport: i0, template: "<span\n class=\"sky-rich-text-display-text\"\n [innerHTML]=\"sanitizedText\"\n>\n</span>\n" });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayComponent, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{
|
|
93
|
+
selector: 'sky-rich-text-display',
|
|
94
|
+
templateUrl: './rich-text-display.component.html'
|
|
95
|
+
}]
|
|
96
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: SkyTextSanitizationService }]; }, propDecorators: { richText: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
90
99
|
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
SkyRichTextDisplayModule =
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
class SkyRichTextDisplayModule {
|
|
101
|
+
}
|
|
102
|
+
SkyRichTextDisplayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
103
|
+
SkyRichTextDisplayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayModule, declarations: [SkyRichTextDisplayComponent], imports: [CommonModule], exports: [SkyRichTextDisplayComponent] });
|
|
104
|
+
SkyRichTextDisplayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayModule, imports: [[
|
|
96
105
|
CommonModule
|
|
97
|
-
]
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
]] });
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyRichTextDisplayModule, decorators: [{
|
|
108
|
+
type: NgModule,
|
|
109
|
+
args: [{
|
|
110
|
+
imports: [
|
|
111
|
+
CommonModule
|
|
112
|
+
],
|
|
113
|
+
exports: [
|
|
114
|
+
SkyRichTextDisplayComponent
|
|
115
|
+
],
|
|
116
|
+
declarations: [
|
|
117
|
+
SkyRichTextDisplayComponent
|
|
118
|
+
]
|
|
119
|
+
}]
|
|
120
|
+
}] });
|
|
106
121
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
/**
|
|
123
|
+
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
124
|
+
* The contents of this file were automatically generated by
|
|
125
|
+
* the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-text-editor' schematic.
|
|
126
|
+
* To update this file, simply rerun the command.
|
|
127
|
+
*/
|
|
128
|
+
const RESOURCES = {
|
|
129
|
+
'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" } },
|
|
130
|
+
};
|
|
131
|
+
class SkyTextEditorResourcesProvider {
|
|
111
132
|
getString(localeInfo, name) {
|
|
112
|
-
return
|
|
133
|
+
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
|
113
134
|
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Import into any component library module that needs to use resource strings.
|
|
138
|
+
*/
|
|
139
|
+
class SkyTextEditorResourcesModule {
|
|
140
|
+
}
|
|
141
|
+
SkyTextEditorResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
142
|
+
SkyTextEditorResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorResourcesModule, exports: [SkyI18nModule] });
|
|
143
|
+
SkyTextEditorResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorResourcesModule, providers: [{
|
|
144
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
145
|
+
useClass: SkyTextEditorResourcesProvider,
|
|
146
|
+
multi: true
|
|
147
|
+
}], imports: [SkyI18nModule] });
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorResourcesModule, decorators: [{
|
|
149
|
+
type: NgModule,
|
|
150
|
+
args: [{
|
|
151
|
+
exports: [SkyI18nModule],
|
|
152
|
+
providers: [{
|
|
153
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
154
|
+
useClass: SkyTextEditorResourcesProvider,
|
|
155
|
+
multi: true
|
|
156
|
+
}]
|
|
157
|
+
}]
|
|
158
|
+
}] });
|
|
118
159
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
]
|
|
130
|
-
})
|
|
131
|
-
], SkyTextEditorResourcesModule);
|
|
160
|
+
// Need to add the following to classes which contain static methods.
|
|
161
|
+
// See: https://github.com/ng-packagr/ng-packagr/issues/641
|
|
162
|
+
// @dynamic
|
|
163
|
+
class SkyFormsUtility {
|
|
164
|
+
/** Coerces a data-bound value (typically a string) to a boolean. */
|
|
165
|
+
static coerceBooleanProperty(value) {
|
|
166
|
+
return value !== undefined && `${value}` !== 'false';
|
|
167
|
+
}
|
|
168
|
+
}
|
|
132
169
|
|
|
133
170
|
/**
|
|
134
171
|
* @internal
|
|
@@ -198,56 +235,11 @@ var UrlTarget;
|
|
|
198
235
|
/**
|
|
199
236
|
* @internal
|
|
200
237
|
*/
|
|
201
|
-
|
|
202
|
-
constructor() {
|
|
203
|
-
/**
|
|
204
|
-
* A dictionary representing all active text editors and their settings.
|
|
205
|
-
*/
|
|
206
|
-
this.editors = {};
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Returns the click observable from the editor with the corresponding id.
|
|
210
|
-
*/
|
|
211
|
-
clickListener(id) {
|
|
212
|
-
return this.editors[id].clickObservable;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Returns the command change observable from the editor with the corresponding id.
|
|
216
|
-
*/
|
|
217
|
-
commandChangeListener(id) {
|
|
218
|
-
return this.editors[id].commandChangeObservable;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Removes editor from the `editors` index by id.
|
|
222
|
-
*/
|
|
223
|
-
removeEditor(id) {
|
|
224
|
-
if (id in this.editors) {
|
|
225
|
-
delete this.editors[id];
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Returns the selection change observable from the editor with the corresponding id.
|
|
230
|
-
*/
|
|
231
|
-
selectionChangeListener(id) {
|
|
232
|
-
return this.editors[id].selectionChangeObservable;
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
SkyTextEditorService.ɵprov = ɵɵdefineInjectable({ factory: function SkyTextEditorService_Factory() { return new SkyTextEditorService(); }, token: SkyTextEditorService, providedIn: "root" });
|
|
236
|
-
SkyTextEditorService = __decorate([
|
|
237
|
-
Injectable({
|
|
238
|
-
providedIn: 'root'
|
|
239
|
-
})
|
|
240
|
-
], SkyTextEditorService);
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* @internal
|
|
244
|
-
*/
|
|
245
|
-
let SkyTextEditorSelectionService = class SkyTextEditorSelectionService {
|
|
238
|
+
class SkyTextEditorSelectionService {
|
|
246
239
|
isElementSelected(documentEl, element) {
|
|
247
240
|
const selectedNode = this.getCurrentSelection(documentEl).anchorNode;
|
|
248
241
|
return selectedNode &&
|
|
249
|
-
(element.contains(selectedNode) ||
|
|
250
|
-
(selectedNode.parentNode && element.contains(selectedNode.parentNode)));
|
|
242
|
+
(element.contains(selectedNode) || (selectedNode.parentNode && element.contains(selectedNode.parentNode)));
|
|
251
243
|
}
|
|
252
244
|
getCurrentSelection(documentEl) {
|
|
253
245
|
return documentEl.getSelection();
|
|
@@ -301,18 +293,66 @@ let SkyTextEditorSelectionService = class SkyTextEditorSelectionService {
|
|
|
301
293
|
}
|
|
302
294
|
}
|
|
303
295
|
}
|
|
304
|
-
}
|
|
305
|
-
SkyTextEditorSelectionService.ɵ
|
|
306
|
-
SkyTextEditorSelectionService =
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
296
|
+
}
|
|
297
|
+
SkyTextEditorSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
298
|
+
SkyTextEditorSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorSelectionService, providedIn: 'root' });
|
|
299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorSelectionService, decorators: [{
|
|
300
|
+
type: Injectable,
|
|
301
|
+
args: [{
|
|
302
|
+
providedIn: 'root'
|
|
303
|
+
}]
|
|
304
|
+
}] });
|
|
311
305
|
|
|
312
306
|
/**
|
|
313
307
|
* @internal
|
|
314
308
|
*/
|
|
315
|
-
|
|
309
|
+
class SkyTextEditorService {
|
|
310
|
+
constructor() {
|
|
311
|
+
/**
|
|
312
|
+
* A dictionary representing all active text editors and their settings.
|
|
313
|
+
*/
|
|
314
|
+
this.editors = {};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Returns the click observable from the editor with the corresponding id.
|
|
318
|
+
*/
|
|
319
|
+
clickListener(id) {
|
|
320
|
+
return this.editors[id].clickObservable;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns the command change observable from the editor with the corresponding id.
|
|
324
|
+
*/
|
|
325
|
+
commandChangeListener(id) {
|
|
326
|
+
return this.editors[id].commandChangeObservable;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Removes editor from the `editors` index by id.
|
|
330
|
+
*/
|
|
331
|
+
removeEditor(id) {
|
|
332
|
+
if (id in this.editors) {
|
|
333
|
+
delete this.editors[id];
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Returns the selection change observable from the editor with the corresponding id.
|
|
338
|
+
*/
|
|
339
|
+
selectionChangeListener(id) {
|
|
340
|
+
return this.editors[id].selectionChangeObservable;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
SkyTextEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
344
|
+
SkyTextEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorService, providedIn: 'root' });
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorService, decorators: [{
|
|
346
|
+
type: Injectable,
|
|
347
|
+
args: [{
|
|
348
|
+
providedIn: 'root'
|
|
349
|
+
}]
|
|
350
|
+
}] });
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @internal
|
|
354
|
+
*/
|
|
355
|
+
class SkyTextEditorAdapterService {
|
|
316
356
|
constructor(selectionService, textEditorService, windowService) {
|
|
317
357
|
this.selectionService = selectionService;
|
|
318
358
|
this.textEditorService = textEditorService;
|
|
@@ -720,38 +760,28 @@ let SkyTextEditorAdapterService = class SkyTextEditorAdapterService {
|
|
|
720
760
|
setEditorDisabled(id, focusableChildren, textEditorNativeElement, disabled) {
|
|
721
761
|
textEditorNativeElement.style.pointerEvents = disabled ? 'none' : 'auto';
|
|
722
762
|
textEditorNativeElement.setAttribute('aria-disabled', disabled ? 'true' : 'false');
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
763
|
+
/* istanbul ignore else */
|
|
764
|
+
if (focusableChildren.length > 0) {
|
|
765
|
+
focusableChildren.forEach(aFocusableChild => {
|
|
766
|
+
aFocusableChild.tabIndex = disabled ? -1 : 0;
|
|
767
|
+
});
|
|
768
|
+
}
|
|
726
769
|
this.getIframeDocumentEl(id).body.setAttribute('contenteditable', disabled ? 'false' : 'true');
|
|
727
770
|
}
|
|
728
|
-
};
|
|
729
|
-
SkyTextEditorAdapterService.ctorParameters = () => [
|
|
730
|
-
{ type: SkyTextEditorSelectionService },
|
|
731
|
-
{ type: SkyTextEditorService },
|
|
732
|
-
{ type: SkyAppWindowRef }
|
|
733
|
-
];
|
|
734
|
-
SkyTextEditorAdapterService.ɵprov = ɵɵdefineInjectable({ factory: function SkyTextEditorAdapterService_Factory() { return new SkyTextEditorAdapterService(ɵɵinject(SkyTextEditorSelectionService), ɵɵinject(SkyTextEditorService), ɵɵinject(SkyAppWindowRef)); }, token: SkyTextEditorAdapterService, providedIn: "root" });
|
|
735
|
-
SkyTextEditorAdapterService = __decorate([
|
|
736
|
-
Injectable({
|
|
737
|
-
providedIn: 'root'
|
|
738
|
-
})
|
|
739
|
-
], SkyTextEditorAdapterService);
|
|
740
|
-
|
|
741
|
-
// Need to add the following to classes which contain static methods.
|
|
742
|
-
// See: https://github.com/ng-packagr/ng-packagr/issues/641
|
|
743
|
-
// @dynamic
|
|
744
|
-
class SkyFormsUtility {
|
|
745
|
-
/** Coerces a data-bound value (typically a string) to a boolean. */
|
|
746
|
-
static coerceBooleanProperty(value) {
|
|
747
|
-
return value !== undefined && `${value}` !== 'false';
|
|
748
|
-
}
|
|
749
771
|
}
|
|
772
|
+
SkyTextEditorAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorAdapterService, deps: [{ token: SkyTextEditorSelectionService }, { token: SkyTextEditorService }, { token: i3.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
773
|
+
SkyTextEditorAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorAdapterService, providedIn: 'root' });
|
|
774
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorAdapterService, decorators: [{
|
|
775
|
+
type: Injectable,
|
|
776
|
+
args: [{
|
|
777
|
+
providedIn: 'root'
|
|
778
|
+
}]
|
|
779
|
+
}], ctorParameters: function () { return [{ type: SkyTextEditorSelectionService }, { type: SkyTextEditorService }, { type: i3.SkyAppWindowRef }]; } });
|
|
750
780
|
|
|
751
781
|
/**
|
|
752
782
|
* @internal
|
|
753
783
|
*/
|
|
754
|
-
|
|
784
|
+
class SkyTextEditorMenubarComponent {
|
|
755
785
|
constructor(adapterService, changeDetector, resources) {
|
|
756
786
|
this.adapterService = adapterService;
|
|
757
787
|
this.changeDetector = changeDetector;
|
|
@@ -901,35 +931,28 @@ let SkyTextEditorMenubarComponent = class SkyTextEditorMenubarComponent {
|
|
|
901
931
|
}
|
|
902
932
|
this.execCommand('removeFormat');
|
|
903
933
|
}
|
|
904
|
-
}
|
|
905
|
-
SkyTextEditorMenubarComponent
|
|
906
|
-
{ type:
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
],
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
],
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
Component({
|
|
927
|
-
selector: 'sky-text-editor-menubar',
|
|
928
|
-
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",
|
|
929
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
930
|
-
styles: [".sky-text-editor-dropdown-item-divider{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:0 0;border-bottom:1px solid rgba(0,0,0,.1);cursor:default;filter:none}.sky-text-editor-menu-key-shortcut{float:right;margin-left:15px}"]
|
|
931
|
-
})
|
|
932
|
-
], SkyTextEditorMenubarComponent);
|
|
934
|
+
}
|
|
935
|
+
SkyTextEditorMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorMenubarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
936
|
+
SkyTextEditorMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyTextEditorMenubarComponent, selector: "sky-text-editor-menubar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", menus: "menus", mergeFields: "mergeFields", disabled: "disabled" }, ngImport: i0, 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$1.λ39, selector: "sky-toolbar-item" }, { type: i4.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4.λ2, selector: "sky-dropdown-button" }, { type: i4.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i2.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorMenubarComponent, decorators: [{
|
|
938
|
+
type: Component,
|
|
939
|
+
args: [{
|
|
940
|
+
selector: 'sky-text-editor-menubar',
|
|
941
|
+
templateUrl: './text-editor-menubar.component.html',
|
|
942
|
+
styleUrls: ['./text-editor-menubar.component.scss'],
|
|
943
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
944
|
+
}]
|
|
945
|
+
}], ctorParameters: function () { return [{ type: SkyTextEditorAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyLibResourcesService }]; }, propDecorators: { editorFocusStream: [{
|
|
946
|
+
type: Input
|
|
947
|
+
}], editorId: [{
|
|
948
|
+
type: Input
|
|
949
|
+
}], menus: [{
|
|
950
|
+
type: Input
|
|
951
|
+
}], mergeFields: [{
|
|
952
|
+
type: Input
|
|
953
|
+
}], disabled: [{
|
|
954
|
+
type: Input
|
|
955
|
+
}] } });
|
|
933
956
|
|
|
934
957
|
/**
|
|
935
958
|
* @internal
|
|
@@ -942,7 +965,7 @@ const queryStringParamKey = '?Subject=';
|
|
|
942
965
|
/**
|
|
943
966
|
* @internal
|
|
944
967
|
*/
|
|
945
|
-
|
|
968
|
+
class SkyTextEditorUrlModalComponent {
|
|
946
969
|
constructor(modalInstance, modalContext) {
|
|
947
970
|
this.modalInstance = modalInstance;
|
|
948
971
|
this.emailAddressValid = false;
|
|
@@ -1024,23 +1047,22 @@ let SkyTextEditorUrlModalComponent = class SkyTextEditorUrlModalComponent {
|
|
|
1024
1047
|
}
|
|
1025
1048
|
return !!this.emailAddress && SkyValidation.isEmail(this.emailAddress);
|
|
1026
1049
|
}
|
|
1027
|
-
}
|
|
1028
|
-
SkyTextEditorUrlModalComponent
|
|
1029
|
-
{ type:
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
], SkyTextEditorUrlModalComponent);
|
|
1050
|
+
}
|
|
1051
|
+
SkyTextEditorUrlModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorUrlModalComponent, deps: [{ token: i1$1.SkyModalInstance }, { token: SkyUrlModalContext }], target: i0.ɵɵFactoryTarget.Component });
|
|
1052
|
+
SkyTextEditorUrlModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyTextEditorUrlModalComponent, selector: "skyux-text-editor-url-modal", ngImport: i0, 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$1.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i1$1.λ4, selector: "sky-modal-header" }, { type: i1$1.λ2, selector: "sky-modal-content" }, { type: i3$2.λ2, selector: "sky-tabset", inputs: ["active", "ariaLabel", "ariaLabelledBy", "permalinkId", "tabStyle"], outputs: ["activeChange", "newTab", "openTab", "tabIndexesChange"] }, { type: i3$2.λ1, selector: "sky-tab", inputs: ["active", "disabled", "permalinkValue", "tabHeaderCount", "tabHeading", "tabIndex"], outputs: ["close"] }, { type: i4$1.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: i1$1.λ3, selector: "sky-modal-footer" }], directives: [{ type: i5.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.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "skyLibResources": i2.SkyLibResourcesPipe } });
|
|
1053
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorUrlModalComponent, decorators: [{
|
|
1054
|
+
type: Component,
|
|
1055
|
+
args: [{
|
|
1056
|
+
selector: 'skyux-text-editor-url-modal',
|
|
1057
|
+
templateUrl: './text-editor-url-modal.component.html',
|
|
1058
|
+
styleUrls: ['./text-editor-url-modal.component.scss']
|
|
1059
|
+
}]
|
|
1060
|
+
}], ctorParameters: function () { return [{ type: i1$1.SkyModalInstance }, { type: SkyUrlModalContext }]; } });
|
|
1039
1061
|
|
|
1040
1062
|
/**
|
|
1041
1063
|
* @internal
|
|
1042
1064
|
*/
|
|
1043
|
-
|
|
1065
|
+
class SkyTextEditorToolbarComponent {
|
|
1044
1066
|
constructor(adapterService, changeDetector, modalService) {
|
|
1045
1067
|
this.adapterService = adapterService;
|
|
1046
1068
|
this.changeDetector = changeDetector;
|
|
@@ -1153,41 +1175,32 @@ let SkyTextEditorToolbarComponent = class SkyTextEditorToolbarComponent {
|
|
|
1153
1175
|
}
|
|
1154
1176
|
}
|
|
1155
1177
|
}
|
|
1156
|
-
}
|
|
1157
|
-
SkyTextEditorToolbarComponent
|
|
1158
|
-
{ type: SkyTextEditorAdapterService },
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
],
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
],
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
],
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
], SkyTextEditorToolbarComponent.prototype, "disabled", null);
|
|
1183
|
-
SkyTextEditorToolbarComponent = __decorate([
|
|
1184
|
-
Component({
|
|
1185
|
-
selector: 'sky-text-editor-toolbar',
|
|
1186
|
-
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",
|
|
1187
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1188
|
-
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}"]
|
|
1189
|
-
})
|
|
1190
|
-
], SkyTextEditorToolbarComponent);
|
|
1178
|
+
}
|
|
1179
|
+
SkyTextEditorToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorToolbarComponent, deps: [{ token: SkyTextEditorAdapterService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1180
|
+
SkyTextEditorToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyTextEditorToolbarComponent, selector: "sky-text-editor-toolbar", inputs: { editorFocusStream: "editorFocusStream", editorId: "editorId", fontList: "fontList", fontSizeList: "fontSizeList", toolbarActions: "toolbarActions", styleState: "styleState", disabled: "disabled" }, ngImport: i0, 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$1.λ39, selector: "sky-toolbar-item" }, { type: i4.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i4.λ2, selector: "sky-dropdown-button" }, { type: i4.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i4.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }, { type: i4$1.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6$1.λ1, selector: "sky-colorpicker", inputs: ["label", "labelledBy", "messageStream", "showResetButton"], outputs: ["selectedColorChanged", "selectedColorApplied"] }, { type: i7.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.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$1.λ2, selector: "[skyColorpickerInput]", inputs: ["skyColorpickerInput", "initialColor", "returnFormat", "outputFormat", "presetColors", "alphaChannel", "allowTransparency"] }, { type: i6.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorToolbarComponent, decorators: [{
|
|
1182
|
+
type: Component,
|
|
1183
|
+
args: [{
|
|
1184
|
+
selector: 'sky-text-editor-toolbar',
|
|
1185
|
+
templateUrl: './text-editor-toolbar.component.html',
|
|
1186
|
+
styleUrls: ['./text-editor-toolbar.component.scss'],
|
|
1187
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1188
|
+
}]
|
|
1189
|
+
}], ctorParameters: function () { return [{ type: SkyTextEditorAdapterService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyModalService }]; }, propDecorators: { editorFocusStream: [{
|
|
1190
|
+
type: Input
|
|
1191
|
+
}], editorId: [{
|
|
1192
|
+
type: Input
|
|
1193
|
+
}], fontList: [{
|
|
1194
|
+
type: Input
|
|
1195
|
+
}], fontSizeList: [{
|
|
1196
|
+
type: Input
|
|
1197
|
+
}], toolbarActions: [{
|
|
1198
|
+
type: Input
|
|
1199
|
+
}], styleState: [{
|
|
1200
|
+
type: Input
|
|
1201
|
+
}], disabled: [{
|
|
1202
|
+
type: Input
|
|
1203
|
+
}] } });
|
|
1191
1204
|
|
|
1192
1205
|
/**
|
|
1193
1206
|
* @internal
|
|
@@ -1214,7 +1227,6 @@ const TOOLBAR_ACTION_DEFAULTS = [
|
|
|
1214
1227
|
*/
|
|
1215
1228
|
const FONT_SIZE_LIST_DEFAULTS = [6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 48];
|
|
1216
1229
|
|
|
1217
|
-
var SkyTextEditorComponent_1;
|
|
1218
1230
|
/**
|
|
1219
1231
|
* Auto-incrementing integer used to generate unique ids for radio components.
|
|
1220
1232
|
*/
|
|
@@ -1222,7 +1234,7 @@ let nextUniqueId = 0;
|
|
|
1222
1234
|
/**
|
|
1223
1235
|
* The text editor component lets users format and manipulate text.
|
|
1224
1236
|
*/
|
|
1225
|
-
|
|
1237
|
+
class SkyTextEditorComponent {
|
|
1226
1238
|
constructor(changeDetector, coreAdapterService, adapterService, editorService, sanitizationService) {
|
|
1227
1239
|
this.changeDetector = changeDetector;
|
|
1228
1240
|
this.coreAdapterService = coreAdapterService;
|
|
@@ -1407,70 +1419,84 @@ let SkyTextEditorComponent = SkyTextEditorComponent_1 = class SkyTextEditorCompo
|
|
|
1407
1419
|
this.value = this.adapterService.getEditorInnerHtml(this.id);
|
|
1408
1420
|
this._initialStyleState = Object.assign(Object.assign({}, this._initialStyleState), this.adapterService.getStyleState(this.id));
|
|
1409
1421
|
}
|
|
1410
|
-
}
|
|
1411
|
-
SkyTextEditorComponent
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
],
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
],
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
}
|
|
1462
|
-
],
|
|
1463
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1464
|
-
encapsulation: ViewEncapsulation.None,
|
|
1465
|
-
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 silver;overflow-y:auto;outline:0}.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}"]
|
|
1466
|
-
})
|
|
1467
|
-
], SkyTextEditorComponent);
|
|
1422
|
+
}
|
|
1423
|
+
SkyTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i3.SkyCoreAdapterService }, { token: SkyTextEditorAdapterService }, { token: SkyTextEditorService }, { token: SkyTextSanitizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1424
|
+
SkyTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", 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: [
|
|
1425
|
+
{
|
|
1426
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1427
|
+
// tslint:disable-next-line: no-forward-ref
|
|
1428
|
+
useExisting: forwardRef(() => SkyTextEditorComponent),
|
|
1429
|
+
multi: true
|
|
1430
|
+
}
|
|
1431
|
+
], viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, 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 #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$1.λ37, selector: "sky-toolbar" }, { type: i3$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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorComponent, decorators: [{
|
|
1433
|
+
type: Component,
|
|
1434
|
+
args: [{
|
|
1435
|
+
selector: 'sky-text-editor',
|
|
1436
|
+
templateUrl: './text-editor.component.html',
|
|
1437
|
+
styleUrls: ['./text-editor.component.scss'],
|
|
1438
|
+
providers: [
|
|
1439
|
+
{
|
|
1440
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1441
|
+
// tslint:disable-next-line: no-forward-ref
|
|
1442
|
+
useExisting: forwardRef(() => SkyTextEditorComponent),
|
|
1443
|
+
multi: true
|
|
1444
|
+
}
|
|
1445
|
+
],
|
|
1446
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1447
|
+
encapsulation: ViewEncapsulation.None
|
|
1448
|
+
}]
|
|
1449
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i3.SkyCoreAdapterService }, { type: SkyTextEditorAdapterService }, { type: SkyTextEditorService }, { type: SkyTextSanitizationService }]; }, propDecorators: { autofocus: [{
|
|
1450
|
+
type: Input
|
|
1451
|
+
}], disabled: [{
|
|
1452
|
+
type: Input
|
|
1453
|
+
}], fontList: [{
|
|
1454
|
+
type: Input
|
|
1455
|
+
}], fontSizeList: [{
|
|
1456
|
+
type: Input
|
|
1457
|
+
}], id: [{
|
|
1458
|
+
type: Input
|
|
1459
|
+
}], initialStyleState: [{
|
|
1460
|
+
type: Input
|
|
1461
|
+
}], menus: [{
|
|
1462
|
+
type: Input
|
|
1463
|
+
}], mergeFields: [{
|
|
1464
|
+
type: Input
|
|
1465
|
+
}], placeholder: [{
|
|
1466
|
+
type: Input
|
|
1467
|
+
}], toolbarActions: [{
|
|
1468
|
+
type: Input
|
|
1469
|
+
}], iframeRef: [{
|
|
1470
|
+
type: ViewChild,
|
|
1471
|
+
args: ['iframe']
|
|
1472
|
+
}] } });
|
|
1468
1473
|
|
|
1469
|
-
|
|
1470
|
-
}
|
|
1471
|
-
SkyTextEditorModule =
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
+
class SkyTextEditorModule {
|
|
1475
|
+
}
|
|
1476
|
+
SkyTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1477
|
+
SkyTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorModule, declarations: [SkyTextEditorComponent,
|
|
1478
|
+
SkyTextEditorUrlModalComponent,
|
|
1479
|
+
SkyTextEditorToolbarComponent,
|
|
1480
|
+
SkyTextEditorMenubarComponent], imports: [CommonModule,
|
|
1481
|
+
FormsModule,
|
|
1482
|
+
ReactiveFormsModule,
|
|
1483
|
+
SkyCoreAdapterModule,
|
|
1484
|
+
SkyTextEditorResourcesModule,
|
|
1485
|
+
SkyI18nModule,
|
|
1486
|
+
SkyIconModule,
|
|
1487
|
+
SkyIdModule,
|
|
1488
|
+
SkyInputBoxModule,
|
|
1489
|
+
SkyColorpickerModule,
|
|
1490
|
+
SkyCheckboxModule,
|
|
1491
|
+
SkyDropdownModule,
|
|
1492
|
+
SkyModalModule,
|
|
1493
|
+
SkyTabsModule,
|
|
1494
|
+
SkyThemeModule,
|
|
1495
|
+
SkyToolbarModule], exports: [SkyTextEditorComponent,
|
|
1496
|
+
SkyTextEditorUrlModalComponent,
|
|
1497
|
+
SkyTextEditorToolbarComponent,
|
|
1498
|
+
SkyTextEditorMenubarComponent] });
|
|
1499
|
+
SkyTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorModule, imports: [[
|
|
1474
1500
|
CommonModule,
|
|
1475
1501
|
FormsModule,
|
|
1476
1502
|
ReactiveFormsModule,
|
|
@@ -1487,28 +1513,49 @@ SkyTextEditorModule = __decorate([
|
|
|
1487
1513
|
SkyTabsModule,
|
|
1488
1514
|
SkyThemeModule,
|
|
1489
1515
|
SkyToolbarModule
|
|
1490
|
-
]
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1516
|
+
]] });
|
|
1517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyTextEditorModule, decorators: [{
|
|
1518
|
+
type: NgModule,
|
|
1519
|
+
args: [{
|
|
1520
|
+
imports: [
|
|
1521
|
+
CommonModule,
|
|
1522
|
+
FormsModule,
|
|
1523
|
+
ReactiveFormsModule,
|
|
1524
|
+
SkyCoreAdapterModule,
|
|
1525
|
+
SkyTextEditorResourcesModule,
|
|
1526
|
+
SkyI18nModule,
|
|
1527
|
+
SkyIconModule,
|
|
1528
|
+
SkyIdModule,
|
|
1529
|
+
SkyInputBoxModule,
|
|
1530
|
+
SkyColorpickerModule,
|
|
1531
|
+
SkyCheckboxModule,
|
|
1532
|
+
SkyDropdownModule,
|
|
1533
|
+
SkyModalModule,
|
|
1534
|
+
SkyTabsModule,
|
|
1535
|
+
SkyThemeModule,
|
|
1536
|
+
SkyToolbarModule
|
|
1537
|
+
],
|
|
1538
|
+
exports: [
|
|
1539
|
+
SkyTextEditorComponent,
|
|
1540
|
+
SkyTextEditorUrlModalComponent,
|
|
1541
|
+
SkyTextEditorToolbarComponent,
|
|
1542
|
+
SkyTextEditorMenubarComponent
|
|
1543
|
+
],
|
|
1544
|
+
declarations: [
|
|
1545
|
+
SkyTextEditorComponent,
|
|
1546
|
+
SkyTextEditorUrlModalComponent,
|
|
1547
|
+
SkyTextEditorToolbarComponent,
|
|
1548
|
+
SkyTextEditorMenubarComponent
|
|
1549
|
+
],
|
|
1550
|
+
entryComponents: [
|
|
1551
|
+
SkyTextEditorUrlModalComponent
|
|
1552
|
+
]
|
|
1553
|
+
}]
|
|
1554
|
+
}] });
|
|
1508
1555
|
|
|
1509
1556
|
/**
|
|
1510
1557
|
* Generated bundle index. Do not edit.
|
|
1511
1558
|
*/
|
|
1512
1559
|
|
|
1513
|
-
export { SkyRichTextDisplayModule, SkyTextEditorModule, SkyRichTextDisplayComponent as
|
|
1560
|
+
export { SkyRichTextDisplayModule, SkyTextEditorModule, SkyRichTextDisplayComponent as λ1, SkyTextEditorMenubarComponent as λ2, SkyTextEditorUrlModalComponent as λ3, SkyTextEditorToolbarComponent as λ4, SkyTextEditorComponent as λ5 };
|
|
1514
1561
|
//# sourceMappingURL=skyux-text-editor.js.map
|