atr-components 0.0.22 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/atr-components.d.ts +1 -1
- package/{public-api.d.ts → atr-public-api.d.ts} +1 -0
- package/esm2020/atr-components.mjs +2 -2
- package/esm2020/atr-public-api.mjs +45 -0
- package/esm2020/lib/shared/atr-shared.module.mjs +76 -7
- package/esm2020/lib/shared/quill-editor/quill-editor.component.mjs +166 -0
- package/fesm2015/atr-components.mjs +239 -19
- package/fesm2015/atr-components.mjs.map +1 -1
- package/fesm2020/atr-components.mjs +238 -19
- package/fesm2020/atr-components.mjs.map +1 -1
- package/lib/shared/atr-shared.module.d.ts +20 -18
- package/lib/shared/quill-editor/quill-editor.component.d.ts +37 -0
- package/package.json +1 -1
package/atr-components.d.ts
CHANGED
|
@@ -38,3 +38,4 @@ export * from "./lib/shared/validators/atr-validtors";
|
|
|
38
38
|
export * from "./lib/shared/upload/upload.component";
|
|
39
39
|
export * from "./lib/shared/table/table.component";
|
|
40
40
|
export * from "./lib/shared/table/table-form-item/table-form-item.component";
|
|
41
|
+
export * from "./lib/shared/quill-editor/quill-editor.component";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
export * from './atr-public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9hdHItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYXRyLXB1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of components
|
|
3
|
+
*/
|
|
4
|
+
export * from "./core/animations/animations";
|
|
5
|
+
export * from "./core/interceptor/base.interceptor";
|
|
6
|
+
export * from "./core/ngz-module/cus-zorro-antd.module";
|
|
7
|
+
export * from "./core/animations/fly-in";
|
|
8
|
+
export * from "./core/animations/scroll-screen";
|
|
9
|
+
export * from './atr-components.module';
|
|
10
|
+
export * from './lib/hello/hello.module';
|
|
11
|
+
export * from './core/auth/auth.guard';
|
|
12
|
+
export * from './core/base/atr-common';
|
|
13
|
+
export * from './core/routereuse/atr-reuse-strategy';
|
|
14
|
+
export * from "./core/utils/ToolsUtil";
|
|
15
|
+
export * from "./core/utils/localstorage.util";
|
|
16
|
+
export * from "./core/utils/sessionstorage.util";
|
|
17
|
+
export * from "./core/services/dict/dict.service";
|
|
18
|
+
export * from "./core/services/http.service";
|
|
19
|
+
export * from "./core/services/menu.service";
|
|
20
|
+
export * from "./core/services/upload-oss.service";
|
|
21
|
+
export * from "./core/directive/role.directive";
|
|
22
|
+
export * from "./core/directive/error-img.directive";
|
|
23
|
+
export * from "./core/directive/hq-spin.directive";
|
|
24
|
+
export { HelloComponent } from './lib/hello/hello.component';
|
|
25
|
+
export * from "./core/pipe/pipe-module.module";
|
|
26
|
+
export * from "./core/pipe/is-empty.pipe";
|
|
27
|
+
export * from "./core/pipe/dicts.pipe";
|
|
28
|
+
export * from "./core/pipe/defaultVal.pipe";
|
|
29
|
+
export * from "./core/pipe/day.pipe";
|
|
30
|
+
export * from "./core/pipe/safe-compute.pipe";
|
|
31
|
+
export * from "./core/pipe/is-not-empty.pipe";
|
|
32
|
+
export * from "./lib/shared/atr-shared.module";
|
|
33
|
+
export * from "./lib/shared/form/form.component";
|
|
34
|
+
export * from "./lib/shared/local-upload/local-upload.component";
|
|
35
|
+
export * from "./lib/shared/select-tree/select-tree.component";
|
|
36
|
+
export * from "./lib/shared/service/busi.service";
|
|
37
|
+
export * from "./lib/shared/table/table-td/table-td.component";
|
|
38
|
+
export * from "./lib/shared/share.service";
|
|
39
|
+
export * from "./lib/shared/video/video.component";
|
|
40
|
+
export * from "./lib/shared/validators/atr-validtors";
|
|
41
|
+
export * from "./lib/shared/upload/upload.component";
|
|
42
|
+
export * from "./lib/shared/table/table.component";
|
|
43
|
+
export * from "./lib/shared/table/table-form-item/table-form-item.component";
|
|
44
|
+
export * from "./lib/shared/quill-editor/quill-editor.component";
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLXB1YmxpYy1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9hdHItcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLGdEQUFnRCxDQUFBO0FBQzlELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw4REFBOEQsQ0FBQTtBQUM1RSxjQUFjLGtEQUFrRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvYW5pbWF0aW9ucy9hbmltYXRpb25zXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvaW50ZXJjZXB0b3IvYmFzZS5pbnRlcmNlcHRvclwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL25nei1tb2R1bGUvY3VzLXpvcnJvLWFudGQubW9kdWxlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvYW5pbWF0aW9ucy9mbHktaW5cIlxuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9hbmltYXRpb25zL3Njcm9sbC1zY3JlZW5cIlxuZXhwb3J0ICogZnJvbSAnLi9hdHItY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVsbG8vaGVsbG8ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9hdXRoL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2Jhc2UvYXRyLWNvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvcm91dGVyZXVzZS9hdHItcmV1c2Utc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSBcIi4vY29yZS91dGlscy9Ub29sc1V0aWxcIlxuZXhwb3J0ICogZnJvbSBcIi4vY29yZS91dGlscy9sb2NhbHN0b3JhZ2UudXRpbFwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3V0aWxzL3Nlc3Npb25zdG9yYWdlLnV0aWxcIlxuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9zZXJ2aWNlcy9kaWN0L2RpY3Quc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3NlcnZpY2VzL21lbnUuc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3NlcnZpY2VzL3VwbG9hZC1vc3Muc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL2RpcmVjdGl2ZS9yb2xlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9kaXJlY3RpdmUvZXJyb3ItaW1nLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9kaXJlY3RpdmUvaHEtc3Bpbi5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7SGVsbG9Db21wb25lbnR9IGZyb20gJy4vbGliL2hlbGxvL2hlbGxvLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvcGlwZS9waXBlLW1vZHVsZS5tb2R1bGVcIlxuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9waXBlL2lzLWVtcHR5LnBpcGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvcGlwZS9kaWN0cy5waXBlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3BpcGUvZGVmYXVsdFZhbC5waXBlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlL3BpcGUvZGF5LnBpcGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUvcGlwZS9zYWZlLWNvbXB1dGUucGlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29yZS9waXBlL2lzLW5vdC1lbXB0eS5waXBlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zaGFyZWQvYXRyLXNoYXJlZC5tb2R1bGVcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC9mb3JtL2Zvcm0uY29tcG9uZW50XCJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zaGFyZWQvbG9jYWwtdXBsb2FkL2xvY2FsLXVwbG9hZC5jb21wb25lbnRcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC9zZWxlY3QtdHJlZS9zZWxlY3QtdHJlZS5jb21wb25lbnRcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC9zZXJ2aWNlL2J1c2kuc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLXRkL3RhYmxlLXRkLmNvbXBvbmVudFwiXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2hhcmVkL3NoYXJlLnNlcnZpY2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC92aWRlby92aWRlby5jb21wb25lbnRcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC92YWxpZGF0b3JzL2F0ci12YWxpZHRvcnNcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC91cGxvYWQvdXBsb2FkLmNvbXBvbmVudFwiXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLmNvbXBvbmVudFwiXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLWZvcm0taXRlbS90YWJsZS1mb3JtLWl0ZW0uY29tcG9uZW50XCJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zaGFyZWQvcXVpbGwtZWRpdG9yL3F1aWxsLWVkaXRvci5jb21wb25lbnRcIlxuXG4iXX0=
|
|
@@ -18,7 +18,10 @@ import { TableFormItemComponent } from "./table/table-form-item/table-form-item.
|
|
|
18
18
|
import { PipeModuleModule } from "../../core/pipe/pipe-module.module";
|
|
19
19
|
import { AtrComponentsModule } from "../../atr-components.module";
|
|
20
20
|
import { CusNgZorroAntdModule } from "../../core/ngz-module/cus-zorro-antd.module";
|
|
21
|
+
import { QuillModule } from "ngx-quill";
|
|
22
|
+
import { QuillEditorComponent } from "./quill-editor/quill-editor.component";
|
|
21
23
|
import * as i0 from "@angular/core";
|
|
24
|
+
import * as i1 from "ngx-quill";
|
|
22
25
|
const THIRDMODULES = [
|
|
23
26
|
CusNgZorroAntdModule,
|
|
24
27
|
NzResizableModule
|
|
@@ -27,7 +30,7 @@ const SERVICE_PROVIDES = [];
|
|
|
27
30
|
registerLocaleData(zh);
|
|
28
31
|
// #endregion
|
|
29
32
|
// #region your componets & directives
|
|
30
|
-
const COMPONENTS = [TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
33
|
+
const COMPONENTS = [QuillEditorComponent, TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
31
34
|
SelectTreeComponent, VideoComponent];
|
|
32
35
|
//SharedModule
|
|
33
36
|
// 应 包含定义:
|
|
@@ -37,7 +40,7 @@ const COMPONENTS = [TableFormItemComponent, TableTdComponent, AtrTableComponent,
|
|
|
37
40
|
export class AtrSharedModule {
|
|
38
41
|
}
|
|
39
42
|
AtrSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AtrSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
40
|
-
AtrSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AtrSharedModule, declarations: [TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
43
|
+
AtrSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AtrSharedModule, declarations: [QuillEditorComponent, TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
41
44
|
SelectTreeComponent, VideoComponent], imports: [PipeModuleModule,
|
|
42
45
|
CommonModule,
|
|
43
46
|
FormsModule,
|
|
@@ -48,12 +51,12 @@ AtrSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
48
51
|
VgOverlayPlayModule,
|
|
49
52
|
VgBufferingModule,
|
|
50
53
|
DragDropModule,
|
|
51
|
-
AtrComponentsModule], exports: [DragDropModule,
|
|
54
|
+
AtrComponentsModule, i1.QuillModule], exports: [DragDropModule,
|
|
52
55
|
CommonModule,
|
|
53
56
|
FormsModule,
|
|
54
57
|
ReactiveFormsModule,
|
|
55
58
|
RouterModule, CusNgZorroAntdModule,
|
|
56
|
-
NzResizableModule, TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
59
|
+
NzResizableModule, QuillEditorComponent, TableFormItemComponent, TableTdComponent, AtrTableComponent, UploadComponent, AtrFormComponent, LocalUploadComponent,
|
|
57
60
|
SelectTreeComponent, VideoComponent, PipeModuleModule] });
|
|
58
61
|
AtrSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AtrSharedModule, providers: SERVICE_PROVIDES, imports: [[
|
|
59
62
|
PipeModuleModule,
|
|
@@ -68,7 +71,40 @@ AtrSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
|
|
|
68
71
|
VgOverlayPlayModule,
|
|
69
72
|
VgBufferingModule,
|
|
70
73
|
DragDropModule,
|
|
71
|
-
AtrComponentsModule
|
|
74
|
+
AtrComponentsModule,
|
|
75
|
+
QuillModule.forRoot({
|
|
76
|
+
modules: {
|
|
77
|
+
syntax: false,
|
|
78
|
+
imageResize: {},
|
|
79
|
+
toolbar: {
|
|
80
|
+
container: [
|
|
81
|
+
['undo', 'redo'],
|
|
82
|
+
['bold', 'italic', 'underline'],
|
|
83
|
+
// ['code-block'], // blockquote
|
|
84
|
+
// [{ header: 1 }, { header: 2 }], // custom button values
|
|
85
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
86
|
+
// [{ script: 'sub' }, { script: 'super' }], // superscript/subscript
|
|
87
|
+
[{ indent: '-1' }, { indent: '+1' }],
|
|
88
|
+
// [{ direction: 'rtl' }], // text direction
|
|
89
|
+
// [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown
|
|
90
|
+
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
91
|
+
[{ color: [] }, { background: [] }],
|
|
92
|
+
// [{ font: [] }],
|
|
93
|
+
[{ align: [] }],
|
|
94
|
+
['clean'],
|
|
95
|
+
['image'], // link and image, video
|
|
96
|
+
],
|
|
97
|
+
handlers: {
|
|
98
|
+
redo() {
|
|
99
|
+
this['quill'].history.redo();
|
|
100
|
+
},
|
|
101
|
+
undo() {
|
|
102
|
+
this['quill'].history.undo();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}),
|
|
72
108
|
], DragDropModule,
|
|
73
109
|
CommonModule,
|
|
74
110
|
FormsModule,
|
|
@@ -91,7 +127,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
91
127
|
VgOverlayPlayModule,
|
|
92
128
|
VgBufferingModule,
|
|
93
129
|
DragDropModule,
|
|
94
|
-
AtrComponentsModule
|
|
130
|
+
AtrComponentsModule,
|
|
131
|
+
QuillModule.forRoot({
|
|
132
|
+
modules: {
|
|
133
|
+
syntax: false,
|
|
134
|
+
imageResize: {},
|
|
135
|
+
toolbar: {
|
|
136
|
+
container: [
|
|
137
|
+
['undo', 'redo'],
|
|
138
|
+
['bold', 'italic', 'underline'],
|
|
139
|
+
// ['code-block'], // blockquote
|
|
140
|
+
// [{ header: 1 }, { header: 2 }], // custom button values
|
|
141
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
142
|
+
// [{ script: 'sub' }, { script: 'super' }], // superscript/subscript
|
|
143
|
+
[{ indent: '-1' }, { indent: '+1' }],
|
|
144
|
+
// [{ direction: 'rtl' }], // text direction
|
|
145
|
+
// [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown
|
|
146
|
+
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
147
|
+
[{ color: [] }, { background: [] }],
|
|
148
|
+
// [{ font: [] }],
|
|
149
|
+
[{ align: [] }],
|
|
150
|
+
['clean'],
|
|
151
|
+
['image'], // link and image, video
|
|
152
|
+
],
|
|
153
|
+
handlers: {
|
|
154
|
+
redo() {
|
|
155
|
+
this['quill'].history.redo();
|
|
156
|
+
},
|
|
157
|
+
undo() {
|
|
158
|
+
this['quill'].history.undo();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
95
164
|
],
|
|
96
165
|
declarations: [
|
|
97
166
|
// your components
|
|
@@ -112,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
112
181
|
providers: SERVICE_PROVIDES
|
|
113
182
|
}]
|
|
114
183
|
}] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLXNoYXJlZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2F0ci1zaGFyZWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDOztBQUNqRixNQUFNLFlBQVksR0FBRztJQUNuQixvQkFBb0I7SUFDcEIsaUJBQWlCO0NBQ2xCLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFPLEVBQUUsQ0FBQztBQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN2QixhQUFhO0FBRWIsc0NBQXNDO0FBQ3RDLE1BQU0sVUFBVSxHQUFHLENBQUMsc0JBQXNCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLGdCQUFnQixFQUFDLG9CQUFvQjtJQUNqSSxtQkFBbUIsRUFBQyxjQUFjLENBQUMsQ0FBQztBQW1DdEMsY0FBYztBQUNkLFVBQVU7QUFDVixjQUFjO0FBQ2QsZUFBZTtBQUNmLHFCQUFxQjtBQUNyQixNQUFNLE9BQU8sZUFBZTs7NkdBQWYsZUFBZTs4R0FBZixlQUFlLGlCQXpDUixzQkFBc0IsRUFBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxlQUFlLEVBQUMsZ0JBQWdCLEVBQUMsb0JBQW9CO1FBQ2pJLG1CQUFtQixFQUFDLGNBQWMsYUFHaEMsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFlBQVksRUFqQmQsb0JBQW9CO1FBQ3BCLGlCQUFpQixFQW1CZixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG1CQUFtQixhQU9uQixjQUFjO1FBQ2QsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWSxFQXBDZCxvQkFBb0I7UUFDcEIsaUJBQWlCLEVBUUMsc0JBQXNCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLGdCQUFnQixFQUFDLG9CQUFvQjtRQUNqSSxtQkFBbUIsRUFBQyxjQUFjLEVBK0JoQyxnQkFBZ0I7OEdBU1AsZUFBZSxhQVBoQixnQkFBZ0IsWUEvQmpCO1lBQ1AsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixhQUFhO1lBQ2IsR0FBRyxZQUFZO1lBQ2YsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxtQkFBbUI7U0FDcEIsRUFNQyxjQUFjO1FBQ2QsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWSxFQXBDZCxvQkFBb0I7UUFDcEIsaUJBQWlCLEVBd0NmLGdCQUFnQjs0RkFTUCxlQUFlO2tCQXZDM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsR0FBRyxZQUFZO3dCQUNmLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCO29CQUNELFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLEdBQUcsVUFBVTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsR0FBRyxZQUFZO3dCQUNmLGtCQUFrQjt3QkFDbEIsR0FBRyxVQUFVO3dCQUNiLGdCQUFnQjtxQkFDakI7b0JBQ0QsU0FBUyxFQUFDLGdCQUFnQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXRyVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnpSZXNpemFibGVNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3Jlc2l6YWJsZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB6aCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy96aCc7XHJcbmltcG9ydCB7IExvY2FsVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9sb2NhbC11cGxvYWQvbG9jYWwtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNlbGVjdFRyZWVDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC10cmVlL3NlbGVjdC10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi92aWRlby92aWRlby5jb21wb25lbnQnO1xyXG5pbXBvcnQge1ZnQ29udHJvbHNNb2R1bGUsIFZnQ29yZU1vZHVsZSwgVmdPdmVybGF5UGxheU1vZHVsZSwgVmdCdWZmZXJpbmdNb2R1bGV9IGZyb20gXCJuZ3gtdmlkZW9ndWxhclwiO1xyXG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQge1RhYmxlVGRDb21wb25lbnR9IGZyb20gXCIuL3RhYmxlL3RhYmxlLXRkL3RhYmxlLXRkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RhYmxlRm9ybUl0ZW1Db21wb25lbnR9IGZyb20gXCIuL3RhYmxlL3RhYmxlLWZvcm0taXRlbS90YWJsZS1mb3JtLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UGlwZU1vZHVsZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2NvcmUvcGlwZS9waXBlLW1vZHVsZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtBdHJDb21wb25lbnRzTW9kdWxlfSBmcm9tIFwiLi4vLi4vYXRyLWNvbXBvbmVudHMubW9kdWxlXCI7XHJcbmltcG9ydCB7Q3VzTmdab3Jyb0FudGRNb2R1bGV9IGZyb20gXCIuLi8uLi9jb3JlL25nei1tb2R1bGUvY3VzLXpvcnJvLWFudGQubW9kdWxlXCI7XHJcbmNvbnN0IFRISVJETU9EVUxFUyA9IFtcclxuICBDdXNOZ1pvcnJvQW50ZE1vZHVsZSxcclxuICBOelJlc2l6YWJsZU1vZHVsZVxyXG5dO1xyXG5cclxuY29uc3QgU0VSVklDRV9QUk9WSURFUzphbnkgPSBbXTtcclxucmVnaXN0ZXJMb2NhbGVEYXRhKHpoKTtcclxuLy8gI2VuZHJlZ2lvblxyXG5cclxuLy8gI3JlZ2lvbiB5b3VyIGNvbXBvbmV0cyAmIGRpcmVjdGl2ZXNcclxuY29uc3QgQ09NUE9ORU5UUyA9IFtUYWJsZUZvcm1JdGVtQ29tcG9uZW50LFRhYmxlVGRDb21wb25lbnQsQXRyVGFibGVDb21wb25lbnQsVXBsb2FkQ29tcG9uZW50LEF0ckZvcm1Db21wb25lbnQsTG9jYWxVcGxvYWRDb21wb25lbnQsXHJcbiAgU2VsZWN0VHJlZUNvbXBvbmVudCxWaWRlb0NvbXBvbmVudF07XHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgUGlwZU1vZHVsZU1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIC8vIHRoaXJkIGxpYnNcclxuICAgIC4uLlRISVJETU9EVUxFUyxcclxuICAgIFZnQ29yZU1vZHVsZSxcclxuICAgIFZnQ29udHJvbHNNb2R1bGUsXHJcbiAgICBWZ092ZXJsYXlQbGF5TW9kdWxlLFxyXG4gICAgVmdCdWZmZXJpbmdNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIEF0ckNvbXBvbmVudHNNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgLy8geW91ciBjb21wb25lbnRzXHJcbiAgICAuLi5DT01QT05FTlRTLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICAvLyB0aGlyZCBsaWJzXHJcbiAgICAuLi5USElSRE1PRFVMRVMsXHJcbiAgICAvLyB5b3VyIGNvbXBvbmVudHNcclxuICAgIC4uLkNPTVBPTkVOVFMsXHJcbiAgICBQaXBlTW9kdWxlTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6U0VSVklDRV9QUk9WSURFU1xyXG59KVxyXG4vL1NoYXJlZE1vZHVsZVxyXG4vLyDlupQg5YyF5ZCr5a6a5LmJ77yaXHJcbi8vIOW6lOeUqOmAmueUqOiHquWumuS5ieS4muWKoee7hOS7tlxyXG4vLyDlupQg5a+85Ye65omA5pyJ5YyF5ZCr55qE5qih5Z2X44CCXHJcbi8vIOS4jeW6lCDmnIkgcHJvdmlkZXJzIOWxnuaAp+OAglxyXG5leHBvcnQgY2xhc3MgQXRyU2hhcmVkTW9kdWxlIHsgfVxyXG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLXNoYXJlZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2F0ci1zaGFyZWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxD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bEIsR0FBRyxVQUFVO3dCQUNiLGdCQUFnQjtxQkFDakI7b0JBQ0QsU0FBUyxFQUFDLGdCQUFnQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXRyVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnpSZXNpemFibGVNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3Jlc2l6YWJsZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB6aCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy96aCc7XHJcbmltcG9ydCB7IExvY2FsVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9sb2NhbC11cGxvYWQvbG9jYWwtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNlbGVjdFRyZWVDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC10cmVlL3NlbGVjdC10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi92aWRlby92aWRlby5jb21wb25lbnQnO1xyXG5pbXBvcnQge1ZnQ29udHJvbHNNb2R1bGUsIFZnQ29yZU1vZHVsZSwgVmdPdmVybGF5UGxheU1vZHVsZSwgVmdCdWZmZXJpbmdNb2R1bGV9IGZyb20gXCJuZ3gtdmlkZW9ndWxhclwiO1xyXG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQge1RhYmxlVGRDb21wb25lbnR9IGZyb20gXCIuL3RhYmxlL3RhYmxlLXRkL3RhYmxlLXRkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RhYmxlRm9ybUl0ZW1Db21wb25lbnR9IGZyb20gXCIuL3RhYmxlL3RhYmxlLWZvcm0taXRlbS90YWJsZS1mb3JtLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UGlwZU1vZHVsZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2NvcmUvcGlwZS9waXBlLW1vZHVsZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtBdHJDb21wb25lbnRzTW9kdWxlfSBmcm9tIFwiLi4vLi4vYXRyLWNvbXBvbmVudHMubW9kdWxlXCI7XHJcbmltcG9ydCB7Q3VzTmdab3Jyb0FudGRNb2R1bGV9IGZyb20gXCIuLi8uLi9jb3JlL25nei1tb2R1bGUvY3VzLXpvcnJvLWFudGQubW9kdWxlXCI7XHJcbmltcG9ydCB7UXVpbGxNb2R1bGV9IGZyb20gXCJuZ3gtcXVpbGxcIjtcclxuaW1wb3J0IHtRdWlsbEVkaXRvckNvbXBvbmVudH0gZnJvbSBcIi4vcXVpbGwtZWRpdG9yL3F1aWxsLWVkaXRvci5jb21wb25lbnRcIjtcclxuY29uc3QgVEhJUkRNT0RVTEVTID0gW1xyXG4gIEN1c05nWm9ycm9BbnRkTW9kdWxlLFxyXG4gIE56UmVzaXphYmxlTW9kdWxlXHJcbl07XHJcblxyXG5jb25zdCBTRVJWSUNFX1BST1ZJREVTOmFueSA9IFtdO1xyXG5yZWdpc3RlckxvY2FsZURhdGEoemgpO1xyXG4vLyAjZW5kcmVnaW9uXHJcblxyXG4vLyAjcmVnaW9uIHlvdXIgY29tcG9uZXRzICYgZGlyZWN0aXZlc1xyXG5jb25zdCBDT01QT05FTlRTID0gW1F1aWxsRWRpdG9yQ29tcG9uZW50LFRhYmxlRm9ybUl0ZW1Db21wb25lbnQsVGFibGVUZENvbXBvbmVudCxBdHJUYWJsZUNvbXBvbmVudCxVcGxvYWRDb21wb25lbnQsQXRyRm9ybUNvbXBvbmVudCxMb2NhbFVwbG9hZENvbXBvbmVudCxcclxuICBTZWxlY3RUcmVlQ29tcG9uZW50LFZpZGVvQ29tcG9uZW50XTtcclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBQaXBlTW9kdWxlTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgLy8gdGhpcmQgbGlic1xyXG4gICAgLi4uVEhJUkRNT0RVTEVTLFxyXG4gICAgVmdDb3JlTW9kdWxlLFxyXG4gICAgVmdDb250cm9sc01vZHVsZSxcclxuICAgIFZnT3ZlcmxheVBsYXlNb2R1bGUsXHJcbiAgICBWZ0J1ZmZlcmluZ01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgQXRyQ29tcG9uZW50c01vZHVsZSxcclxuICAgIFF1aWxsTW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICBtb2R1bGVzOiB7XHJcbiAgICAgICAgc3ludGF4OiBmYWxzZSxcclxuICAgICAgICBpbWFnZVJlc2l6ZToge30sXHJcbiAgICAgICAgdG9vbGJhcjoge1xyXG4gICAgICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgICAgIFsndW5kbycsICdyZWRvJ10sXHJcbiAgICAgICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJ10sICAgICAgICAvLyB0b2dnbGVkIGJ1dHRvbnNcclxuICAgICAgICAgICAgLy8gWydjb2RlLWJsb2NrJ10sIC8vIGJsb2NrcXVvdGVcclxuICAgICAgICAgICAgLy8gW3sgaGVhZGVyOiAxIH0sIHsgaGVhZGVyOiAyIH1dLCAgICAgICAgICAgICAgIC8vIGN1c3RvbSBidXR0b24gdmFsdWVzXHJcbiAgICAgICAgICAgIFt7bGlzdDogJ29yZGVyZWQnfSwge2xpc3Q6ICdidWxsZXQnfV0sXHJcbiAgICAgICAgICAgIC8vIFt7IHNjcmlwdDogJ3N1YicgfSwgeyBzY3JpcHQ6ICdzdXBlcicgfV0sICAgICAgLy8gc3VwZXJzY3JpcHQvc3Vic2NyaXB0XHJcbiAgICAgICAgICAgIFt7aW5kZW50OiAnLTEnfSwge2luZGVudDogJysxJ31dLCAgICAgICAgICAvLyBvdXRkZW50L2luZGVudFxyXG4gICAgICAgICAgICAvLyBbeyBkaXJlY3Rpb246ICdydGwnIH1dLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0IGRpcmVjdGlvblxyXG4gICAgICAgICAgICAvLyBbeyBzaXplOiBbJ3NtYWxsJywgZmFsc2UsICdsYXJnZScsICdodWdlJ10gfV0sICAvLyBjdXN0b20gZHJvcGRvd25cclxuICAgICAgICAgICAgW3toZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV19XSxcclxuICAgICAgICAgICAgW3tjb2xvcjogW119LCB7YmFja2dyb3VuZDogW119XSwgICAgICAgICAgLy8gZHJvcGRvd24gd2l0aCBkZWZhdWx0cyBmcm9tIHRoZW1lXHJcbiAgICAgICAgICAgIC8vIFt7IGZvbnQ6IFtdIH1dLFxyXG4gICAgICAgICAgICBbe2FsaWduOiBbXX1dLFxyXG4gICAgICAgICAgICBbJ2NsZWFuJ10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZm9ybWF0dGluZyBidXR0b25cclxuICAgICAgICAgICAgWydpbWFnZSddLCAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5rIGFuZCBpbWFnZSwgdmlkZW9cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBoYW5kbGVyczoge1xyXG4gICAgICAgICAgICByZWRvKCkge1xyXG4gICAgICAgICAgICAgIHRoaXNbJ3F1aWxsJ10uaGlzdG9yeS5yZWRvKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHVuZG8oKSB7XHJcbiAgICAgICAgICAgICAgdGhpc1sncXVpbGwnXS5oaXN0b3J5LnVuZG8oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIC8vIHlvdXIgY29tcG9uZW50c1xyXG4gICAgLi4uQ09NUE9ORU5UUyxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgLy8gdGhpcmQgbGlic1xyXG4gICAgLi4uVEhJUkRNT0RVTEVTLFxyXG4gICAgLy8geW91ciBjb21wb25lbnRzXHJcbiAgICAuLi5DT01QT05FTlRTLFxyXG4gICAgUGlwZU1vZHVsZU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOlNFUlZJQ0VfUFJPVklERVNcclxufSlcclxuLy9TaGFyZWRNb2R1bGVcclxuLy8g5bqUIOWMheWQq+WumuS5ie+8mlxyXG4vLyDlupTnlKjpgJrnlKjoh6rlrprkuYnkuJrliqHnu4Tku7ZcclxuLy8g5bqUIOWvvOWHuuaJgOacieWMheWQq+eahOaooeWdl+OAglxyXG4vLyDkuI3lupQg5pyJIHByb3ZpZGVycyDlsZ7mgKfjgIJcclxuZXhwb3J0IGNsYXNzIEF0clNoYXJlZE1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { debounceTime } from 'rxjs/operators';
|
|
4
|
+
import Quill from 'quill';
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import ImageResize from 'quill-image-resize-module';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
import { UploadOssService } from "../../../core/services/upload-oss.service";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../../core/services/upload-oss.service";
|
|
11
|
+
import * as i2 from "ng-zorro-antd/message";
|
|
12
|
+
import * as i3 from "ngx-quill";
|
|
13
|
+
import * as i4 from "ng-zorro-antd/modal";
|
|
14
|
+
import * as i5 from "@angular/forms";
|
|
15
|
+
import * as i6 from "@angular/common";
|
|
16
|
+
import * as i7 from "ng-zorro-antd/core/transition-patch";
|
|
17
|
+
import * as i8 from "ng-zorro-antd/icon";
|
|
18
|
+
Quill.register('modules/imageResize', ImageResize);
|
|
19
|
+
const icons = Quill.import('ui/icons');
|
|
20
|
+
icons.undo = `<svg viewbox="0 0 18 18">
|
|
21
|
+
<polygon class="ql-fill ql-stroke" points="6 10 4 12 2 10 6 10"></polygon>
|
|
22
|
+
<path class="ql-stroke" d="M8.09,13.91A4.6,4.6,0,0,0,9,14,5,5,0,1,0,4,9"></path>
|
|
23
|
+
</svg>`;
|
|
24
|
+
icons.redo = `<svg viewbox="0 0 18 18">
|
|
25
|
+
<polygon class="ql-fill ql-stroke" points="12 10 14 12 16 10 12 10"></polygon>
|
|
26
|
+
<path class="ql-stroke" d="M9.91,13.91A4.6,4.6,0,0,1,9,14a5,5,0,1,1,5-5"></path>
|
|
27
|
+
</svg>`;
|
|
28
|
+
export class QuillEditorComponent {
|
|
29
|
+
constructor(uploadOssService, message) {
|
|
30
|
+
this.uploadOssService = uploadOssService;
|
|
31
|
+
this.message = message;
|
|
32
|
+
this.placeholder = '请输入';
|
|
33
|
+
this.styles = { height: '350px' };
|
|
34
|
+
this.readOnly = false;
|
|
35
|
+
this.needImgSeq = false;
|
|
36
|
+
this.imgUrls = [];
|
|
37
|
+
this.editor$ = new Subject();
|
|
38
|
+
this.imgVis = false;
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.editor$.pipe(debounceTime(700)).subscribe((editorContent) => {
|
|
42
|
+
if (typeof (this.onChangeListener) === 'function' && typeof (this.onTouchedListener)) {
|
|
43
|
+
this.onChangeListener(editorContent); // 告诉form,你的表单值改变成了payload
|
|
44
|
+
this.onTouchedListener(); // 告诉form,你的表单有交互发生
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
writeValue(value) {
|
|
49
|
+
this.value = value;
|
|
50
|
+
}
|
|
51
|
+
registerOnChange(fn) {
|
|
52
|
+
this.onChangeListener = fn;
|
|
53
|
+
}
|
|
54
|
+
registerOnTouched(fn) {
|
|
55
|
+
this.onTouchedListener = fn;
|
|
56
|
+
}
|
|
57
|
+
setDisabledState(isDisabled) {
|
|
58
|
+
}
|
|
59
|
+
onChange(quill) {
|
|
60
|
+
this.editor$.next(quill.html);
|
|
61
|
+
}
|
|
62
|
+
EditorCreated(quill) {
|
|
63
|
+
const toolbar = quill.getModule('toolbar');
|
|
64
|
+
toolbar.addHandler('image', this.imageHandler.bind(this));
|
|
65
|
+
this.editor = quill;
|
|
66
|
+
}
|
|
67
|
+
imageHandler() {
|
|
68
|
+
const Imageinput = document.createElement('input');
|
|
69
|
+
Imageinput.setAttribute('type', 'file');
|
|
70
|
+
Imageinput.setAttribute('multiple', 'multiple');
|
|
71
|
+
Imageinput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp');
|
|
72
|
+
Imageinput.classList.add('ql-image');
|
|
73
|
+
Imageinput.addEventListener('change', () => {
|
|
74
|
+
if (this.needImgSeq) {
|
|
75
|
+
this.imgVis = true;
|
|
76
|
+
}
|
|
77
|
+
console.log(Imageinput);
|
|
78
|
+
let files = Imageinput.files;
|
|
79
|
+
if (files === null || files.length == 0) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.imgUrls = [];
|
|
83
|
+
for (let i = 0; i < files.length; i++) {
|
|
84
|
+
const file = files[i];
|
|
85
|
+
if (file === null) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const error = (res) => {
|
|
89
|
+
this.message.warning('上传失败');
|
|
90
|
+
};
|
|
91
|
+
this.uploadOssService.uploadOss(file).subscribe((url) => {
|
|
92
|
+
console.log(file);
|
|
93
|
+
if (url) {
|
|
94
|
+
this.imgUrls.push({ url: url, file: file, index: i });
|
|
95
|
+
if (!this.needImgSeq) {
|
|
96
|
+
this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', url);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.message.warning('上传失败');
|
|
101
|
+
}
|
|
102
|
+
if (this.needImgSeq && this.imgUrls.length == files.length) {
|
|
103
|
+
this.imgVis = true;
|
|
104
|
+
this.imgUrls.sort((a, b) => a.index - b.index);
|
|
105
|
+
document.getElementById("te")?.click();
|
|
106
|
+
}
|
|
107
|
+
}, error);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
Imageinput.click();
|
|
111
|
+
}
|
|
112
|
+
saveSeq() {
|
|
113
|
+
console.log(123);
|
|
114
|
+
for (let i = this.imgUrls.length - 1; i >= 0; i--) {
|
|
115
|
+
this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', this.imgUrls[i].url);
|
|
116
|
+
}
|
|
117
|
+
this.imgVis = false;
|
|
118
|
+
}
|
|
119
|
+
arrowUp(index) {
|
|
120
|
+
let img = this.imgUrls[index];
|
|
121
|
+
this.imgUrls[index] = this.imgUrls[index - 1];
|
|
122
|
+
this.imgUrls[index - 1] = img;
|
|
123
|
+
}
|
|
124
|
+
arrowDown(index) {
|
|
125
|
+
let img = this.imgUrls[index];
|
|
126
|
+
this.imgUrls[index] = this.imgUrls[index + 1];
|
|
127
|
+
this.imgUrls[index + 1] = img;
|
|
128
|
+
}
|
|
129
|
+
cancle() {
|
|
130
|
+
this.imgVis = false;
|
|
131
|
+
}
|
|
132
|
+
te() {
|
|
133
|
+
console.log('上传完毕');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
QuillEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: QuillEditorComponent, deps: [{ token: i1.UploadOssService }, { token: i2.NzMessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
+
QuillEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: QuillEditorComponent, selector: "app-quill-editor", inputs: { placeholder: "placeholder", styles: "styles", value: "value", readOnly: "readOnly", needImgSeq: "needImgSeq" }, providers: [
|
|
138
|
+
UploadOssService,
|
|
139
|
+
{
|
|
140
|
+
provide: NG_VALUE_ACCESSOR,
|
|
141
|
+
useExisting: forwardRef(() => QuillEditorComponent),
|
|
142
|
+
multi: true
|
|
143
|
+
}
|
|
144
|
+
], ngImport: i0, template: "<quill-editor\r\n [styles]=\"styles\"\r\n [placeholder]=\"placeholder\"\r\n (onEditorCreated)=\"EditorCreated($event)\"\r\n [(ngModel)]=\"value\"\r\n (onContentChanged)=\"onChange($event)\"\r\n [readOnly]=\"readOnly\"\r\n></quill-editor>\r\n<!--\u8FD9\u4E2Adiv,\u662F\u56E0\u4E3A\u4E0A\u4F20\u5B8C\u6BD5\u7126\u70B9\u8FD8\u5728\u5BCC\u6587\u672C\u91CC,\u5F39\u51FA\u65E0\u6CD5\u663E\u793A.....-->\r\n<div id=\"te\" (click)=\"te()\"></div>\r\n<nz-modal [(nzVisible)]=\"imgVis\" (nzOnOk)=\"saveSeq()\" (nzOnCancel)=\"cancle()\" nzMaskClosable=\"false\"\r\n [nzStyle]=\"{padding:0}\">\r\n <ng-container *nzModalContent>\r\n <div style=\"max-height:600px;overflow:auto;margin-top: 10px;\">\r\n <ng-container *ngTemplateOutlet=\"imgsContent\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</nz-modal>\r\n<ng-template #imgsContent>\r\n <ng-container *ngFor=\"let imgOpt of imgUrls;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgOpt.url\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'5px' }\"/>\r\n <div style=\"margin-left: 20px; color: grey;\">{{imgOpt.file.name}}</div>\r\n <div style=\"margin-right: 20px; flex: 1;text-align: right;\">\r\n <a title=\"\u4E0A\u79FB\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\">\r\n <i nz-icon nzType=\"arrow-up\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px;\"></i>\r\n \u4E0A\u79FB</a>\r\n <a title=\"\u4E0B\u79FB\" *ngIf=\" i < imgUrls.length - 1\" (click)=\"arrowDown(i)\">\r\n <i nz-icon nzType=\"arrow-down\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>\r\n \u4E0B\u79FB</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".img-div{border:1px solid #d9d9d9;border-radius:4px;margin-top:5px;display:flex;align-items:center;padding:0 5px}\n"], components: [{ type: i3.QuillEditorComponent, selector: "quill-editor" }, { type: i4.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzContent", "nzComponentParams", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }], directives: [{ 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: i4.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: QuillEditorComponent, decorators: [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'app-quill-editor', providers: [
|
|
148
|
+
UploadOssService,
|
|
149
|
+
{
|
|
150
|
+
provide: NG_VALUE_ACCESSOR,
|
|
151
|
+
useExisting: forwardRef(() => QuillEditorComponent),
|
|
152
|
+
multi: true
|
|
153
|
+
}
|
|
154
|
+
], template: "<quill-editor\r\n [styles]=\"styles\"\r\n [placeholder]=\"placeholder\"\r\n (onEditorCreated)=\"EditorCreated($event)\"\r\n [(ngModel)]=\"value\"\r\n (onContentChanged)=\"onChange($event)\"\r\n [readOnly]=\"readOnly\"\r\n></quill-editor>\r\n<!--\u8FD9\u4E2Adiv,\u662F\u56E0\u4E3A\u4E0A\u4F20\u5B8C\u6BD5\u7126\u70B9\u8FD8\u5728\u5BCC\u6587\u672C\u91CC,\u5F39\u51FA\u65E0\u6CD5\u663E\u793A.....-->\r\n<div id=\"te\" (click)=\"te()\"></div>\r\n<nz-modal [(nzVisible)]=\"imgVis\" (nzOnOk)=\"saveSeq()\" (nzOnCancel)=\"cancle()\" nzMaskClosable=\"false\"\r\n [nzStyle]=\"{padding:0}\">\r\n <ng-container *nzModalContent>\r\n <div style=\"max-height:600px;overflow:auto;margin-top: 10px;\">\r\n <ng-container *ngTemplateOutlet=\"imgsContent\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</nz-modal>\r\n<ng-template #imgsContent>\r\n <ng-container *ngFor=\"let imgOpt of imgUrls;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgOpt.url\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'5px' }\"/>\r\n <div style=\"margin-left: 20px; color: grey;\">{{imgOpt.file.name}}</div>\r\n <div style=\"margin-right: 20px; flex: 1;text-align: right;\">\r\n <a title=\"\u4E0A\u79FB\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\">\r\n <i nz-icon nzType=\"arrow-up\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px;\"></i>\r\n \u4E0A\u79FB</a>\r\n <a title=\"\u4E0B\u79FB\" *ngIf=\" i < imgUrls.length - 1\" (click)=\"arrowDown(i)\">\r\n <i nz-icon nzType=\"arrow-down\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>\r\n \u4E0B\u79FB</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".img-div{border:1px solid #d9d9d9;border-radius:4px;margin-top:5px;display:flex;align-items:center;padding:0 5px}\n"] }]
|
|
155
|
+
}], ctorParameters: function () { return [{ type: i1.UploadOssService }, { type: i2.NzMessageService }]; }, propDecorators: { placeholder: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], styles: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], value: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], readOnly: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], needImgSeq: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}] } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvcXVpbGwtZWRpdG9yL3F1aWxsLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3F1aWxsLWVkaXRvci9xdWlsbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixhQUFhO0FBQ2IsT0FBTyxXQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7O0FBRTNFLEtBQUssQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDbkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN2QyxLQUFLLENBQUMsSUFBSSxHQUFHOzs7T0FHTixDQUFDO0FBQ1IsS0FBSyxDQUFDLElBQUksR0FBRzs7O09BR04sQ0FBQztBQWVSLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsWUFBb0IsZ0JBQWtDLEVBQVUsT0FBeUI7UUFBckUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtC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QUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELEVBQUU7UUFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JCLENBQUM7O2tIQWxJVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixxS0FUcEI7UUFDVCxnQkFBZ0I7UUFDaEI7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2hDSCxpdkRBbUNBOzRGRERhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1QsZ0JBQWdCO3dCQUNoQjs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0lBSVEsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xyXG4vLyBAdHMtaWdub3JlXHJcbmltcG9ydCBJbWFnZVJlc2l6ZSBmcm9tICdxdWlsbC1pbWFnZS1yZXNpemUtbW9kdWxlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtOek1lc3NhZ2VTZXJ2aWNlfSBmcm9tICduZy16b3Jyby1hbnRkL21lc3NhZ2UnO1xyXG5pbXBvcnQge1VwbG9hZE9zc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VwbG9hZC1vc3Muc2VydmljZVwiO1xyXG5cclxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpemUnLCBJbWFnZVJlc2l6ZSk7XHJcbmNvbnN0IGljb25zID0gUXVpbGwuaW1wb3J0KCd1aS9pY29ucycpO1xyXG5pY29ucy51bmRvID0gYDxzdmcgdmlld2JveD1cIjAgMCAxOCAxOFwiPlxyXG4gIDxwb2x5Z29uIGNsYXNzPVwicWwtZmlsbCBxbC1zdHJva2VcIiBwb2ludHM9XCI2IDEwIDQgMTIgMiAxMCA2IDEwXCI+PC9wb2x5Z29uPlxyXG4gIDxwYXRoIGNsYXNzPVwicWwtc3Ryb2tlXCIgZD1cIk04LjA5LDEzLjkxQTQuNiw0LjYsMCwwLDAsOSwxNCw1LDUsMCwxLDAsNCw5XCI+PC9wYXRoPlxyXG48L3N2Zz5gO1xyXG5pY29ucy5yZWRvID0gYDxzdmcgdmlld2JveD1cIjAgMCAxOCAxOFwiPlxyXG4gIDxwb2x5Z29uIGNsYXNzPVwicWwtZmlsbCBxbC1zdHJva2VcIiBwb2ludHM9XCIxMiAxMCAxNCAxMiAxNiAxMCAxMiAxMFwiPjwvcG9seWdvbj5cclxuICA8cGF0aCBjbGFzcz1cInFsLXN0cm9rZVwiIGQ9XCJNOS45MSwxMy45MUE0LjYsNC42LDAsMCwxLDksMTRhNSw1LDAsMSwxLDUtNVwiPjwvcGF0aD5cclxuPC9zdmc+YDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXF1aWxsLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWxsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVpbGwtZWRpdG9yLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBVcGxvYWRPc3NTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUXVpbGxFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1aWxsRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ+ivt+i+k+WFpSc7XHJcbiAgQElucHV0KCkgc3R5bGVzOiBhbnkgPSB7aGVpZ2h0OiAnMzUwcHgnfTtcclxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgYW55OyAvLyDnu4Tku7blr7nlupTnmoQg4oCcIG5nTW9kZWwg4oCdXHJcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBuZWVkSW1nU2VxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZWRpdG9yOiBhbnk7XHJcbiAgb25DaGFuZ2VMaXN0ZW5lcjogYW55OyAvLyDmlLnlj5jlgLzlm57osINcclxuICBvblRvdWNoZWRMaXN0ZW5lcjogYW55OyAvLyDkuqTkupLlm57osINcclxuICBpbWdVcmxzOmFueSA9IFtdO1xyXG4gIGVkaXRvciQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgaW1nVmlzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXBsb2FkT3NzU2VydmljZTogVXBsb2FkT3NzU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlOiBOek1lc3NhZ2VTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZWRpdG9yJC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKVxyXG4gICAgKS5zdWJzY3JpYmUoKGVkaXRvckNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mICh0aGlzLm9uQ2hhbmdlTGlzdGVuZXIpID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiAodGhpcy5vblRvdWNoZWRMaXN0ZW5lcikpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlTGlzdGVuZXIoZWRpdG9yQ29udGVudCk7IC8vIOWRiuiviWZvcm3vvIzkvaDnmoTooajljZXlgLzmlLnlj5jmiJDkuoZwYXlsb2FkXHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRMaXN0ZW5lcigpOyAvLyDlkYror4lmb3Jt77yM5L2g55qE6KGo5Y2V5pyJ5Lqk5LqS5Y+R55SfXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUxpc3RlbmVyID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZExpc3RlbmVyID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UocXVpbGw6IGFueSkge1xyXG4gICAgdGhpcy5lZGl0b3IkLm5leHQocXVpbGwuaHRtbCk7XHJcbiAgfVxyXG5cclxuICBFZGl0b3JDcmVhdGVkKHF1aWxsOiBhbnkpIHtcclxuICAgIGNvbnN0IHRvb2xiYXIgPSBxdWlsbC5nZXRNb2R1bGUoJ3Rvb2xiYXInKTtcclxuICAgIHRvb2xiYXIuYWRkSGFuZGxlcignaW1hZ2UnLCB0aGlzLmltYWdlSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuZWRpdG9yID0gcXVpbGw7XHJcbiAgfVxyXG5cclxuICBpbWFnZUhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCBJbWFnZWlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIEltYWdlaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcclxuICAgIEltYWdlaW5wdXQuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICdtdWx0aXBsZScpO1xyXG4gICAgSW1hZ2VpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wJyk7XHJcbiAgICBJbWFnZWlucHV0LmNsYXNzTGlzdC5hZGQoJ3FsLWltYWdlJyk7XHJcbiAgICBJbWFnZWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcclxuICAgICAgaWYodGhpcy5uZWVkSW1nU2VxKXtcclxuICAgICAgICB0aGlzLmltZ1ZpcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coSW1hZ2VpbnB1dCk7XHJcbiAgICAgIGxldCBmaWxlczphbnkgPSBJbWFnZWlucHV0LmZpbGVzO1xyXG4gICAgICBpZiAoZmlsZXMgPT09IG51bGwgfHwgZmlsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbWdVcmxzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gZmlsZXNbaV07XHJcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbnN0IGVycm9yID0gKHJlczphbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZS53YXJuaW5nKCfkuIrkvKDlpLHotKUnKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnVwbG9hZE9zc1NlcnZpY2UudXBsb2FkT3NzKGZpbGUpLnN1YnNjcmliZSgodXJsKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWdVcmxzLnB1c2goe3VybDogdXJsLCBmaWxlOiBmaWxlLCBpbmRleDogaX0pO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMubmVlZEltZ1NlcSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZWRpdG9yLmluc2VydEVtYmVkKHRoaXMuZWRpdG9yLmdldFNlbGVjdGlvbih0cnVlKS5pbmRleCwgJ2ltYWdlJywgdXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLndhcm5pbmcoJ+S4iuS8oOWksei0pScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMubmVlZEltZ1NlcSAmJiB0aGlzLmltZ1VybHMubGVuZ3RoID09IGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmltZ1ZpcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nVXJscy5zb3J0KChhOmFueSwgYjphbnkpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0ZVwiKT8uY2xpY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICBJbWFnZWlucHV0LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VxKCkge1xyXG4gICAgY29uc29sZS5sb2coMTIzKTtcclxuICAgIGZvciAobGV0IGkgPSB0aGlzLmltZ1VybHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgdGhpcy5lZGl0b3IuaW5zZXJ0RW1iZWQodGhpcy5lZGl0b3IuZ2V0U2VsZWN0aW9uKHRydWUpLmluZGV4LCAnaW1hZ2UnLCB0aGlzLmltZ1VybHNbaV0udXJsKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW1nVmlzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhcnJvd1VwKGluZGV4OmFueSkge1xyXG4gICAgbGV0IGltZyA9IHRoaXMuaW1nVXJsc1tpbmRleF07XHJcbiAgICB0aGlzLmltZ1VybHNbaW5kZXhdID0gdGhpcy5pbWdVcmxzW2luZGV4IC0gMV07XHJcbiAgICB0aGlzLmltZ1VybHNbaW5kZXggLSAxXSA9IGltZztcclxuICB9XHJcblxyXG4gIGFycm93RG93bihpbmRleDphbnkpIHtcclxuICAgIGxldCBpbWcgPSB0aGlzLmltZ1VybHNbaW5kZXhdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4XSA9IHRoaXMuaW1nVXJsc1tpbmRleCArIDFdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4ICsgMV0gPSBpbWc7XHJcbiAgfVxyXG5cclxuICBjYW5jbGUoKSB7XHJcbiAgICB0aGlzLmltZ1ZpcyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdGUoKSB7XHJcbiAgICBjb25zb2xlLmxvZygn5LiK5Lyg5a6M5q+VJylcclxuICB9XHJcbn1cclxuIiwiPHF1aWxsLWVkaXRvclxyXG4gIFtzdHlsZXNdPVwic3R5bGVzXCJcclxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gIChvbkVkaXRvckNyZWF0ZWQpPVwiRWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCJcclxuICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4+PC9xdWlsbC1lZGl0b3I+XHJcbjwhLS3ov5nkuKpkaXYs5piv5Zug5Li65LiK5Lyg5a6M5q+V54Sm54K56L+Y5Zyo5a+M5paH5pys6YeMLOW8ueWHuuaXoOazleaYvuekui4uLi4uLS0+XHJcbjxkaXYgaWQ9XCJ0ZVwiIChjbGljayk9XCJ0ZSgpXCI+PC9kaXY+XHJcbjxuei1tb2RhbCBbKG56VmlzaWJsZSldPVwiaW1nVmlzXCIgKG56T25Payk9XCJzYXZlU2VxKClcIiAobnpPbkNhbmNlbCk9XCJjYW5jbGUoKVwiIG56TWFza0Nsb3NhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW256U3R5bGVdPVwie3BhZGRpbmc6MH1cIj5cclxuICA8bmctY29udGFpbmVyICpuek1vZGFsQ29udGVudD5cclxuICA8ZGl2IHN0eWxlPVwibWF4LWhlaWdodDo2MDBweDtvdmVyZmxvdzphdXRvO21hcmdpbi10b3A6IDEwcHg7XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1nc0NvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uei1tb2RhbD5cclxuPG5nLXRlbXBsYXRlICNpbWdzQ29udGVudD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdPcHQgb2YgaW1nVXJscztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1nLWRpdlwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwiaW1nT3B0LnVybFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxMDBweCcsZGlzcGxheTogJ2lubGluZS1ibG9jaycsIG1hcmdpbjonNXB4JyB9XCIvPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWxlZnQ6IDIwcHg7IGNvbG9yOiBncmV5O1wiPnt7aW1nT3B0LmZpbGUubmFtZX19PC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcHg7IGZsZXg6IDE7dGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgPGEgdGl0bGU9XCLkuIrnp7tcIiAqbmdJZj1cIiBpID4gMFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCIgKGNsaWNrKT1cImFycm93VXAoaSlcIj5cclxuICAgICAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiYXJyb3ctdXBcIiBuelRoZW1lPVwib3V0bGluZVwiIHN0eWxlPVwiY29sb3I6ICMxODkwZmY7IGZvbnQtc2l6ZTogMTVweDtcIj48L2k+XHJcbiAgICAgICAgICDkuIrnp7s8L2E+XHJcbiAgICAgICAgPGEgdGl0bGU9XCLkuIvnp7tcIiAqbmdJZj1cIiBpIDwgaW1nVXJscy5sZW5ndGggLSAxXCIgKGNsaWNrKT1cImFycm93RG93bihpKVwiPlxyXG4gICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJhcnJvdy1kb3duXCIgbnpUaGVtZT1cIm91dGxpbmVcIiBzdHlsZT1cImNvbG9yOiAjMTg5MGZmOyBmb250LXNpemU6IDE1cHhcIj48L2k+XHJcbiAgICAgICAgICDkuIvnp7s8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
|