@abp/ng.core 7.1.0 → 7.1.1

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.
@@ -32,6 +32,7 @@ import { getInitialData, localeInitializer } from './utils/initial-utils';
32
32
  import { ShortDateTimePipe } from './pipes/short-date-time.pipe';
33
33
  import { ShortTimePipe } from './pipes/short-time.pipe';
34
34
  import { ShortDatePipe } from './pipes/short-date.pipe';
35
+ import { SafeHtmlPipe } from './pipes/safe-html.pipe';
35
36
  import { QUEUE_MANAGER } from './tokens/queue.token';
36
37
  import { DefaultQueueManager } from './utils/queue';
37
38
  import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';
@@ -58,6 +59,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
58
59
  ReplaceableTemplateDirective,
59
60
  RouterOutletComponent,
60
61
  SortPipe,
62
+ SafeHtmlPipe,
61
63
  StopPropagationDirective,
62
64
  ToInjectorPipe,
63
65
  ShortDateTimePipe,
@@ -85,6 +87,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
85
87
  ReplaceableTemplateDirective,
86
88
  RouterOutletComponent,
87
89
  SortPipe,
90
+ SafeHtmlPipe,
88
91
  StopPropagationDirective,
89
92
  ToInjectorPipe,
90
93
  ShortDateTimePipe,
@@ -123,6 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
123
126
  ReplaceableTemplateDirective,
124
127
  RouterOutletComponent,
125
128
  SortPipe,
129
+ SafeHtmlPipe,
126
130
  StopPropagationDirective,
127
131
  ToInjectorPipe,
128
132
  ShortDateTimePipe,
@@ -150,6 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
150
154
  ReplaceableTemplateDirective,
151
155
  RouterOutletComponent,
152
156
  SortPipe,
157
+ SafeHtmlPipe,
153
158
  StopPropagationDirective,
154
159
  ToInjectorPipe,
155
160
  ShortDateTimePipe,
@@ -269,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
269
274
  imports: [BaseCoreModule],
270
275
  }]
271
276
  }] });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9B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LEVBQUUsSUFBSTtpQkFDakI7Z0JBRUQsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLFVBQVUsRUFBRTtnQkFDbEU7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUN4RCxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDNUI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2dCQUNELG9DQUFvQzthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQWU7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7b0JBQ3hELElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3VHQXJFVSxVQUFVO3dHQUFWLFVBQVUsWUExQlYsY0FBYyxhQUFkLGNBQWM7d0dBMEJkLFVBQVUsWUFGWCxjQUFjLEVBeEJiLGNBQWM7MkZBMEJkLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudFhzcmZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVwbGFjZWFibGUtcm91dGUtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlck91dGxldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RlYm91bmNlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybVN1Ym1pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbml0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2luaXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUm91dGVzSGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvcm91dGVzLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICcuL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XHJcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnLi9waXBlcy9zb3J0LnBpcGUnO1xyXG5pbXBvcnQgeyBUb0luamVjdG9yUGlwZSB9IGZyb20gJy4vcGlwZXMvdG8taW5qZWN0b3IucGlwZSc7XHJcbmltcG9ydCB7IENvb2tpZUxhbmd1YWdlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9jb29raWUtbGFuZ3VhZ2UucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBMb2NhbGVQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbG9jYWxpemF0aW9uQ29udHJpYnV0b3IsIExPQ0FMSVpBVElPTlMgfSBmcm9tICcuL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4nO1xyXG5pbXBvcnQgeyBDT1JFX09QVElPTlMsIGNvcmVPcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi90b2tlbnMvdGVuYW50LWtleS50b2tlbic7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL3V0aWxzL2NvbW1vbi11dGlscyc7XHJcbmltcG9ydCAnLi91dGlscy9kYXRlLWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBnZXRJbml0aWFsRGF0YSwgbG9jYWxlSW5pdGlhbGl6ZXIgfSBmcm9tICcuL3V0aWxzL2luaXRpYWwtdXRpbHMnO1xyXG5pbXBvcnQgeyBTaG9ydERhdGVUaW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtZGF0ZS10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBTaG9ydFRpbWVQaXBlIH0gZnJvbSAnLi9waXBlcy9zaG9ydC10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBTaG9ydERhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy9zaG9ydC1kYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBRVUVVRV9NQU5BR0VSIH0gZnJvbSAnLi90b2tlbnMvcXVldWUudG9rZW4nO1xyXG5pbXBvcnQgeyBEZWZhdWx0UXVldWVNYW5hZ2VyIH0gZnJvbSAnLi91dGlscy9xdWV1ZSc7XHJcbmltcG9ydCB7IEluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXNQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2luY2x1ZGUtbG9jYWxpemF0aW9uLXJlc291cmNlcy5wcm92aWRlcic7XHJcblxyXG4vKipcclxuICogQmFzZUNvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGhvbGRzXHJcbiAqIGFsbCBpbXBvcnRzLCBkZWNsYXJhdGlvbnMsIGV4cG9ydHMsIGFuZCBlbnRyeUNvbXBvbmVudHNcclxuICogYnV0IG5vdCB0aGUgcHJvdmlkZXJzLlxyXG4gKiBUaGlzIG1vZHVsZSB3aWxsIGJlIGltcG9ydGVkIGFuZCBleHBvcnRlZCBieSBhbGwgb3RoZXJzLlxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxyXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxyXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcclxuICAgIEZvckRpcmVjdGl2ZSxcclxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXHJcbiAgICBJbml0RGlyZWN0aXZlLFxyXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBSZXBsYWNlYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxyXG4gICAgU29ydFBpcGUsXHJcbiAgICBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXHJcbiAgICBUb0luamVjdG9yUGlwZSxcclxuICAgIFNob3J0RGF0ZVRpbWVQaXBlLFxyXG4gICAgU2hvcnRUaW1lUGlwZSxcclxuICAgIFNob3J0RGF0ZVBpcGUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQsXHJcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRm9yRGlyZWN0aXZlLFxyXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFRvSW5qZWN0b3JQaXBlLFxyXG4gICAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgICBTaG9ydFRpbWVQaXBlLFxyXG4gICAgU2hvcnREYXRlUGlwZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0xvY2FsaXphdGlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZUNvcmVNb2R1bGUge31cclxuXHJcbi8qKlxyXG4gKiBSb290Q29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgd2lsbCBiZSB1c2VkIGF0IHJvb3QgbGV2ZWxcclxuICogYW5kIGl0IGludHJvZHVjZXMgaW1wb3J0cyB1c2VmdWwgYXQgcm9vdCBsZXZlbCAoZS5nLiBOR1hTKVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZUNvcmVNb2R1bGUsIExvY2FsaXphdGlvbk1vZHVsZV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQmFzZUNvcmVNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50WHNyZk1vZHVsZS53aXRoT3B0aW9ucyh7XHJcbiAgICAgIGNvb2tpZU5hbWU6ICdYU1JGLVRPS0VOJyxcclxuICAgICAgaGVhZGVyTmFtZTogJ1JlcXVlc3RWZXJpZmljYXRpb25Ub2tlbicsXHJcbiAgICB9KSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm9vdENvcmVNb2R1bGUge31cclxuXHJcbi8qKlxyXG4gKiBDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCBpcyBwdWJsaWNseSBhdmFpbGFibGVcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0Jhc2VDb3JlTW9kdWxlXSxcclxuICBpbXBvcnRzOiBbQmFzZUNvcmVNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIEFCUC5Sb290KTogTW9kdWxlV2l0aFByb3ZpZGVyczxSb290Q29yZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFJvb3RDb3JlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBMb2NhbGVQcm92aWRlcixcclxuICAgICAgICBDb29raWVMYW5ndWFnZVByb3ZpZGVyLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6ICdDT1JFX09QVElPTlMnLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBDT1JFX09QVElPTlMsXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb3JlT3B0aW9uc0ZhY3RvcnksXHJcbiAgICAgICAgICBkZXBzOiBbJ0NPUkVfT1BUSU9OUyddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogZ2V0SW5pdGlhbERhdGEsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBsb2NhbGVJbml0aWFsaXplcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW1JvdXRlc0hhbmRsZXJdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB7IHByb3ZpZGU6IFRFTkFOVF9LRVksIHVzZVZhbHVlOiBvcHRpb25zLnRlbmFudEtleSB8fCAnX190ZW5hbnQnIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTE9DQUxJWkFUSU9OUyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yKG9wdGlvbnMubG9jYWxpemF0aW9ucyksXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBRVUVVRV9NQU5BR0VSLFxyXG4gICAgICAgICAgdXNlQ2xhc3M6IERlZmF1bHRRdWV1ZU1hbmFnZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBJbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzUHJvdmlkZXIsXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvckNoaWxkKG9wdGlvbnMgPSB7fSBhcyBBQlAuQ2hpbGQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9B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XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEh0dHBDbGllbnRYc3JmTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdHMvbmctbW9kZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcGxhY2VhYmxlLXJvdXRlLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kZWJvdW5jZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1TdWJtaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbml0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlcGxhY2VhYmxlLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJvdXRlc0hhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXJzL3JvdXRlcy5oYW5kbGVyJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xyXG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcclxuaW1wb3J0IHsgVG9JbmplY3RvclBpcGUgfSBmcm9tICcuL3BpcGVzL3RvLWluamVjdG9yLnBpcGUnO1xyXG5pbXBvcnQgeyBDb29raWVMYW5ndWFnZVByb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvY29va2llLWxhbmd1YWdlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yLCBMT0NBTElaQVRJT05TIH0gZnJvbSAnLi90b2tlbnMvbG9jYWxpemF0aW9uLnRva2VuJztcclxuaW1wb3J0IHsgQ09SRV9PUFRJT05TLCBjb3JlT3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3Rva2Vucy9vcHRpb25zLnRva2VuJztcclxuaW1wb3J0IHsgVEVOQU5UX0tFWSB9IGZyb20gJy4vdG9rZW5zL3RlbmFudC1rZXkudG9rZW4nO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi91dGlscy9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQgJy4vdXRpbHMvZGF0ZS1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgZ2V0SW5pdGlhbERhdGEsIGxvY2FsZUluaXRpYWxpemVyIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcclxuaW1wb3J0IHsgU2hvcnREYXRlVGltZVBpcGUgfSBmcm9tICcuL3BpcGVzL3Nob3J0LWRhdGUtdGltZS5waXBlJztcclxuaW1wb3J0IHsgU2hvcnRUaW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtdGltZS5waXBlJztcclxuaW1wb3J0IHsgU2hvcnREYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmltcG9ydCB7IFFVRVVFX01BTkFHRVIgfSBmcm9tICcuL3Rva2Vucy9xdWV1ZS50b2tlbic7XHJcbmltcG9ydCB7IERlZmF1bHRRdWV1ZU1hbmFnZXIgfSBmcm9tICcuL3V0aWxzL3F1ZXVlJztcclxuaW1wb3J0IHsgSW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlc1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnByb3ZpZGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlQ29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgaG9sZHNcclxuICogYWxsIGltcG9ydHMsIGRlY2xhcmF0aW9ucywgZXhwb3J0cywgYW5kIGVudHJ5Q29tcG9uZW50c1xyXG4gKiBidXQgbm90IHRoZSBwcm92aWRlcnMuXHJcbiAqIFRoaXMgbW9kdWxlIHdpbGwgYmUgaW1wb3J0ZWQgYW5kIGV4cG9ydGVkIGJ5IGFsbCBvdGhlcnMuXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQsXHJcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRm9yRGlyZWN0aXZlLFxyXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIFNhZmVIdG1sUGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFRvSW5qZWN0b3JQaXBlLFxyXG4gICAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgICBTaG9ydFRpbWVQaXBlLFxyXG4gICAgU2hvcnREYXRlUGlwZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCxcclxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JEaXJlY3RpdmUsXHJcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gICAgSW5pdERpcmVjdGl2ZSxcclxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgU2FmZUh0bWxQaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgVG9JbmplY3RvclBpcGUsXHJcbiAgICBTaG9ydERhdGVUaW1lUGlwZSxcclxuICAgIFNob3J0VGltZVBpcGUsXHJcbiAgICBTaG9ydERhdGVQaXBlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemF0aW9uUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQ29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIFJvb3RDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXQgcm9vdCBsZXZlbFxyXG4gKiBhbmQgaXQgaW50cm9kdWNlcyBpbXBvcnRzIHVzZWZ1bCBhdCByb290IGxldmVsIChlLmcuIE5HWFMpXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYXNlQ29yZU1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRYc3JmTW9kdWxlLndpdGhPcHRpb25zKHtcclxuICAgICAgY29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxyXG4gICAgICBoZWFkZXJOYW1lOiAnUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuJyxcclxuICAgIH0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIENvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGlzIHB1YmxpY2x5IGF2YWlsYWJsZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZUNvcmVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30gYXMgQUJQLlJvb3QpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIExvY2FsZVByb3ZpZGVyLFxyXG4gICAgICAgIENvb2tpZUxhbmd1YWdlUHJvdmlkZXIsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ0NPUkVfT1BUSU9OUycsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IENPUkVfT1BUSU9OUyxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNvcmVPcHRpb25zRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFsnQ09SRV9PUFRJT05TJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbUm91dGVzSGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHsgcHJvdmlkZTogVEVOQU5UX0tFWSwgdXNlVmFsdWU6IG9wdGlvbnMudGVuYW50S2V5IHx8ICdfX3RlbmFudCcgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMT0NBTElaQVRJT05TLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbG9jYWxpemF0aW9uQ29udHJpYnV0b3Iob3B0aW9ucy5sb2NhbGl6YXRpb25zKSxcclxuICAgICAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFFVRVVFX01BTkFHRVIsXHJcbiAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdFF1ZXVlTWFuYWdlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXNQcm92aWRlcixcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9yQ2hpbGQob3B0aW9ucyA9IHt9IGFzIEFCUC5DaGlsZCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um9vdENvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBSb290Q29yZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTE9DQUxJWkFUSU9OUyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yKG9wdGlvbnMubG9jYWxpemF0aW9ucyksXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  export * from './localization.pipe';
2
+ export * from './safe-html.pipe';
2
3
  export * from './sort.pipe';
3
4
  export * from './to-injector.pipe';
4
5
  export * from './short-date.pipe';
5
6
  export * from './short-time.pipe';
6
7
  export * from './short-date-time.pipe';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24ucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi90by1pbmplY3Rvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaG9ydC1kYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nob3J0LXRpbWUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcnQtZGF0ZS10aW1lLnBpcGUnO1xyXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlLWh0bWwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi90by1pbmplY3Rvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaG9ydC1kYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nob3J0LXRpbWUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcnQtZGF0ZS10aW1lLnBpcGUnO1xyXG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { inject, Injectable, Pipe, SecurityContext } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ export class SafeHtmlPipe {
5
+ constructor() {
6
+ this.sanitizer = inject(DomSanitizer);
7
+ }
8
+ transform(value) {
9
+ if (typeof value !== 'string')
10
+ return '';
11
+ return this.sanitizer.sanitize(SecurityContext.HTML, value);
12
+ }
13
+ }
14
+ SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, name: "abpSafeHtml" });
16
+ SafeHtmlPipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, decorators: [{
18
+ type: Injectable
19
+ }, {
20
+ type: Pipe,
21
+ args: [{ name: 'abpSafeHtml' }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUl6RCxNQUFNLE9BQU8sWUFBWTtJQUZ6QjtRQUdtQixjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBTW5EO0lBSkMsU0FBUyxDQUFDLEtBQWE7UUFDckIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7O3lHQU5VLFlBQVk7dUdBQVosWUFBWTs2R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRnhCLFVBQVU7O2tCQUNWLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTZWN1cml0eUNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHsgbmFtZTogJ2FicFNhZmVIdG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiAnJztcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { inject, Injectable } from '@angular/core';
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { map, switchMap, take, tap } from 'rxjs/operators';
4
4
  import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
@@ -6,12 +6,14 @@ import { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-cor
6
6
  import { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';
7
7
  import { InternalStore } from '../utils/internal-store-utils';
8
8
  import * as i0 from "@angular/core";
9
+ import * as i1 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service";
10
+ import * as i2 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service";
9
11
  export class ConfigStateService {
10
- constructor() {
12
+ constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {
13
+ this.abpConfigService = abpConfigService;
14
+ this.abpApplicationLocalizationService = abpApplicationLocalizationService;
15
+ this.includeLocalizationResources = includeLocalizationResources;
11
16
  this.store = new InternalStore({});
12
- this.includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN);
13
- this.abpConfigService = inject(AbpApplicationConfigurationService);
14
- this.abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);
15
17
  this.updateSubject = new Subject();
16
18
  this.initUpdateStream();
17
19
  }
@@ -21,7 +23,7 @@ export class ConfigStateService {
21
23
  initUpdateStream() {
22
24
  this.updateSubject
23
25
  .pipe(switchMap(() => this.abpConfigService.get({
24
- includeLocalizationResources: this.includeLocalizationResources,
26
+ includeLocalizationResources: !!this.includeLocalizationResources,
25
27
  })))
26
28
  .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
27
29
  .subscribe(res => this.store.set(res));
@@ -151,14 +153,19 @@ export class ConfigStateService {
151
153
  return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
152
154
  }
153
155
  }
154
- ConfigStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
156
+ ConfigStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, deps: [{ token: i1.AbpApplicationConfigurationService }, { token: i2.AbpApplicationLocalizationService }, { token: INCUDE_LOCALIZATION_RESOURCES_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
155
157
  ConfigStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, providedIn: 'root' });
156
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, decorators: [{
157
159
  type: Injectable,
158
160
  args: [{
159
161
  providedIn: 'root',
160
162
  }]
161
- }], ctorParameters: function () { return []; } });
163
+ }], ctorParameters: function () { return [{ type: i1.AbpApplicationConfigurationService }, { type: i2.AbpApplicationLocalizationService }, { type: undefined, decorators: [{
164
+ type: Optional
165
+ }, {
166
+ type: Inject,
167
+ args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
168
+ }] }]; } });
162
169
  function splitKeys(keys) {
163
170
  if (typeof keys === 'string') {
164
171
  keys = keys.split('.');
@@ -168,4 +175,4 @@ function splitKeys(keys) {
168
175
  }
169
176
  return keys;
170
177
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUdBQXFHLENBQUM7QUFDekosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sb0dBQW9HLENBQUM7QUFLdkosT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUs5RCxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWGlCLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFpQyxDQUFDLENBQUM7UUFDN0QsaUNBQTRCLEdBQUcsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDcEYscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDOUQsc0NBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFNOUUsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFSRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFRTyxnQkFBZ0I7UUFDdEIsSUFBSSxD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QUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQWJwQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvYWJwLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvYWJwLWFwcGxpY2F0aW9uLWxvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8sXHJcbiAgQXBwbGljYXRpb25HbG9iYWxGZWF0dXJlQ29uZmlndXJhdGlvbkR0byxcclxufSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb25zL21vZGVscyc7XHJcbmltcG9ydCB7IElOQ1VERV9MT0NBTElaQVRJT05fUkVTT1VSQ0VTX1RPS0VOIH0gZnJvbSAnLi4vdG9rZW5zL2luY2x1ZGUtbG9jYWxpemF0aW9uLXJlc291cmNlcy50b2tlbic7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlnU3RhdGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IEludGVybmFsU3RvcmUoe30gYXMgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMgPSBpbmplY3QoSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4pO1xyXG4gIHByaXZhdGUgYWJwQ29uZmlnU2VydmljZSA9IGluamVjdChBYnBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIGFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChBYnBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblNlcnZpY2UpO1xyXG5cclxuICBnZXQgY3JlYXRlT25VcGRhdGVTdHJlYW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5pbml0VXBkYXRlU3RyZWFtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRVcGRhdGVTdHJlYW0oKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YmplY3RcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgICAgICB0aGlzLmFicENvbmZpZ1NlcnZpY2UuZ2V0KHtcclxuICAgICAgICAgICAgaW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlczogdGhpcy5pbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoYXBwU3RhdGUgPT4gdGhpcy5nZXRMb2NhbGl6YXRpb25BbmRDb21iaW5lV2l0aEFwcFN0YXRlKGFwcFN0YXRlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMuc3RvcmUuc2V0KHJlcykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMb2NhbGl6YXRpb25BbmRDb21iaW5lV2l0aEFwcFN0YXRlKFxyXG4gICAgYXBwU3RhdGU6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICApOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gICAgaWYgKCFhcHBTdGF0ZS5sb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuY3VsdHVyZU5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjdWx0dXJlIG5hbWUgc2hvdWxkIGRlZmluZWQnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldGxvY2FsaXphdGlvblJlc291cmNlKGFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZSkucGlwZShcclxuICAgICAgbWFwKHJlc3VsdCA9PiAoeyAuLi5hcHBTdGF0ZSwgbG9jYWxpemF0aW9uOiB7IC4uLmFwcFN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLmdldCh7XHJcbiAgICAgIGN1bHR1cmVOYW1lOiBjdWx0dXJlTmFtZSxcclxuICAgICAgb25seUR5bmFtaWNzOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFwcFN0YXRlKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoKTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uVXBkYXRlU3RyZWFtKHN0YXRlID0+IHN0YXRlKS5waXBlKHRha2UoMSkpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaExvY2FsaXphdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcclxuICAgIGlmICh0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEFwcFN0YXRlKCkucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UobGFuZylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5wYXRjaCh7IGxvY2FsaXphdGlvbjogeyAuLi50aGlzLnN0b3JlLnN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSksXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0T25lJDxLIGV4dGVuZHMga2V5b2YgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPihrZXk6IEspIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGVba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRPbmU8SyBleHRlbmRzIGtleW9mIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4oa2V5OiBLKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsJCgpOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGwoKTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVlcCQoa2V5czogc3RyaW5nW10gfCBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAga2V5cyA9IHNwbGl0S2V5cyhrZXlzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHN0YXRlID0+IHtcclxuICAgICAgICAgIHJldHVybiAoa2V5cyBhcyBzdHJpbmdbXSkucmVkdWNlKChhY2M6IGFueSwgdmFsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gYWNjW3ZhbF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB9LCBzdGF0ZSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogYW55IHtcclxuICAgIGtleXMgPSBzcGxpdEtleXMoa2V5cyk7XHJcblxyXG4gICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYzogYW55LCB2YWwpID0+IHtcclxuICAgICAgaWYgKGFjYykge1xyXG4gICAgICAgIHJldHVybiBhY2NbdmFsXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH0sIHRoaXMuc3RvcmUuc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZShrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUuZmVhdHVyZXM/LnZhbHVlcz8uW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5mZWF0dXJlcz8udmFsdWVzPy5ba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlcyhrZXlzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgeyBmZWF0dXJlcyB9ID0gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICAgIGlmICghZmVhdHVyZXMpIHJldHVybjtcclxuXHJcbiAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiAoeyAuLi5hY2MsIFtrZXldOiBmZWF0dXJlcy52YWx1ZXNba2V5XSB9KSwge30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZXMkKGtleXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKCh7IGZlYXR1cmVzIH0pID0+IHtcclxuICAgICAgaWYgKCFmZWF0dXJlcz8udmFsdWVzKSByZXR1cm47XHJcblxyXG4gICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiAoeyAuLi5hY2MsIFtrZXldOiBmZWF0dXJlcy52YWx1ZXNba2V5XSB9KSwge30pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5zZXR0aW5nPy52YWx1ZXM/LltrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZyQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuc2V0dGluZz8udmFsdWVzPy5ba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5ncyhrZXl3b3JkPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuc3RvcmUuc3RhdGUuc2V0dGluZz8udmFsdWVzIHx8IHt9O1xyXG5cclxuICAgIGlmICgha2V5d29yZCkgcmV0dXJuIHNldHRpbmdzO1xyXG5cclxuICAgIGNvbnN0IGtleXNGb3VuZCA9IE9iamVjdC5rZXlzKHNldHRpbmdzKS5maWx0ZXIoa2V5ID0+IGtleS5pbmRleE9mKGtleXdvcmQpID4gLTEpO1xyXG5cclxuICAgIHJldHVybiBrZXlzRm91bmQucmVkdWNlKChhY2MsIGtleSkgPT4ge1xyXG4gICAgICBhY2Nba2V5XSA9IHNldHRpbmdzW2tleV07XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmdzJChrZXl3b3JkPzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5zZXR0aW5nPy52YWx1ZXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoc2V0dGluZ3MgPSB7fSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFrZXl3b3JkKSByZXR1cm4gc2V0dGluZ3M7XHJcblxyXG4gICAgICAgICAgY29uc3Qga2V5c0ZvdW5kID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpLmZpbHRlcihrZXkgPT4ga2V5LmluZGV4T2Yoa2V5d29yZCkgPiAtMSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGtleXNGb3VuZC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGFjY1trZXldID0gc2V0dGluZ3Nba2V5XTtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5nbG9iYWxGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGdldEdsb2JhbEZlYXR1cmVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dsb2JhbEZlYXR1cmVFbmFibGVkKFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgICBnbG9iYWxGZWF0dXJlczogQXBwbGljYXRpb25HbG9iYWxGZWF0dXJlQ29uZmlndXJhdGlvbkR0byxcclxuICApIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gZ2xvYmFsRmVhdHVyZXMuZW5hYmxlZEZlYXR1cmVzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnNvbWUoZiA9PiBrZXkgPT09IGYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNHbG9iYWxGZWF0dXJlRW5hYmxlZChrZXksIHRoaXMuc3RvcmUuc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZCQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gdGhpcy5pc0dsb2JhbEZlYXR1cmVFbmFibGVkKGtleSwgc3RhdGUuZ2xvYmFsRmVhdHVyZXMpKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNwbGl0S2V5cyhrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBrZXlzID0ga2V5cy5zcGxpdCgnLicpO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGEgZG90IHN0cmluZyBvciBhbiBzdHJpbmcgYXJyYXkuJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ga2V5cztcclxufVxyXG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFHQUFxRyxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBS3ZKLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQ1UsZ0JBQW9ELEVBQ3BELGlDQUFvRSxFQUczRCw0QkFBNEM7UUFKckQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQztRQUNwRCxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBRzNELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBZ0I7UUFiOUMsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQWlDLENBQUMsQ0FBQztRQU10RSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFTMUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQWRELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQWNPLGdCQUFnQjtR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MEJBYUksUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxtQ0FBbUM7O0FBNEwvQyxTQUFTLFNBQVMsQ0FBQyxJQUF1QjtJQUN4QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUN4QjtJQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUMxRTtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBYnBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBBcHBsaWNhdGlvbkdsb2JhbEZlYXR1cmVDb25maWd1cmF0aW9uRHRvLFxyXG59IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcclxuaW1wb3J0IHsgSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4gfSBmcm9tICcuLi90b2tlbnMvaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnRva2VuJztcclxuaW1wb3J0IHsgSW50ZXJuYWxTdG9yZSB9IGZyb20gJy4uL3V0aWxzL2ludGVybmFsLXN0b3JlLXV0aWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWdTdGF0ZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZSh7fSBhcyBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8pO1xyXG5cclxuICBnZXQgY3JlYXRlT25VcGRhdGVTdHJlYW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhYnBDb25maWdTZXJ2aWNlOiBBYnBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhYnBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblNlcnZpY2U6IEFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KElOQ1VERV9MT0NBTElaQVRJT05fUkVTT1VSQ0VTX1RPS0VOKVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzOiBib29sZWFuIHwgbnVsbCxcclxuICApIHtcclxuICAgIHRoaXMuaW5pdFVwZGF0ZVN0cmVhbSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VXBkYXRlU3RyZWFtKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdWJqZWN0XHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxyXG4gICAgICAgICAgdGhpcy5hYnBDb25maWdTZXJ2aWNlLmdldCh7XHJcbiAgICAgICAgICAgIGluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXM6ICEhdGhpcy5pbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoYXBwU3RhdGUgPT4gdGhpcy5nZXRMb2NhbGl6YXRpb25BbmRDb21iaW5lV2l0aEFwcFN0YXRlKGFwcFN0YXRlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMuc3RvcmUuc2V0KHJlcykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMb2NhbGl6YXRpb25BbmRDb21iaW5lV2l0aEFwcFN0YXRlKFxyXG4gICAgYXBwU3RhdGU6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICApOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gICAgaWYgKCFhcHBTdGF0ZS5sb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuY3VsdHVyZU5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjdWx0dXJlIG5hbWUgc2hvdWxkIGRlZmluZWQnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldGxvY2FsaXphdGlvblJlc291cmNlKGFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZSkucGlwZShcclxuICAgICAgbWFwKHJlc3VsdCA9PiAoeyAuLi5hcHBTdGF0ZSwgbG9jYWxpemF0aW9uOiB7IC4uLmFwcFN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLmdldCh7XHJcbiAgICAgIGN1bHR1cmVOYW1lOiBjdWx0dXJlTmFtZSxcclxuICAgICAgb25seUR5bmFtaWNzOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFwcFN0YXRlKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoKTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uVXBkYXRlU3RyZWFtKHN0YXRlID0+IHN0YXRlKS5waXBlKHRha2UoMSkpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaExvY2FsaXphdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcclxuICAgIGlmICh0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEFwcFN0YXRlKCkucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UobGFuZylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5wYXRjaCh7IGxvY2FsaXphdGlvbjogeyAuLi50aGlzLnN0b3JlLnN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSksXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0T25lJDxLIGV4dGVuZHMga2V5b2YgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPihrZXk6IEspIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGVba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRPbmU8SyBleHRlbmRzIGtleW9mIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4oa2V5OiBLKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsJCgpOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGwoKTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVlcCQoa2V5czogc3RyaW5nW10gfCBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAga2V5cyA9IHNwbGl0S2V5cyhrZXlzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHN0YXRlID0+IHtcclxuICAgICAgICAgIHJldHVybiAoa2V5cyBhcyBzdHJpbmdbXSkucmVkdWNlKChhY2M6IGFueSwgdmFsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gYWNjW3ZhbF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB9LCBzdGF0ZSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogYW55IHtcclxuICAgIGtleXMgPSBzcGxpdEtleXMoa2V5cyk7XHJcblxyXG4gICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYzogYW55LCB2YWwpID0+IHtcclxuICAgICAgaWYgKGFjYykge1xyXG4gICAgICAgIHJldHVybiBhY2NbdmFsXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH0sIHRoaXMuc3RvcmUuc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZShrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUuZmVhdHVyZXM/LnZhbHVlcz8uW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5mZWF0dXJlcz8udmFsdWVzPy5ba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlcyhrZXlzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgeyBmZWF0dXJlcyB9ID0gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICAgIGlmICghZmVhdHVyZXMpIHJldHVybjtcclxuXHJcbiAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiAoeyAuLi5hY2MsIFtrZXldOiBmZWF0dXJlcy52YWx1ZXNba2V5XSB9KSwge30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZXMkKGtleXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKCh7IGZlYXR1cmVzIH0pID0+IHtcclxuICAgICAgaWYgKCFmZWF0dXJlcz8udmFsdWVzKSByZXR1cm47XHJcblxyXG4gICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiAoeyAuLi5hY2MsIFtrZXldOiBmZWF0dXJlcy52YWx1ZXNba2V5XSB9KSwge30pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5zZXR0aW5nPy52YWx1ZXM/LltrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZyQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuc2V0dGluZz8udmFsdWVzPy5ba2V5XSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5ncyhrZXl3b3JkPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuc3RvcmUuc3RhdGUuc2V0dGluZz8udmFsdWVzIHx8IHt9O1xyXG5cclxuICAgIGlmICgha2V5d29yZCkgcmV0dXJuIHNldHRpbmdzO1xyXG5cclxuICAgIGNvbnN0IGtleXNGb3VuZCA9IE9iamVjdC5rZXlzKHNldHRpbmdzKS5maWx0ZXIoa2V5ID0+IGtleS5pbmRleE9mKGtleXdvcmQpID4gLTEpO1xyXG5cclxuICAgIHJldHVybiBrZXlzRm91bmQucmVkdWNlKChhY2MsIGtleSkgPT4ge1xyXG4gICAgICBhY2Nba2V5XSA9IHNldHRpbmdzW2tleV07XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmdzJChrZXl3b3JkPzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5zZXR0aW5nPy52YWx1ZXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoc2V0dGluZ3MgPSB7fSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFrZXl3b3JkKSByZXR1cm4gc2V0dGluZ3M7XHJcblxyXG4gICAgICAgICAgY29uc3Qga2V5c0ZvdW5kID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpLmZpbHRlcihrZXkgPT4ga2V5LmluZGV4T2Yoa2V5d29yZCkgPiAtMSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGtleXNGb3VuZC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGFjY1trZXldID0gc2V0dGluZ3Nba2V5XTtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5nbG9iYWxGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGdldEdsb2JhbEZlYXR1cmVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dsb2JhbEZlYXR1cmVFbmFibGVkKFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgICBnbG9iYWxGZWF0dXJlczogQXBwbGljYXRpb25HbG9iYWxGZWF0dXJlQ29uZmlndXJhdGlvbkR0byxcclxuICApIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gZ2xvYmFsRmVhdHVyZXMuZW5hYmxlZEZlYXR1cmVzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnNvbWUoZiA9PiBrZXkgPT09IGYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNHbG9iYWxGZWF0dXJlRW5hYmxlZChrZXksIHRoaXMuc3RvcmUuc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZCQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gdGhpcy5pc0dsb2JhbEZlYXR1cmVFbmFibGVkKGtleSwgc3RhdGUuZ2xvYmFsRmVhdHVyZXMpKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNwbGl0S2V5cyhrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBrZXlzID0ga2V5cy5zcGxpdCgnLicpO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGEgZG90IHN0cmluZyBvciBhbiBzdHJpbmcgYXJyYXkuJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ga2V5cztcclxufVxyXG4iXX0=
@@ -1,18 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, inject, isDevMode, Optional, SkipSelf, Directive, EventEmitter, Output, Self, Injector, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, NgModuleFactory, Compiler, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, Optional, isDevMode, SkipSelf, Directive, EventEmitter, Output, Self, Injector, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, NgModuleFactory, Compiler, inject, SecurityContext, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
3
3
  import { of, BehaviorSubject, Subject, throwError, Subscription, combineLatest, from, fromEvent, ReplaySubject, lastValueFrom, Observable, timer, pipe, concat } from 'rxjs';
4
4
  import * as i1$1 from '@angular/router';
5
5
  import { PRIMARY_OUTLET, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, ActivatedRoute, Router, RouterModule } from '@angular/router';
6
6
  import { map, distinctUntilChanged, filter, catchError, switchMap, take, tap, debounceTime, mapTo, takeUntil, delay, retryWhen, shareReplay, finalize } from 'rxjs/operators';
7
+ import compare from 'just-compare';
7
8
  import { __rest, __awaiter, __classPrivateFieldGet } from 'tslib';
8
9
  import * as i1 from '@angular/common/http';
9
10
  import { HttpParams, HttpClient, HttpClientModule, HttpClientXsrfModule, HttpContextToken, HttpHeaders, HttpContext } from '@angular/common/http';
10
- import compare from 'just-compare';
11
11
  import * as i5 from '@angular/common';
12
12
  import { registerLocaleData, DOCUMENT, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, CommonModule } from '@angular/common';
13
13
  import * as i1$2 from '@angular/forms';
14
14
  import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
15
15
  import clone from 'just-clone';
16
+ import { DomSanitizer } from '@angular/platform-browser';
16
17
 
17
18
  // Not an abstract class on purpose. Do not change!
18
19
  class AbstractNgModelComponent {
@@ -189,11 +190,7 @@ function createTreeNodeFilterCreator(key, mapperFn) {
189
190
  };
190
191
  }
191
192
 
192
- const CORE_OPTIONS = new InjectionToken('CORE_OPTIONS');
193
- function coreOptionsFactory(_a) {
194
- var options = __rest(_a, []);
195
- return Object.assign({}, options);
196
- }
193
+ const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');
197
194
 
198
195
  function noop() {
199
196
  const fn = function () { };
@@ -299,6 +296,12 @@ class InternalStore {
299
296
  }
300
297
  }
301
298
 
299
+ const CORE_OPTIONS = new InjectionToken('CORE_OPTIONS');
300
+ function coreOptionsFactory(_a) {
301
+ var options = __rest(_a, []);
302
+ return Object.assign({}, options);
303
+ }
304
+
302
305
  const mapToApiUrl = (key) => (apis) => ((key && apis[key]) || apis.default).url || apis.default.url;
303
306
  const mapToIssuer = (issuer) => {
304
307
  if (!issuer) {
@@ -468,14 +471,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
468
471
  }]
469
472
  }], ctorParameters: function () { return [{ type: RestService }]; } });
470
473
 
471
- const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');
472
-
473
474
  class ConfigStateService {
474
- constructor() {
475
+ constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {
476
+ this.abpConfigService = abpConfigService;
477
+ this.abpApplicationLocalizationService = abpApplicationLocalizationService;
478
+ this.includeLocalizationResources = includeLocalizationResources;
475
479
  this.store = new InternalStore({});
476
- this.includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN);
477
- this.abpConfigService = inject(AbpApplicationConfigurationService);
478
- this.abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);
479
480
  this.updateSubject = new Subject();
480
481
  this.initUpdateStream();
481
482
  }
@@ -485,7 +486,7 @@ class ConfigStateService {
485
486
  initUpdateStream() {
486
487
  this.updateSubject
487
488
  .pipe(switchMap(() => this.abpConfigService.get({
488
- includeLocalizationResources: this.includeLocalizationResources,
489
+ includeLocalizationResources: !!this.includeLocalizationResources,
489
490
  })))
490
491
  .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
491
492
  .subscribe(res => this.store.set(res));
@@ -618,14 +619,21 @@ class ConfigStateService {
618
619
  return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
619
620
  }
620
621
  }
621
- ConfigStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
622
+ ConfigStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, deps: [{ token: AbpApplicationConfigurationService }, { token: AbpApplicationLocalizationService }, { token: INCUDE_LOCALIZATION_RESOURCES_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
622
623
  ConfigStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, providedIn: 'root' });
623
624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ConfigStateService, decorators: [{
624
625
  type: Injectable,
625
626
  args: [{
626
627
  providedIn: 'root',
627
628
  }]
628
- }], ctorParameters: function () { return []; } });
629
+ }], ctorParameters: function () {
630
+ return [{ type: AbpApplicationConfigurationService }, { type: AbpApplicationLocalizationService }, { type: undefined, decorators: [{
631
+ type: Optional
632
+ }, {
633
+ type: Inject,
634
+ args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
635
+ }] }];
636
+ } });
629
637
  function splitKeys(keys) {
630
638
  if (typeof keys === 'string') {
631
639
  keys = keys.split('.');
@@ -3482,6 +3490,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3482
3490
  }] }];
3483
3491
  } });
3484
3492
 
3493
+ class SafeHtmlPipe {
3494
+ constructor() {
3495
+ this.sanitizer = inject(DomSanitizer);
3496
+ }
3497
+ transform(value) {
3498
+ if (typeof value !== 'string')
3499
+ return '';
3500
+ return this.sanitizer.sanitize(SecurityContext.HTML, value);
3501
+ }
3502
+ }
3503
+ SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3504
+ SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, name: "abpSafeHtml" });
3505
+ SafeHtmlPipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe });
3506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SafeHtmlPipe, decorators: [{
3507
+ type: Injectable
3508
+ }, {
3509
+ type: Pipe,
3510
+ args: [{ name: 'abpSafeHtml' }]
3511
+ }] });
3512
+
3485
3513
  const IncludeLocalizationResourcesProvider = {
3486
3514
  provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,
3487
3515
  useValue: false,
@@ -3508,6 +3536,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
3508
3536
  ReplaceableTemplateDirective,
3509
3537
  RouterOutletComponent,
3510
3538
  SortPipe,
3539
+ SafeHtmlPipe,
3511
3540
  StopPropagationDirective,
3512
3541
  ToInjectorPipe,
3513
3542
  ShortDateTimePipe,
@@ -3535,6 +3564,7 @@ BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
3535
3564
  ReplaceableTemplateDirective,
3536
3565
  RouterOutletComponent,
3537
3566
  SortPipe,
3567
+ SafeHtmlPipe,
3538
3568
  StopPropagationDirective,
3539
3569
  ToInjectorPipe,
3540
3570
  ShortDateTimePipe,
@@ -3573,6 +3603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3573
3603
  ReplaceableTemplateDirective,
3574
3604
  RouterOutletComponent,
3575
3605
  SortPipe,
3606
+ SafeHtmlPipe,
3576
3607
  StopPropagationDirective,
3577
3608
  ToInjectorPipe,
3578
3609
  ShortDateTimePipe,
@@ -3600,6 +3631,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3600
3631
  ReplaceableTemplateDirective,
3601
3632
  RouterOutletComponent,
3602
3633
  SortPipe,
3634
+ SafeHtmlPipe,
3603
3635
  StopPropagationDirective,
3604
3636
  ToInjectorPipe,
3605
3637
  ShortDateTimePipe,
@@ -4365,5 +4397,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
4365
4397
  * Generated bundle index. Do not edit.
4366
4398
  */
4367
4399
 
4368
- export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpValidators, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleObject, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUrl };
4400
+ export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpValidators, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleObject, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUrl };
4369
4401
  //# sourceMappingURL=abp-ng.core.mjs.map