UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

160 lines (155 loc) 28.8 kB
import * as i0 from '@angular/core'; import { Component, NgModule } from '@angular/core'; import { gettext } from '@c8y/ngx-components/gettext'; import * as i1 from '@c8y/ngx-components/operations/bulk-operations-service'; import { BulkOperationType, hookListBulkType, baseUrl } from '@c8y/ngx-components/operations/bulk-operations-service'; import { IconDirective, FormGroupComponent, TypeaheadComponent, ListItemComponent, HighlightComponent, ListItemIconComponent, ListItemBodyComponent, ListGroupComponent, ForOfDirective, ListItemRadioComponent, C8yTranslateDirective, EmptyStateComponent, C8yTranslatePipe, DatePipe } from '@c8y/ngx-components'; import { BaseStepperComponent, BulkOperationStepper, CustomStep } from '@c8y/ngx-components/operations/bulk-operation-stepper'; import * as i2 from '@c8y/ngx-components/repository/shared'; import { RepositoryType } from '@c8y/ngx-components/repository/shared'; import * as i3 from '@ngx-translate/core'; import { uniqWith, isEqual, get } from 'lodash-es'; import { BehaviorSubject, combineLatest, from } from 'rxjs'; import { switchMap, shareReplay, debounceTime, distinctUntilChanged } from 'rxjs/operators'; import { SelectStepFrameComponent, PreviewSelectionFrameComponent, PreviewBlockDirective } from '@c8y/ngx-components/operations/stepper-frames'; import * as i4 from '@angular/forms'; import { FormsModule } from '@angular/forms'; import { NgIf, NgFor, AsyncPipe } from '@angular/common'; class StepperBulkTypeConfigurationComponent extends BaseStepperComponent { constructor(bulkOperationService, repositoryService, translate) { super(); this.bulkOperationService = bulkOperationService; this.repositoryService = repositoryService; this.translate = translate; this.type = BulkOperationType.CONFIGURATION; this.NO_DEVICE_TYPE_AVAILABLE = gettext('Undefined`device type`'); this.DD_LOW_COUNT = 10; this.textFilter$ = new BehaviorSubject(''); this.configType$ = new BehaviorSubject(''); this.configTypes = []; this.selectedConfigType = { name: '' }; this.configurations$ = combineLatest(this.textFilter$, this.configType$).pipe(switchMap(([name, configType]) => this.getConfiguration(name, configType)), shareReplay(1)); this.DD_LOW_COUNT = this.bulkOperationService.DD_LOW_COUNT; this.loadConfigurationTypes(); } loadConfigurationTypes() { this.configTypeSubscription = this.configType$ .pipe(debounceTime(300), distinctUntilChanged(), switchMap(searchStr => { const query = { configurationType: `*${searchStr}*` }; return from(this.repositoryService.listRepositoryEntries(RepositoryType.CONFIGURATION, { query })); })) .subscribe(result => { const { data } = result; this.configTypes = uniqWith(data.map(val => ({ name: val.configurationType })), isEqual); }); } ngOnDestroy() { this.configTypeSubscription.unsubscribe(); } selectConfiguration(configuration) { this.selectedConfiguration = configuration; } goToSecondStep($event) { $event.stepper.next(); this.getConfigBinary(); this.deviceTypes = this.selectedConfiguration.deviceType; } async getConfigBinary() { if (this.selectedConfiguration.url) { this.selectedConfiguration.binary = await this.repositoryService.getBinaryText(this.selectedConfiguration.url, { allowExternal: true, noAlerts: true }); } } getDeviceTypeTitle(configuration) { return get(configuration, 'deviceType', this.translate.instant(this.NO_DEVICE_TYPE_AVAILABLE)); } retrieveOperationPrototype() { const configuration = { type: this.selectedConfiguration.configurationType, url: this.selectedConfiguration.url }; return { name: gettext('Configuration update'), description: get(this.selectedConfiguration, 'name'), prototype: { description: `Update configuration to: ${this.selectedConfiguration.name}.`, c8y_DownloadConfigFile: configuration } }; } getConfiguration(name, configurationType) { const query = name ? { name: `*${name}*` } : {}; if (configurationType) { query.__or = [{ configurationType }, { __not: { __has: `configurationType` } }]; } return this.repositoryService.listRepositoryEntries(RepositoryType.CONFIGURATION, { query }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationComponent, deps: [{ token: i1.BulkOperationsService }, { token: i2.RepositoryService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: StepperBulkTypeConfigurationComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-configuration", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select configuration' | translate;\n completed: !!selectedConfiguration;\n buttonsDisabled: !selectedConfiguration;\n onNext: goToSecondStep.bind(this)\n \"\n >\n <c8y-select-step-frame\n [header]=\"'Select configuration' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (configType$ | async)?.length) &&\n (configurations$ | async)?.data.length === 0\n \"\n >\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-xs-12 p-b-8 visible-xs visible-sm\"></div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter configuration types\u2026' | translate }}\"\n name=\"configType\"\n [(ngModel)]=\"selectedConfigType\"\n (onSearch)=\"configType$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedConfigType = { name: '' }; configType$.next('')\"\n >\n <span>{{ 'All configuration types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let configType of configTypes\"\n (click)=\"selectedConfigType = configType; configType$.next(configType.name)\"\n [active]=\"selectedConfigType === configType\"\n >\n <c8y-highlight\n [text]=\"configType.name\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Configuration type' | translate }}\"\n >\n {{ 'Configuration type' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n #listItem\n *c8yFor=\"let configuration of configurations$ | async\"\n >\n <c8y-li-radio (onSelect)=\"selectConfiguration(configuration)\"></c8y-li-radio>\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ configuration.name || '-' }}\"\n >\n <c8y-highlight\n [text]=\"configuration.name || '-'\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </div>\n </div>\n <div class=\"col-4 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(configuration) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n {{ configuration.deviceType }}\n <em\n class=\"text-muted\"\n *ngIf=\"!configuration.deviceType\"\n >\n {{ 'Undefined`device type`' | translate }}\n </em>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Configuration type\n </span>\n <span\n class=\"label label-info\"\n title=\"{{ 'Configuration type' | translate }}: {{\n configuration.configurationType\n }}\"\n *ngIf=\"configuration.configurationType\"\n >\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-gray-lighter\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </span>\n <span\n class=\"label label-default\"\n title=\"{{ 'Configuration type' | translate }}: {{ 'Undefined' | translate }}\"\n *ngIf=\"!configuration.configurationType\"\n >\n {{ 'Undefined' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-select-step-frame>\n </ng-container>\n <ng-container *customStep=\"'Preview configuration' | translate\">\n <c8y-preview-selection-frame\n [header]=\"'Preview configuration' | translate\"\n [name]=\"selectedConfiguration?.name\"\n [type]=\"selectedConfiguration?.configurationType\"\n >\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedConfiguration?.deviceType; else noType\">\n <span>{{ selectedConfiguration?.deviceType }}</span>\n </ng-container>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </ng-container>\n <ng-container *previewBlock=\"'Updated' | translate\">\n <span>{{ selectedConfiguration?.lastUpdated | c8yDate }}</span>\n </ng-container>\n <ng-container *previewBlock=\"'Preview' | translate\">\n <c8y-ui-empty-state\n [icon]=\"'file-code-o'\"\n [title]=\"'No preview available.' | translate\"\n [subtitle]=\"'Could not fetch the file.' | translate\"\n *ngIf=\"!this.selectedConfiguration?.binary; else binaryPreview\"\n ></c8y-ui-empty-state>\n <ng-template #binaryPreview>\n <pre style=\"min-height: 98px\"><code>{{ this.selectedConfiguration?.binary }}</code></pre>\n </ng-template>\n </ng-container>\n </c8y-preview-selection-frame>\n </ng-container>\n</c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "title", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-stepper-bulk-type-configuration', imports: [ BulkOperationStepper, CustomStep, SelectStepFrameComponent, FormsModule, NgIf, IconDirective, FormGroupComponent, TypeaheadComponent, ListItemComponent, NgFor, HighlightComponent, ListItemIconComponent, ListItemBodyComponent, ListGroupComponent, ForOfDirective, ListItemRadioComponent, C8yTranslateDirective, PreviewSelectionFrameComponent, PreviewBlockDirective, EmptyStateComponent, C8yTranslatePipe, AsyncPipe, DatePipe ], template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select configuration' | translate;\n completed: !!selectedConfiguration;\n buttonsDisabled: !selectedConfiguration;\n onNext: goToSecondStep.bind(this)\n \"\n >\n <c8y-select-step-frame\n [header]=\"'Select configuration' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (configType$ | async)?.length) &&\n (configurations$ | async)?.data.length === 0\n \"\n >\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-xs-12 p-b-8 visible-xs visible-sm\"></div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter configuration types\u2026' | translate }}\"\n name=\"configType\"\n [(ngModel)]=\"selectedConfigType\"\n (onSearch)=\"configType$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedConfigType = { name: '' }; configType$.next('')\"\n >\n <span>{{ 'All configuration types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let configType of configTypes\"\n (click)=\"selectedConfigType = configType; configType$.next(configType.name)\"\n [active]=\"selectedConfigType === configType\"\n >\n <c8y-highlight\n [text]=\"configType.name\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Configuration type' | translate }}\"\n >\n {{ 'Configuration type' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n #listItem\n *c8yFor=\"let configuration of configurations$ | async\"\n >\n <c8y-li-radio (onSelect)=\"selectConfiguration(configuration)\"></c8y-li-radio>\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ configuration.name || '-' }}\"\n >\n <c8y-highlight\n [text]=\"configuration.name || '-'\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </div>\n </div>\n <div class=\"col-4 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(configuration) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n {{ configuration.deviceType }}\n <em\n class=\"text-muted\"\n *ngIf=\"!configuration.deviceType\"\n >\n {{ 'Undefined`device type`' | translate }}\n </em>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Configuration type\n </span>\n <span\n class=\"label label-info\"\n title=\"{{ 'Configuration type' | translate }}: {{\n configuration.configurationType\n }}\"\n *ngIf=\"configuration.configurationType\"\n >\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-gray-lighter\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </span>\n <span\n class=\"label label-default\"\n title=\"{{ 'Configuration type' | translate }}: {{ 'Undefined' | translate }}\"\n *ngIf=\"!configuration.configurationType\"\n >\n {{ 'Undefined' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-select-step-frame>\n </ng-container>\n <ng-container *customStep=\"'Preview configuration' | translate\">\n <c8y-preview-selection-frame\n [header]=\"'Preview configuration' | translate\"\n [name]=\"selectedConfiguration?.name\"\n [type]=\"selectedConfiguration?.configurationType\"\n >\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedConfiguration?.deviceType; else noType\">\n <span>{{ selectedConfiguration?.deviceType }}</span>\n </ng-container>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </ng-container>\n <ng-container *previewBlock=\"'Updated' | translate\">\n <span>{{ selectedConfiguration?.lastUpdated | c8yDate }}</span>\n </ng-container>\n <ng-container *previewBlock=\"'Preview' | translate\">\n <c8y-ui-empty-state\n [icon]=\"'file-code-o'\"\n [title]=\"'No preview available.' | translate\"\n [subtitle]=\"'Could not fetch the file.' | translate\"\n *ngIf=\"!this.selectedConfiguration?.binary; else binaryPreview\"\n ></c8y-ui-empty-state>\n <ng-template #binaryPreview>\n <pre style=\"min-height: 98px\"><code>{{ this.selectedConfiguration?.binary }}</code></pre>\n </ng-template>\n </ng-container>\n </c8y-preview-selection-frame>\n </ng-container>\n</c8y-bulk-operation-stepper>\n" }] }], ctorParameters: () => [{ type: i1.BulkOperationsService }, { type: i2.RepositoryService }, { type: i3.TranslateService }] }); /** Module for the 'Configuration update' operation type stepper */ class StepperBulkTypeConfigurationModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationModule, imports: [StepperBulkTypeConfigurationComponent], exports: [StepperBulkTypeConfigurationComponent] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationModule, providers: [ hookListBulkType({ type: BulkOperationType.CONFIGURATION, c8yIcon: 'cogs', name: gettext('Configuration update'), path: `${baseUrl}configuration`, component: StepperBulkTypeConfigurationComponent, fragments: ['c8y_DownloadConfigFile', 'c8y_Configuration'], selected: false }) ], imports: [StepperBulkTypeConfigurationComponent] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeConfigurationModule, decorators: [{ type: NgModule, args: [{ imports: [StepperBulkTypeConfigurationComponent], providers: [ hookListBulkType({ type: BulkOperationType.CONFIGURATION, c8yIcon: 'cogs', name: gettext('Configuration update'), path: `${baseUrl}configuration`, component: StepperBulkTypeConfigurationComponent, fragments: ['c8y_DownloadConfigFile', 'c8y_Configuration'], selected: false }) ], exports: [StepperBulkTypeConfigurationComponent] }] }] }); /** * Generated bundle index. Do not edit. */ export { StepperBulkTypeConfigurationComponent, StepperBulkTypeConfigurationModule }; //# sourceMappingURL=c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map