{"version":3,"file":"c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs","sources":["../../operations/stepper-bulk-type-firmware/select-firmware.component.ts","../../operations/stepper-bulk-type-firmware/select-firmware.component.html","../../operations/stepper-bulk-type-firmware/version-or-patch.component.ts","../../operations/stepper-bulk-type-firmware/version-or-patch.component.html","../../operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.ts","../../operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.html","../../operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.module.ts","../../operations/stepper-bulk-type-firmware/c8y-ngx-components-operations-stepper-bulk-type-firmware.ts"],"sourcesContent":["import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, tap, switchMap, shareReplay } from 'rxjs/operators';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  memoize,\n  IconDirective,\n  ListItemComponent,\n  ListItemIconComponent,\n  ListItemBodyComponent,\n  ListGroupComponent,\n  ForOfDirective,\n  ListItemRadioComponent,\n  HighlightComponent,\n  C8yTranslateDirective,\n  C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { RepositoryService, RepositoryType } from '@c8y/ngx-components/repository/shared';\nimport { IResultList, IManagedObject } from '@c8y/client';\nimport { TranslateService } from '@ngx-translate/core';\nimport { property, get } from 'lodash-es';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { SelectStepFrameComponent } from '@c8y/ngx-components/operations/stepper-frames';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgPlural, NgPluralCase, AsyncPipe } from '@angular/common';\n\n@Component({\n  selector: 'c8y-select-firmware-step',\n  templateUrl: 'select-firmware.component.html',\n  imports: [\n    SelectStepFrameComponent,\n    FormsModule,\n    NgIf,\n    IconDirective,\n    ListItemComponent,\n    ListItemIconComponent,\n    ListItemBodyComponent,\n    ListGroupComponent,\n    ForOfDirective,\n    ListItemRadioComponent,\n    HighlightComponent,\n    C8yTranslateDirective,\n    NgPlural,\n    NgPluralCase,\n    C8yTranslatePipe,\n    AsyncPipe\n  ]\n})\nexport class SelectFirmwareComponent {\n  @Input() selected: IManagedObject;\n  @Output() firmware: EventEmitter<IManagedObject> = new EventEmitter<IManagedObject>();\n  elementCount = 0;\n  DD_LOW_COUNT = 10;\n  textFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n\n  firmwares$: Observable<IResultList<IManagedObject>> = this.textFilter$\n    .pipe(debounceTime(400), distinctUntilChanged())\n    .pipe(\n      switchMap(text => this.getFirmwares(text)),\n      tap(resp => {\n        this.elementCount = resp.data ? resp.data.length : 0;\n      }),\n      shareReplay(1)\n    );\n  isLegacy = this.repositoryService.isLegacyEntry.bind(this.repositoryService);\n  readonly DEVICE_TYPE_NOT_AVAILABLE: string = gettext('No device type available.');\n  readonly DESCRIPTION_NOT_AVAILABLE: string = gettext('No description available.');\n\n  constructor(\n    private repositoryService: RepositoryService,\n    private bulkOpsService: BulkOperationsService,\n    private translate: TranslateService\n  ) {}\n\n  ngOnInit() {\n    this.DD_LOW_COUNT = this.bulkOpsService.DD_LOW_COUNT;\n  }\n\n  selectFirmware(selected: boolean, fw: IManagedObject) {\n    if (selected) {\n      this.firmware.emit(fw);\n    }\n  }\n\n  @memoize(property('id'))\n  getBaseVersionsCount$(firmware: IManagedObject): Observable<number | string> {\n    return this.firmwares$.pipe(\n      switchMap(() => this.repositoryService.getBaseVersionsCount$(firmware)),\n      shareReplay(1)\n    );\n  }\n\n  getDescriptionTitle(firmware: IManagedObject): string {\n    return get(firmware, 'description', this.translate.instant(this.DESCRIPTION_NOT_AVAILABLE));\n  }\n\n  getDeviceTypeTitle(firmware: IManagedObject): string {\n    return get(firmware, 'c8y_Filter.type', this.translate.instant(this.DEVICE_TYPE_NOT_AVAILABLE));\n  }\n\n  private getFirmwares(partialName?: string) {\n    return this.repositoryService.listRepositoryEntries(RepositoryType.FIRMWARE, { partialName });\n  }\n}\n","<c8y-select-step-frame\n  [header]=\"'Select firmware' | translate\"\n  [noResults]=\"(textFilter$ | async).length > 0 && elementCount === 0\"\n>\n  <label\n    class=\"sr-only\"\n    for=\"fFilter\"\n  >\n    {{ 'Filter…' | translate }}\n  </label>\n  <div\n    class=\"input-group input-group-search\"\n    filters\n  >\n    <input\n      class=\"form-control\"\n      title=\"{{ 'Filter…' | translate }}\"\n      id=\"fFilter\"\n      placeholder=\"{{ 'Filter…' | 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  <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-3\">\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=\"{{ 'Description' | translate }}\"\n        >\n          {{ 'Description' | translate }}\n        </span>\n      </div>\n      <div class=\"col-3\">\n        <span\n          class=\"text-truncate\"\n          title=\"{{ 'Device type' | translate }}\"\n        >\n          {{ 'Device type' | translate }}\n        </span>\n      </div>\n      <div class=\"col-2\">\n        <span\n          class=\"text-truncate\"\n          title=\"{{ 'Versions' | translate }}\"\n        >\n          {{ 'Versions' | translate }}\n        </span>\n      </div>\n    </c8y-li-body>\n  </c8y-li>\n  <c8y-list-group list>\n    <c8y-li *c8yFor=\"let firmware of firmwares$ | async; let i = index; loadMore: 'auto'\">\n      <c8y-li-radio\n        (onSelect)=\"selectFirmware($event, firmware)\"\n        [selected]=\"firmware === selected\"\n      ></c8y-li-radio>\n      <c8y-li-icon>\n        <i c8yIcon=\"c8y-firmware\"></i>\n      </c8y-li-icon>\n\n      <c8y-li-body class=\"content-flex-40\">\n        <div class=\"col-3 m-b-xs-8\">\n          <div\n            class=\"text-truncate\"\n            title=\"{{ firmware.name }}\"\n          >\n            <c8y-highlight\n              [text]=\"firmware.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=\"{{ getDescriptionTitle(firmware) }}\"\n          >\n            <span\n              class=\"text-label-small m-r-8 visible-xs visible-sm\"\n              translate\n            >\n              Description\n            </span>\n            <small *ngIf=\"firmware.description; else noDesc\">\n              {{ firmware.description }}\n            </small>\n            <ng-template #noDesc>\n              <small>\n                <em\n                  class=\"text-muted\"\n                  translate\n                >\n                  No description available.\n                </em>\n              </small>\n            </ng-template>\n          </div>\n        </div>\n        <div class=\"col-3 m-b-xs-8\">\n          <div\n            class=\"text-truncate\"\n            title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(firmware) }}\"\n          >\n            <span\n              class=\"text-label-small m-r-8 visible-xs visible-sm\"\n              translate\n            >\n              Device type\n            </span>\n            <span *ngIf=\"firmware.c8y_Filter?.type; else noType\">\n              {{ firmware.c8y_Filter?.type }}\n            </span>\n            <ng-template #noType>\n              <em\n                class=\"text-muted\"\n                translate\n              >\n                Undefined`device type`\n              </em>\n            </ng-template>\n          </div>\n        </div>\n        <div class=\"col-2\">\n          <span\n            class=\"label label-warning m-l-auto-sm\"\n            *ngIf=\"isLegacy(firmware)\"\n          >\n            <span translate>Legacy</span>\n          </span>\n\n          <span *ngIf=\"!isLegacy(firmware)\">\n            <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) === null\">\n              <span class=\"label label-info\">\n                <i\n                  class=\"icon-spin\"\n                  c8yIcon=\"circle-o-notch\"\n                ></i>\n              </span>\n            </span>\n            <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) !== null\">\n              <span [ngPlural]=\"getBaseVersionsCount$(firmware) | async\">\n                <ng-template ngPluralCase=\"=0\">\n                  <span class=\"label label-default\">\n                    <span translate>No versions</span>\n                  </span>\n                </ng-template>\n                <ng-template ngPluralCase=\"=1\">\n                  <span\n                    class=\"text-label-small m-r-8 visible-xs visible-sm\"\n                    translate\n                  >\n                    version\n                  </span>\n                  <span class=\"badge badge-info m-l-auto-sm\">1</span>\n                </ng-template>\n                <ng-template ngPluralCase=\"other\">\n                  <span\n                    class=\"text-label-small m-r-8 visible-xs visible-sm\"\n                    translate\n                  >\n                    versions\n                  </span>\n                  <span class=\"badge badge-info m-l-auto-sm\">\n                    {{ getBaseVersionsCount$(firmware) | async }}\n                  </span>\n                </ng-template>\n              </span>\n            </span>\n          </span>\n        </div>\n      </c8y-li-body>\n    </c8y-li>\n  </c8y-list-group>\n</c8y-select-step-frame>\n","import { AsyncPipe, NgPlural, NgPluralCase } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport {\n  C8yTranslateDirective,\n  C8yTranslatePipe,\n  ForOfDirective,\n  IconDirective,\n  ListGroupComponent,\n  ListItemBodyComponent,\n  ListItemCollapseComponent,\n  ListItemComponent,\n  ListItemIconComponent,\n  ListItemRadioComponent,\n  memoize\n} from '@c8y/ngx-components';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { FirmwareBinary, RepositoryService } from '@c8y/ngx-components/repository/shared';\nimport { property } from 'lodash-es';\nimport { defer, Observable, of } from 'rxjs';\nimport {\n  catchError,\n  distinctUntilChanged,\n  distinctUntilKeyChanged,\n  map,\n  shareReplay,\n  switchMap,\n  tap\n} from 'rxjs/operators';\n\n@Component({\n  selector: 'c8y-version-or-patch-step',\n  templateUrl: 'version-or-patch.component.html',\n  imports: [\n    ListGroupComponent,\n    ForOfDirective,\n    ListItemComponent,\n    ListItemIconComponent,\n    IconDirective,\n    ListItemBodyComponent,\n    NgPlural,\n    NgPluralCase,\n    C8yTranslateDirective,\n    ListItemCollapseComponent,\n    ListItemRadioComponent,\n    C8yTranslatePipe,\n    AsyncPipe\n  ]\n})\nexport class VersionOrPatchComponent {\n  @Input() selected: IManagedObject;\n  @Output() versionOrPatch: EventEmitter<IManagedObject> = new EventEmitter<IManagedObject>();\n\n  elementCount = 0;\n  DD_LOW_COUNT = 10;\n\n  firmware$: Observable<IManagedObject> = this.bulkOpsService.firmwareId.pipe(\n    distinctUntilChanged(),\n    switchMap(id =>\n      defer(() => this.inventoryService.detail(id).then(result => result.data)).pipe(\n        catchError(error => of(error))\n      )\n    ),\n    shareReplay(1)\n  );\n\n  baseVersions$: Observable<IResultList<IManagedObject>> = this.firmware$.pipe(\n    distinctUntilKeyChanged('id'),\n    switchMap(firmware => this.repositoryService.listBaseVersions(firmware)),\n    tap(resp => {\n      this.elementCount = resp.data ? resp.data.length : 0;\n    }),\n    shareReplay(1)\n  );\n\n  isLegacy$: Observable<boolean> = this.firmware$.pipe(\n    map(firmware => this.repositoryService.isLegacyEntry(firmware)),\n    shareReplay(1)\n  );\n\n  expanded: { [id: string]: boolean } = {};\n\n  constructor(\n    private repositoryService: RepositoryService,\n    private inventoryService: InventoryService,\n    private bulkOpsService: BulkOperationsService\n  ) {\n    this.DD_LOW_COUNT = this.bulkOpsService.DD_LOW_COUNT;\n  }\n\n  @memoize()\n  getBinaryName$(binaryUrl) {\n    return this.repositoryService.getBinaryName$(binaryUrl);\n  }\n\n  @memoize(property('id'))\n  getBaseVersionAndPatches$(baseVersion) {\n    return this.firmware$.pipe(\n      distinctUntilKeyChanged('id'),\n      switchMap(firmware =>\n        this.repositoryService.listBaseVersionAndPatches(firmware, baseVersion)\n      ),\n      shareReplay(1)\n    );\n  }\n\n  @memoize(property('id'))\n  getPatchVersionsCount$(baseVersion: FirmwareBinary) {\n    return this.firmware$.pipe(\n      distinctUntilKeyChanged('id'),\n      switchMap(() => this.firmware$),\n      switchMap(firmware => this.repositoryService.getPatchVersionsCount$(firmware, baseVersion)),\n      shareReplay(1)\n    );\n  }\n\n  selectVersionOrPatch(selected: boolean, versionOrPatch: IManagedObject) {\n    if (selected) {\n      this.versionOrPatch.emit(versionOrPatch);\n    }\n  }\n}\n","@if ((baseVersions$ | async)?.data.length > 0) {\n  <c8y-list-group class=\"m-b-16\">\n    <c8y-li *c8yFor=\"let baseVersion of baseVersions$ | async; let i = index; loadMore: 'auto'\">\n      <c8y-li-icon>\n        <i c8yIcon=\"c8y-firmware\"></i>\n      </c8y-li-icon>\n\n      <c8y-li-body class=\"content-flex-50\">\n        <div class=\"col-10\">\n          <p>{{ baseVersion.c8y_Firmware.version }}</p>\n        </div>\n        <div class=\"col-2\">\n          @if (isLegacy$ | async) {\n            <span class=\"label label-warning\">\n              {{ 'Legacy' | translate }}\n            </span>\n          }\n\n          @if (!(isLegacy$ | async)) {\n            <span>\n              @if ((getPatchVersionsCount$(baseVersion) | async) === null) {\n                <span>\n                  <span class=\"label label-info\">\n                    <i\n                      class=\"icon-spin\"\n                      c8yIcon=\"circle-o-notch\"\n                    ></i>\n                  </span>\n                </span>\n              }\n\n              @if ((getPatchVersionsCount$(baseVersion) | async) !== null) {\n                <span>\n                  <span [ngPlural]=\"getPatchVersionsCount$(baseVersion) | async\">\n                    <ng-template ngPluralCase=\"=0\">\n                      <span class=\"label label-default\"><span translate>No patches</span></span>\n                    </ng-template>\n                    <ng-template ngPluralCase=\"=1\">\n                      <span class=\"label label-info\">\n                        <span translate>1 patch</span>\n                      </span>\n                    </ng-template>\n                    <ng-template ngPluralCase=\"other\">\n                      <span class=\"label label-info\">\n                        <span\n                          ngNonBindable\n                          translate\n                          [translateParams]=\"{ count: getPatchVersionsCount$(baseVersion) | async }\"\n                        >\n                          {{ count }} patches\n                        </span>\n                      </span>\n                    </ng-template>\n                  </span>\n                </span>\n              }\n            </span>\n          }\n        </div>\n      </c8y-li-body>\n\n      <c8y-li-collapse>\n        <c8y-list-group>\n          <c8y-li\n            *c8yFor=\"\n              let patchVersion of getBaseVersionAndPatches$(baseVersion) | async;\n              let i = index;\n              loadMore: 'auto'\n            \"\n          >\n            <c8y-li-radio\n              (onSelect)=\"selectVersionOrPatch($event, patchVersion)\"\n              [selected]=\"patchVersion === selected\"\n            ></c8y-li-radio>\n            <c8y-li-icon>\n              <i c8yIcon=\"c8y-firmware\"></i>\n            </c8y-li-icon>\n            <c8y-li-body class=\"content-flex-50\">\n              <div class=\"col-3\">\n                {{ patchVersion.c8y_Firmware.version }}\n              </div>\n              <div class=\"col-3\">\n                @if (patchVersion.c8y_Patch) {\n                  <span\n                    class=\"label label-info\"\n                    translate\n                  >\n                    patch\n                  </span>\n                } @else {\n                  <span\n                    class=\"label label-primary\"\n                    translate\n                  >\n                    version\n                  </span>\n                }\n              </div>\n              <div class=\"col-6 text-truncate\">\n                <span\n                  class=\"text-label-small m-r-4\"\n                  translate\n                >\n                  File\n                </span>\n                @if (patchVersion.c8y_Firmware.url === '') {\n                  <span title=\"{{ 'Provided by device' | translate }}\">\n                    {{ 'Provided by device' | translate }}\n                  </span>\n                } @else {\n                  <span title=\"{{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\">\n                    {{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\n                  </span>\n                }\n              </div>\n            </c8y-li-body>\n          </c8y-li>\n        </c8y-list-group>\n      </c8y-li-collapse>\n    </c8y-li>\n  </c8y-list-group>\n}\n","import { StepperSelectionEvent } from '@angular/cdk/stepper';\nimport { Component, OnDestroy } from '@angular/core';\nimport { IManagedObject, IOperation } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\nimport {\n  BaseStepperComponent,\n  BulkOperationStepper,\n  CustomStep\n} from '@c8y/ngx-components/operations/bulk-operation-stepper';\nimport {\n  BulkOperationsService,\n  BulkOperationType,\n  OperationDetails\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { get } from 'lodash-es';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { SelectFirmwareComponent } from './select-firmware.component';\nimport { PreviewSelectionFrameComponent } from '@c8y/ngx-components/operations/stepper-frames';\nimport { VersionOrPatchComponent } from './version-or-patch.component';\n\n@Component({\n  selector: 'c8y-stepper-firmware',\n  templateUrl: 'stepper-bulk-type-firmware.component.html',\n  imports: [\n    BulkOperationStepper,\n    CustomStep,\n    SelectFirmwareComponent,\n    PreviewSelectionFrameComponent,\n    VersionOrPatchComponent,\n    C8yTranslatePipe\n  ]\n})\nexport class StepperBulkTypeFirmwareComponent extends BaseStepperComponent implements OnDestroy {\n  readonly type: BulkOperationType = BulkOperationType.FIRMWARE;\n  readonly descriptionTemplate: string = gettext('{{ name }} (version {{ version }})');\n\n  textFilter$: BehaviorSubject<string> = new BehaviorSubject('');\n\n  stepData: { firmware: IManagedObject; versionOrPatch: IManagedObject } = {\n    firmware: undefined,\n    versionOrPatch: undefined\n  };\n\n  selectedFirmware: IManagedObject;\n  selectedVersionOrPatch: IManagedObject;\n\n  private subscription: Subscription;\n\n  constructor(\n    private bulkOperationService: BulkOperationsService,\n    private translate: TranslateService\n  ) {\n    super();\n  }\n\n  goToVersionOrPatchStep({ stepper }) {\n    const selectedFirmware = this.stepData.firmware;\n    this.bulkOperationService.setFirmwareId(selectedFirmware.id);\n    this.deviceTypes = (selectedFirmware.c8y_Filter || {}).type;\n    stepper.next();\n  }\n\n  onVersionOrPatchSelected(versionOrPatch: IManagedObject) {\n    this.stepData.versionOrPatch = versionOrPatch;\n  }\n\n  onFirmwareSelected(fw: IManagedObject) {\n    this.stepData.firmware = fw;\n  }\n\n  ngOnDestroy(): void {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  protected retrieveOperationPrototype(): OperationDetails {\n    const selectedFirmware = this.stepData.firmware;\n    const selectedVersionOrPatch = this.stepData.versionOrPatch;\n\n    if (!selectedFirmware || !selectedVersionOrPatch) {\n      return;\n    }\n\n    const firmware: IManagedObject = {\n      name: selectedFirmware.name,\n      version: selectedVersionOrPatch.c8y_Firmware.version,\n      url: selectedVersionOrPatch.c8y_Firmware.url\n    } as unknown as IManagedObject;\n\n    if (selectedVersionOrPatch.c8y_Patch) {\n      firmware.isPatch = true;\n      firmware.dependency = selectedVersionOrPatch.c8y_Patch.dependency;\n    }\n\n    const name = selectedFirmware.name;\n    const version = selectedVersionOrPatch.c8y_Firmware.version;\n    const description = `Update firmware to: ${name} (version: ${version}).`;\n\n    return {\n      name: gettext('Firmware update'),\n      description: this.translate.instant(this.descriptionTemplate, {\n        name: get(this.stepData, 'firmware.name'),\n        version: get(this.stepData, 'versionOrPatch.c8y_Firmware.version')\n      }),\n      prototype: {\n        description,\n        c8y_Firmware: firmware\n      } as unknown as IOperation\n    };\n  }\n\n  protected onSelectionChange(event: StepperSelectionEvent) {\n    this.textFilter$.next('');\n    super.onSelectionChange(event);\n  }\n}\n","<c8y-bulk-operation-stepper [type]=\"type\">\n  <ng-container\n    *customStep=\"\n      'Select firmware' | translate;\n      completed: !!stepData?.firmware;\n      buttonsDisabled: !stepData?.firmware;\n      onNext: goToVersionOrPatchStep.bind(this)\n    \"\n  >\n    <c8y-select-firmware-step\n      [selected]=\"stepData?.firmware\"\n      (firmware)=\"onFirmwareSelected($event)\"\n      class=\"d-contents\"\n    ></c8y-select-firmware-step\n  ></ng-container>\n  <ng-container\n    *customStep=\"\n      'Select version or patch' | translate;\n      completed: !!stepData?.versionOrPatch;\n      buttonsDisabled: !stepData?.versionOrPatch\n    \"\n  >\n    <c8y-preview-selection-frame\n      [header]=\"'Select version or patch' | translate\"\n      [name]=\"stepData?.firmware?.name\"\n      [description]=\"stepData?.firmware?.description\"\n    >\n      <c8y-version-or-patch-step\n        list\n        [selected]=\"stepData?.versionOrPatch\"\n        (versionOrPatch)=\"onVersionOrPatchSelected($event)\"\n      >\n      </c8y-version-or-patch-step>\n    </c8y-preview-selection-frame>\n  </ng-container>\n</c8y-bulk-operation-stepper>\n","import { NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  baseUrl,\n  BulkOperationType,\n  hookListBulkType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { SelectFirmwareComponent } from './select-firmware.component';\nimport { VersionOrPatchComponent } from './version-or-patch.component';\nimport { StepperBulkTypeFirmwareComponent } from './stepper-bulk-type-firmware.component';\n\n/** Module for the 'Firmware update' operation type stepper */\n@NgModule({\n  imports: [StepperBulkTypeFirmwareComponent, VersionOrPatchComponent, SelectFirmwareComponent],\n  providers: [\n    hookListBulkType({\n      type: BulkOperationType.FIRMWARE,\n      c8yIcon: 'c8y-firmware',\n      name: gettext('Firmware update'),\n      path: `${baseUrl}firmware`,\n      component: StepperBulkTypeFirmwareComponent,\n      fragments: ['c8y_Firmware'],\n      selected: false\n    })\n  ],\n  exports: [StepperBulkTypeFirmwareComponent]\n})\nexport class StepperBulkTypeFirmwareModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i1"],"mappings":"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"}