UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

314 lines 35.6 kB
import { A11yModule } from '@angular/cdk/a11y'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { CoreModule, FormsModule, gettext, hookNavigator, hookRoute, hookTab, hookWizard, ViewContext } from '@c8y/ngx-components'; import { ArchivedConfirmModule } from '@c8y/ngx-components/ecosystem/archived-confirm'; import { LicenseConfirmModule } from '@c8y/ngx-components/ecosystem/license-confirm'; import { EcosystemWizards, SharedEcosystemModule } from '@c8y/ngx-components/ecosystem/shared'; import { IconSelectorModule } from '@c8y/ngx-components/icon-selector'; import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { PopoverModule } from 'ngx-bootstrap/popover'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { ActivityLogComponent } from './activity-log/activity-log.component'; import { ApplicationPluginsModule } from './application-plugins'; import { ApplicationPropertiesComponent } from './application-properties/application-properties.component'; import { ApplicationPropertiesGuard } from './application-properties/application-properties.guard'; import { SubscriptionModalComponent } from './application-properties/subscription-modal/subscription-modal.component'; import { UpdateApplicationModalComponent } from './application-properties/update-application-modal/update-application-modal.component'; import { AddExternalApplicationComponent } from './applications/add-external-applicaiton/add-external-application.component'; import { AddWebApplicationComponent } from './applications/add-web-application/add-web-application.component'; import { ApplicationListComponent } from './applications/application-list/application-list.component'; import { InstallFromPackageComponent } from './applications/install-from-package/install-from-package.component'; import { EcosystemNavigationFactory } from './ecosystem-navigation.factory'; import { EcosystemTabs } from './ecosystem-tabs.factory'; import { FeatureListComponent } from './features/feature-list.component'; import { AddMicroserviceComponent } from './microservices/add-microservice.component'; import { MicroserviceListComponent } from './microservices/microservice-list.component'; import { AddPackageComponent } from './packages/add-package.component'; import { DeployApplicationComponent } from './packages/deploy-application/deploy-application.component'; import { PackageDetailsComponent } from './packages/package-details/package-details.component'; import { PackagesListComponent } from './packages/package-list/packages-list.component'; import { PackageVersionsGuard } from './packages/package-versions.guard'; import { PackageVersionsAppsComponent } from './packages/package-versions/package-contents/contents-apps/contents-apps.component'; import { PackageVersionsPluginsComponent } from './packages/package-versions/package-contents/contents-plugins/contents-plugins.component'; import { PackageContentsComponent } from './packages/package-versions/package-contents/packages-contents.component'; import { PackageVersionsListComponent } from './packages/package-versions/package-versions-list/package-versions-list.component'; import { PackageVersionsComponent } from './packages/package-versions/packages-versions.component'; import { PackageGuard } from './packages/package.guard'; import { PackageChangelogTabComponent } from './packages/package-changelog-tab/package-changelog-tab.component'; import { PackageChangelogGuard } from './packages/package-changelog.guard'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; const ecosystemMainRoutes = [ { path: 'ecosystem/application', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { // keeps legacy links functional path: 'ecosystem/applications', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { path: 'ecosystem/application/applications', component: ApplicationListComponent }, { path: 'ecosystem/extension/extensions', component: PackagesListComponent }, { path: 'ecosystem/application/features', component: FeatureListComponent }, { path: 'ecosystem/microservice/microservices', component: MicroserviceListComponent } ]; const applicationDetailsRoutes = [ { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Application, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'application-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Application, priority: 1, canActivate: [PackageVersionsGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Feature, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'package-details', component: PackageDetailsComponent, icon: 'big-parcel', label: gettext('Extension package'), context: ViewContext.Extension, priority: 10, canActivate: [PackageGuard] }, { path: 'package-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Extension, priority: 5, canActivate: [PackageGuard, PackageVersionsGuard] }, { path: 'package-changelog', component: PackageChangelogTabComponent, icon: 'list', label: gettext('Change log'), context: ViewContext.Extension, priority: 1, canActivate: [PackageGuard, PackageChangelogGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Microservice, priority: 5, canActivate: [ApplicationPropertiesGuard] } ]; export class EcosystemModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, declarations: [ApplicationListComponent, MicroserviceListComponent, ApplicationPropertiesComponent, AddMicroserviceComponent, ActivityLogComponent, AddWebApplicationComponent, AddExternalApplicationComponent, InstallFromPackageComponent, PackagesListComponent, PackageDetailsComponent, DeployApplicationComponent, AddPackageComponent, FeatureListComponent, PackageVersionsComponent, PackageVersionsPluginsComponent, PackageVersionsAppsComponent, PackageContentsComponent, PackageVersionsListComponent, SubscriptionModalComponent, UpdateApplicationModalComponent], imports: [CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, i1.RouterModule, PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule, PackageChangelogTabComponent], exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, providers: [ hookTab(EcosystemTabs), hookNavigator(EcosystemNavigationFactory), hookRoute(applicationDetailsRoutes), PackageGuard, PackageVersionsGuard, PackageChangelogGuard, ApplicationPropertiesGuard, hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddWebApplicationComponent, name: gettext('Upload web application'), c8yIcon: 'upload' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.PACKAGE_UPLOAD, component: AddPackageComponent }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddExternalApplicationComponent, name: gettext('External application'), c8yIcon: 'cloud-link' }), hookWizard({ wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT, component: DeployApplicationComponent, name: gettext('Deploy package'), c8yIcon: 'big-parcel' }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: InstallFromPackageComponent, name: gettext('Install from available extension packages'), c8yIcon: 'big-parcel' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.MICROSERVICE_UPLOAD, component: AddMicroserviceComponent }) ], imports: [CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, RouterModule.forChild(ecosystemMainRoutes), PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule, PackageChangelogTabComponent] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, decorators: [{ type: NgModule, args: [{ declarations: [ ApplicationListComponent, MicroserviceListComponent, ApplicationPropertiesComponent, AddMicroserviceComponent, ActivityLogComponent, AddWebApplicationComponent, AddExternalApplicationComponent, InstallFromPackageComponent, PackagesListComponent, PackageDetailsComponent, DeployApplicationComponent, AddPackageComponent, FeatureListComponent, PackageVersionsComponent, PackageVersionsPluginsComponent, PackageVersionsAppsComponent, PackageContentsComponent, PackageVersionsListComponent, SubscriptionModalComponent, UpdateApplicationModalComponent ], imports: [ CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, RouterModule.forChild(ecosystemMainRoutes), PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule, PackageChangelogTabComponent ], exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent], providers: [ hookTab(EcosystemTabs), hookNavigator(EcosystemNavigationFactory), hookRoute(applicationDetailsRoutes), PackageGuard, PackageVersionsGuard, PackageChangelogGuard, ApplicationPropertiesGuard, hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddWebApplicationComponent, name: gettext('Upload web application'), c8yIcon: 'upload' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.PACKAGE_UPLOAD, component: AddPackageComponent }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddExternalApplicationComponent, name: gettext('External application'), c8yIcon: 'cloud-link' }), hookWizard({ wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT, component: DeployApplicationComponent, name: gettext('Deploy package'), c8yIcon: 'big-parcel' }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: InstallFromPackageComponent, name: gettext('Install from available extension packages'), c8yIcon: 'big-parcel' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.MICROSERVICE_UPLOAD, component: AddMicroserviceComponent }) ] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vjb3N5c3RlbS9lY29zeXN0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUVWLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDM0csT0FBTyxFQUFFLDBCQUEwQixF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QUUsMEJBQTBCOzRCQUNyQyxJQUFJLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDOzRCQUN2QyxPQUFPLEVBQUUsUUFBUTt5QkFDbEIsQ0FBQzt3QkFDRixVQUFVLENBQUM7NEJBQ1QsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGNBQWM7NEJBQ3pDLFNBQVMsRUFBRSxtQkFBbUI7eUJBQy9CLENBQUM7d0JBQ0YsVUFBVSxDQUFDOzRCQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0I7NEJBQzdDLFNBQVMsRUFBRSwrQkFBK0I7NEJBQzFDLElBQUksRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUM7NEJBQ3JDLE9BQU8sRUFBRSxZQUFZO3lCQUN0QixDQUFDO3dCQUNGLFVBQVUsQ0FBQzs0QkFDVCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsb0JBQW9COzRCQUMvQyxTQUFTLEVBQUUsMEJBQTBCOzRCQUNyQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDOzRCQUMvQixPQUFPLEVBQUUsWUFBWTt5QkFDdEIsQ0FBQzt3QkFDRixVQUFVLENBQUM7NEJBQ1QsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGtCQUFrQjs0QkFDN0MsU0FBUyxFQUFFLDJCQUEyQjs0QkFDdEMsSUFBSSxFQUFFLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQzs0QkFDMUQsT0FBTyxFQUFFLFlBQVk7eUJBQ3RCLENBQUM7d0JBQ0YsVUFBVSxDQUFDOzRCQUNULElBQUksRUFBRSxTQUFTOzRCQUNmLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFBbUI7NEJBQzlDLFNBQVMsRUFBRSx3QkFBd0I7eUJBQ3BDLENBQUM7cUJBQ0g7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIGdldHRleHQsXG4gIGhvb2tOYXZpZ2F0b3IsXG4gIGhvb2tSb3V0ZSxcbiAgaG9va1RhYixcbiAgaG9va1dpemFyZCxcbiAgUm91dGUsXG4gIFZpZXdDb250ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXJjaGl2ZWRDb25maXJtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vYXJjaGl2ZWQtY29uZmlybSc7XG5pbXBvcnQgeyBMaWNlbnNlQ29uZmlybU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL2xpY2Vuc2UtY29uZmlybSc7XG5pbXBvcnQgeyBFY29zeXN0ZW1XaXphcmRzLCBTaGFyZWRFY29zeXN0ZW1Nb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBBY3Rpdml0eUxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW5zTW9kdWxlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1wbHVnaW5zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJvcGVydGllc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tcHJvcGVydGllcy9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblByb3BlcnRpZXNHdWFyZCB9IGZyb20gJy4vYXBwbGljYXRpb24tcHJvcGVydGllcy9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLmd1YXJkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL3N1YnNjcmlwdGlvbi1tb2RhbC9zdWJzY3JpcHRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZUFwcGxpY2F0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvdXBkYXRlLWFwcGxpY2F0aW9uLW1vZGFsL3VwZGF0ZS1hcHBsaWNhdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkRXh0ZXJuYWxBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb25zL2FkZC1leHRlcm5hbC1hcHBsaWNhaXRvbi9hZGQtZXh0ZXJuYWwtYXBwbGljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbnMvYWRkLXdlYi1hcHBsaWNhdGlvbi9hZGQtd2ViLWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy9hcHBsaWNhdGlvbi1saXN0L2FwcGxpY2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEluc3RhbGxGcm9tUGFja2FnZUNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb25zL2luc3RhbGwtZnJvbS1wYWNrYWdlL2luc3RhbGwtZnJvbS1wYWNrYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY29zeXN0ZW1OYXZpZ2F0aW9uRmFjdG9yeSB9IGZyb20gJy4vZWNvc3lzdGVtLW5hdmlnYXRpb24uZmFjdG9yeSc7XG5pbXBvcnQgeyBFY29zeXN0ZW1UYWJzIH0gZnJvbSAnLi9lY29zeXN0ZW0tdGFicy5mYWN0b3J5JztcbmltcG9ydCB7IEZlYXR1cmVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9mZWF0dXJlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZE1pY3Jvc2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4vbWljcm9zZXJ2aWNlcy9hZGQtbWljcm9zZXJ2aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9taWNyb3NlcnZpY2VzL21pY3Jvc2VydmljZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRQYWNrYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9hZGQtcGFja2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL2RlcGxveS1hcHBsaWNhdGlvbi9kZXBsb3ktYXBwbGljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLWRldGFpbHMvcGFja2FnZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtbGlzdC9wYWNrYWdlcy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlVmVyc2lvbnNHdWFyZCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy5ndWFyZCc7XG5pbXBvcnQgeyBQYWNrYWdlVmVyc2lvbnNBcHBzQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2UtY29udGVudHMvY29udGVudHMtYXBwcy9jb250ZW50cy1hcHBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlVmVyc2lvbnNQbHVnaW5zQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2UtY29udGVudHMvY29udGVudHMtcGx1Z2lucy9jb250ZW50cy1wbHVnaW5zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlQ29udGVudHNDb21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMvcGFja2FnZS1jb250ZW50cy9wYWNrYWdlcy1jb250ZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy9wYWNrYWdlLXZlcnNpb25zLWxpc3QvcGFja2FnZS12ZXJzaW9ucy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlVmVyc2lvbnNDb21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMvcGFja2FnZXMtdmVyc2lvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2VHdWFyZCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS5ndWFyZCc7XG5pbXBvcnQgeyBQYWNrYWdlQ2hhbmdlbG9nVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLWNoYW5nZWxvZy10YWIvcGFja2FnZS1jaGFuZ2Vsb2ctdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlQ2hhbmdlbG9nR3VhcmQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtY2hhbmdlbG9nLmd1YXJkJztcblxuY29uc3QgZWNvc3lzdGVtTWFpblJvdXRlczogUm91dGVbXSA9IFtcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb24nLFxuICAgIHJlZGlyZWN0VG86ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vYXBwbGljYXRpb25zJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJ1xuICB9LFxuICB7XG4gICAgLy8ga2VlcHMgbGVnYWN5IGxpbmtzIGZ1bmN0aW9uYWxcbiAgICBwYXRoOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9ucycsXG4gICAgcmVkaXJlY3RUbzogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucycsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvbkxpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vZXh0ZW5zaW9uL2V4dGVuc2lvbnMnLFxuICAgIGNvbXBvbmVudDogUGFja2FnZXNMaXN0Q29tcG9uZW50XG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2ZlYXR1cmVzJyxcbiAgICBjb21wb25lbnQ6IEZlYXR1cmVMaXN0Q29tcG9uZW50XG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZWNvc3lzdGVtL21pY3Jvc2VydmljZS9taWNyb3NlcnZpY2VzJyxcbiAgICBjb21wb25lbnQ6IE1pY3Jvc2VydmljZUxpc3RDb21wb25lbnRcbiAgfVxuXTtcblxuY29uc3QgYXBwbGljYXRpb25EZXRhaWxzUm91dGVzOiBSb3V0ZVtdID0gW1xuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkFwcGxpY2F0aW9uLFxuICAgIHByaW9yaXR5OiA1LFxuICAgIGNhbkFjdGl2YXRlOiBbQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmRdXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb24tdmVyc2lvbnMnLFxuICAgIGNvbXBvbmVudDogUGFja2FnZVZlcnNpb25zQ29tcG9uZW50LFxuICAgIGljb246ICdjOHktbW9kdWxlcycsXG4gICAgbGFiZWw6IGdldHRleHQoJ1ZlcnNpb25zJyksXG4gICAgY29udGV4dDogVmlld0NvbnRleHQuQXBwbGljYXRpb24sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY2FuQWN0aXZhdGU6IFtQYWNrYWdlVmVyc2lvbnNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwcm9wZXJ0aWVzJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uUHJvcGVydGllc0NvbXBvbmVudCxcbiAgICBpY29uOiAnbGlzdCcsXG4gICAgbGFiZWw6IGdldHRleHQoJ1Byb3BlcnRpZXMnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5GZWF0dXJlLFxuICAgIHByaW9yaXR5OiA1LFxuICAgIGNhbkFjdGl2YXRlOiBbQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmRdXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncGFja2FnZS1kZXRhaWxzJyxcbiAgICBjb21wb25lbnQ6IFBhY2thZ2VEZXRhaWxzQ29tcG9uZW50LFxuICAgIGljb246ICdiaWctcGFyY2VsJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnRXh0ZW5zaW9uIHBhY2thZ2UnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5FeHRlbnNpb24sXG4gICAgcHJpb3JpdHk6IDEwLFxuICAgIGNhbkFjdGl2YXRlOiBbUGFja2FnZUd1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3BhY2thZ2UtdmVyc2lvbnMnLFxuICAgIGNvbXBvbmVudDogUGFja2FnZVZlcnNpb25zQ29tcG9uZW50LFxuICAgIGljb246ICdjOHktbW9kdWxlcycsXG4gICAgbGFiZWw6IGdldHRleHQoJ1ZlcnNpb25zJyksXG4gICAgY29udGV4dDogVmlld0NvbnRleHQuRXh0ZW5zaW9uLFxuICAgIHByaW9yaXR5OiA1LFxuICAgIGNhbkFjdGl2YXRlOiBbUGFja2FnZUd1YXJkLCBQYWNrYWdlVmVyc2lvbnNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWNrYWdlLWNoYW5nZWxvZycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlQ2hhbmdlbG9nVGFiQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnQ2hhbmdlIGxvZycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkV4dGVuc2lvbixcbiAgICBwcmlvcml0eTogMSxcbiAgICBjYW5BY3RpdmF0ZTogW1BhY2thZ2VHdWFyZCwgUGFja2FnZUNoYW5nZWxvZ0d1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0Lk1pY3Jvc2VydmljZSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjYW5BY3RpdmF0ZTogW0FwcGxpY2F0aW9uUHJvcGVydGllc0d1YXJkXVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsXG4gICAgQWRkTWljcm9zZXJ2aWNlQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5TG9nQ29tcG9uZW50LFxuICAgIEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgSW5zdGFsbEZyb21QYWNrYWdlQ29tcG9uZW50LFxuICAgIFBhY2thZ2VzTGlzdENvbXBvbmVudCxcbiAgICBQYWNrYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICBEZXBsb3lBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBZGRQYWNrYWdlQ29tcG9uZW50LFxuICAgIEZlYXR1cmVMaXN0Q29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0NvbXBvbmVudCxcbiAgICBQYWNrYWdlVmVyc2lvbnNQbHVnaW5zQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0FwcHNDb21wb25lbnQsXG4gICAgUGFja2FnZUNvbnRlbnRzQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0xpc3RDb21wb25lbnQsXG4gICAgU3Vic2NyaXB0aW9uTW9kYWxDb21wb25lbnQsXG4gICAgVXBkYXRlQXBwbGljYXRpb25Nb2RhbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoZWNvc3lzdGVtTWFpblJvdXRlcyksXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBBcHBsaWNhdGlvblBsdWdpbnNNb2R1bGUsXG4gICAgU2hhcmVkRWNvc3lzdGVtTW9kdWxlLFxuICAgIExpY2Vuc2VDb25maXJtTW9kdWxlLFxuICAgIEljb25TZWxlY3Rvck1vZHVsZSxcbiAgICBBMTF5TW9kdWxlLFxuICAgIEFyY2hpdmVkQ29uZmlybU1vZHVsZSxcbiAgICBQYWNrYWdlQ2hhbmdlbG9nVGFiQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsIFVwZGF0ZUFwcGxpY2F0aW9uTW9kYWxDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBob29rVGFiKEVjb3N5c3RlbVRhYnMpLFxuICAgIGhvb2tOYXZpZ2F0b3IoRWNvc3lzdGVtTmF2aWdhdGlvbkZhY3RvcnkpLFxuICAgIGhvb2tSb3V0ZShhcHBsaWNhdGlvbkRldGFpbHNSb3V0ZXMpLFxuICAgIFBhY2thZ2VHdWFyZCxcbiAgICBQYWNrYWdlVmVyc2lvbnNHdWFyZCxcbiAgICBQYWNrYWdlQ2hhbmdlbG9nR3VhcmQsXG4gICAgQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmQsXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgICAgbmFtZTogZ2V0dGV4dCgnVXBsb2FkIHdlYiBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ3VwbG9hZCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLlBBQ0tBR0VfVVBMT0FELFxuICAgICAgY29tcG9uZW50OiBBZGRQYWNrYWdlQ29tcG9uZW50XG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdFeHRlcm5hbCBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ2Nsb3VkLWxpbmsnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5CTFVFUFJJTlRfREVQTE9ZTUVOVCxcbiAgICAgIGNvbXBvbmVudDogRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdEZXBsb3kgcGFja2FnZScpLFxuICAgICAgYzh5SWNvbjogJ2JpZy1wYXJjZWwnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEluc3RhbGxGcm9tUGFja2FnZUNvbXBvbmVudCxcbiAgICAgIG5hbWU6IGdldHRleHQoJ0luc3RhbGwgZnJvbSBhdmFpbGFibGUgZXh0ZW5zaW9uIHBhY2thZ2VzJyksXG4gICAgICBjOHlJY29uOiAnYmlnLXBhcmNlbCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLk1JQ1JPU0VSVklDRV9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZE1pY3Jvc2VydmljZUNvbXBvbmVudFxuICAgIH0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWNvc3lzdGVtTW9kdWxlIHt9XG4iXX0=