{"version":3,"file":"c8y-ngx-components-protocol-lwm2m-components-post-registration-operations.mjs","sources":["../../protocol-lwm2m/components/post-registration-operations/lwm2m-post-operations.component.ts","../../protocol-lwm2m/components/post-registration-operations/lwm2m-post-operations.component.html","../../protocol-lwm2m/components/post-registration-operations/c8y-ngx-components-protocol-lwm2m-components-post-registration-operations.ts"],"sourcesContent":["import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { gettext } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsParametersService } from '@c8y/ngx-components/protocol-lwm2m/services';\nimport { AlertService, CoreModule, CommonModule } from '@c8y/ngx-components';\nimport { LWM2MPostOperationsParameters } from '@c8y/ngx-components/protocol-lwm2m/model';\n\n@Component({\n  selector: 'lwm2m-post-operations',\n  templateUrl: './lwm2m-post-operations.component.html',\n  standalone: true,\n  imports: [CommonModule, CoreModule]\n})\nexport class LWM2MPostOperationsComponent implements OnInit {\n  @ViewChild('commandsForm') commandsForm: NgForm;\n\n  exampleCommands = [\n    {\n      command: 'discover',\n      resource: '<objectId>',\n      description: gettext('Discover all resources of Object 3300, the generic sensor.')\n    },\n    {\n      command: 'read',\n      resource: '<objectId>/<objectInstanceId>/<resourceId>',\n      description: gettext('Read maximum sensor value')\n    },\n    {\n      command: 'write',\n      resource: '<objectId>/<objectInstanceId>/<resourceId> <applicationType>',\n      description: gettext('Write application type \"CO2\" to device')\n    },\n    {\n      command: 'execute',\n      resource: '<objectId>/<objectInstanceId>/<resourceId>',\n      description: gettext('Reset min and max values')\n    },\n    {\n      command: 'observe',\n      resource: '<objectId>/<objectInstanceId>/<resourceId>',\n      description: gettext('Observe sensor value. Causes device to send every new sensor value')\n    },\n    {\n      command: 'writeattr',\n      resource: '<objectId>/<objectInstanceId>/<resourceId> greater=<value>',\n      description: gettext('Only send observations if sensor value is higher than 100')\n    }\n  ];\n\n  operations: LWM2MPostOperationsParameters = {\n    commands: '',\n    type: '',\n    id: ''\n  };\n\n  constructor(\n    private lwm2mPostOperationsSvc: LWM2MPostOperationsParametersService,\n    private alertService: AlertService\n  ) {}\n\n  async ngOnInit() {\n    this.operations = (await this.getPostOperationsParameters()) as LWM2MPostOperationsParameters;\n  }\n\n  async save(operations: LWM2MPostOperationsParameters) {\n    try {\n      await this.lwm2mPostOperationsSvc.put(operations);\n      this.alertService.success(gettext('Post-operations saved'));\n      this.commandsForm.form.markAsPristine();\n    } catch (error) {\n      this.alertService.addServerFailure(error);\n    }\n  }\n\n  async getPostOperationsParameters() {\n    try {\n      const res = await this.lwm2mPostOperationsSvc.get();\n      return (await res.json()) as LWM2MPostOperationsParameters;\n    } catch (error) {\n      this.alertService.addServerFailure(error);\n      return {};\n    }\n  }\n}\n","<c8y-title>{{ 'LWM2M post-operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n  <c8y-breadcrumb-item\n    [label]=\"'Device types' | translate\"\n    [icon]=\"'c8y-device-protocols'\"\n  ></c8y-breadcrumb-item>\n  <c8y-breadcrumb-item [label]=\"'LWM2M post-operations' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content\">\n  <div class=\"inner-scroll bg-component\">\n    <div class=\"card-header large-padding separator sticky-top\">\n      <div class=\"h4 m-r-16\" id=\"commands\">\n        {{ 'Commands' | translate }}\n      </div>\n    </div>\n    <div class=\"card-block large-padding\">\n      <form\n        #commandsForm=\"ngForm\"\n        id=\"commandsForm\"\n        class=\"d-flex d-col flex-grow fit-h\"\n        (ngSubmit)=\"save(operations)\"\n      >\n        <div class=\"form-group\">\n          <textarea\n            [(ngModel)]=\"operations.commands\"\n            class=\"form-control\"\n            aria-labelledby=\"commands\"\n            name=\"commands\"\n            rows=\"20\"\n          ></textarea>\n        </div>\n      </form>\n    </div>\n  </div>\n\n  <div class=\"inner-scroll bg-level-1\" tabindex=\"0\">\n    <div class=\"card-block large-padding\">\n      <p class=\"m-b-16\">\n        <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n        {{\n          'You can enter a set of LWM2M shell commands. Each command will be sent to every newly registered LWM2M device. Each command must be entered in a new line. Use the following syntax for specifying post-registration actions:'\n            | translate\n        }}\n      </p>\n      <pre class=\"bg-level-0 text-pre-normal m-b-0\">\n        <ul class=\"list-unstyled m-b-0\">\n          <li class=\"m-16\" *ngFor=\"let c of exampleCommands\">\n            <p class=\"text-muted\"># {{c.description | translate}}</p>\n            <span class=\"text-danger\">{{c.command}}</span>\n            <span class=\"text-muted\">{{c.resource}}</span>\n          </li>\n        </ul>\n      </pre>\n    </div>\n  </div>\n\n  <div class=\"card-footer large-padding separator grid__col--fullspan\">\n    <button\n      class=\"btn btn-primary\"\n      title=\"{{ 'Save' | translate }}\"\n      type=\"submit\"\n      form=\"commandsForm\"\n      [disabled]=\"commandsForm.valid && !commandsForm.dirty\"\n      [attr.aria-label]=\"'Save' | translate\"\n    >\n      {{ 'Save' | translate }}\n    </button>\n  </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}