@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 9.4 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-operations-shared.mjs","sources":["../../operations/shared/nav.factory.ts","../../operations/shared/operations.model.ts","../../operations/shared/operations.service.ts","../../operations/shared/operations-shared.module.ts","../../operations/shared/c8y-ngx-components-operations-shared.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { isNil, omitBy } from 'lodash-es';\n\nexport const DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG = new InjectionToken<Partial<NavigatorNode>>(\n 'DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG'\n);\n\n@Injectable()\nexport class OperationsNavigationFactory implements NavigatorNodeFactory {\n navs: NavigatorNode[] = [];\n\n constructor(\n @Optional() @Inject(DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG) private config: NavigatorNode\n ) {}\n\n async get() {\n if (this.navs.length === 0) {\n this.navs.push(\n new NavigatorNode({\n ...{\n label: gettext('Device control'),\n path: 'devicecontrol/single',\n icon: 'c8y-icon c8y-icon-device-control',\n parent: gettext('Overviews'),\n priority: 1360\n },\n ...omitBy(this.config, isNil)\n })\n );\n }\n return this.navs;\n }\n}\n","import { OperationStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { OperationStatusOption } from './status-option.model';\n\nexport const OPERATION_STATUS_LABELS = {\n PENDING: gettext('Pending'),\n EXECUTING: gettext('Executing'),\n FAILED: gettext('Failed'),\n SUCCESSFUL: gettext('Successful')\n};\n\nexport type OperationStatusOptionsMapShared = {\n [key in keyof typeof OperationStatus]?: OperationStatusOption;\n};\n\nexport const OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = {\n PENDING: {\n label: OPERATION_STATUS_LABELS.PENDING,\n status: OperationStatus.PENDING,\n icon: 'clock-o',\n styleClass: ''\n } as unknown as OperationStatusOption,\n EXECUTING: {\n label: OPERATION_STATUS_LABELS.EXECUTING,\n status: OperationStatus.EXECUTING,\n icon: 'refresh',\n styleClass: 'text-info'\n } as unknown as OperationStatusOption,\n SUCCESSFUL: {\n label: OPERATION_STATUS_LABELS.SUCCESSFUL,\n status: OperationStatus.SUCCESSFUL,\n icon: 'check-circle',\n styleClass: 'text-success'\n } as unknown as OperationStatusOption,\n FAILED: {\n label: OPERATION_STATUS_LABELS.FAILED,\n status: OperationStatus.FAILED,\n icon: 'exclamation-circle',\n styleClass: 'text-danger'\n } as unknown as OperationStatusOption\n};\n\nexport const CLEAN_KEYS = ['creationTime', 'deviceExternalIDs', 'id', 'self'];\n\nexport const CLEAN_KEYS_UPDATE = ['deviceId', 'deviceName', 'bulkOperationId'];\n\nexport const RESERVED_KEYS = CLEAN_KEYS.concat(['deviceId', 'deviceName', 'bulkOperationId']);\n\nexport const STANDARD_KEYS = {\n failureReason: gettext('Failure reason'),\n description: gettext('Description'),\n status: gettext('Status')\n};\n","import { Injectable } from '@angular/core';\nimport { IOperation, OperationService, OperationStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, ModalService, Status } from '@c8y/ngx-components';\nimport { assign, difference, has, includes, keys, pickBy, without } from 'lodash-es';\nimport { RESERVED_KEYS, STANDARD_KEYS } from './operations.model';\n\n@Injectable({ providedIn: 'root' })\nexport class OperationsService {\n constructor(\n private operationService: OperationService,\n private modal: ModalService,\n private alertService: AlertService\n ) {}\n\n getStandardKeys(operation: IOperation) {\n return pickBy(STANDARD_KEYS, (_, key) => has(operation, key));\n }\n\n getNonStandardKeys(operation: IOperation, excluding: string[] = []) {\n return without(\n difference(this.getKeys(operation), keys(this.getStandardKeys(operation))),\n ...excluding\n );\n }\n\n async cancel(operation: Partial<IOperation>) {\n try {\n await this.modal.confirm(\n gettext('Cancel operation'),\n gettext('You are about to cancel the operation. Do you want to proceed?'),\n Status.DANGER\n );\n\n const operationAfterUpdate = (\n await this.operationService.update({\n id: operation.id,\n status: OperationStatus.FAILED,\n failureReason: gettext('Operation cancelled by user.')\n })\n ).data;\n assign(operation, operationAfterUpdate);\n this.alertService.success(gettext('Operation cancelled.'));\n } catch (er) {\n if (er) {\n this.alertService.addServerFailure(er);\n }\n }\n }\n\n private getKeys(managedObject) {\n return Object.keys({ ...managedObject }).filter(key => !includes(RESERVED_KEYS, key));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OperationsService } from './operations.service';\n\n@NgModule({\n providers: [OperationsService]\n})\nexport class OperationsSharedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}