@skyux/text-editor 5.7.2 → 6.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +2 -2
- package/esm2020/index.mjs +15 -0
- package/esm2020/lib/modules/rich-text-display/rich-text-display.component.mjs +36 -0
- package/esm2020/lib/modules/rich-text-display/rich-text-display.module.mjs +18 -0
- package/esm2020/lib/modules/shared/forms-utility.mjs +10 -0
- package/esm2020/lib/modules/shared/sky-text-editor-resources.module.mjs +106 -0
- package/esm2020/lib/modules/text-editor/defaults/font-list-defaults.mjs +42 -0
- package/esm2020/lib/modules/text-editor/defaults/font-size-list-defaults.mjs +7 -0
- package/esm2020/lib/modules/text-editor/defaults/menu-defaults.mjs +5 -0
- package/esm2020/lib/modules/text-editor/defaults/style-state-defaults.mjs +15 -0
- package/esm2020/lib/modules/text-editor/defaults/toolbar-action-defaults.mjs +12 -0
- package/esm2020/lib/modules/text-editor/menubar/text-editor-menubar.component.mjs +191 -0
- package/esm2020/lib/modules/text-editor/services/text-editor-adapter.service.mjs +477 -0
- package/esm2020/lib/modules/text-editor/services/text-editor-selection.service.mjs +80 -0
- package/esm2020/lib/modules/text-editor/services/text-editor.service.mjs +61 -0
- package/esm2020/lib/modules/text-editor/services/text-sanitization.service.mjs +38 -0
- package/esm2020/lib/modules/text-editor/text-editor.component.mjs +322 -0
- package/esm2020/lib/modules/text-editor/text-editor.module.mjs +98 -0
- package/esm2020/lib/modules/text-editor/toolbar/text-editor-toolbar.component.mjs +179 -0
- package/esm2020/lib/modules/text-editor/types/editor-command.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/editor-setting.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/font-state.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/menu-type.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/style-state.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/text-editor-merge-field.mjs +2 -0
- package/esm2020/lib/modules/text-editor/types/toolbar-action-type.mjs +2 -0
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-modal-context.mjs +6 -0
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-modal-result.mjs +2 -0
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-modal.component.mjs +117 -0
- package/esm2020/lib/modules/text-editor/url-modal/text-editor-url-target.mjs +9 -0
- package/esm2020/skyux-text-editor.mjs +5 -0
- package/fesm2015/{skyux-text-editor.js → skyux-text-editor.mjs} +45 -69
- package/fesm2015/skyux-text-editor.mjs.map +1 -0
- package/fesm2020/skyux-text-editor.mjs +1743 -0
- package/fesm2020/skyux-text-editor.mjs.map +1 -0
- package/package.json +38 -22
- package/bundles/skyux-text-editor.umd.js +0 -2195
- package/esm2015/index.js +0 -15
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js +0 -39
- package/esm2015/lib/modules/rich-text-display/rich-text-display.component.js.map +0 -1
- package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js +0 -18
- package/esm2015/lib/modules/rich-text-display/rich-text-display.module.js.map +0 -1
- package/esm2015/lib/modules/shared/forms-utility.js +0 -10
- package/esm2015/lib/modules/shared/forms-utility.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js +0 -106
- package/esm2015/lib/modules/shared/sky-text-editor-resources.module.js.map +0 -1
- package/esm2015/lib/modules/text-editor/defaults/font-list-defaults.js +0 -42
- package/esm2015/lib/modules/text-editor/defaults/font-list-defaults.js.map +0 -1
- package/esm2015/lib/modules/text-editor/defaults/font-size-list-defaults.js +0 -7
- package/esm2015/lib/modules/text-editor/defaults/font-size-list-defaults.js.map +0 -1
- package/esm2015/lib/modules/text-editor/defaults/menu-defaults.js +0 -5
- package/esm2015/lib/modules/text-editor/defaults/menu-defaults.js.map +0 -1
- package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js +0 -15
- package/esm2015/lib/modules/text-editor/defaults/style-state-defaults.js.map +0 -1
- package/esm2015/lib/modules/text-editor/defaults/toolbar-action-defaults.js +0 -12
- package/esm2015/lib/modules/text-editor/defaults/toolbar-action-defaults.js.map +0 -1
- package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js +0 -196
- package/esm2015/lib/modules/text-editor/menubar/text-editor-menubar.component.js.map +0 -1
- package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js +0 -474
- package/esm2015/lib/modules/text-editor/services/text-editor-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/text-editor/services/text-editor-selection.service.js +0 -80
- package/esm2015/lib/modules/text-editor/services/text-editor-selection.service.js.map +0 -1
- package/esm2015/lib/modules/text-editor/services/text-editor.service.js +0 -61
- package/esm2015/lib/modules/text-editor/services/text-editor.service.js.map +0 -1
- package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js +0 -38
- package/esm2015/lib/modules/text-editor/services/text-sanitization.service.js.map +0 -1
- package/esm2015/lib/modules/text-editor/text-editor.component.js +0 -322
- package/esm2015/lib/modules/text-editor/text-editor.component.js.map +0 -1
- package/esm2015/lib/modules/text-editor/text-editor.module.js +0 -99
- package/esm2015/lib/modules/text-editor/text-editor.module.js.map +0 -1
- package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js +0 -175
- package/esm2015/lib/modules/text-editor/toolbar/text-editor-toolbar.component.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/editor-command.js +0 -2
- package/esm2015/lib/modules/text-editor/types/editor-command.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/editor-setting.js +0 -2
- package/esm2015/lib/modules/text-editor/types/editor-setting.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/font-state.js +0 -2
- package/esm2015/lib/modules/text-editor/types/font-state.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/menu-type.js +0 -2
- package/esm2015/lib/modules/text-editor/types/menu-type.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/style-state.js +0 -2
- package/esm2015/lib/modules/text-editor/types/style-state.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/text-editor-merge-field.js +0 -2
- package/esm2015/lib/modules/text-editor/types/text-editor-merge-field.js.map +0 -1
- package/esm2015/lib/modules/text-editor/types/toolbar-action-type.js +0 -2
- package/esm2015/lib/modules/text-editor/types/toolbar-action-type.js.map +0 -1
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-context.js +0 -6
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-context.js.map +0 -1
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-result.js +0 -2
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal-result.js.map +0 -1
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js +0 -121
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-modal.component.js.map +0 -1
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-target.js +0 -9
- package/esm2015/lib/modules/text-editor/url-modal/text-editor-url-target.js.map +0 -1
- package/esm2015/skyux-text-editor.js +0 -5
- package/esm2015/skyux-text-editor.js.map +0 -1
- package/fesm2015/skyux-text-editor.js.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { SkyColorpickerModule } from '@skyux/colorpicker';
|
|
5
|
+
import { SkyCoreAdapterModule, SkyIdModule } from '@skyux/core';
|
|
6
|
+
import { SkyCheckboxModule, SkyInputBoxModule } from '@skyux/forms';
|
|
7
|
+
import { SkyI18nModule } from '@skyux/i18n';
|
|
8
|
+
import { SkyIconModule } from '@skyux/indicators';
|
|
9
|
+
import { SkyToolbarModule } from '@skyux/layout';
|
|
10
|
+
import { SkyModalModule } from '@skyux/modals';
|
|
11
|
+
import { SkyDropdownModule } from '@skyux/popovers';
|
|
12
|
+
import { SkyTabsModule } from '@skyux/tabs';
|
|
13
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
14
|
+
import { SkyTextEditorResourcesModule } from '../../modules/shared/sky-text-editor-resources.module';
|
|
15
|
+
import { SkyTextEditorMenubarComponent } from './menubar/text-editor-menubar.component';
|
|
16
|
+
import { SkyTextEditorComponent } from './text-editor.component';
|
|
17
|
+
import { SkyTextEditorToolbarComponent } from './toolbar/text-editor-toolbar.component';
|
|
18
|
+
import { SkyTextEditorUrlModalComponent } from './url-modal/text-editor-url-modal.component';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
export class SkyTextEditorModule {
|
|
21
|
+
}
|
|
22
|
+
SkyTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
SkyTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorModule, declarations: [SkyTextEditorComponent,
|
|
24
|
+
SkyTextEditorUrlModalComponent,
|
|
25
|
+
SkyTextEditorToolbarComponent,
|
|
26
|
+
SkyTextEditorMenubarComponent], imports: [CommonModule,
|
|
27
|
+
FormsModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
SkyCoreAdapterModule,
|
|
30
|
+
SkyTextEditorResourcesModule,
|
|
31
|
+
SkyI18nModule,
|
|
32
|
+
SkyIconModule,
|
|
33
|
+
SkyIdModule,
|
|
34
|
+
SkyInputBoxModule,
|
|
35
|
+
SkyColorpickerModule,
|
|
36
|
+
SkyCheckboxModule,
|
|
37
|
+
SkyDropdownModule,
|
|
38
|
+
SkyModalModule,
|
|
39
|
+
SkyTabsModule,
|
|
40
|
+
SkyThemeModule,
|
|
41
|
+
SkyToolbarModule], exports: [SkyTextEditorComponent,
|
|
42
|
+
SkyTextEditorUrlModalComponent,
|
|
43
|
+
SkyTextEditorToolbarComponent,
|
|
44
|
+
SkyTextEditorMenubarComponent] });
|
|
45
|
+
SkyTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorModule, imports: [[
|
|
46
|
+
CommonModule,
|
|
47
|
+
FormsModule,
|
|
48
|
+
ReactiveFormsModule,
|
|
49
|
+
SkyCoreAdapterModule,
|
|
50
|
+
SkyTextEditorResourcesModule,
|
|
51
|
+
SkyI18nModule,
|
|
52
|
+
SkyIconModule,
|
|
53
|
+
SkyIdModule,
|
|
54
|
+
SkyInputBoxModule,
|
|
55
|
+
SkyColorpickerModule,
|
|
56
|
+
SkyCheckboxModule,
|
|
57
|
+
SkyDropdownModule,
|
|
58
|
+
SkyModalModule,
|
|
59
|
+
SkyTabsModule,
|
|
60
|
+
SkyThemeModule,
|
|
61
|
+
SkyToolbarModule,
|
|
62
|
+
]] });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorModule, decorators: [{
|
|
64
|
+
type: NgModule,
|
|
65
|
+
args: [{
|
|
66
|
+
imports: [
|
|
67
|
+
CommonModule,
|
|
68
|
+
FormsModule,
|
|
69
|
+
ReactiveFormsModule,
|
|
70
|
+
SkyCoreAdapterModule,
|
|
71
|
+
SkyTextEditorResourcesModule,
|
|
72
|
+
SkyI18nModule,
|
|
73
|
+
SkyIconModule,
|
|
74
|
+
SkyIdModule,
|
|
75
|
+
SkyInputBoxModule,
|
|
76
|
+
SkyColorpickerModule,
|
|
77
|
+
SkyCheckboxModule,
|
|
78
|
+
SkyDropdownModule,
|
|
79
|
+
SkyModalModule,
|
|
80
|
+
SkyTabsModule,
|
|
81
|
+
SkyThemeModule,
|
|
82
|
+
SkyToolbarModule,
|
|
83
|
+
],
|
|
84
|
+
exports: [
|
|
85
|
+
SkyTextEditorComponent,
|
|
86
|
+
SkyTextEditorUrlModalComponent,
|
|
87
|
+
SkyTextEditorToolbarComponent,
|
|
88
|
+
SkyTextEditorMenubarComponent,
|
|
89
|
+
],
|
|
90
|
+
declarations: [
|
|
91
|
+
SkyTextEditorComponent,
|
|
92
|
+
SkyTextEditorUrlModalComponent,
|
|
93
|
+
SkyTextEditorToolbarComponent,
|
|
94
|
+
SkyTextEditorMenubarComponent,
|
|
95
|
+
],
|
|
96
|
+
}]
|
|
97
|
+
}] });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFrQzdGLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFONUIsc0JBQXNCO1FBQ3RCLDhCQUE4QjtRQUM5Qiw2QkFBNkI7UUFDN0IsNkJBQTZCLGFBM0I3QixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsNEJBQTRCO1FBQzVCLGFBQWE7UUFDYixhQUFhO1FBQ2IsV0FBVztRQUNYLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGNBQWM7UUFDZCxnQkFBZ0IsYUFHaEIsc0JBQXNCO1FBQ3RCLDhCQUE4QjtRQUM5Qiw2QkFBNkI7UUFDN0IsNkJBQTZCO2lIQVNwQixtQkFBbUIsWUEvQnJCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1QixhQUFhO1lBQ2IsYUFBYTtZQUNiLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGFBQWE7WUFDYixjQUFjO1lBQ2QsZ0JBQWdCO1NBQ2pCOzJGQWNVLG1CQUFtQjtrQkFoQy9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLDZCQUE2QjtxQkFDOUI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLDZCQUE2QjtxQkFDOUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29sb3JwaWNrZXInO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJNb2R1bGUsIFNreUlkTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hNb2R1bGUsIFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sYXlvdXQnO1xuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcbmltcG9ydCB7IFNreURyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcbmltcG9ydCB7IFNreVRhYnNNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGFicyc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NoYXJlZC9za3ktdGV4dC1lZGl0b3ItcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreVRleHRFZGl0b3JNZW51YmFyQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51YmFyL3RleHQtZWRpdG9yLW1lbnViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vdG9vbGJhci90ZXh0LWVkaXRvci10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUNvcmVBZGFwdGVyTW9kdWxlLFxuICAgIFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreUlucHV0Qm94TW9kdWxlLFxuICAgIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreURyb3Bkb3duTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVRhYnNNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VG9vbGJhck1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreVRleHRFZGl0b3JDb21wb25lbnQsXG4gICAgU2t5VGV4dEVkaXRvclVybE1vZGFsQ29tcG9uZW50LFxuICAgIFNreVRleHRFZGl0b3JUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreVRleHRFZGl0b3JNZW51YmFyQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIFNreVRleHRFZGl0b3JVcmxNb2RhbENvbXBvbmVudCxcbiAgICBTa3lUZXh0RWRpdG9yVG9vbGJhckNvbXBvbmVudCxcbiAgICBTa3lUZXh0RWRpdG9yTWVudWJhckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
|
+
import { SkyColorpickerMessageType, } from '@skyux/colorpicker';
|
|
3
|
+
import { SkyModalService } from '@skyux/modals';
|
|
4
|
+
import { SkyDropdownMessageType } from '@skyux/popovers';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { SkyFormsUtility } from '../../shared/forms-utility';
|
|
7
|
+
import { STYLE_STATE_DEFAULTS } from '../defaults/style-state-defaults';
|
|
8
|
+
import { SkyTextEditorAdapterService } from '../services/text-editor-adapter.service';
|
|
9
|
+
import { SkyUrlModalContext } from '../url-modal/text-editor-url-modal-context';
|
|
10
|
+
import { SkyTextEditorUrlModalComponent } from '../url-modal/text-editor-url-modal.component';
|
|
11
|
+
import { UrlTarget } from '../url-modal/text-editor-url-target';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "../services/text-editor-adapter.service";
|
|
14
|
+
import * as i2 from "@skyux/modals";
|
|
15
|
+
import * as i3 from "@skyux/layout";
|
|
16
|
+
import * as i4 from "@skyux/popovers";
|
|
17
|
+
import * as i5 from "@skyux/forms";
|
|
18
|
+
import * as i6 from "@skyux/colorpicker";
|
|
19
|
+
import * as i7 from "@skyux/indicators";
|
|
20
|
+
import * as i8 from "@angular/common";
|
|
21
|
+
import * as i9 from "@angular/forms";
|
|
22
|
+
import * as i10 from "@skyux/theme";
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export class SkyTextEditorToolbarComponent {
|
|
27
|
+
constructor(adapterService, changeDetector, modalService) {
|
|
28
|
+
this.adapterService = adapterService;
|
|
29
|
+
this.changeDetector = changeDetector;
|
|
30
|
+
this.modalService = modalService;
|
|
31
|
+
this.editorFocusStream = new Subject();
|
|
32
|
+
this.backColorpickerStream = new Subject();
|
|
33
|
+
this.colorpickerStream = new Subject();
|
|
34
|
+
this.fontPickerStream = new Subject();
|
|
35
|
+
this.fontSizeStream = new Subject();
|
|
36
|
+
this._disabled = false;
|
|
37
|
+
this._styleState = STYLE_STATE_DEFAULTS;
|
|
38
|
+
}
|
|
39
|
+
get styleState() {
|
|
40
|
+
return this._styleState;
|
|
41
|
+
}
|
|
42
|
+
set styleState(value) {
|
|
43
|
+
this._styleState = value;
|
|
44
|
+
if (value.font !== this.styleStateFontName) {
|
|
45
|
+
if (value.font === '"Blackbaud Sans", Arial, sans-serif') {
|
|
46
|
+
this.styleStateFontName = this.getFontName('Blackbaud Sans');
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.styleStateFontName = this.getFontName(value.font);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
set disabled(value) {
|
|
54
|
+
const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);
|
|
55
|
+
if (coercedValue !== this.disabled) {
|
|
56
|
+
this._disabled = coercedValue;
|
|
57
|
+
this.changeDetector.markForCheck();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
get disabled() {
|
|
61
|
+
return this._disabled;
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() {
|
|
64
|
+
this.editorFocusStream.subscribe(() => {
|
|
65
|
+
this.styleState = {
|
|
66
|
+
...this._styleState,
|
|
67
|
+
...this.adapterService.getStyleState(this.editorId),
|
|
68
|
+
};
|
|
69
|
+
this.closeDropdowns();
|
|
70
|
+
this.changeDetector.detectChanges();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
execCommand(command, value = '') {
|
|
74
|
+
this.adapterService.execCommand(this.editorId, {
|
|
75
|
+
command: command,
|
|
76
|
+
value: value,
|
|
77
|
+
});
|
|
78
|
+
this.styleState = {
|
|
79
|
+
...this.styleState,
|
|
80
|
+
...this.adapterService.getStyleState(this.editorId),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
toggleFontStyle(currentState, newState, command) {
|
|
84
|
+
if (currentState !== newState) {
|
|
85
|
+
this.execCommand(command);
|
|
86
|
+
}
|
|
87
|
+
// Force sky-checkbox to show changes on user's initial click.
|
|
88
|
+
this.changeDetector.detectChanges();
|
|
89
|
+
}
|
|
90
|
+
link() {
|
|
91
|
+
const priorSelection = this.adapterService.saveSelection(this.editorId);
|
|
92
|
+
const currentLink = this.adapterService.getLink(this.editorId);
|
|
93
|
+
const inputModal = this.modalService.open(SkyTextEditorUrlModalComponent, [
|
|
94
|
+
{
|
|
95
|
+
provide: SkyUrlModalContext,
|
|
96
|
+
useValue: { urlResult: currentLink },
|
|
97
|
+
},
|
|
98
|
+
]);
|
|
99
|
+
inputModal.closed.subscribe((result) => {
|
|
100
|
+
if (result.reason === 'save' && priorSelection) {
|
|
101
|
+
if (currentLink) {
|
|
102
|
+
const anchor = this.adapterService.getSelectedAnchorTag(this.editorId);
|
|
103
|
+
this.adapterService.selectElement(this.editorId, anchor);
|
|
104
|
+
}
|
|
105
|
+
this.execCommand('unlink');
|
|
106
|
+
if (result.data.target === UrlTarget.None) {
|
|
107
|
+
// Current window
|
|
108
|
+
this.execCommand('createLink', result.data.url);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// New Window
|
|
112
|
+
const sText = this.adapterService.getCurrentSelection(this.editorId);
|
|
113
|
+
this.execCommand('insertHTML', '<a href="' +
|
|
114
|
+
result.data.url +
|
|
115
|
+
'" rel="noopener noreferrer" target="_blank">' +
|
|
116
|
+
sText +
|
|
117
|
+
'</a>');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
unlink() {
|
|
123
|
+
const currentSelectionRange = this.adapterService
|
|
124
|
+
.getCurrentSelection(this.editorId)
|
|
125
|
+
.getRangeAt(0);
|
|
126
|
+
if (currentSelectionRange.toString().length <= 0) {
|
|
127
|
+
const anchorTag = this.adapterService.getSelectedAnchorTag(this.editorId);
|
|
128
|
+
this.adapterService.selectElement(this.editorId, anchorTag);
|
|
129
|
+
}
|
|
130
|
+
this.execCommand('unlink');
|
|
131
|
+
}
|
|
132
|
+
changeFontSize(size) {
|
|
133
|
+
this.adapterService.setFontSize(this.editorId, size);
|
|
134
|
+
this.styleState = {
|
|
135
|
+
...this.styleState,
|
|
136
|
+
...this.adapterService.getStyleState(this.editorId),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
onColorpickerColorChanged(color, isBackground = false) {
|
|
140
|
+
this.execCommand(isBackground ? 'backColor' : 'foreColor', color.hex);
|
|
141
|
+
}
|
|
142
|
+
closeDropdowns() {
|
|
143
|
+
const message = {
|
|
144
|
+
type: SkyColorpickerMessageType.Close,
|
|
145
|
+
};
|
|
146
|
+
this.colorpickerStream.next(message);
|
|
147
|
+
this.backColorpickerStream.next(message);
|
|
148
|
+
this.fontPickerStream.next({ type: SkyDropdownMessageType.Close });
|
|
149
|
+
this.fontSizeStream.next({ type: SkyDropdownMessageType.Close });
|
|
150
|
+
}
|
|
151
|
+
getFontName(fontName) {
|
|
152
|
+
for (let i = 0; i < this.fontList.length; i++) {
|
|
153
|
+
if (fontName.replace(/['"]+/g, '') === this.fontList[i].name) {
|
|
154
|
+
return this.fontList[i].name;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
SkyTextEditorToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorToolbarComponent, deps: [{ token: i1.SkyTextEditorAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
+
SkyTextEditorToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.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: "<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.λ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: i5.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i6.λ1, selector: "sky-colorpicker", inputs: ["pickerButtonIcon", "pickerButtonIconType", "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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.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.λ2, selector: "[skyColorpickerInput]", inputs: ["skyColorpickerInput", "initialColor", "returnFormat", "outputFormat", "presetColors", "alphaChannel", "allowTransparency"] }, { type: i10.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextEditorToolbarComponent, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ selector: 'sky-text-editor-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
|
|
164
|
+
}], ctorParameters: function () { return [{ type: i1.SkyTextEditorAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyModalService }]; }, propDecorators: { editorFocusStream: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], editorId: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], fontList: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], fontSizeList: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], toolbarActions: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], styleState: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], disabled: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}] } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCx5QkFBeUIsR0FFMUIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQXNCLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFJdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFFaEU7O0dBRUc7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YztzQkFEcEIsS0FBSztnQkFJSyxVQUFVO3NCQURwQixLQUFLO2dCQWdCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5Q29sb3JwaWNrZXJNZXNzYWdlLFxuICBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLFxuICBTa3lDb2xvcnBpY2tlck91dHB1dCxcbn0gZnJvbSAnQHNreXV4L2NvbG9ycGlja2VyJztcbmltcG9ydCB7IFNreU1vZGFsQ2xvc2VBcmdzLCBTa3lNb2RhbFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcbmltcG9ydCB7IFNreURyb3Bkb3duTWVzc2FnZSwgU2t5RHJvcGRvd25NZXNzYWdlVHlwZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuaW1wb3J0IHsgU1RZTEVfU1RBVEVfREVGQVVMVFMgfSBmcm9tICcuLi9kZWZhdWx0cy9zdHlsZS1zdGF0ZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckZvbnQgfSBmcm9tICcuLi90eXBlcy9mb250LXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIH0gZnJvbSAnLi4vdHlwZXMvc3R5bGUtc3RhdGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vdHlwZXMvdG9vbGJhci1hY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBTa3lVcmxNb2RhbENvbnRleHQgfSBmcm9tICcuLi91cmwtbW9kYWwvdGV4dC1lZGl0b3ItdXJsLW1vZGFsLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclVybE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsVGFyZ2V0IH0gZnJvbSAnLi4vdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC10YXJnZXQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3ItdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWVkaXRvci10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgZWRpdG9yRm9jdXNTdHJlYW0gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlZGl0b3JJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250TGlzdDogU2t5VGV4dEVkaXRvckZvbnRbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9udFNpemVMaXN0OiBudW1iZXJbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdG9vbGJhckFjdGlvbnM6IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZVtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eWxlU3RhdGU7XG4gIH1cbiAgcHVibGljIHNldCBzdHlsZVN0YXRlKHZhbHVlOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSkge1xuICAgIHRoaXMuX3N0eWxlU3RhdGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUuZm9udCAhPT0gdGhpcy5zdHlsZVN0YXRlRm9udE5hbWUpIHtcbiAgICAgIGlmICh2YWx1ZS5mb250ID09PSAnXCJCbGFja2JhdWQgU2Fuc1wiLCBBcmlhbCwgc2Fucy1zZXJpZicpIHtcbiAgICAgICAgdGhpcy5zdHlsZVN0YXRlRm9udE5hbWUgPSB0aGlzLmdldEZvbnROYW1lKCdCbGFja2JhdWQgU2FucycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdHlsZVN0YXRlRm9udE5hbWUgPSB0aGlzLmdldEZvbnROYW1lKHZhbHVlLmZvbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgYmFja0NvbG9ycGlja2VyU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5Q29sb3JwaWNrZXJNZXNzYWdlPigpO1xuXG4gIHB1YmxpYyBjb2xvcnBpY2tlclN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcblxuICBwdWJsaWMgZm9udFBpY2tlclN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreURyb3Bkb3duTWVzc2FnZT4oKTtcblxuICBwdWJsaWMgZm9udFNpemVTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+KCk7XG5cbiAgcHVibGljIHN0eWxlU3RhdGVGb250TmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc3R5bGVTdGF0ZSA9IFNUWUxFX1NUQVRFX0RFRkFVTFRTO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlclNlcnZpY2U6IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogU2t5TW9kYWxTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JGb2N1c1N0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdHlsZVN0YXRlID0ge1xuICAgICAgICAuLi50aGlzLl9zdHlsZVN0YXRlLFxuICAgICAgICAuLi4odGhpcy5hZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKHRoaXMuZWRpdG9ySWQpIGFzIGFueSksXG4gICAgICB9O1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3ducygpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZXhlY0NvbW1hbmQoY29tbWFuZDogc3RyaW5nLCB2YWx1ZTogYW55ID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmV4ZWNDb21tYW5kKHRoaXMuZWRpdG9ySWQsIHtcbiAgICAgIGNvbW1hbmQ6IGNvbW1hbmQsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgfSk7XG4gICAgdGhpcy5zdHlsZVN0YXRlID0ge1xuICAgICAgLi4udGhpcy5zdHlsZVN0YXRlLFxuICAgICAgLi4udGhpcy5hZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKHRoaXMuZWRpdG9ySWQpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRm9udFN0eWxlKFxuICAgIGN1cnJlbnRTdGF0ZTogYm9vbGVhbixcbiAgICBuZXdTdGF0ZTogYm9vbGVhbixcbiAgICBjb21tYW5kOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZSAhPT0gbmV3U3RhdGUpIHtcbiAgICAgIHRoaXMuZXhlY0NvbW1hbmQoY29tbWFuZCk7XG4gICAgfVxuXG4gICAgLy8gRm9yY2Ugc2t5LWNoZWNrYm94IHRvIHNob3cgY2hhbmdlcyBvbiB1c2VyJ3MgaW5pdGlhbCBjbGljay5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBsaW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IHByaW9yU2VsZWN0aW9uID0gdGhpcy5hZGFwdGVyU2VydmljZS5zYXZlU2VsZWN0aW9uKHRoaXMuZWRpdG9ySWQpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5rID0gdGhpcy5hZGFwdGVyU2VydmljZS5nZXRMaW5rKHRoaXMuZWRpdG9ySWQpO1xuICAgIGNvbnN0IGlucHV0TW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFNreVRleHRFZGl0b3JVcmxNb2RhbENvbXBvbmVudCwgW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTa3lVcmxNb2RhbENvbnRleHQsXG4gICAgICAgIHVzZVZhbHVlOiB7IHVybFJlc3VsdDogY3VycmVudExpbmsgfSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgaW5wdXRNb2RhbC5jbG9zZWQuc3Vic2NyaWJlKChyZXN1bHQ6IFNreU1vZGFsQ2xvc2VBcmdzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0LnJlYXNvbiA9PT0gJ3NhdmUnICYmIHByaW9yU2VsZWN0aW9uKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGluaykge1xuICAgICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0U2VsZWN0ZWRBbmNob3JUYWcoXG4gICAgICAgICAgICB0aGlzLmVkaXRvcklkXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNlbGVjdEVsZW1lbnQodGhpcy5lZGl0b3JJZCwgYW5jaG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXhlY0NvbW1hbmQoJ3VubGluaycpO1xuICAgICAgICBpZiAocmVzdWx0LmRhdGEudGFyZ2V0ID09PSBVcmxUYXJnZXQuTm9uZSkge1xuICAgICAgICAgIC8vIEN1cnJlbnQgd2luZG93XG4gICAgICAgICAgdGhpcy5leGVjQ29tbWFuZCgnY3JlYXRlTGluaycsIHJlc3VsdC5kYXRhLnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTmV3IFdpbmRvd1xuICAgICAgICAgIGNvbnN0IHNUZXh0ID0gdGhpcy5hZGFwdGVyU2VydmljZS5nZXRDdXJyZW50U2VsZWN0aW9uKHRoaXMuZWRpdG9ySWQpO1xuICAgICAgICAgIHRoaXMuZXhlY0NvbW1hbmQoXG4gICAgICAgICAgICAnaW5zZXJ0SFRNTCcsXG4gICAgICAgICAgICAnPGEgaHJlZj1cIicgK1xuICAgICAgICAgICAgICByZXN1bHQuZGF0YS51cmwgK1xuICAgICAgICAgICAgICAnXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPicgK1xuICAgICAgICAgICAgICBzVGV4dCArXG4gICAgICAgICAgICAgICc8L2E+J1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1bmxpbmsoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGlvblJhbmdlID0gdGhpcy5hZGFwdGVyU2VydmljZVxuICAgICAgLmdldEN1cnJlbnRTZWxlY3Rpb24odGhpcy5lZGl0b3JJZClcbiAgICAgIC5nZXRSYW5nZUF0KDApO1xuICAgIGlmIChjdXJyZW50U2VsZWN0aW9uUmFuZ2UudG9TdHJpbmcoKS5sZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgYW5jaG9yVGFnID0gdGhpcy5hZGFwdGVyU2VydmljZS5nZXRTZWxlY3RlZEFuY2hvclRhZyh0aGlzLmVkaXRvcklkKTtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2VsZWN0RWxlbWVudCh0aGlzLmVkaXRvcklkLCBhbmNob3JUYWcpO1xuICAgIH1cbiAgICB0aGlzLmV4ZWNDb21tYW5kKCd1bmxpbmsnKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGb250U2l6ZShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEZvbnRTaXplKHRoaXMuZWRpdG9ySWQsIHNpemUpO1xuICAgIHRoaXMuc3R5bGVTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuc3R5bGVTdGF0ZSxcbiAgICAgIC4uLnRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0U3R5bGVTdGF0ZSh0aGlzLmVkaXRvcklkKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG9uQ29sb3JwaWNrZXJDb2xvckNoYW5nZWQoXG4gICAgY29sb3I6IFNreUNvbG9ycGlja2VyT3V0cHV0LFxuICAgIGlzQmFja2dyb3VuZCA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZXhlY0NvbW1hbmQoaXNCYWNrZ3JvdW5kID8gJ2JhY2tDb2xvcicgOiAnZm9yZUNvbG9yJywgY29sb3IuaGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bnMoKTogdm9pZCB7XG4gICAgY29uc3QgbWVzc2FnZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlID0ge1xuICAgICAgdHlwZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5DbG9zZSxcbiAgICB9O1xuICAgIHRoaXMuY29sb3JwaWNrZXJTdHJlYW0ubmV4dChtZXNzYWdlKTtcbiAgICB0aGlzLmJhY2tDb2xvcnBpY2tlclN0cmVhbS5uZXh0KG1lc3NhZ2UpO1xuICAgIHRoaXMuZm9udFBpY2tlclN0cmVhbS5uZXh0KHsgdHlwZTogU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgICB0aGlzLmZvbnRTaXplU3RyZWFtLm5leHQoeyB0eXBlOiBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb250TmFtZShmb250TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZm9udExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChmb250TmFtZS5yZXBsYWNlKC9bJ1wiXSsvZywgJycpID09PSB0aGlzLmZvbnRMaXN0W2ldLm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9udExpc3RbaV0ubmFtZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxza3ktdG9vbGJhci1pdGVtXG4gICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckFjdGlvbnNcIlxuICBjbGFzcz1cInNreS10ZXh0LWVkaXRvci10b29sYmFyLWFjdGlvblwiXG4gIFtuZ0NsYXNzXT1cIidza3ktdGV4dC1lZGl0b3ItdG9vbGJhci1hY3Rpb24tJyArIGFjdGlvblwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmb250LWZhbWlseSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1waWNrZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbbGFiZWxdPVwiJ0ZvbnQ6ICcgKyBzdHlsZVN0YXRlRm9udE5hbWVcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250UGlja2VyU3RyZWFtXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnZm9udC1mYW1pbHknOiBzdHlsZVN0YXRlLmZvbnRcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHN0eWxlU3RhdGVGb250TmFtZSB9fVxuICAgICAgICA8L3NreS1kcm9wZG93bi1idXR0b24+XG4gICAgICAgIDxza3ktZHJvcGRvd24tbWVudT5cbiAgICAgICAgICA8c2t5LWRyb3Bkb3duLWl0ZW0gKm5nRm9yPVwibGV0IGZvbnRNb2RlbCBvZiBmb250TGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICdmb250LWZhbWlseSc6IGZvbnRNb2RlbC52YWx1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdmb250bmFtZScsIGZvbnRNb2RlbC5uYW1lKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGZvbnRNb2RlbC5uYW1lIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc2l6ZSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1zaXplLXBpY2tlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtsYWJlbF09XCInRm9udCBzaXplOiAnICsgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCdcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250U2l6ZVN0cmVhbVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJ2ZvbnQtZmFtaWx5Jzogc3R5bGVTdGF0ZS5mb250U2l6ZVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCcgfX1cbiAgICAgICAgPC9za3ktZHJvcGRvd24tYnV0dG9uPlxuICAgICAgICA8c2t5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgPHNreS1kcm9wZG93bi1pdGVtICpuZ0Zvcj1cImxldCBzaXplIG9mIGZvbnRTaXplTGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZUZvbnRTaXplKHNpemUpXCI+XG4gICAgICAgICAgICAgIHt7IHNpemUgKyAncHgnIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc3R5bGUnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwIHNreS10ZXh0LWVkaXRvci1mb250LXN0eWxlLXBpY2tlclwiPlxuICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIGxhYmVsPVwiQm9sZFwiXG4gICAgICAgICAgdGl0bGU9XCJCb2xkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuYm9sZFN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLmJvbGRTdGF0ZSwgJGV2ZW50LCAnYm9sZCcpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJpdGFsaWNcIlxuICAgICAgICAgIGxhYmVsPVwiSXRhbGljaXplZFwiXG4gICAgICAgICAgdGl0bGU9XCJJdGFsaWNpemVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuaXRhbGljU3RhdGVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxuICAgICAgICAgICAgdG9nZ2xlRm9udFN0eWxlKHN0eWxlU3RhdGUuaXRhbGljU3RhdGUsICRldmVudCwgJ2l0YWxpYycpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIGxhYmVsPVwiVW5kZXJsaW5lXCJcbiAgICAgICAgICB0aXRsZT1cIlVuZGVybGluZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlLCAkZXZlbnQsICd1bmRlcmxpbmUnKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItY29sb3JwaWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNreS1jb2xvcnBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1jb2xvci1waWNrZXJcIlxuICAgICAgICAgICAgbGFiZWw9XCJGb250IGNvbG9yXCJcbiAgICAgICAgICAgIFttZXNzYWdlU3RyZWFtXT1cImNvbG9ycGlja2VyU3RyZWFtXCJcbiAgICAgICAgICAgIFtzaG93UmVzZXRCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgKHNlbGVjdGVkQ29sb3JDaGFuZ2VkKT1cIm9uQ29sb3JwaWNrZXJDb2xvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAjY29sb3JQaWNrZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PVwiaGV4XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbYWxsb3dUcmFuc3BhcmVuY3ldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLmZvbnRDb2xvclwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlcklucHV0XT1cImNvbG9yUGlja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktY29sb3JwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxza3ktY29sb3JwaWNrZXJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWJhY2tncm91bmQtY29sb3ItcGlja2VyXCJcbiAgICAgICAgICAgIGxhYmVsPVwiQmFja2dyb3VuZCBjb2xvclwiXG4gICAgICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJiYWNrQ29sb3JwaWNrZXJTdHJlYW1cIlxuICAgICAgICAgICAgW3Nob3dSZXNldEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRDb2xvckNoYW5nZWQpPVwib25Db2xvcnBpY2tlckNvbG9yQ2hhbmdlZCgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgICNiYWNrQ29sb3JQaWNrZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PVwicmdiYVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2FsbG93VHJhbnNwYXJlbmN5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLmJhY2tDb2xvclwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlcklucHV0XT1cImJhY2tDb2xvclBpY2tlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWNvbG9ycGlja2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1zd2l0Y2gtaWNvbi1ncm91cFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkJ1bGxldGVkIGxpc3RcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1pY29uXCJcbiAgICAgICAgICB0aXRsZT1cIkJ1bGxldGVkIGxpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdpbnNlcnRVbm9yZGVyZWRMaXN0JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImxpc3QtdWxcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cImJ1bGxldC1saXN0LWxpbmVcIlxuICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk51bWJlcmVkIGxpc3RcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1pY29uXCJcbiAgICAgICAgICB0aXRsZT1cIk51bWJlcmVkIGxpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdpbnNlcnRPcmRlcmVkTGlzdCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJsaXN0LW9sXCI+IDwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJudW1iZXItbGlzdC1saW5lXCJcbiAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhbGlnbm1lbnQnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQWxpZ24gbGVmdFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gbGVmdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2p1c3RpZnlMZWZ0JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImFsaWduLWxlZnRcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cImFsaWduLWxlZnQtdGV4dC1saW5lXCJcbiAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiBjZW50ZXJcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1pY29uXCJcbiAgICAgICAgICB0aXRsZT1cIkFsaWduIGNlbnRlclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2p1c3RpZnlDZW50ZXInKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiYWxpZ24tY2VudGVyXCI+IDwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgIGljb249XCJjZW50ZXItdGV4dC1saW5lXCJcbiAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiByaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gcmlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdqdXN0aWZ5UmlnaHQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiYWxpZ24tcmlnaHRcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICAgICAgaWNvbj1cImFsaWduLXJpZ2h0LXRleHQtbGluZVwiXG4gICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5kZW50YXRpb24nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiT3V0ZGVudFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiT3V0ZGVudFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ291dGRlbnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwib3V0ZGVudFwiPiA8L3NreS1pY29uPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCIgaWNvbj1cIm91dGRlbnQtbGluZVwiIGljb25UeXBlPVwic2t5dXhcIj5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmRlbnRcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1pY29uXCJcbiAgICAgICAgICB0aXRsZT1cIkluZGVudFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luZGVudCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJpbmRlbnRcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJpbmRlbnQtbGluZVwiIGljb25UeXBlPVwic2t5dXhcIj5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1bmRvLXJlZG8nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVW5kb1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiVW5kb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ3VuZG8nKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwidW5kb1wiPiA8L3NreS1pY29uPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCIgaWNvbj1cInVuZG8tbGluZVwiIGljb25UeXBlPVwic2t5dXhcIj5cbiAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZWRvXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJSZWRvXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgncmVkbycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJyZXBlYXRcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJyZWRvLWxpbmVcIiBpY29uVHlwZT1cInNreXV4XCI+XG4gICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGluaydcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJMaW5rXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJMaW5rXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdpY29uLWJ0bi1hY3RpdmUnOiBzdHlsZVN0YXRlLmxpbmtTdGF0ZVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJsaW5rKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImxpbmtcIj4gPC9za3ktaWNvbj5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJsaW5rLWxpbmVcIiBpY29uVHlwZT1cInNreXV4XCI+XG4gICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVW5saW5rXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJVbmxpbmtcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3R5bGVTdGF0ZS5saW5rU3RhdGUgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJ1bmxpbmsoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwidW5saW5rXCI+IDwvc2t5LWljb24+XG4gICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ21vZGVybidcIiBpY29uPVwidW5saW5rLWxpbmVcIiBpY29uVHlwZT1cInNreXV4XCI+XG4gICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L3NreS10b29sYmFyLWl0ZW0+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3R5cGVzL2VkaXRvci1jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvckNvbW1hbmQge1xuICBjb21tYW5kOiBzdHJpbmc7XG4gIHZhbHVlPzogYW55O1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXNldHRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3R5cGVzL2VkaXRvci1zZXR0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yU2V0dGluZyB7XG4gIGJsdXJMaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBibHVyT2JzZXJ2YWJsZTogU3ViamVjdDx1bmtub3duPjtcblxuICBjbGlja0xpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIGNsaWNrT2JzZXJ2YWJsZTogU3ViamVjdDx1bmtub3duPjtcblxuICBjb21tYW5kQ2hhbmdlT2JzZXJ2YWJsZTogU3ViamVjdDx1bmtub3duPjtcblxuICBpZnJhbWVFbGVtZW50UmVmOiBIVE1MSUZyYW1lRWxlbWVudDtcblxuICBpbnB1dExpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIGlucHV0T2JzZXJ2YWJsZTogU3ViamVjdDx1bmtub3duPjtcblxuICBwYXN0ZUxpc3RlbmVyOiAoZTogQ2xpcGJvYXJkRXZlbnQpID0+IHZvaWQ7XG5cbiAgc2VsZWN0aW9uQ2hhbmdlT2JzZXJ2YWJsZTogU3ViamVjdDx1bmtub3duPjtcblxuICBzZWxlY3Rpb25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3IvdHlwZXMvZm9udC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lUZXh0RWRpdG9yRm9udCB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgZm9udC5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBDU1MgYGZvbnQtZmFtaWx5YCB2YWx1ZSBmb3IgdGhlIGZvbnQuXG4gICAqL1xuICB2YWx1ZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90eXBlcy9tZW51LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNreVRleHRFZGl0b3JNZW51VHlwZSA9ICdlZGl0JyB8ICdmb3JtYXQnIHwgJ21lcmdlLWZpZWxkJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3R5cGVzL3N0eWxlLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYmFja2dyb3VuZCBjb2xvci4gQWNjZXB0cyBhbnkgQ1NTIGNvbG9yIHZhbHVlLlxuICAgKi9cbiAgYmFja0NvbG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udCBjb2xvci4gQWNjZXB0cyBhbnkgQ1NTIGNvbG9yIHZhbHVlLlxuICAgKi9cbiAgZm9udENvbG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udCBzaXplIGluIHBpeGVscy5cbiAgICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udCBmYW1pbHkuIEF2YWlsYWJsZSB2YWx1ZXM6IGBcIkJsYWNrYmF1ZCBTYW5zXCJgLFxuICAgKiBgXCJBcmlhbFwiYCwgYFwic2Fucy1zZXJpZlwiYCwgYFwiQXJpYWwgQmxhY2tcImAsIGBcIkNvdXJpZXIgTmV3XCJgLCBhbmQgYFwiVGltZXMgTmV3IFJvbWFuXCJgLlxuICAgKi9cbiAgZm9udDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBtYWtlIHRleHQgYm9sZC5cbiAgICovXG4gIGJvbGRTdGF0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaXRhbGljaXplIHRleHQuXG4gICAqL1xuICBpdGFsaWNTdGF0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdW5kZXJsaW5lIHRleHQuXG4gICAqL1xuICB1bmRlcmxpbmVTdGF0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZm9ybWF0IHRleHQgYXMgYSBsaW5rLlxuICAgKi9cbiAgbGlua1N0YXRlOiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItbWVyZ2UtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3R5cGVzL3RleHQtZWRpdG9yLW1lcmdlLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVRleHRFZGl0b3JNZXJnZUZpZWxkIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgbWVyZ2UgZmllbGQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgZGlzcGxheSB0ZXh0IGZvciB0aGUgbWVyZ2UgZmllbGQuIElmIGl0IGlzIG1vcmUgdGhhbiAxOCBjaGFyYWN0ZXJzLCB0aGUgY29tcG9uZW50IHRydW5jYXRlcyB0byAxNSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGBzcmNgIGF0dHJpYnV0ZSBmb3IgYSBwcmV2aWV3IGltYWdlIHRvIHJlcHJlc2VudCB0aGUgbWVyZ2UgZmllbGRcbiAgICogaW4gdGhlIHRleHQgZWRpdG9yLiBCeSBkZWZhdWx0LCB0aGUgYG5hbWVgIHZhbHVlIGFwcGVhcnMgaW4gYSBibHVlIHJlY3RhbmdsZS5cbiAgICovXG4gIHByZXZpZXdJbWFnZVVybD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1hY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3IvdHlwZXMvdG9vbGJhci1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlID1cbiAgfCAnZm9udC1mYW1pbHknXG4gIHwgJ2ZvbnQtc2l6ZSdcbiAgfCAnZm9udC1zdHlsZSdcbiAgfCAnY29sb3InXG4gIHwgJ2xpc3QnXG4gIHwgJ2FsaWdubWVudCdcbiAgfCAnaW5kZW50YXRpb24nXG4gIHwgJ3VuZG8tcmVkbydcbiAgfCAnbGluayc7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export class SkyUrlModalContext {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdXJsLW1vZGFsLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcmxNb2RhbFJlc3VsdCB9IGZyb20gJy4vdGV4dC1lZGl0b3ItdXJsLW1vZGFsLXJlc3VsdCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lVcmxNb2RhbENvbnRleHQge1xuICBwdWJsaWMgdXJsUmVzdWx0OiBVcmxNb2RhbFJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdXJsLW1vZGFsLXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3IvdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC1tb2RhbC1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybFRhcmdldCB9IGZyb20gJy4vdGV4dC1lZGl0b3ItdXJsLXRhcmdldCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXJsTW9kYWxSZXN1bHQge1xuICB1cmw6IHN0cmluZztcbiAgdGFyZ2V0OiBVcmxUYXJnZXQ7XG59XG4iXX0=
|