@messaia/cdk-cms 14.0.0-rc15 → 14.0.0-rc18

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.
@@ -10,9 +10,10 @@ import { MatIconModule } from '@angular/material/icon';
10
10
  import { MatInputModule } from '@angular/material/input';
11
11
  import { MatProgressBarModule } from '@angular/material/progress-bar';
12
12
  import { CodemirrorModule } from '@ctrl/ngx-codemirror';
13
- import { VdCommonModule, VdFormsModule, VdLayoutModule, VdMediaModule, VdSelectModule } from '@messaia/cdk';
13
+ import { VdChipsModule, VdCommonModule, VdFormsModule, VdLayoutModule, VdMediaModule, VdSelectModule } from '@messaia/cdk';
14
14
  import { VdCdkBaseModule } from '@messaia/cdk-base';
15
15
  import { EditorModule } from '@tinymce/tinymce-angular';
16
+ import { PdfViewerModule } from 'ng2-pdf-viewer';
16
17
  import { VdCmsRoutingModule } from './cms-routing.module';
17
18
  import { ContentFormComponent } from './comnponents/content-form/content-form.component';
18
19
  import { DocumentDialogComponent } from './comnponents/document-dialog/document-dialog.component';
@@ -64,12 +65,14 @@ VdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0
64
65
  VdLayoutModule,
65
66
  VdMediaModule,
66
67
  VdFormsModule,
67
- VdSelectModule] });
68
+ VdSelectModule,
69
+ VdChipsModule] });
68
70
  VdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: VdModule, imports: [VdCommonModule,
69
71
  VdLayoutModule,
70
72
  VdMediaModule,
71
73
  VdFormsModule,
72
- VdSelectModule] });
74
+ VdSelectModule,
75
+ VdChipsModule] });
73
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: VdModule, decorators: [{
74
77
  type: NgModule,
75
78
  args: [{
@@ -78,7 +81,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
78
81
  VdLayoutModule,
79
82
  VdMediaModule,
80
83
  VdFormsModule,
81
- VdSelectModule
84
+ VdSelectModule,
85
+ VdChipsModule
82
86
  ]
83
87
  }]
84
88
  }] });
@@ -97,7 +101,9 @@ VdCmsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
97
101
  DocumentDialogComponent], imports: [CommonModule,
98
102
  CodemirrorModule,
99
103
  VdCdkBaseModule, VdModule, MaterialModule, VdCmsRoutingModule,
100
- EditorModule], exports: [VdModule, MaterialModule, EditorModule, ContentFormComponent,
104
+ EditorModule,
105
+ PdfViewerModule], exports: [VdModule, MaterialModule, EditorModule,
106
+ PdfViewerModule, ContentFormComponent,
101
107
  TemplateFormComponent,
102
108
  TemplatePreviewDialogComponent,
103
109
  DocumentDialogComponent] });
@@ -107,7 +113,9 @@ VdCmsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
107
113
  VdModule,
108
114
  MaterialModule,
109
115
  VdCmsRoutingModule,
110
- EditorModule, VdModule, MaterialModule, EditorModule] });
116
+ EditorModule,
117
+ PdfViewerModule, VdModule, MaterialModule, EditorModule,
118
+ PdfViewerModule] });
111
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: VdCmsModule, decorators: [{
112
120
  type: NgModule,
113
121
  args: [{
@@ -119,14 +127,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
119
127
  MaterialModule,
120
128
  VdCmsRoutingModule,
121
129
  EditorModule,
130
+ PdfViewerModule
122
131
  ],
123
132
  declarations: [DECLARATION],
124
133
  exports: [
125
134
  VdModule,
126
135
  MaterialModule,
127
136
  EditorModule,
137
+ PdfViewerModule,
128
138
  DECLARATION
129
139
  ]
130
140
  }]
131
141
  }] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jbXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQzs7QUFFekgsT0FBTyxFQUNILG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLDhCQUE4QixFQUNqQyxDQUFDO0FBZUYsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxZQVhuQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG9CQUFvQjs0R0FHZixjQUFjLFlBWG5CLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2QscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsb0JBQW9COzJGQUdmLGNBQWM7a0JBYjFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxvQkFBb0I7cUJBQ3ZCO2lCQUNKOztBQVlELE1BQU0sT0FBTyxRQUFROztxR0FBUixRQUFRO3NHQUFSLFFBQVEsWUFQYixjQUFjO1FBQ2QsY0FBYztRQUNkLGFBQWE7UUFDYixhQUFhO1FBQ2IsY0FBYztzR0FHVCxRQUFRLFlBUGIsY0FBYztRQUNkLGNBQWM7UUFDZCxhQUFhO1FBQ2IsYUFBYTtRQUNiLGNBQWM7MkZBR1QsUUFBUTtrQkFUcEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3FCQUNqQjtpQkFDSjs7QUFHRCxNQUFNLFdBQVcsR0FBRztJQUNoQixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5Qix1QkFBdUI7Q0FDMUIsQ0FBQztBQW9CRixNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQXhCcEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQiw4QkFBOEI7UUFDOUIsdUJBQXVCLGFBS25CLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsZUFBZSxFQWJWLFFBQVEsRUFYUixjQUFjLEVBMkJuQixrQkFBa0I7UUFDbEIsWUFBWSxhQWpCUCxRQUFRLEVBWFIsY0FBYyxFQWtDbkIsWUFBWSxFQXBCaEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQiw4QkFBOEI7UUFDOUIsdUJBQXVCO3lHQXFCZCxXQUFXLFlBaEJoQixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixRQUFRO1FBQ1IsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixZQUFZLEVBakJQLFFBQVEsRUFYUixjQUFjLEVBa0NuQixZQUFZOzJGQUlQLFdBQVc7a0JBbEJ2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixRQUFRO3dCQUNSLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixZQUFZO3FCQUNmO29CQUNELFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDM0IsT0FBTyxFQUFFO3dCQUNMLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7cUJBQ2Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBDb2RlbWlycm9yTW9kdWxlIH0gZnJvbSAnQGN0cmwvbmd4LWNvZGVtaXJyb3InO1xyXG5pbXBvcnQgeyBWZENvbW1vbk1vZHVsZSwgVmRGb3Jtc01vZHVsZSwgVmRMYXlvdXRNb2R1bGUsIFZkTWVkaWFNb2R1bGUsIFZkU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG1lc3NhaWEvY2RrJztcclxuaW1wb3J0IHsgVmRDZGtCYXNlTW9kdWxlIH0gZnJvbSAnQG1lc3NhaWEvY2RrLWJhc2UnO1xyXG5pbXBvcnQgeyBFZGl0b3JNb2R1bGUgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBWZENtc1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Ntcy1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ucG9uZW50cy9jb250ZW50LWZvcm0vY29udGVudC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ucG9uZW50cy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvdGVtcGxhdGUtZm9ybS90ZW1wbGF0ZS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvdGVtcGxhdGUtcHJldmlldy1kaWFsb2cvdGVtcGxhdGUtcHJldmlldy1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBDb250ZW50Rm9ybUNvbXBvbmVudCxcclxuICAgIERvY3VtZW50RGlhbG9nQ29tcG9uZW50LFxyXG4gICAgVGVtcGxhdGVGb3JtQ29tcG9uZW50LFxyXG4gICAgVGVtcGxhdGVQcmV2aWV3RGlhbG9nQ29tcG9uZW50XHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxNb2R1bGUgeyB9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFZkQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFZkTGF5b3V0TW9kdWxlLFxyXG4gICAgICAgIFZkTWVkaWFNb2R1bGUsXHJcbiAgICAgICAgVmRGb3Jtc01vZHVsZSxcclxuICAgICAgICBWZFNlbGVjdE1vZHVsZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmRNb2R1bGUgeyB9XHJcblxyXG5jb25zdCBERUNMQVJBVElPTiA9IFtcclxuICAgIENvbnRlbnRGb3JtQ29tcG9uZW50LFxyXG4gICAgVGVtcGxhdGVGb3JtQ29tcG9uZW50LFxyXG4gICAgVGVtcGxhdGVQcmV2aWV3RGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRG9jdW1lbnREaWFsb2dDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIENvZGVtaXJyb3JNb2R1bGUsXHJcbiAgICAgICAgVmRDZGtCYXNlTW9kdWxlLFxyXG4gICAgICAgIFZkTW9kdWxlLFxyXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgICAgIFZkQ21zUm91dGluZ01vZHVsZSxcclxuICAgICAgICBFZGl0b3JNb2R1bGUsXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbREVDTEFSQVRJT05dLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFZkTW9kdWxlLFxyXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgICAgIEVkaXRvck1vZHVsZSxcclxuICAgICAgICBERUNMQVJBVElPTlxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmRDbXNNb2R1bGUgeyB9Il19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jbXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOztBQUV6SCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsOEJBQThCLEVBQ2pDLENBQUM7QUFlRixNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLFlBWG5CLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2QscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsb0JBQW9COzRHQUdmLGNBQWMsWUFYbkIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxvQkFBb0I7MkZBR2YsY0FBYztrQkFiMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLG9CQUFvQjtxQkFDdkI7aUJBQ0o7O0FBYUQsTUFBTSxPQUFPLFFBQVE7O3FHQUFSLFFBQVE7c0dBQVIsUUFBUSxZQVJiLGNBQWM7UUFDZCxjQUFjO1FBQ2QsYUFBYTtRQUNiLGFBQWE7UUFDYixjQUFjO1FBQ2QsYUFBYTtzR0FHUixRQUFRLFlBUmIsY0FBYztRQUNkLGNBQWM7UUFDZCxhQUFhO1FBQ2IsYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhOzJGQUdSLFFBQVE7a0JBVnBCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3FCQUNoQjtpQkFDSjs7QUFHRCxNQUFNLFdBQVcsR0FBRztJQUNoQixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5Qix1QkFBdUI7Q0FDMUIsQ0FBQztBQXNCRixNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQTFCcEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQiw4QkFBOEI7UUFDOUIsdUJBQXVCLGFBS25CLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsZUFBZSxFQWJWLFFBQVEsRUFaUixjQUFjLEVBNEJuQixrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLGVBQWUsYUFsQlYsUUFBUSxFQVpSLGNBQWMsRUFvQ25CLFlBQVk7UUFDWixlQUFlLEVBdEJuQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLDhCQUE4QjtRQUM5Qix1QkFBdUI7eUdBdUJkLFdBQVcsWUFsQmhCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFFBQVE7UUFDUixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixlQUFlLEVBbEJWLFFBQVEsRUFaUixjQUFjLEVBb0NuQixZQUFZO1FBQ1osZUFBZTsyRkFJVixXQUFXO2tCQXBCdkIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsUUFBUTt3QkFDUixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixlQUFlO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUM7b0JBQzNCLE9BQU8sRUFBRTt3QkFDTCxRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7cUJBQ2Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBDb2RlbWlycm9yTW9kdWxlIH0gZnJvbSAnQGN0cmwvbmd4LWNvZGVtaXJyb3InO1xyXG5pbXBvcnQgeyBWZENoaXBzTW9kdWxlLCBWZENvbW1vbk1vZHVsZSwgVmRGb3Jtc01vZHVsZSwgVmRMYXlvdXRNb2R1bGUsIFZkTWVkaWFNb2R1bGUsIFZkU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG1lc3NhaWEvY2RrJztcclxuaW1wb3J0IHsgVmRDZGtCYXNlTW9kdWxlIH0gZnJvbSAnQG1lc3NhaWEvY2RrLWJhc2UnO1xyXG5pbXBvcnQgeyBFZGl0b3JNb2R1bGUgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBQZGZWaWV3ZXJNb2R1bGUgfSBmcm9tICduZzItcGRmLXZpZXdlcic7XHJcbmltcG9ydCB7IFZkQ21zUm91dGluZ01vZHVsZSB9IGZyb20gJy4vY21zLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgQ29udGVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbW5wb25lbnRzL2NvbnRlbnQtZm9ybS9jb250ZW50LWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG9jdW1lbnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbW5wb25lbnRzL2RvY3VtZW50LWRpYWxvZy9kb2N1bWVudC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVtcGxhdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ucG9uZW50cy90ZW1wbGF0ZS1mb3JtL3RlbXBsYXRlLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQcmV2aWV3RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ucG9uZW50cy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIENvbnRlbnRGb3JtQ29tcG9uZW50LFxyXG4gICAgRG9jdW1lbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUZvcm1Db21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZVByZXZpZXdEaWFsb2dDb21wb25lbnRcclxufTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbE1vZHVsZSB7IH1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgVmRDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgVmRMYXlvdXRNb2R1bGUsXHJcbiAgICAgICAgVmRNZWRpYU1vZHVsZSxcclxuICAgICAgICBWZEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFZkU2VsZWN0TW9kdWxlLFxyXG4gICAgICAgIFZkQ2hpcHNNb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZkTW9kdWxlIHsgfVxyXG5cclxuY29uc3QgREVDTEFSQVRJT04gPSBbXHJcbiAgICBDb250ZW50Rm9ybUNvbXBvbmVudCxcclxuICAgIFRlbXBsYXRlRm9ybUNvbXBvbmVudCxcclxuICAgIFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIERvY3VtZW50RGlhbG9nQ29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBDb2RlbWlycm9yTW9kdWxlLFxyXG4gICAgICAgIFZkQ2RrQmFzZU1vZHVsZSxcclxuICAgICAgICBWZE1vZHVsZSxcclxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgICAgICBWZENtc1JvdXRpbmdNb2R1bGUsXHJcbiAgICAgICAgRWRpdG9yTW9kdWxlLFxyXG4gICAgICAgIFBkZlZpZXdlck1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0RFQ0xBUkFUSU9OXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBWZE1vZHVsZSxcclxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgICAgICBFZGl0b3JNb2R1bGUsXHJcbiAgICAgICAgUGRmVmlld2VyTW9kdWxlLFxyXG4gICAgICAgIERFQ0xBUkFUSU9OXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZENtc01vZHVsZSB7IH0iXX0=
@@ -231,10 +231,10 @@ export class ContentFormComponent extends GenericReactiveFormComponent {
231
231
  }
232
232
  }
233
233
  ContentFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentFormComponent, deps: [{ token: i1.ContentService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i4.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
234
- ContentFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ContentFormComponent, selector: "app-content-form", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["form"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" (change)=\"setClient()\" [required]=\"!item.default\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Title -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@title\">Title</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"title\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.title['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Alias -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Aliases -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@aliases\">Aliases</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"aliases\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let alias of form.controls.aliases.value\" (removed)=\"removeAliases(alias)\">\r\n\t\t\t\t\t\t\t\t\t<span>{{alias}}</span>\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" matChipInputAddOnBlur=\"true\" (matChipInputTokenEnd)=\"addAliases($event)\">\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region wrap tag and layout -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\" *ngIf=\"type != ContentType.Block\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@wrap\">Wrap</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"wrapTag\">\r\n\t\t\t\t\t\t\t<mat-autocomplete #wrapTagsAutocomplete=\"matAutocomplete\">\r\n\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let option of wrapTags\" [value]=\"option.name\">{{option.name}}</mat-option>\r\n\t\t\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.wrapTag['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@layout\">Layout</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"layout\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.layout['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t<!-- *ngIf=\"item.clientId && isEditorInitialzed\" -->\r\n\t\t\t\t\t<!-- #region Body -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"isEditorInitialzed\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@content\">Content</mat-label>\r\n\t\t\t\t\t\t\t<editor #editor formControlName=\"body\" tinyMatFormControl [(init)]=\"editorConfig\" required></editor>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.body['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Script -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@script\">Script</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"script\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.script['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Style -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@style\">Style</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"style\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.style['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Show title -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"showTitle\" i18n=\"@@showTitle\">Show title</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Default -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"default\" formControlName=\"default\" (change)=\"item.clientId = item.default ? null : item.clientId\" i18n=\"@@default\">Default</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"enabled\" formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<vd-audit [item]=\"item\"> </vd-audit>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i7.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "component", type: i11.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "id", "modelEvents", "disabled", "initialValue", "init", "inline", "outputFormat", "tagName", "plugins", "toolbar", "allowedEvents", "ignoreEvents"] }, { kind: "component", type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "actions", "data", "context", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { kind: "component", type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { kind: "directive", type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "directive", type: i2.MatFormFieldEditorDirective, selector: "[tinyMatFormControl]", inputs: ["disabled", "id", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["editorChange"] }, { kind: "component", type: i12.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }, { kind: "component", type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "mapper", "compareWith", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { kind: "component", type: i13.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i13.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i13.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i13.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i15.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i16.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
234
+ ContentFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ContentFormComponent, selector: "app-content-form", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["form"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" (change)=\"setClient()\" [required]=\"!item.default\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Title -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@title\">Title</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"title\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.title['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Alias -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Aliases -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@aliases\">Aliases</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"aliases\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let alias of form.controls.aliases.value\" (removed)=\"removeAliases(alias)\">\r\n\t\t\t\t\t\t\t\t\t<span>{{alias}}</span>\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" matChipInputAddOnBlur=\"true\" (matChipInputTokenEnd)=\"addAliases($event)\">\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region wrap tag and layout -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\" *ngIf=\"type != ContentType.Block\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@wrap\">Wrap</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"wrapTag\">\r\n\t\t\t\t\t\t\t<mat-autocomplete #wrapTagsAutocomplete=\"matAutocomplete\">\r\n\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let option of wrapTags\" [value]=\"option.name\">{{option.name}}</mat-option>\r\n\t\t\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.wrapTag['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@layout\">Layout</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"layout\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.layout['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t<!-- *ngIf=\"item.clientId && isEditorInitialzed\" -->\r\n\t\t\t\t\t<!-- #region Body -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"isEditorInitialzed\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@content\">Content</mat-label>\r\n\t\t\t\t\t\t\t<editor #editor formControlName=\"body\" tinyMatFormControl [init]=\"editorConfig\" [required]=\"true\"></editor>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.body['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Script -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@script\">Script</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"script\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.script['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Style -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@style\">Style</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"style\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.style['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Show title -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"showTitle\" i18n=\"@@showTitle\">Show title</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Default -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"default\" formControlName=\"default\" (change)=\"item.clientId = item.default ? null : item.clientId\" i18n=\"@@default\">Default</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"enabled\" formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<vd-audit [item]=\"item\"> </vd-audit>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i7.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "component", type: i11.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "id", "modelEvents", "disabled", "initialValue", "init", "inline", "outputFormat", "tagName", "plugins", "toolbar", "allowedEvents", "ignoreEvents"] }, { kind: "component", type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "actions", "data", "context", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { kind: "component", type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { kind: "directive", type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "directive", type: i2.MatFormFieldEditorDirective, selector: "[tinyMatFormControl]", inputs: ["disabled", "id", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["editorChange"] }, { kind: "directive", type: i2.EmptyStringResetDirective, selector: "[ngModel],[formControlName],[formControl]" }, { kind: "component", type: i12.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }, { kind: "component", type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "mapper", "compareWith", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { kind: "component", type: i13.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i13.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i13.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i13.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i14.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i15.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i16.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
235
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentFormComponent, decorators: [{
236
236
  type: Component,
237
- args: [{ selector: 'app-content-form', template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" (change)=\"setClient()\" [required]=\"!item.default\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Title -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@title\">Title</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"title\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.title['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Alias -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Aliases -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@aliases\">Aliases</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"aliases\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let alias of form.controls.aliases.value\" (removed)=\"removeAliases(alias)\">\r\n\t\t\t\t\t\t\t\t\t<span>{{alias}}</span>\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" matChipInputAddOnBlur=\"true\" (matChipInputTokenEnd)=\"addAliases($event)\">\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region wrap tag and layout -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\" *ngIf=\"type != ContentType.Block\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@wrap\">Wrap</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"wrapTag\">\r\n\t\t\t\t\t\t\t<mat-autocomplete #wrapTagsAutocomplete=\"matAutocomplete\">\r\n\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let option of wrapTags\" [value]=\"option.name\">{{option.name}}</mat-option>\r\n\t\t\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.wrapTag['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@layout\">Layout</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"layout\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.layout['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t<!-- *ngIf=\"item.clientId && isEditorInitialzed\" -->\r\n\t\t\t\t\t<!-- #region Body -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"isEditorInitialzed\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@content\">Content</mat-label>\r\n\t\t\t\t\t\t\t<editor #editor formControlName=\"body\" tinyMatFormControl [(init)]=\"editorConfig\" required></editor>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.body['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Script -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@script\">Script</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"script\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.script['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Style -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@style\">Style</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"style\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.style['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Show title -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"showTitle\" i18n=\"@@showTitle\">Show title</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Default -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"default\" formControlName=\"default\" (change)=\"item.clientId = item.default ? null : item.clientId\" i18n=\"@@default\">Default</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"enabled\" formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<vd-audit [item]=\"item\"> </vd-audit>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>" }]
237
+ args: [{ selector: 'app-content-form', template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" (change)=\"setClient()\" [required]=\"!item.default\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Title -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@title\">Title</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"title\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.title['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Alias -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Aliases -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@aliases\">Aliases</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"aliases\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let alias of form.controls.aliases.value\" (removed)=\"removeAliases(alias)\">\r\n\t\t\t\t\t\t\t\t\t<span>{{alias}}</span>\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input type=\"text\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" matChipInputAddOnBlur=\"true\" (matChipInputTokenEnd)=\"addAliases($event)\">\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region wrap tag and layout -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\" *ngIf=\"type != ContentType.Block\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@wrap\">Wrap</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"wrapTag\">\r\n\t\t\t\t\t\t\t<mat-autocomplete #wrapTagsAutocomplete=\"matAutocomplete\">\r\n\t\t\t\t\t\t\t\t<mat-option *ngFor=\"let option of wrapTags\" [value]=\"option.name\">{{option.name}}</mat-option>\r\n\t\t\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.wrapTag['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@layout\">Layout</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"layout\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.layout['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t<!-- *ngIf=\"item.clientId && isEditorInitialzed\" -->\r\n\t\t\t\t\t<!-- #region Body -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"isEditorInitialzed\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@content\">Content</mat-label>\r\n\t\t\t\t\t\t\t<editor #editor formControlName=\"body\" tinyMatFormControl [init]=\"editorConfig\" [required]=\"true\"></editor>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.body['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Script -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@script\">Script</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"script\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.script['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Style -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@style\">Style</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"style\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.style['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Show title -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"showTitle\" i18n=\"@@showTitle\">Show title</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Default -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"default\" formControlName=\"default\" (change)=\"item.clientId = item.default ? null : item.clientId\" i18n=\"@@default\">Default</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled -->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox name=\"enabled\" formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<vd-audit [item]=\"item\"> </vd-audit>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>" }]
238
238
  }], ctorParameters: function () { return [{ type: i1.ContentService }, { type: i2.FileService }, { type: i3.HttpClient }, { type: i4.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formElement: [{
239
239
  type: ViewChild,
240
240
  args: ['form', { static: false }]
@@ -242,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
242
242
  type: ViewChild,
243
243
  args: ['editor', { static: false }]
244
244
  }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9jb250ZW50LWZvcm0vY29udGVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9jb250ZW50LWZvcm0vY29udGVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1oRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsNEJBQXFEO0lBb0Q5Rjs7T0FFRztJQUNILFlBQ1csT0FBdUIsRUFDdkIsV0FBd0IsRUFDeEIsVUFBc0IsRUFDdEIsS0FBcUIsRUFDckIsaUJBQW9DO1FBRTlDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBTnZDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTFEL0M7O1dBRUc7UUFDSSxrQkFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBWXhHOztXQUVHO1FBQ0ksZ0JBQVcsR0FBdUIsV0FBVyxDQUFDO1FBRXJEOztXQUVHO1FBQ0ksYUFBUSxHQUFVLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQ7O1dBRUc7UUFDSSx1QkFBa0IsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNJLGFBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQTRCaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUEzQkQ7O09BRUc7SUFDSCxJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUEwQjNEOzs7T0FHRztJQUNILFFBQVE7UUFDUCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILHdDQUF3QztRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxLQUF3QjtRQUN6QyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNoQixLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDdkI7SUFDRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLE1BQWM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ3BCLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsRUFBVztZQUNoRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQzlELFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUN4RCxDQUFDLENBQUM7UUFFSCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQzFDO1FBRUQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDekIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFO1lBQ2xHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQW9CLEVBQUUsRUFBRTtnQkFDL0csS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25GLENBQUMsQ0FBQyxDQUFDO1NBQ0g7YUFBTTtZQUNOLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDekM7SUFDRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUN0QixPQUFPO1lBQ04sT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsaUJBQWlCO1lBQy9DLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLElBQUksT0FBTztZQUM5QyxpQkFBaUIsRUFBRSxrQkFBa0I7WUFDckMsWUFBWSxFQUFFLElBQUk7WUFDbEIsdUJBQXVCLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sT0FBTztZQUN6RCxpQkFBaUIsRUFBRSxtQkFBbUI7WUFDdEMsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyxjQUFjLEVBQUUseURBQXlEO1lBQ3pFLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLHFCQUFxQixFQUFFLENBQUMsUUFBYSxFQUFFLE9BQVksRUFBRSxPQUFZLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRTtvQkFDbEQsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVE7b0JBQ3BDLElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxJQUFJO2lCQUNkLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3BCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO3dCQUVoRCx1Q0FBdUM7d0JBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUVqRSxrREFBa0Q7d0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQzFCO3lCQUFNLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTt3QkFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQy9CO2dCQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQztZQUNELEtBQUssRUFBRSxVQUFVLE1BQVc7Z0JBQzNCLHdDQUF3QztnQkFDeEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFO29CQUNsRCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsS0FBSyxFQUFFLFVBQVUsUUFBYTt3QkFDN0IsUUFBUSxDQUFDOzRCQUNSO2dDQUNDLElBQUksRUFBRSxVQUFVO2dDQUNoQixJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDOzZCQUNwRDs0QkFDRDtnQ0FDQyxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUM7NkJBQzVEOzRCQUNEO2dDQUNDLElBQUksRUFBRSxVQUFVO2dDQUNoQixJQUFJLEVBQUUsZ0JBQWdCO2dDQUN0QixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs2QkFDekQ7eUJBQ0QsQ0FBQyxDQUFDO29CQUNKLENBQUM7aUJBQ0QsQ0FBQyxDQUFDO1lBQ0osQ0FBQztTQUNELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JDO0lBQ0YsQ0FBQzs7aUhBcFBXLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGdSQ2xCakMsNnpRQTBKZ0I7MkZEeElILG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDQyxrQkFBa0I7cU5BZ0RVLFdBQVc7c0JBQWhELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLSSxlQUFlO3NCQUF0RCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoSGVscGVyLCBFbnVtU2VydmljZSwgRmlsZVNlcnZpY2UsIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9jb250ZW50LXR5cGUnO1xyXG5pbXBvcnQgeyBXcmFwVGFnIH0gZnJvbSAnLi4vLi4vZW51bXMvd3JhcC10YWcnO1xyXG5pbXBvcnQgeyBDbXNTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9jbXMtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBDb250ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbnRlbnQnO1xyXG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1jb250ZW50LWZvcm0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWZvcm0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50Rm9ybUNvbXBvbmVudCBleHRlbmRzIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQ8Q29udGVudCwgQ29udGVudFNlcnZpY2U+IHtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBkaXNhYmxlIHNvbWUgcHJvcGVydGllcyBmb3IgY2xpZW50IG1hbmFnZXJcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDbGllbnRBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZSgnQ2xpZW50QWRtaW5pc3RyYXRvcicpIHx8IEF1dGhIZWxwZXIuaGFzUm9sZSgnQ2xpZW50TWFuYWdlcicpO1xyXG5cclxuXHQvKipcclxuXHQgKiBSb3V0ZXIgU3Vic2NyaXB0aW9uXHJcblx0ICovXHJcblx0cHVibGljIHJvdXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBzdGF0dXMgb2YgdGhlIGlzc3VlXHJcblx0ICovXHJcblx0cHVibGljIHR5cGU6IENvbnRlbnRUeXBlO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb250ZW50IHN0YXR1c1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBDb250ZW50VHlwZTogdHlwZW9mIENvbnRlbnRUeXBlID0gQ29udGVudFR5cGU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFdyYXAgdGFnIGVudW1cclxuXHQgKi9cclxuXHRwdWJsaWMgd3JhcFRhZ3M6IGFueVtdID0gRW51bVNlcnZpY2UudG9BcnJheShXcmFwVGFnKTtcclxuXHJcblx0LyoqXHJcblx0ICogU2VwYXJhdG9yIGtleXMgY29kZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZXR0aW5nczogQ21zU2V0dGluZ3NcclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0dGluZ3M6IENtc1NldHRpbmdzID0gbmV3IENtc1NldHRpbmdzKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgdGhlIGFsaWFzZXMgY29udHJvbFxyXG5cdCAqL1xyXG5cdGdldCBhbGlhc2VzQ29udHJvbCgpIHsgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scy5hbGlhc2VzOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcmVmIHRvIGZvcm0gaHRtbCBlbGVtZW50XHJcblx0ICovXHJcblx0QFZpZXdDaGlsZCgnZm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtRWxlbWVudDogSFRNTEZvcm1FbGVtZW50O1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHJlZiB0byB0aW55bWNlIGVkaXRvclxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb21wb25lbnQ6IEVkaXRvckNvbXBvbmVudDtcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBzZXJ2aWNlOiBDb250ZW50U2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBmaWxlU2VydmljZTogRmlsZVNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuXHRcdHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcblx0XHRwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7XHJcblx0XHRzdXBlcihDb250ZW50LCBzZXJ2aWNlLCByb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpXHJcblx0XHR0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRTZXJ2aWNlKENtc1NldHRpbmdzKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGRhdGEtYm91bmQgcHJvcGVydGllcyBcclxuXHQgKiBvZiBhIGRpcmVjdGl2ZSBhcmUgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHQvKiBGaWx0ZXIgYnkgc3RhdHVzLCBpZiBhbnkgKi9cclxuXHRcdHRoaXMucm91dGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogeyB0eXBlOiBzdHJpbmcgfSkgPT4ge1xyXG5cdFx0XHR0aGlzLnR5cGUgPSBFbnVtU2VydmljZS5wYXJzZShDb250ZW50VHlwZSwgcGFyYW1zLnR5cGUpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogR2V0IHNvbWUgcHJvcHMgZnJvbSByb3V0ZSBzbmFwc2hvdCAqL1xyXG5cdFx0dGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcblx0XHRcdHRoaXMuZm9ybVZhbGlkYXRpb24gPSBkYXRhLmZvcm1WYWxpZGF0aW9uO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFsaWFzIGlzIGF2YWlsYWJsZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGlhc0F2YWlsYWJsZSgpIHtcclxuXHRcdHRoaXMuc2VydmljZS5pc0FsaWFzQXZhaWxhYmxlKHRoaXMuaXRlbSkuc3Vic2NyaWJlKCh4OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdHRoaXMuZm9ybUVsZW1lbnQuZm9ybS5jb250cm9sc1snYWxpYXMnXS5zZXRFcnJvcnMoeCA/IG51bGwgOiB7ICdpblVzZSc6IHRydWUgfSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldCBjbGllbnRcclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0Q2xpZW50KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMuY29uZmlnRWRpdG9yKCk7XHJcblx0XHR0aGlzLmVkaXRvckNvbXBvbmVudD8uZWRpdG9yPy5zZXRDb250ZW50KHRoaXMuaXRlbS5ib2R5KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBhIGFsaWFzZXMgdG8gdGhlIGN1cnJlbnQgZmllbGRcclxuXHQgKiBAcGFyYW0gZXZlbnQgXHJcblx0ICovXHJcblx0cHVibGljIGFkZEFsaWFzZXMoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XHJcblx0XHQvKiBBZGQgb3VyIGFsaWFzcyAqL1xyXG5cdFx0aWYgKChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcblx0XHRcdHRoaXMuYWxpYXNlc0NvbnRyb2wuc2V0VmFsdWUoWy4uLnRoaXMuYWxpYXNlc0NvbnRyb2wudmFsdWUsIGV2ZW50LnZhbHVlLnRyaW0oKV0pO1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHRcdFx0dGhpcy5hbGlhc2VzQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZSAqL1xyXG5cdFx0aWYgKGV2ZW50LmlucHV0KSB7XHJcblx0XHRcdGV2ZW50LmlucHV0LnZhbHVlID0gJyc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdmVzIGEgYWxpYXNlc1xyXG5cdCAqIEBwYXJhbSBhbGlhc3MgXHJcblx0ICovXHJcblx0cHVibGljIHJlbW92ZUFsaWFzZXMoYWxpYXNzOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5hbGlhc2VzQ29udHJvbC52YWx1ZS5pbmRleE9mKGFsaWFzcyk7XHJcblx0XHRpZiAoaW5kZXggPj0gMCkge1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHRcdHRoaXMuYWxpYXNlc0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBUZW1wbGF0ZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuZXdJbnN0YW5jZSgpOiBDb250ZW50IHtcclxuXHRcdGxldCBpdGVtID0gT2JqZWN0LmFzc2lnbihuZXcgQ29udGVudCgpLCA8Q29udGVudD57XHJcblx0XHRcdHR5cGU6IHRoaXMudHlwZSxcclxuXHRcdFx0d3JhcFRhZzogdGhpcy50eXBlID09IENvbnRlbnRUeXBlLkJsb2NrID8gJycgOiBXcmFwVGFnLlNlY3Rpb24sXHJcblx0XHRcdHNob3dUaXRsZTogdGhpcy50eXBlID09IENvbnRlbnRUeXBlLkJsb2NrID8gZmFsc2UgOiB0cnVlXHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBHZXQgY2xpZW50SWQgKi9cclxuXHRcdGlmICghdGhpcy5pc0VkaXRNb2RlICYmIHRoaXMuaXNDbGllbnRBZG1pbikge1xyXG5cdFx0XHRpdGVtLmNsaWVudElkID0gdGhpcy5jdXJyZW50VXNlci5jbGllbnRJZDtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBJbml0IHRoZSB0aW55bWNlIGVkaXRvciAqL1xyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSBmYWxzZTtcclxuXHRcdHJldHVybiBpdGVtO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmb3JtIGhhcyBidWlsdC5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25BZnRlckZvcm1CdWlsZCgpOiB2b2lkIHtcclxuXHRcdHN1cGVyLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuXHRcdHRoaXMuY29uZmlnRWRpdG9yKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25maWd1cmVzIHRoZSB0aW55bWNlIGVkaXRvclxyXG5cdCAqL1xyXG5cdHByaXZhdGUgY29uZmlnRWRpdG9yKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuc2V0dGluZ3M/Lm11bHRpdGVuYW50YWJsZSAmJiB0aGlzLmZvcm1WYWx1ZT8uY2xpZW50SWQgJiYgdGhpcy5zZXR0aW5ncz8uc3R5bGVVcmxFbmRwb2ludCkge1xyXG5cdFx0XHR0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuc2V0dGluZ3Muc3R5bGVVcmxFbmRwb2ludCh0aGlzLmZvcm1WYWx1ZS5jbGllbnRJZCkpLnN1YnNjcmliZSgoeDogeyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcclxuXHRcdFx0XHRzdXBlci5pbml0RWRpdG9yKE9iamVjdC5hc3NpZ24odGhpcy5nZXRFZGl0b3JDb25maWcoKSwgeyBjb250ZW50X2NzczogeC52YWx1ZSB9KSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c3VwZXIuaW5pdEVkaXRvcih0aGlzLmdldEVkaXRvckNvbmZpZygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgY29uZmlnIGZvciB0aGUgZWRpdG9yXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJpdmF0ZSBnZXRFZGl0b3JDb25maWcoKTogYW55IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHRvb2xiYXI6IGAke3RoaXMuZWRpdG9yVG9vbGJhcn0gc25pcHBldHNCdXR0b25gLFxyXG5cdFx0XHRmb3JjZV9wX25ld2xpbmVzOiBmYWxzZSxcclxuXHRcdFx0Zm9yY2VkX3Jvb3RfYmxvY2s6ICcnLFxyXG5cdFx0XHRoZWlnaHQ6IHRoaXMuc2V0dGluZ3M/LmVkaXRvckhlaWdodCB8fCAnNzAwcHgnLFxyXG5cdFx0XHRmaWxlX3BpY2tlcl90eXBlczogJ2ZpbGUgaW1hZ2UgbWVkaWEnLFxyXG5cdFx0XHRpbWFnZV9hZHZ0YWI6IHRydWUsXHJcblx0XHRcdGltYWdlc191cGxvYWRfYmFzZV9wYXRoOiBgJHt0aGlzLmFwcFNldHRpbmcuYXBpVXJsfWZpbGUvYCxcclxuXHRcdFx0aW1hZ2VzX3VwbG9hZF91cmw6ICdiYWNrZW5kL2FwaS9maWxlcycsXHJcblx0XHRcdGFsbG93X2h0bWxfaW5fbmFtZWRfYW5jaG9yOiB0cnVlLFxyXG5cdFx0XHR2YWxpZF9jaGlsZHJlbjogJythW2RpdnxzcGFufGltZ3xoMXxoMnxoM3xoNHxoNXxoNnxicnxocnx2aWRlb10sK3NwYW5baV0nLFxyXG5cdFx0XHR2YWxpZF9lbGVtZW50czogJypbKl0nLFxyXG5cdFx0XHRpbWFnZXNfdXBsb2FkX2hhbmRsZXI6IChibG9iSW5mbzogYW55LCBzdWNjZXNzOiBhbnksIGZhaWx1cmU6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZmlsZVNlcnZpY2UudXBsb2FkKGJsb2JJbmZvLmJsb2IoKSwgYHVwbG9hZGAsIHtcclxuXHRcdFx0XHRcdGNsaWVudElkOiB0aGlzLmZvcm0/LnZhbHVlPy5jbGllbnRJZCxcclxuXHRcdFx0XHRcdHBhdGg6ICdpbWFnZXMnLFxyXG5cdFx0XHRcdFx0aXNQdWJsaWM6IHRydWVcclxuXHRcdFx0XHR9KS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuXHJcblx0XHRcdFx0XHRcdC8qIENhbGN1bGF0ZSB0aGUgcHJvZ3Jlc3MgcGVyY2VudGFnZSAqL1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG5cclxuXHRcdFx0XHRcdFx0LyogUGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW0gKi9cclxuXHRcdFx0XHRcdFx0Y29uc29sZS5pbmZvKHBlcmNlbnREb25lKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhldmVudC5ib2R5LnB1YmxpY0xpbmspO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24gKGVkaXRvcjogYW55KSB7XHJcblx0XHRcdFx0LyogQWRkIHNuaXBwZXRzIGJ1dHRvbiB0byB0aGUgdG9vbGJhciAqL1xyXG5cdFx0XHRcdGVkaXRvci51aS5yZWdpc3RyeS5hZGRNZW51QnV0dG9uKCdzbmlwcGV0c0J1dHRvbicsIHtcclxuXHRcdFx0XHRcdHRleHQ6ICdTbmlwcGV0cycsXHJcblx0XHRcdFx0XHRmZXRjaDogZnVuY3Rpb24gKGNhbGxiYWNrOiBhbnkpIHtcclxuXHRcdFx0XHRcdFx0Y2FsbGJhY2soW1xyXG5cdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdtZW51aXRlbScsXHJcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiAnVmFyaWFibGUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0b25BY3Rpb246ICgpID0+IGVkaXRvci5pbnNlcnRDb250ZW50KCd7e3ZhciBuYW1lfX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ21lbnVpdGVtJyxcclxuXHRcdFx0XHRcdFx0XHRcdHRleHQ6ICdCbG9jaycsXHJcblx0XHRcdFx0XHRcdFx0XHRvbkFjdGlvbjogKCkgPT4gZWRpdG9yLmluc2VydENvbnRlbnQoJ3t7YmxvY2sgbmFtZT1cIi4uLlwifX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ21lbnVpdGVtJyxcclxuXHRcdFx0XHRcdFx0XHRcdHRleHQ6ICdWaWV3IENvbXBvbmVudCcsXHJcblx0XHRcdFx0XHRcdFx0XHRvbkFjdGlvbjogKCkgPT4gZWRpdG9yLmluc2VydENvbnRlbnQoJ3t7dmMgbmFtZT1cIi4uLlwifX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdF0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYW51cCBzdWJzY3JpcHRpb25zIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG5cdCAqL1xyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucm91dGVTdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5yb3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxufSIsIjx2ZC1sYXlvdXQtbmF2IGNvbG9yPVwicHJpbWFyeVwiIFtiYWNrTmF2aWdhdGlvblJvdXRlXT1cImxpc3RSb3V0ZVwiIHRvb2xiYXJUaXRsZT1cIkNvbnRlbnRcIiBpMThuLXRvb2xiYXJUaXRsZT1cIkBAY29udGVudFwiIFtlZGl0TW9kZV09XCJpc0VkaXRNb2RlXCIgW2FjdGlvbnNdPVwidG9vbGJhckFjdGlvbnNcIiBbZGF0YV09XCJpdGVtXCIgW2NvbnRleHRdPVwidGhpc1wiPlxyXG5cdDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxyXG5cdFx0PHZkLWxheW91dC1jYXJkLW92ZXIgY2xhc3M9XCJhY2NvcmRpb25cIiBjYXJkV2lkdGg9XCI3MFwiIGNvbG9yPVwicHJpbWFyeVwiIGZsZXg+XHJcblx0XHRcdDxtYXQtYWNjb3JkaW9uIFttdWx0aV09XCIhaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdDwhLS0gI3JlZ2lvbiBEZXRhaWxzIC0tPlxyXG5cdFx0XHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsIGV4cGFuZGVkPVwidHJ1ZVwiIGlkPVwiZGV0YWlsc1wiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlIGkxOG49XCJAQGRldGFpbHNcIj5EZXRhaWxzPC9tYXQtcGFuZWwtdGl0bGU+XHJcblx0XHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBDbGllbnQtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCJzZXR0aW5ncz8ubXVsdGl0ZW5hbnRhYmxlICYmICFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNsaWVudFwiPkNsaWVudDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDx2ZC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2xpZW50SWRcIiBlbmRwb2ludD1cImNsaWVudD9lbmFibGVkPXRydWVcIiBsYXlvdXQ9XCJjb2x1bW5cIiAoY2hhbmdlKT1cInNldENsaWVudCgpXCIgW3JlcXVpcmVkXT1cIiFpdGVtLmRlZmF1bHRcIiBmbGV4PjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLmNsaWVudElkWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVGl0bGUgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHRpdGxlXCI+VGl0bGU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy50aXRsZVsnZXJyb3JNZXNzYWdlcyddXCI+e3tlcnJvck1lc3NhZ2V9fTwvbWF0LWVycm9yPlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIE5hbWUgJiBBbGlhcyAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0PVwicm93XCIgZmxleD5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAbmFtZVwiPk5hbWU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLm5hbWVbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBBbGlhc2VzIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQ9XCJyb3dcIiBmbGV4PlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBhbGlhc2VzXCI+QWxpYXNlczwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hpcC1saXN0ICNjaGlwTGlzdCBmb3JtQ29udHJvbE5hbWU9XCJhbGlhc2VzXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGFsaWFzIG9mIGZvcm0uY29udHJvbHMuYWxpYXNlcy52YWx1ZVwiIChyZW1vdmVkKT1cInJlbW92ZUFsaWFzZXMoYWxpYXMpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuPnt7YWxpYXN9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbWF0LWNoaXA+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCIgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiIG1hdENoaXBJbnB1dEFkZE9uQmx1cj1cInRydWVcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkQWxpYXNlcygkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9tYXQtY2hpcC1saXN0PlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIHdyYXAgdGFnIGFuZCBsYXlvdXQgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIiAqbmdJZj1cInR5cGUgIT0gQ29udGVudFR5cGUuQmxvY2tcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHdyYXBcIj5XcmFwPC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIndyYXBUYWdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWF1dG9jb21wbGV0ZSAjd3JhcFRhZ3NBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygd3JhcFRhZ3NcIiBbdmFsdWVdPVwib3B0aW9uLm5hbWVcIj57e29wdGlvbi5uYW1lfX08L21hdC1vcHRpb24+XHJcblx0XHRcdFx0XHRcdFx0PC9tYXQtYXV0b2NvbXBsZXRlPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLndyYXBUYWdbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGxheW91dFwiPkxheW91dDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsYXlvdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5sYXlvdXRbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHRcdFx0PCEtLSAqbmdJZj1cIml0ZW0uY2xpZW50SWQgJiYgaXNFZGl0b3JJbml0aWFsemVkXCIgLS0+XHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gQm9keSAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCJpc0VkaXRvckluaXRpYWx6ZWRcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNvbnRlbnRcIj5Db250ZW50PC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGVkaXRvciAjZWRpdG9yIGZvcm1Db250cm9sTmFtZT1cImJvZHlcIiB0aW55TWF0Rm9ybUNvbnRyb2wgWyhpbml0KV09XCJlZGl0b3JDb25maWdcIiByZXF1aXJlZD48L2VkaXRvcj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5ib2R5WydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gU2NyaXB0IC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQ9XCJyb3dcIiBmbGV4PlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBzY3JpcHRcIj5TY3JpcHQ8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCI+PC90ZXh0YXJlYT5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5zY3JpcHRbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBTdHlsZSAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0PVwicm93XCIgZmxleD5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAc3R5bGVcIj5TdHlsZTwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0YXJlYSBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBmb3JtQ29udHJvbE5hbWU9XCJzdHlsZVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGZvcm0uY29udHJvbHMuc3R5bGVbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBTaG93IHRpdGxlIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJwdXNoLXRvcFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwic2hvd1RpdGxlXCIgaTE4bj1cIkBAc2hvd1RpdGxlXCI+U2hvdyB0aXRsZTwvbWF0LWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBEZWZhdWx0IC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIiAqbmdJZj1cIiFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggbmFtZT1cImRlZmF1bHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0XCIgKGNoYW5nZSk9XCJpdGVtLmNsaWVudElkID0gaXRlbS5kZWZhdWx0ID8gbnVsbCA6IGl0ZW0uY2xpZW50SWRcIiBpMThuPVwiQEBkZWZhdWx0XCI+RGVmYXVsdDwvbWF0LWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBFbmFibGVkIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJwdXNoLWJvdHRvbVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggbmFtZT1cImVuYWJsZWRcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmFibGVkXCIgaTE4bj1cIkBAYWN0aXZlXCI+QWN0aXZlPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PG1hdC1hY3Rpb24tcm93PlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAqbmdJZj1cImlzRWRpdE1vZGVcIiAoY2xpY2spPVwiYXBwbHkoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIGkxOG49XCJAQGFwcGx5XCI+QXBwbHk8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYmFjaygpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHQ8IS0tICNyZWdpb24gQXVkaXQgLS0+XHJcblx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgaWQ9XCJhdWRpdFwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGkxOG49XCJAQGF1ZGl0XCI+QXVkaXQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvbWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHRcdFx0XHRcdDx2ZC1hdWRpdCBbaXRlbV09XCJpdGVtXCI+IDwvdmQtYXVkaXQ+XHJcblx0XHRcdFx0XHQ8bWF0LWFjdGlvbi1yb3c+XHJcblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJiYWNrKClcIiBpMThuPVwiQEBjbG9zZVwiPkNsb3NlPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHQ8L21hdC1hY2NvcmRpb24+XHJcblx0XHQ8L3ZkLWxheW91dC1jYXJkLW92ZXI+XHJcblx0PC9mb3JtPlxyXG48L3ZkLWxheW91dC1uYXY+Il19
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9jb250ZW50LWZvcm0vY29udGVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9jb250ZW50LWZvcm0vY29udGVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1oRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsNEJBQXFEO0lB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dCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoSGVscGVyLCBFbnVtU2VydmljZSwgRmlsZVNlcnZpY2UsIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9jb250ZW50LXR5cGUnO1xyXG5pbXBvcnQgeyBXcmFwVGFnIH0gZnJvbSAnLi4vLi4vZW51bXMvd3JhcC10YWcnO1xyXG5pbXBvcnQgeyBDbXNTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9jbXMtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBDb250ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbnRlbnQnO1xyXG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1jb250ZW50LWZvcm0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWZvcm0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50Rm9ybUNvbXBvbmVudCBleHRlbmRzIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQ8Q29udGVudCwgQ29udGVudFNlcnZpY2U+IHtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBkaXNhYmxlIHNvbWUgcHJvcGVydGllcyBmb3IgY2xpZW50IG1hbmFnZXJcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDbGllbnRBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZSgnQ2xpZW50QWRtaW5pc3RyYXRvcicpIHx8IEF1dGhIZWxwZXIuaGFzUm9sZSgnQ2xpZW50TWFuYWdlcicpO1xyXG5cclxuXHQvKipcclxuXHQgKiBSb3V0ZXIgU3Vic2NyaXB0aW9uXHJcblx0ICovXHJcblx0cHVibGljIHJvdXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBzdGF0dXMgb2YgdGhlIGlzc3VlXHJcblx0ICovXHJcblx0cHVibGljIHR5cGU6IENvbnRlbnRUeXBlO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb250ZW50IHN0YXR1c1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBDb250ZW50VHlwZTogdHlwZW9mIENvbnRlbnRUeXBlID0gQ29udGVudFR5cGU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFdyYXAgdGFnIGVudW1cclxuXHQgKi9cclxuXHRwdWJsaWMgd3JhcFRhZ3M6IGFueVtdID0gRW51bVNlcnZpY2UudG9BcnJheShXcmFwVGFnKTtcclxuXHJcblx0LyoqXHJcblx0ICogU2VwYXJhdG9yIGtleXMgY29kZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZXR0aW5nczogQ21zU2V0dGluZ3NcclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0dGluZ3M6IENtc1NldHRpbmdzID0gbmV3IENtc1NldHRpbmdzKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgdGhlIGFsaWFzZXMgY29udHJvbFxyXG5cdCAqL1xyXG5cdGdldCBhbGlhc2VzQ29udHJvbCgpIHsgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scy5hbGlhc2VzOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcmVmIHRvIGZvcm0gaHRtbCBlbGVtZW50XHJcblx0ICovXHJcblx0QFZpZXdDaGlsZCgnZm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtRWxlbWVudDogSFRNTEZvcm1FbGVtZW50O1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHJlZiB0byB0aW55bWNlIGVkaXRvclxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb21wb25lbnQ6IEVkaXRvckNvbXBvbmVudDtcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBzZXJ2aWNlOiBDb250ZW50U2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBmaWxlU2VydmljZTogRmlsZVNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuXHRcdHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcblx0XHRwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7XHJcblx0XHRzdXBlcihDb250ZW50LCBzZXJ2aWNlLCByb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpXHJcblx0XHR0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRTZXJ2aWNlKENtc1NldHRpbmdzKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGRhdGEtYm91bmQgcHJvcGVydGllcyBcclxuXHQgKiBvZiBhIGRpcmVjdGl2ZSBhcmUgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHQvKiBGaWx0ZXIgYnkgc3RhdHVzLCBpZiBhbnkgKi9cclxuXHRcdHRoaXMucm91dGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogeyB0eXBlOiBzdHJpbmcgfSkgPT4ge1xyXG5cdFx0XHR0aGlzLnR5cGUgPSBFbnVtU2VydmljZS5wYXJzZShDb250ZW50VHlwZSwgcGFyYW1zLnR5cGUpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogR2V0IHNvbWUgcHJvcHMgZnJvbSByb3V0ZSBzbmFwc2hvdCAqL1xyXG5cdFx0dGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcblx0XHRcdHRoaXMuZm9ybVZhbGlkYXRpb24gPSBkYXRhLmZvcm1WYWxpZGF0aW9uO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFsaWFzIGlzIGF2YWlsYWJsZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGlhc0F2YWlsYWJsZSgpIHtcclxuXHRcdHRoaXMuc2VydmljZS5pc0FsaWFzQXZhaWxhYmxlKHRoaXMuaXRlbSkuc3Vic2NyaWJlKCh4OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdHRoaXMuZm9ybUVsZW1lbnQuZm9ybS5jb250cm9sc1snYWxpYXMnXS5zZXRFcnJvcnMoeCA/IG51bGwgOiB7ICdpblVzZSc6IHRydWUgfSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldCBjbGllbnRcclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0Q2xpZW50KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMuY29uZmlnRWRpdG9yKCk7XHJcblx0XHR0aGlzLmVkaXRvckNvbXBvbmVudD8uZWRpdG9yPy5zZXRDb250ZW50KHRoaXMuaXRlbS5ib2R5KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBhIGFsaWFzZXMgdG8gdGhlIGN1cnJlbnQgZmllbGRcclxuXHQgKiBAcGFyYW0gZXZlbnQgXHJcblx0ICovXHJcblx0cHVibGljIGFkZEFsaWFzZXMoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XHJcblx0XHQvKiBBZGQgb3VyIGFsaWFzcyAqL1xyXG5cdFx0aWYgKChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcblx0XHRcdHRoaXMuYWxpYXNlc0NvbnRyb2wuc2V0VmFsdWUoWy4uLnRoaXMuYWxpYXNlc0NvbnRyb2wudmFsdWUsIGV2ZW50LnZhbHVlLnRyaW0oKV0pO1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHRcdFx0dGhpcy5hbGlhc2VzQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZSAqL1xyXG5cdFx0aWYgKGV2ZW50LmlucHV0KSB7XHJcblx0XHRcdGV2ZW50LmlucHV0LnZhbHVlID0gJyc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdmVzIGEgYWxpYXNlc1xyXG5cdCAqIEBwYXJhbSBhbGlhc3MgXHJcblx0ICovXHJcblx0cHVibGljIHJlbW92ZUFsaWFzZXMoYWxpYXNzOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5hbGlhc2VzQ29udHJvbC52YWx1ZS5pbmRleE9mKGFsaWFzcyk7XHJcblx0XHRpZiAoaW5kZXggPj0gMCkge1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHRcdHRoaXMuYWxpYXNlc0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cdFx0XHR0aGlzLmFsaWFzZXNDb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBUZW1wbGF0ZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuZXdJbnN0YW5jZSgpOiBDb250ZW50IHtcclxuXHRcdGxldCBpdGVtID0gT2JqZWN0LmFzc2lnbihuZXcgQ29udGVudCgpLCA8Q29udGVudD57XHJcblx0XHRcdHR5cGU6IHRoaXMudHlwZSxcclxuXHRcdFx0d3JhcFRhZzogdGhpcy50eXBlID09IENvbnRlbnRUeXBlLkJsb2NrID8gJycgOiBXcmFwVGFnLlNlY3Rpb24sXHJcblx0XHRcdHNob3dUaXRsZTogdGhpcy50eXBlID09IENvbnRlbnRUeXBlLkJsb2NrID8gZmFsc2UgOiB0cnVlXHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBHZXQgY2xpZW50SWQgKi9cclxuXHRcdGlmICghdGhpcy5pc0VkaXRNb2RlICYmIHRoaXMuaXNDbGllbnRBZG1pbikge1xyXG5cdFx0XHRpdGVtLmNsaWVudElkID0gdGhpcy5jdXJyZW50VXNlci5jbGllbnRJZDtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBJbml0IHRoZSB0aW55bWNlIGVkaXRvciAqL1xyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSBmYWxzZTtcclxuXHRcdHJldHVybiBpdGVtO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmb3JtIGhhcyBidWlsdC5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25BZnRlckZvcm1CdWlsZCgpOiB2b2lkIHtcclxuXHRcdHN1cGVyLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuXHRcdHRoaXMuY29uZmlnRWRpdG9yKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25maWd1cmVzIHRoZSB0aW55bWNlIGVkaXRvclxyXG5cdCAqL1xyXG5cdHByaXZhdGUgY29uZmlnRWRpdG9yKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuc2V0dGluZ3M/Lm11bHRpdGVuYW50YWJsZSAmJiB0aGlzLmZvcm1WYWx1ZT8uY2xpZW50SWQgJiYgdGhpcy5zZXR0aW5ncz8uc3R5bGVVcmxFbmRwb2ludCkge1xyXG5cdFx0XHR0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuc2V0dGluZ3Muc3R5bGVVcmxFbmRwb2ludCh0aGlzLmZvcm1WYWx1ZS5jbGllbnRJZCkpLnN1YnNjcmliZSgoeDogeyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcclxuXHRcdFx0XHRzdXBlci5pbml0RWRpdG9yKE9iamVjdC5hc3NpZ24odGhpcy5nZXRFZGl0b3JDb25maWcoKSwgeyBjb250ZW50X2NzczogeC52YWx1ZSB9KSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c3VwZXIuaW5pdEVkaXRvcih0aGlzLmdldEVkaXRvckNvbmZpZygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgY29uZmlnIGZvciB0aGUgZWRpdG9yXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJpdmF0ZSBnZXRFZGl0b3JDb25maWcoKTogYW55IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHRvb2xiYXI6IGAke3RoaXMuZWRpdG9yVG9vbGJhcn0gc25pcHBldHNCdXR0b25gLFxyXG5cdFx0XHRmb3JjZV9wX25ld2xpbmVzOiBmYWxzZSxcclxuXHRcdFx0Zm9yY2VkX3Jvb3RfYmxvY2s6ICcnLFxyXG5cdFx0XHRoZWlnaHQ6IHRoaXMuc2V0dGluZ3M/LmVkaXRvckhlaWdodCB8fCAnNzAwcHgnLFxyXG5cdFx0XHRmaWxlX3BpY2tlcl90eXBlczogJ2ZpbGUgaW1hZ2UgbWVkaWEnLFxyXG5cdFx0XHRpbWFnZV9hZHZ0YWI6IHRydWUsXHJcblx0XHRcdGltYWdlc191cGxvYWRfYmFzZV9wYXRoOiBgJHt0aGlzLmFwcFNldHRpbmcuYXBpVXJsfWZpbGUvYCxcclxuXHRcdFx0aW1hZ2VzX3VwbG9hZF91cmw6ICdiYWNrZW5kL2FwaS9maWxlcycsXHJcblx0XHRcdGFsbG93X2h0bWxfaW5fbmFtZWRfYW5jaG9yOiB0cnVlLFxyXG5cdFx0XHR2YWxpZF9jaGlsZHJlbjogJythW2RpdnxzcGFufGltZ3xoMXxoMnxoM3xoNHxoNXxoNnxicnxocnx2aWRlb10sK3NwYW5baV0nLFxyXG5cdFx0XHR2YWxpZF9lbGVtZW50czogJypbKl0nLFxyXG5cdFx0XHRpbWFnZXNfdXBsb2FkX2hhbmRsZXI6IChibG9iSW5mbzogYW55LCBzdWNjZXNzOiBhbnksIGZhaWx1cmU6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZmlsZVNlcnZpY2UudXBsb2FkKGJsb2JJbmZvLmJsb2IoKSwgYHVwbG9hZGAsIHtcclxuXHRcdFx0XHRcdGNsaWVudElkOiB0aGlzLmZvcm0/LnZhbHVlPy5jbGllbnRJZCxcclxuXHRcdFx0XHRcdHBhdGg6ICdpbWFnZXMnLFxyXG5cdFx0XHRcdFx0aXNQdWJsaWM6IHRydWVcclxuXHRcdFx0XHR9KS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuXHJcblx0XHRcdFx0XHRcdC8qIENhbGN1bGF0ZSB0aGUgcHJvZ3Jlc3MgcGVyY2VudGFnZSAqL1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG5cclxuXHRcdFx0XHRcdFx0LyogUGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW0gKi9cclxuXHRcdFx0XHRcdFx0Y29uc29sZS5pbmZvKHBlcmNlbnREb25lKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhldmVudC5ib2R5LnB1YmxpY0xpbmspO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24gKGVkaXRvcjogYW55KSB7XHJcblx0XHRcdFx0LyogQWRkIHNuaXBwZXRzIGJ1dHRvbiB0byB0aGUgdG9vbGJhciAqL1xyXG5cdFx0XHRcdGVkaXRvci51aS5yZWdpc3RyeS5hZGRNZW51QnV0dG9uKCdzbmlwcGV0c0J1dHRvbicsIHtcclxuXHRcdFx0XHRcdHRleHQ6ICdTbmlwcGV0cycsXHJcblx0XHRcdFx0XHRmZXRjaDogZnVuY3Rpb24gKGNhbGxiYWNrOiBhbnkpIHtcclxuXHRcdFx0XHRcdFx0Y2FsbGJhY2soW1xyXG5cdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdtZW51aXRlbScsXHJcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiAnVmFyaWFibGUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0b25BY3Rpb246ICgpID0+IGVkaXRvci5pbnNlcnRDb250ZW50KCd7e3ZhciBuYW1lfX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ21lbnVpdGVtJyxcclxuXHRcdFx0XHRcdFx0XHRcdHRleHQ6ICdCbG9jaycsXHJcblx0XHRcdFx0XHRcdFx0XHRvbkFjdGlvbjogKCkgPT4gZWRpdG9yLmluc2VydENvbnRlbnQoJ3t7YmxvY2sgbmFtZT1cIi4uLlwifX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ21lbnVpdGVtJyxcclxuXHRcdFx0XHRcdFx0XHRcdHRleHQ6ICdWaWV3IENvbXBvbmVudCcsXHJcblx0XHRcdFx0XHRcdFx0XHRvbkFjdGlvbjogKCkgPT4gZWRpdG9yLmluc2VydENvbnRlbnQoJ3t7dmMgbmFtZT1cIi4uLlwifX0nKVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdF0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYW51cCBzdWJzY3JpcHRpb25zIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG5cdCAqL1xyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucm91dGVTdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5yb3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxufSIsIjx2ZC1sYXlvdXQtbmF2IGNvbG9yPVwicHJpbWFyeVwiIFtiYWNrTmF2aWdhdGlvblJvdXRlXT1cImxpc3RSb3V0ZVwiIHRvb2xiYXJUaXRsZT1cIkNvbnRlbnRcIiBpMThuLXRvb2xiYXJUaXRsZT1cIkBAY29udGVudFwiIFtlZGl0TW9kZV09XCJpc0VkaXRNb2RlXCIgW2FjdGlvbnNdPVwidG9vbGJhckFjdGlvbnNcIiBbZGF0YV09XCJpdGVtXCIgW2NvbnRleHRdPVwidGhpc1wiPlxyXG5cdDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxyXG5cdFx0PHZkLWxheW91dC1jYXJkLW92ZXIgY2xhc3M9XCJhY2NvcmRpb25cIiBjYXJkV2lkdGg9XCI3MFwiIGNvbG9yPVwicHJpbWFyeVwiIGZsZXg+XHJcblx0XHRcdDxtYXQtYWNjb3JkaW9uIFttdWx0aV09XCIhaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdDwhLS0gI3JlZ2lvbiBEZXRhaWxzIC0tPlxyXG5cdFx0XHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsIGV4cGFuZGVkPVwidHJ1ZVwiIGlkPVwiZGV0YWlsc1wiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlIGkxOG49XCJAQGRldGFpbHNcIj5EZXRhaWxzPC9tYXQtcGFuZWwtdGl0bGU+XHJcblx0XHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBDbGllbnQtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCJzZXR0aW5ncz8ubXVsdGl0ZW5hbnRhYmxlICYmICFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNsaWVudFwiPkNsaWVudDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDx2ZC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2xpZW50SWRcIiBlbmRwb2ludD1cImNsaWVudD9lbmFibGVkPXRydWVcIiBsYXlvdXQ9XCJjb2x1bW5cIiAoY2hhbmdlKT1cInNldENsaWVudCgpXCIgW3JlcXVpcmVkXT1cIiFpdGVtLmRlZmF1bHRcIiBmbGV4PjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLmNsaWVudElkWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVGl0bGUgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHRpdGxlXCI+VGl0bGU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy50aXRsZVsnZXJyb3JNZXNzYWdlcyddXCI+e3tlcnJvck1lc3NhZ2V9fTwvbWF0LWVycm9yPlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIE5hbWUgJiBBbGlhcyAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0PVwicm93XCIgZmxleD5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAbmFtZVwiPk5hbWU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLm5hbWVbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBBbGlhc2VzIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQ9XCJyb3dcIiBmbGV4PlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBhbGlhc2VzXCI+QWxpYXNlczwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hpcC1saXN0ICNjaGlwTGlzdCBmb3JtQ29udHJvbE5hbWU9XCJhbGlhc2VzXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGFsaWFzIG9mIGZvcm0uY29udHJvbHMuYWxpYXNlcy52YWx1ZVwiIChyZW1vdmVkKT1cInJlbW92ZUFsaWFzZXMoYWxpYXMpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuPnt7YWxpYXN9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbWF0LWNoaXA+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCIgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiIG1hdENoaXBJbnB1dEFkZE9uQmx1cj1cInRydWVcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkQWxpYXNlcygkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9tYXQtY2hpcC1saXN0PlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIHdyYXAgdGFnIGFuZCBsYXlvdXQgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIiAqbmdJZj1cInR5cGUgIT0gQ29udGVudFR5cGUuQmxvY2tcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHdyYXBcIj5XcmFwPC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIndyYXBUYWdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWF1dG9jb21wbGV0ZSAjd3JhcFRhZ3NBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygd3JhcFRhZ3NcIiBbdmFsdWVdPVwib3B0aW9uLm5hbWVcIj57e29wdGlvbi5uYW1lfX08L21hdC1vcHRpb24+XHJcblx0XHRcdFx0XHRcdFx0PC9tYXQtYXV0b2NvbXBsZXRlPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLndyYXBUYWdbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGxheW91dFwiPkxheW91dDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsYXlvdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5sYXlvdXRbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHRcdFx0PCEtLSAqbmdJZj1cIml0ZW0uY2xpZW50SWQgJiYgaXNFZGl0b3JJbml0aWFsemVkXCIgLS0+XHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gQm9keSAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCJpc0VkaXRvckluaXRpYWx6ZWRcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNvbnRlbnRcIj5Db250ZW50PC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGVkaXRvciAjZWRpdG9yIGZvcm1Db250cm9sTmFtZT1cImJvZHlcIiB0aW55TWF0Rm9ybUNvbnRyb2wgW2luaXRdPVwiZWRpdG9yQ29uZmlnXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2VkaXRvcj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5ib2R5WydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gU2NyaXB0IC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQ9XCJyb3dcIiBmbGV4PlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBzY3JpcHRcIj5TY3JpcHQ8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCI+PC90ZXh0YXJlYT5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5zY3JpcHRbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBTdHlsZSAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0PVwicm93XCIgZmxleD5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAc3R5bGVcIj5TdHlsZTwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0YXJlYSBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBmb3JtQ29udHJvbE5hbWU9XCJzdHlsZVwiPjwvdGV4dGFyZWE+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGZvcm0uY29udHJvbHMuc3R5bGVbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBTaG93IHRpdGxlIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJwdXNoLXRvcFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwic2hvd1RpdGxlXCIgaTE4bj1cIkBAc2hvd1RpdGxlXCI+U2hvdyB0aXRsZTwvbWF0LWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBEZWZhdWx0IC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIiAqbmdJZj1cIiFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggbmFtZT1cImRlZmF1bHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0XCIgKGNoYW5nZSk9XCJpdGVtLmNsaWVudElkID0gaXRlbS5kZWZhdWx0ID8gbnVsbCA6IGl0ZW0uY2xpZW50SWRcIiBpMThuPVwiQEBkZWZhdWx0XCI+RGVmYXVsdDwvbWF0LWNoZWNrYm94PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBFbmFibGVkIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJwdXNoLWJvdHRvbVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtY2hlY2tib3ggbmFtZT1cImVuYWJsZWRcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmFibGVkXCIgaTE4bj1cIkBAYWN0aXZlXCI+QWN0aXZlPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PG1hdC1hY3Rpb24tcm93PlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAqbmdJZj1cImlzRWRpdE1vZGVcIiAoY2xpY2spPVwiYXBwbHkoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIGkxOG49XCJAQGFwcGx5XCI+QXBwbHk8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYmFjaygpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHQ8IS0tICNyZWdpb24gQXVkaXQgLS0+XHJcblx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgaWQ9XCJhdWRpdFwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGkxOG49XCJAQGF1ZGl0XCI+QXVkaXQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvbWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHRcdFx0XHRcdDx2ZC1hdWRpdCBbaXRlbV09XCJpdGVtXCI+IDwvdmQtYXVkaXQ+XHJcblx0XHRcdFx0XHQ8bWF0LWFjdGlvbi1yb3c+XHJcblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJiYWNrKClcIiBpMThuPVwiQEBjbG9zZVwiPkNsb3NlPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHQ8L21hdC1hY2NvcmRpb24+XHJcblx0XHQ8L3ZkLWxheW91dC1jYXJkLW92ZXI+XHJcblx0PC9mb3JtPlxyXG48L3ZkLWxheW91dC1uYXY+Il19
@@ -22,14 +22,14 @@ export class DocumentDialogComponent extends GenericReactiveFormComponent {
22
22
  /**
23
23
  * Constructor
24
24
  */
25
- constructor(documentService, fileService, route, changeDetectorRef, dialogRef, item = new Document()) {
25
+ constructor(documentService, fileService, route, changeDetectorRef, dialogRef, data = new Document()) {
26
26
  super(Document, documentService, route, changeDetectorRef);
27
27
  this.documentService = documentService;
28
28
  this.fileService = fileService;
29
29
  this.route = route;
30
30
  this.changeDetectorRef = changeDetectorRef;
31
31
  this.dialogRef = dialogRef;
32
- this.item = item;
32
+ this.data = data;
33
33
  /**
34
34
  * Upload progress
35
35
  */
@@ -42,6 +42,7 @@ export class DocumentDialogComponent extends GenericReactiveFormComponent {
42
42
  * settings: CmsSettings
43
43
  */
44
44
  this.settings = new CmsSettings();
45
+ this.item = data;
45
46
  this.settings = this.getService(CmsSettings);
46
47
  }
47
48
  /**
@@ -86,12 +87,12 @@ export class DocumentDialogComponent extends GenericReactiveFormComponent {
86
87
  }
87
88
  }
88
89
  DocumentDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DocumentDialogComponent, deps: [{ token: i1.DocumentService }, { token: i2.FileService }, { token: i3.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
89
- DocumentDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DocumentDialogComponent, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title class=\"mat-title\" i18n=\"@@newDocument\">New document</div>\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n\t<div>\r\n\t\t<!-- #region Client-->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" projection=\"id,displayName\" text=\"displayName\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Path -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t<mat-select formControlName=\"path\">\r\n\t\t\t\t\t<mat-option value=\"docs\"><span i18n=\"@@document\">Document</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"images\"><span i18n=\"@@image\">Image</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"videos\"><span i18n=\"@@video\">Video</span></mat-option>\r\n\t\t\t\t</mat-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.path['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion-->\r\n\r\n\t\t<!-- #region PreserveOriginalName -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-checkbox name=\"preserveOriginalName\" formControlName=\"preserveOriginalName\" (change)=\"item.name = ''\" i18n=\"@@preserveOriginalName\">Preserve original name</mat-checkbox>\r\n\t\t\t\t<br />\r\n\t\t\t\t<mat-hint *ngIf=\"form?.value?.preserveOriginalName\" class=\"tc-red-500\" i18n=\"@@warningOldFilesWillBeBverridden\">Warning: old files will be overridden</mat-hint>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region File -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@file\">File</mat-label>\r\n\t\t\t\t<div vd-file-input formControlName=\"name\" (select)=\"upload($event)\" required></div>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<div mat-dialog-actions class=\"pad-top\">\r\n\t\t<button type=\"submit\" mat-flat-button [disabled]=\"form. isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n\t\t<button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n\t</div>\r\n</form>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "component", type: i2.VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }, { kind: "component", type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "mapper", "compareWith", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
90
+ DocumentDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DocumentDialogComponent, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title class=\"mat-title\" i18n=\"@@newDocument\">New document</div>\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n\t<div>\r\n\t\t<!-- #region Client-->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientManager\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" projection=\"id,displayName\" text=\"displayName\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Path -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t<mat-select formControlName=\"path\">\r\n\t\t\t\t\t<mat-option value=\"docs\"><span i18n=\"@@document\">Document</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"images\"><span i18n=\"@@image\">Image</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"videos\"><span i18n=\"@@video\">Video</span></mat-option>\r\n\t\t\t\t</mat-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.path['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion-->\r\n\r\n\t\t<!-- #region PreserveOriginalName -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientManager\">\r\n\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-checkbox name=\"preserveOriginalName\" formControlName=\"preserveOriginalName\" (change)=\"item.name = ''\" i18n=\"@@preserveOriginalName\">Preserve original name</mat-checkbox>\r\n\t\t\t\t<br />\r\n\t\t\t\t<mat-hint *ngIf=\"form?.value?.preserveOriginalName\" class=\"tc-red-500\" i18n=\"@@warningOldFilesWillBeBverridden\">Warning: old files will be overridden</mat-hint>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region File -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@file\">File</mat-label>\r\n\t\t\t\t<div vd-file-input formControlName=\"name\" (select)=\"upload($event)\" [required]=\"true\"></div>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<div mat-dialog-actions class=\"pad-top\">\r\n\t\t<button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n\t\t<button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n\t</div>\r\n</form>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "directive", type: i2.EmptyStringResetDirective, selector: "[ngModel],[formControlName],[formControl]" }, { kind: "component", type: i2.VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }, { kind: "component", type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "mapper", "compareWith", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
90
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DocumentDialogComponent, decorators: [{
91
92
  type: Component,
92
- args: [{ selector: 'document-dialog', template: "<div mat-dialog-title class=\"mat-title\" i18n=\"@@newDocument\">New document</div>\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n\t<div>\r\n\t\t<!-- #region Client-->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" projection=\"id,displayName\" text=\"displayName\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Path -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t<mat-select formControlName=\"path\">\r\n\t\t\t\t\t<mat-option value=\"docs\"><span i18n=\"@@document\">Document</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"images\"><span i18n=\"@@image\">Image</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"videos\"><span i18n=\"@@video\">Video</span></mat-option>\r\n\t\t\t\t</mat-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.path['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion-->\r\n\r\n\t\t<!-- #region PreserveOriginalName -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientAdmin\">\r\n\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-checkbox name=\"preserveOriginalName\" formControlName=\"preserveOriginalName\" (change)=\"item.name = ''\" i18n=\"@@preserveOriginalName\">Preserve original name</mat-checkbox>\r\n\t\t\t\t<br />\r\n\t\t\t\t<mat-hint *ngIf=\"form?.value?.preserveOriginalName\" class=\"tc-red-500\" i18n=\"@@warningOldFilesWillBeBverridden\">Warning: old files will be overridden</mat-hint>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region File -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@file\">File</mat-label>\r\n\t\t\t\t<div vd-file-input formControlName=\"name\" (select)=\"upload($event)\" required></div>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<div mat-dialog-actions class=\"pad-top\">\r\n\t\t<button type=\"submit\" mat-flat-button [disabled]=\"form. isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n\t\t<button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n\t</div>\r\n</form>" }]
93
+ args: [{ selector: 'document-dialog', template: "<div mat-dialog-title class=\"mat-title\" i18n=\"@@newDocument\">New document</div>\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n\t<div>\r\n\t\t<!-- #region Client-->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientManager\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" projection=\"id,displayName\" text=\"displayName\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region Path -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t<mat-select formControlName=\"path\">\r\n\t\t\t\t\t<mat-option value=\"docs\"><span i18n=\"@@document\">Document</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"images\"><span i18n=\"@@image\">Image</span></mat-option>\r\n\t\t\t\t\t<mat-option value=\"videos\"><span i18n=\"@@video\">Video</span></mat-option>\r\n\t\t\t\t</mat-select>\r\n\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.path['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion-->\r\n\r\n\t\t<!-- #region PreserveOriginalName -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"!isClientManager\">\r\n\t\t\t<div layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-checkbox name=\"preserveOriginalName\" formControlName=\"preserveOriginalName\" (change)=\"item.name = ''\" i18n=\"@@preserveOriginalName\">Preserve original name</mat-checkbox>\r\n\t\t\t\t<br />\r\n\t\t\t\t<mat-hint *ngIf=\"form?.value?.preserveOriginalName\" class=\"tc-red-500\" i18n=\"@@warningOldFilesWillBeBverridden\">Warning: old files will be overridden</mat-hint>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\r\n\t\t<!-- #region File -->\r\n\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t<mat-label i18n=\"@@file\">File</mat-label>\r\n\t\t\t\t<div vd-file-input formControlName=\"name\" (select)=\"upload($event)\" [required]=\"true\"></div>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<!-- #endregion -->\r\n\t</div>\r\n\t<div mat-dialog-actions class=\"pad-top\">\r\n\t\t<button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n\t\t<button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n\t</div>\r\n</form>" }]
93
94
  }], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.FileService }, { type: i3.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialogRef }, { type: i11.Document, decorators: [{
94
95
  type: Inject,
95
96
  args: [MAT_DIALOG_DATA]
96
97
  }] }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBTW5FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw0QkFBdUQ7SUFxQm5HOztPQUVHO0lBQ0gsWUFDVyxlQUFnQyxFQUNoQyxXQUF3QixFQUN4QixLQUFxQixFQUNyQixpQkFBb0MsRUFDdkMsU0FBZ0QsRUFDdkIsT0FBaUIsSUFBSSxRQUFRLEVBQUU7UUFFL0QsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFQaEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBdUM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUF4QmhFOztXQUVHO1FBQ0ksbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFbEM7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFHOztXQUVHO1FBQ0ksYUFBUSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBY2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBVTtRQUN2QixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUTtnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLG9CQUFvQjthQUM1RCxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLGNBQWMsRUFBRTtvQkFFaEQsdUNBQXVDO29CQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFakUsa0RBQWtEO29CQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztpQkFDbEM7cUJBQU0sSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFO29CQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2lCQUN6QjtZQUNGLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDakM7SUFDRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGFBQWEsQ0FBQyxTQUFxQixVQUFVLENBQUMsWUFBWSxFQUFFLFdBQWdCLElBQUk7UUFDekYsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7b0hBOUVXLHVCQUF1Qix1S0E4QjFCLGVBQWU7d0dBOUJaLHVCQUF1Qiw4RUNicEMsd3ZGQWtETzsyRkRyQ00sdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNDLGlCQUFpQjs7MEJBaUN6QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aEhlbHBlciwgRmlsZVNlcnZpY2UsIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQsIFNhdmVBY3Rpb24gfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBDbXNTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9jbXMtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9kb2N1bWVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvY3VtZW50LnNlcnZpY2VgJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZG9jdW1lbnQtZGlhbG9nJyxcclxuXHR0ZW1wbGF0ZVVybDogJ2RvY3VtZW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50RGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgR2VuZXJpY1JlYWN0aXZlRm9ybUNvbXBvbmVudDxEb2N1bWVudCwgRG9jdW1lbnRTZXJ2aWNlPiB7XHJcblx0LyoqXHJcblx0ICogVXBsb2FkIHN0YXR1c1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc1VwbG9hZGluZzogYm9vbGVhbjtcclxuXHJcblx0LyoqXHJcblx0ICogVXBsb2FkIHByb2dyZXNzXHJcblx0ICovXHJcblx0cHVibGljIHVwbG9hZFByb2dyZXNzOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGRpc2FibGUgc29tZSBwcm9wZXJ0aWVzIGZvciBjbGllbnQgbWFuYWdlclxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0NsaWVudE1hbmFnZXIgPSBBdXRoSGVscGVyLmhhc1JvbGUoJ0NsaWVudEFkbWluaXN0cmF0b3InKSB8fCBBdXRoSGVscGVyLmhhc1JvbGUoJ0NsaWVudE1hbmFnZXInKTtcclxuXHJcblx0LyoqXHJcblx0ICogc2V0dGluZ3M6IENtc1NldHRpbmdzXHJcblx0ICovXHJcblx0cHVibGljIHNldHRpbmdzOiBDbXNTZXR0aW5ncyA9IG5ldyBDbXNTZXR0aW5ncygpO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIGZpbGVTZXJ2aWNlOiBGaWxlU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcblx0XHRwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERvY3VtZW50RGlhbG9nQ29tcG9uZW50PixcclxuXHRcdEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgaXRlbTogRG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQoKVxyXG5cdCkge1xyXG5cdFx0c3VwZXIoRG9jdW1lbnQsIGRvY3VtZW50U2VydmljZSwgcm91dGUsIGNoYW5nZURldGVjdG9yUmVmKVxyXG5cdFx0dGhpcy5zZXR0aW5ncyA9IHRoaXMuZ2V0U2VydmljZShDbXNTZXR0aW5ncyk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGxvYWRzIGEgbmV3IGRvY3VtZW50XHJcblx0ICovXHJcblx0cHVibGljIHVwbG9hZChmaWxlOiBGaWxlKTogdm9pZCB7XHJcblx0XHRpZiAoZmlsZSAhPSBudWxsICYmIHRoaXMuaXRlbSAmJiB0aGlzLml0ZW0uY2xpZW50SWQpIHtcclxuXHRcdFx0dGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XHJcblx0XHRcdHRoaXMuZmlsZVNlcnZpY2UudXBsb2FkKGZpbGUsIGB1cGxvYWRgLCB7XHJcblx0XHRcdFx0Y2xpZW50SWQ6IHRoaXMuZm9ybT8udmFsdWU/LmNsaWVudElkLFxyXG5cdFx0XHRcdHBhdGg6IHRoaXMuZm9ybT8udmFsdWU/LnBhdGgsXHJcblx0XHRcdFx0aXNQdWJsaWM6IHRydWUsXHJcblx0XHRcdFx0cHJlc2VydmVPcmlnaW5hbE5hbWU6IHRoaXMuZm9ybT8udmFsdWU/LnByZXNlcnZlT3JpZ2luYWxOYW1lXHJcblx0XHRcdH0pLnN1YnNjcmliZShldmVudCA9PiB7XHJcblx0XHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuXHJcblx0XHRcdFx0XHQvKiBDYWxjdWxhdGUgdGhlIHByb2dyZXNzIHBlcmNlbnRhZ2UgKi9cclxuXHRcdFx0XHRcdGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCk7XHJcblxyXG5cdFx0XHRcdFx0LyogUGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW0gKi9cclxuXHRcdFx0XHRcdHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBwZXJjZW50RG9uZTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ucGF0Y2hWYWx1ZSg8RG9jdW1lbnQ+ZXZlbnQuYm9keSk7XHJcblx0XHRcdFx0XHR0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCBfID0+IHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgZGF0YSBzdWJtaXRpb25cclxuXHQgKiBAcGFyYW0gYWN0aW9uIFxyXG5cdCAqIEBwYXJhbSByZXNwb25zZSBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25BZnRlclN1Ym1pdChhY3Rpb246IFNhdmVBY3Rpb24gPSBTYXZlQWN0aW9uLlNhdmVBbmRDbG9zZSwgcmVzcG9uc2U6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuXHRcdHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuXHRcdHRoaXMuY2FuY2VsKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbG9zZXMgdGhlIGRpYWxvZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxufSIsIjxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC10aXRsZVwiIGkxOG49XCJAQG5ld0RvY3VtZW50XCI+TmV3IGRvY3VtZW50PC9kaXY+XHJcbjxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuXHQ8ZGl2PlxyXG5cdFx0PCEtLSAjcmVnaW9uIENsaWVudC0tPlxyXG5cdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIiAqbmdJZj1cIiFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNsaWVudFwiPkNsaWVudDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdDx2ZC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2xpZW50SWRcIiBlbmRwb2ludD1cImNsaWVudD9lbmFibGVkPXRydWVcIiBwcm9qZWN0aW9uPVwiaWQsZGlzcGxheU5hbWVcIiB0ZXh0PVwiZGlzcGxheU5hbWVcIiBsYXlvdXQ9XCJjb2x1bW5cIiBmbGV4PjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLmNsaWVudElkWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHQ8IS0tICNyZWdpb24gUGF0aCAtLT5cclxuXHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCI+XHJcblx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHR5cGVcIj5UeXBlPC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0PG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiPlxyXG5cdFx0XHRcdFx0PG1hdC1vcHRpb24gdmFsdWU9XCJkb2NzXCI+PHNwYW4gaTE4bj1cIkBAZG9jdW1lbnRcIj5Eb2N1bWVudDwvc3Bhbj48L21hdC1vcHRpb24+XHJcblx0XHRcdFx0XHQ8bWF0LW9wdGlvbiB2YWx1ZT1cImltYWdlc1wiPjxzcGFuIGkxOG49XCJAQGltYWdlXCI+SW1hZ2U8L3NwYW4+PC9tYXQtb3B0aW9uPlxyXG5cdFx0XHRcdFx0PG1hdC1vcHRpb24gdmFsdWU9XCJ2aWRlb3NcIj48c3BhbiBpMThuPVwiQEB2aWRlb1wiPlZpZGVvPC9zcGFuPjwvbWF0LW9wdGlvbj5cclxuXHRcdFx0XHQ8L21hdC1zZWxlY3Q+XHJcblx0XHRcdFx0PG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGZvcm0uY29udHJvbHMucGF0aFsnZXJyb3JNZXNzYWdlcyddXCI+e3tlcnJvck1lc3NhZ2V9fTwvbWF0LWVycm9yPlxyXG5cdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tICNlbmRyZWdpb24tLT5cclxuXHJcblx0XHQ8IS0tICNyZWdpb24gUHJlc2VydmVPcmlnaW5hbE5hbWUgLS0+XHJcblx0XHQ8ZGl2IGxheW91dC1ndC1zbT1cInJvd1wiIGxheW91dD1cImNvbHVtblwiICpuZ0lmPVwiIWlzQ2xpZW50QWRtaW5cIj5cclxuXHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0PG1hdC1jaGVja2JveCBuYW1lPVwicHJlc2VydmVPcmlnaW5hbE5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJwcmVzZXJ2ZU9yaWdpbmFsTmFtZVwiIChjaGFuZ2UpPVwiaXRlbS5uYW1lID0gJydcIiBpMThuPVwiQEBwcmVzZXJ2ZU9yaWdpbmFsTmFtZVwiPlByZXNlcnZlIG9yaWdpbmFsIG5hbWU8L21hdC1jaGVja2JveD5cclxuXHRcdFx0XHQ8YnIgLz5cclxuXHRcdFx0XHQ8bWF0LWhpbnQgKm5nSWY9XCJmb3JtPy52YWx1ZT8ucHJlc2VydmVPcmlnaW5hbE5hbWVcIiBjbGFzcz1cInRjLXJlZC01MDBcIiBpMThuPVwiQEB3YXJuaW5nT2xkRmlsZXNXaWxsQmVCdmVycmlkZGVuXCI+V2FybmluZzogb2xkIGZpbGVzIHdpbGwgYmUgb3ZlcnJpZGRlbjwvbWF0LWhpbnQ+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0PCEtLSAjcmVnaW9uIEZpbGUgLS0+XHJcblx0XHQ8ZGl2IGxheW91dC1ndC1zbT1cInJvd1wiIGxheW91dD1cImNvbHVtblwiPlxyXG5cdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBmaWxlXCI+RmlsZTwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdDxkaXYgdmQtZmlsZS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgKHNlbGVjdCk9XCJ1cGxvYWQoJGV2ZW50KVwiIHJlcXVpcmVkPjwvZGl2PlxyXG5cdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwYWQtdG9wXCI+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gW2Rpc2FibGVkXT1cImZvcm0uIGlzU2F2aW5nXCIgY29sb3I9XCJwcmltYXJ5XCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0PC9kaXY+XHJcbjwvZm9ybT4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBTW5FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw0QkFBdUQ7SUFxQm5HOztPQUVHO0lBQ0gsWUFDVyxlQUFnQyxFQUNoQyxXQUF3QixFQUN4QixLQUFxQixFQUNyQixpQkFBb0MsRUFDdkMsU0FBZ0QsRUFDdkIsT0FBaUIsSUFBSSxRQUFRLEVBQUU7UUFFL0QsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFQaEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBdUM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUF4QmhFOztXQUVHO1FBQ0ksbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFbEM7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFHOztXQUVHO1FBQ0ksYUFBUSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBY2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBcUI7UUFDbEMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBWSxFQUFFLFFBQVEsRUFBRTtnQkFDL0MsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVE7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJO2dCQUM1QixRQUFRLEVBQUUsSUFBSTtnQkFDZCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxvQkFBb0I7YUFDNUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjLEVBQUU7b0JBRWhELHVDQUF1QztvQkFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRWpFLGtEQUFrRDtvQkFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7aUJBQ2xDO3FCQUFNLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtvQkFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQVcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztpQkFDekI7WUFDRixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxhQUFhLENBQUMsU0FBcUIsVUFBVSxDQUFDLFlBQVksRUFBRSxXQUFnQixJQUFJO1FBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7O29IQS9FVyx1QkFBdUIsdUtBOEIxQixlQUFlO3dHQTlCWix1QkFBdUIsOEVDYnBDLGl3RkFrRE87MkZEckNNLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDQyxpQkFBaUI7OzBCQWlDekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50VHlwZSwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhIZWxwZXIsIEZpbGVTZXJ2aWNlLCBHZW5lcmljUmVhY3RpdmVGb3JtQ29tcG9uZW50LCBTYXZlQWN0aW9uIH0gZnJvbSAnQG1lc3NhaWEvY2RrJztcclxuaW1wb3J0IHsgQ21zU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvY21zLXNldHRpbmdzJztcclxuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG9jdW1lbnQnO1xyXG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudC5zZXJ2aWNlYCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2RvY3VtZW50LWRpYWxvZycsXHJcblx0dGVtcGxhdGVVcmw6ICdkb2N1bWVudC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQ8RG9jdW1lbnQsIERvY3VtZW50U2VydmljZT4ge1xyXG5cdC8qKlxyXG5cdCAqIFVwbG9hZCBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNVcGxvYWRpbmc6IGJvb2xlYW47XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwbG9hZCBwcm9ncmVzc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cGxvYWRQcm9ncmVzczogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBkaXNhYmxlIHNvbWUgcHJvcGVydGllcyBmb3IgY2xpZW50IG1hbmFnZXJcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDbGllbnRNYW5hZ2VyID0gQXV0aEhlbHBlci5oYXNSb2xlKCdDbGllbnRBZG1pbmlzdHJhdG9yJykgfHwgQXV0aEhlbHBlci5oYXNSb2xlKCdDbGllbnRNYW5hZ2VyJyk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHNldHRpbmdzOiBDbXNTZXR0aW5nc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZXR0aW5nczogQ21zU2V0dGluZ3MgPSBuZXcgQ21zU2V0dGluZ3MoKTtcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBmaWxlU2VydmljZTogRmlsZVNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG5cdFx0cHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEb2N1bWVudERpYWxvZ0NvbXBvbmVudD4sXHJcblx0XHRASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IERvY3VtZW50ID0gbmV3IERvY3VtZW50KClcclxuXHQpIHtcclxuXHRcdHN1cGVyKERvY3VtZW50LCBkb2N1bWVudFNlcnZpY2UsIHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZilcclxuXHRcdHRoaXMuaXRlbSA9IGRhdGE7XHJcblx0XHR0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRTZXJ2aWNlKENtc1NldHRpbmdzKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwbG9hZHMgYSBuZXcgZG9jdW1lbnRcclxuXHQgKi9cclxuXHRwdWJsaWMgdXBsb2FkKGZpbGU6IEZpbGUgfCBGaWxlTGlzdCk6IHZvaWQge1xyXG5cdFx0aWYgKGZpbGUgIT0gbnVsbCAmJiB0aGlzLml0ZW0gJiYgdGhpcy5pdGVtLmNsaWVudElkKSB7XHJcblx0XHRcdHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmZpbGVTZXJ2aWNlLnVwbG9hZChmaWxlIGFzIEZpbGUsIGB1cGxvYWRgLCB7XHJcblx0XHRcdFx0Y2xpZW50SWQ6IHRoaXMuZm9ybT8udmFsdWU/LmNsaWVudElkLFxyXG5cdFx0XHRcdHBhdGg6IHRoaXMuZm9ybT8udmFsdWU/LnBhdGgsXHJcblx0XHRcdFx0aXNQdWJsaWM6IHRydWUsXHJcblx0XHRcdFx0cHJlc2VydmVPcmlnaW5hbE5hbWU6IHRoaXMuZm9ybT8udmFsdWU/LnByZXNlcnZlT3JpZ2luYWxOYW1lXHJcblx0XHRcdH0pLnN1YnNjcmliZShldmVudCA9PiB7XHJcblx0XHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuXHJcblx0XHRcdFx0XHQvKiBDYWxjdWxhdGUgdGhlIHByb2dyZXNzIHBlcmNlbnRhZ2UgKi9cclxuXHRcdFx0XHRcdGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCk7XHJcblxyXG5cdFx0XHRcdFx0LyogUGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW0gKi9cclxuXHRcdFx0XHRcdHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBwZXJjZW50RG9uZTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0ucGF0Y2hWYWx1ZSg8RG9jdW1lbnQ+ZXZlbnQuYm9keSk7XHJcblx0XHRcdFx0XHR0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCBfID0+IHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgZGF0YSBzdWJtaXRpb25cclxuXHQgKiBAcGFyYW0gYWN0aW9uIFxyXG5cdCAqIEBwYXJhbSByZXNwb25zZSBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25BZnRlclN1Ym1pdChhY3Rpb246IFNhdmVBY3Rpb24gPSBTYXZlQWN0aW9uLlNhdmVBbmRDbG9zZSwgcmVzcG9uc2U6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuXHRcdHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuXHRcdHRoaXMuY2FuY2VsKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbG9zZXMgdGhlIGRpYWxvZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxufSIsIjxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC10aXRsZVwiIGkxOG49XCJAQG5ld0RvY3VtZW50XCI+TmV3IGRvY3VtZW50PC9kaXY+XHJcbjxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuXHQ8ZGl2PlxyXG5cdFx0PCEtLSAjcmVnaW9uIENsaWVudC0tPlxyXG5cdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIiAqbmdJZj1cIiFpc0NsaWVudE1hbmFnZXJcIj5cclxuXHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAY2xpZW50XCI+Q2xpZW50PC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0PHZkLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjbGllbnRJZFwiIGVuZHBvaW50PVwiY2xpZW50P2VuYWJsZWQ9dHJ1ZVwiIHByb2plY3Rpb249XCJpZCxkaXNwbGF5TmFtZVwiIHRleHQ9XCJkaXNwbGF5TmFtZVwiIGxheW91dD1cImNvbHVtblwiIGZsZXg+PC92ZC1zZWxlY3Q+XHJcblx0XHRcdFx0PG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGZvcm0uY29udHJvbHMuY2xpZW50SWRbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdDwhLS0gI3JlZ2lvbiBQYXRoIC0tPlxyXG5cdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAdHlwZVwiPlR5cGU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHQ8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCI+XHJcblx0XHRcdFx0XHQ8bWF0LW9wdGlvbiB2YWx1ZT1cImRvY3NcIj48c3BhbiBpMThuPVwiQEBkb2N1bWVudFwiPkRvY3VtZW50PC9zcGFuPjwvbWF0LW9wdGlvbj5cclxuXHRcdFx0XHRcdDxtYXQtb3B0aW9uIHZhbHVlPVwiaW1hZ2VzXCI+PHNwYW4gaTE4bj1cIkBAaW1hZ2VcIj5JbWFnZTwvc3Bhbj48L21hdC1vcHRpb24+XHJcblx0XHRcdFx0XHQ8bWF0LW9wdGlvbiB2YWx1ZT1cInZpZGVvc1wiPjxzcGFuIGkxOG49XCJAQHZpZGVvXCI+VmlkZW88L3NwYW4+PC9tYXQtb3B0aW9uPlxyXG5cdFx0XHRcdDwvbWF0LXNlbGVjdD5cclxuXHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5wYXRoWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDwhLS0gI2VuZHJlZ2lvbi0tPlxyXG5cclxuXHRcdDwhLS0gI3JlZ2lvbiBQcmVzZXJ2ZU9yaWdpbmFsTmFtZSAtLT5cclxuXHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCIhaXNDbGllbnRNYW5hZ2VyXCI+XHJcblx0XHRcdDxkaXYgbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdDxtYXQtY2hlY2tib3ggbmFtZT1cInByZXNlcnZlT3JpZ2luYWxOYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwicHJlc2VydmVPcmlnaW5hbE5hbWVcIiAoY2hhbmdlKT1cIml0ZW0ubmFtZSA9ICcnXCIgaTE4bj1cIkBAcHJlc2VydmVPcmlnaW5hbE5hbWVcIj5QcmVzZXJ2ZSBvcmlnaW5hbCBuYW1lPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0PGJyIC8+XHJcblx0XHRcdFx0PG1hdC1oaW50ICpuZ0lmPVwiZm9ybT8udmFsdWU/LnByZXNlcnZlT3JpZ2luYWxOYW1lXCIgY2xhc3M9XCJ0Yy1yZWQtNTAwXCIgaTE4bj1cIkBAd2FybmluZ09sZEZpbGVzV2lsbEJlQnZlcnJpZGRlblwiPldhcm5pbmc6IG9sZCBmaWxlcyB3aWxsIGJlIG92ZXJyaWRkZW48L21hdC1oaW50PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdDwhLS0gI3JlZ2lvbiBGaWxlIC0tPlxyXG5cdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAZmlsZVwiPkZpbGU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHQ8ZGl2IHZkLWZpbGUtaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIChzZWxlY3QpPVwidXBsb2FkKCRldmVudClcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvZGl2PlxyXG5cdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwYWQtdG9wXCI+XHJcblx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgY29sb3I9XCJwcmltYXJ5XCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0PC9kaXY+XHJcbjwvZm9ybT4iXX0=