@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 24.2 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-device-protocol-object-mappings.mjs","sources":["../../device-protocol-object-mappings/default-object-mapping-types/base-mapping.ts","../../device-protocol-object-mappings/default-object-mapping-types/measurement-mapping.ts","../../device-protocol-object-mappings/default-object-mapping-types/event-mapping.ts","../../device-protocol-object-mappings/default-object-mapping-types/alarm-mapping.ts","../../device-protocol-object-mappings/default-object-mapping-types/index.ts","../../device-protocol-object-mappings/object-mapping.component.ts","../../device-protocol-object-mappings/object-mapping.component.html","../../device-protocol-object-mappings/c8y-ngx-components-device-protocol-object-mappings.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { filter, Subject, takeUntil, tap } from 'rxjs';\nimport { MappingConfig } from './index';\nimport { FormlyValueChangeEvent } from '@ngx-formly/core/lib/models';\n\nexport abstract class BaseObjectMapping {\n private formlyFieldCfg: FormlyFieldConfig;\n private destroy$: Subject<void> = new Subject();\n\n constructor(config: MappingConfig) {\n if (config.formlyFieldConfig) {\n config.formlyFieldConfig.expressions = {\n hide: field => {\n return !field.parent.get(`has${config.formlyFieldConfig.key}`).formControl.getRawValue();\n }\n };\n config.formlyFieldConfig.hooks = {\n onInit: field => {\n field.parent\n .get(`has${config.formlyFieldConfig.key}`)\n .formControl.patchValue(!!field.parent.model[`${config.formlyFieldConfig.key}`]);\n\n field.options.fieldChanges\n .pipe(\n filter((changes: FormlyValueChangeEvent) => {\n return (\n changes.type === 'valueChanges' && changes.field === field.parent.fieldGroup[0]\n );\n }),\n tap((changes: FormlyValueChangeEvent) => {\n if (changes.value === 'undefined') {\n field.parent\n .get(`has${config.formlyFieldConfig.key}`)\n .formControl.patchValue(\n !!field.parent.model[`${config.formlyFieldConfig.key}`]\n );\n\n const formField = field.parent.get(\n config.formlyFieldConfig.key as string\n ).formControl;\n if (formField) {\n formField.markAsPristine();\n formField.markAsUntouched();\n }\n }\n }),\n takeUntil(this.destroy$)\n )\n .subscribe();\n },\n onDestroy: () => {\n this.destroy$.next();\n this.destroy$.complete();\n }\n };\n }\n\n config.buttonType = config.buttonType || 'switch';\n\n const buttonConfig =\n config.buttonType !== 'none'\n ? {\n className: 'list-group-item',\n key: `has${config.formlyFieldConfig ? config.formlyFieldConfig.key : 'Switch'}`,\n type: config.buttonType,\n props: {\n label: gettext(config.label),\n icon: config.icon,\n description: config.tooltip,\n switchMode: config.buttonType === 'switch'\n },\n expressions: {\n 'props.disabled': config.disabled || (() => false)\n }\n }\n : undefined;\n\n if (config.formlyFieldConfig) {\n config.formlyFieldConfig.expressions = {\n hide: field => {\n return !field.parent.get(`has${config.formlyFieldConfig.key}`).formControl.getRawValue();\n }\n };\n config.formlyFieldConfig.hooks = {\n onInit: field => {\n field.parent\n .get(`has${config.formlyFieldConfig.key}`)\n .formControl.patchValue(!!field.parent.model[`${config.formlyFieldConfig.key}`]);\n\n field.options.fieldChanges\n .pipe(\n filter((changes, _index) => {\n return (\n changes.type === 'valueChanges' && changes.field === field.parent.fieldGroup[0]\n );\n }),\n tap(changes => {\n if (changes.value === 'undefined') {\n field.parent\n .get(`has${config.formlyFieldConfig.key}`)\n .formControl.patchValue(\n !!field.parent.model[`${config.formlyFieldConfig.key}`]\n );\n\n const formField = field.parent.get(\n config.formlyFieldConfig.key as string\n ).formControl;\n if (formField) {\n formField.markAsPristine();\n formField.markAsUntouched();\n }\n }\n }),\n takeUntil(this.destroy$)\n )\n .subscribe();\n },\n onDestroy: () => {\n this.destroy$.next();\n this.destroy$.complete();\n }\n };\n }\n\n this.formlyFieldCfg = {\n fieldGroup: [buttonConfig, config.formlyFieldConfig]\n };\n }\n\n getFormlyFieldConfig() {\n return this.formlyFieldCfg;\n }\n}\n","import { gettext } from '@c8y/ngx-components';\nimport { BaseObjectMapping } from '.';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { Injector } from '@angular/core';\n\nexport class MeasurementObjectMapping extends BaseObjectMapping {\n constructor(\n _injector: Injector = null,\n measurementKey = 'measurementMapping',\n smallFormGroup = false,\n tooltip?: string,\n fieldGroup?: FormlyFieldConfig[]\n ) {\n super({\n icon: 'line-chart',\n label: gettext('Send measurement'),\n tooltip,\n formlyFieldConfig: {\n key: measurementKey,\n className: 'tight-grid p-t-16',\n fieldGroup: fieldGroup || [\n {\n key: 'type',\n type: 'string',\n props: {\n label: gettext('Type'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'series',\n type: 'string',\n props: {\n label: gettext('Series'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'unit',\n type: 'string',\n props: {\n label: gettext('Unit'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n }\n ]\n }\n });\n }\n}\n","import { gettext } from '@c8y/ngx-components';\nimport { BaseObjectMapping } from '.';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { Injector } from '@angular/core';\n\nexport class EventObjectMapping extends BaseObjectMapping {\n constructor(\n _injector: Injector = null,\n eventKey = 'eventMapping',\n smallFormGroup = false,\n tooltip?: string,\n fieldGroup?: FormlyFieldConfig[]\n ) {\n super({\n icon: 'c8y-events',\n label: gettext('Send event'),\n tooltip,\n formlyFieldConfig: {\n key: eventKey,\n className: 'tight-grid p-t-16',\n fieldGroup: fieldGroup || [\n {\n key: 'fragmentType',\n type: 'string',\n props: {\n label: gettext('Fragment type'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'innerType',\n type: 'string',\n props: {\n label: gettext('Inner type'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'text',\n type: 'string',\n props: {\n label: gettext('Text'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'type',\n type: 'string',\n props: {\n label: gettext('Type'),\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n }\n ]\n }\n });\n }\n}\n","import { gettext } from '@c8y/ngx-components';\nimport { BaseObjectMapping } from './base-mapping';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { Injector } from '@angular/core';\nimport { ALARM_SEVERITY, ALARM_STATUS } from './index';\n\nexport class AlarmObjectMapping extends BaseObjectMapping {\n constructor(\n _injector: Injector = null,\n alarmKey = 'alarmMapping',\n smallFormGroup = false,\n tooltip?: string,\n fieldGroup?: FormlyFieldConfig[]\n ) {\n super({\n icon: 'bell',\n label: gettext('Raise alarm'),\n tooltip,\n formlyFieldConfig: {\n key: alarmKey,\n className: 'tight-grid p-t-16',\n fieldGroup: fieldGroup || [\n {\n key: 'severity',\n type: 'select',\n props: {\n label: gettext('Severity'),\n options: [...Object.values(ALARM_SEVERITY).map(value => ({ label: value, value }))],\n required: true,\n smallFormGroup\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'status',\n type: 'select',\n props: {\n label: gettext('Status'),\n options: [...Object.values(ALARM_STATUS).map(value => ({ label: value, value }))],\n required: true\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'text',\n type: 'string',\n props: {\n label: gettext('Text'),\n required: true\n },\n className: 'col-md-3 col-sm-6'\n },\n {\n key: 'type',\n type: 'string',\n props: {\n label: gettext('Type'),\n required: true\n },\n className: 'col-md-3 col-sm-6'\n }\n ]\n }\n });\n }\n}\n","import { gettext } from '@c8y/ngx-components';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\n//Functionalities\nexport * from './base-mapping';\nexport * from './measurement-mapping';\nexport * from './event-mapping';\nexport * from './alarm-mapping';\n\nexport type MappingConfig = {\n icon: string;\n label: string;\n tooltip?: string;\n formlyFieldConfig?: FormlyFieldConfig;\n disabled?: (config?: FormlyFieldConfig) => boolean;\n buttonType?: 'checkbox' | 'switch' | 'none';\n};\n\nexport const ALARM_SEVERITY = {\n WARNING: gettext('WARNING'),\n MINOR: gettext('MINOR'),\n MAJOR: gettext('MAJOR'),\n CRITICAL: gettext('CRITICAL')\n};\n\nexport const ALARM_STATUS = {\n ACTIVE: gettext('ACTIVE'),\n ACKNOWLEDGED: gettext('ACKNOWLEDGED'),\n CLEARED: gettext('CLEARED')\n};\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Injector,\n Input,\n OnInit,\n Output,\n Type\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyModule } from '@ngx-formly/core';\nimport {\n DynamicFormsModule,\n CommonModule as C8yCommonModule,\n FormsModule as C8yFormsModule,\n CoreModule\n} from '@c8y/ngx-components';\nimport { BaseObjectMapping } from './default-object-mapping-types';\nimport { ObjectMappingsValidationObject } from './index';\n\n@Component({\n selector: 'c8y-device-protocol-object-mappings',\n standalone: true,\n templateUrl: `./object-mapping.component.html`,\n imports: [C8yCommonModule, C8yFormsModule, DynamicFormsModule, FormlyModule, CoreModule]\n})\nexport class ObjectMappingComponent implements OnInit, AfterViewInit {\n @Input('data') model: unknown = {};\n @Input() objectMappingTypes: Type<BaseObjectMapping>[];\n @Output() onUpdate = new EventEmitter<ObjectMappingsValidationObject>();\n\n form = new FormGroup({});\n fields: FormlyFieldConfig[] = [];\n options: FormlyFormOptions = {\n formState: {\n disabled: false\n }\n };\n\n constructor(private injector: Injector) {}\n\n ngOnInit(): void {\n this.fillFormlyForm();\n }\n\n ngAfterViewInit() {\n if (this.fields?.length > 0) {\n this.options.detectChanges(this.fields[0]);\n }\n }\n\n onChange(_event) {\n const { dirty, valid, touched } = this.form;\n this.onUpdate.emit({ dirty, valid, touched } as ObjectMappingsValidationObject);\n }\n\n private fillFormlyForm() {\n if (this.objectMappingTypes && this.objectMappingTypes.length > 0) {\n this.objectMappingTypes.forEach(functionalityType => {\n const instance = new functionalityType(this.injector);\n\n if (instance instanceof BaseObjectMapping) {\n this.fields.push(instance.getFormlyFieldConfig());\n }\n });\n }\n }\n}\n","<div class=\"form m-b-16 object-mappings\">\n <div class=\"legend form-block\">{{ 'Functionalities' | translate }}</div>\n <formly-form\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n (modelChange)=\"onChange($event)\"\n data-cy=\"device-protocol-object-mappings--formly-form\"\n ></formly-form>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["C8yCommonModule","C8yFormsModule"],"mappings":"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"}