import * as i0 from '@angular/core';
import { Component, NgModule } from '@angular/core';
import * as i6 from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import * as i4 from '@c8y/ngx-components';
import { gettext, CoreModule, FormsModule } from '@c8y/ngx-components';
import * as i2 from '@c8y/ngx-components/repository/shared';
import { RepositoryType, SharedRepositoryModule } from '@c8y/ngx-components/repository/shared';
import * as i7 from '@c8y/ngx-components/operations/bulk-operation-stepper';
import { BaseStepperComponent, BulkOperationStepperModule } from '@c8y/ngx-components/operations/bulk-operation-stepper';
import * as i1 from '@c8y/ngx-components/operations/bulk-operations-service';
import { BulkOperationType, hookListBulkType, baseUrl } from '@c8y/ngx-components/operations/bulk-operations-service';
import * as i8 from '@c8y/ngx-components/operations/stepper-frames';
import { StepperFramesModule } from '@c8y/ngx-components/operations/stepper-frames';
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 * as i5 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: "18.2.9", 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: "18.2.9", type: StepperBulkTypeConfigurationComponent, 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: i4.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i4.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i4.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i4.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i4.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i4.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i4.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i4.ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "component", type: i7.BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: i7.CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: i8.PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "component", type: i8.SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "directive", type: i8.PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "c8yDate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: StepperBulkTypeConfigurationComponent, decorators: [{
            type: Component,
            args: [{ selector: 'c8y-stepper-bulk-type-configuration', 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: "18.2.9", ngImport: i0, type: StepperBulkTypeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: StepperBulkTypeConfigurationModule, declarations: [StepperBulkTypeConfigurationComponent], imports: [CoreModule,
            FormsModule,
            ReactiveFormsModule,
            BulkOperationStepperModule,
            SharedRepositoryModule,
            StepperFramesModule], exports: [StepperBulkTypeConfigurationComponent] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", 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: [CoreModule,
            FormsModule,
            ReactiveFormsModule,
            BulkOperationStepperModule,
            SharedRepositoryModule,
            StepperFramesModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: StepperBulkTypeConfigurationModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [StepperBulkTypeConfigurationComponent],
                    imports: [
                        CoreModule,
                        FormsModule,
                        ReactiveFormsModule,
                        BulkOperationStepperModule,
                        SharedRepositoryModule,
                        StepperFramesModule
                    ],
                    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
