@c8y/ngx-components 1010.0.19 → 1010.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/bundles/c8y-ngx-components-reports.umd.js +15 -2
  2. package/bundles/c8y-ngx-components-reports.umd.js.map +1 -1
  3. package/bundles/c8y-ngx-components-reports.umd.min.js +2 -2
  4. package/bundles/c8y-ngx-components-reports.umd.min.js.map +1 -1
  5. package/bundles/c8y-ngx-components-sub-assets.umd.js +2 -9
  6. package/bundles/c8y-ngx-components-sub-assets.umd.js.map +1 -1
  7. package/bundles/c8y-ngx-components-sub-assets.umd.min.js +1 -1
  8. package/bundles/c8y-ngx-components-sub-assets.umd.min.js.map +1 -1
  9. package/bundles/c8y-ngx-components.umd.js +2 -2
  10. package/bundles/c8y-ngx-components.umd.js.map +1 -1
  11. package/bundles/c8y-ngx-components.umd.min.js +1 -1
  12. package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
  13. package/esm2015/core/range-display/range-display.component.js +3 -3
  14. package/esm2015/reports/reports.service.js +10 -4
  15. package/esm2015/sub-assets/sub-assets.component.js +3 -10
  16. package/esm5/core/range-display/range-display.component.js +3 -3
  17. package/esm5/reports/reports.service.js +17 -4
  18. package/esm5/sub-assets/sub-assets.component.js +3 -11
  19. package/fesm2015/c8y-ngx-components-reports.js +8 -2
  20. package/fesm2015/c8y-ngx-components-reports.js.map +1 -1
  21. package/fesm2015/c8y-ngx-components-sub-assets.js +2 -8
  22. package/fesm2015/c8y-ngx-components-sub-assets.js.map +1 -1
  23. package/fesm2015/c8y-ngx-components.js +2 -2
  24. package/fesm2015/c8y-ngx-components.js.map +1 -1
  25. package/fesm5/c8y-ngx-components-reports.js +15 -2
  26. package/fesm5/c8y-ngx-components-reports.js.map +1 -1
  27. package/fesm5/c8y-ngx-components-sub-assets.js +2 -9
  28. package/fesm5/c8y-ngx-components-sub-assets.js.map +1 -1
  29. package/fesm5/c8y-ngx-components.js +2 -2
  30. package/fesm5/c8y-ngx-components.js.map +1 -1
  31. package/package.json +2 -2
  32. package/reports/c8y-ngx-components-reports.metadata.json +1 -1
  33. package/reports/reports.service.d.ts +2 -1
  34. package/sub-assets/c8y-ngx-components-sub-assets.metadata.json +1 -1
  35. package/sub-assets/sub-assets.component.d.ts +2 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ngx-components",
3
- "version": "1010.0.19",
3
+ "version": "1010.0.23",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "Angular modules for Cumulocity IoT applications",
@@ -23,7 +23,7 @@
23
23
  "rxjs": "~6.4.0"
24
24
  },
25
25
  "dependencies": {
26
- "@c8y/client": "1010.0.19",
26
+ "@c8y/client": "1010.0.23",
27
27
  "@ngx-translate/core": "12.1.1",
28
28
  "@ngx-translate/http-loader": "4.0.0",
29
29
  "@ngx-formly/core": "5.10.6",
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ReportsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":18,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FormsModule","line":18,"character":24},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":18,"character":37},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":18,"character":55}],"entryComponents":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}],"providers":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","name":"CronService"}],"exports":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}]}]}],"members":{}},"ExportSchedulesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"export-schedules","template":"<div>\n <div *ngIf=\"loadingStatus.inProgress\" class=\"flex-row\">\n <c8y-loading></c8y-loading>\n <span translate>Retrieving schedules…</span>\n </div>\n\n <div *ngIf=\"!loadingStatus.inProgress && loadingStatus.done && loadingStatus.error\">\n <div class=\"alert alert-warning max-width-100\" translate>\n Could not load schedules list.\n </div>\n </div>\n\n <div *ngIf=\"!loadingStatus.inProgress && !loadingStatus.done && !loadingStatus.error\">\n <div class=\"c8y-empty-state text-center max-width-100\" *ngIf=\"!scheduleList.length\">\n <h1 c8yIcon=\"c8y-report\" class=\"c8y-icon-duocolor\"></h1>\n <h3 translate>No export schedules defined.</h3>\n </div>\n\n <div class=\"c8y-list__group\" *ngIf=\"scheduleList.length\">\n <div class=\"c8y-list__item hidden-xs\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"fa\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"flex-row\">\n <div class=\"col-sm-6\">\n <label class=\"m-0\">\n {{ 'Description' | translate }}\n </label>\n </div>\n <div class=\"col-sm-6 m-r-40\">\n <label class=\"m-0\">\n {{ 'Frequency' | translate }}\n </label>\n </div>\n </div>\n </div>\n <span></span>\n </div>\n </div>\n\n <div\n class=\"c8y-list__item flex-row pointer\"\n *ngFor=\"let schedule of scheduleList; index as i\"\n (click)=\"editSchedule(schedule, i, $event)\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i c8yIcon=\"c8y-report\" class=\"c8y-icon-duocolor\"></i>\n </div>\n <div class=\"c8y-list__item__body flex-row\">\n <div class=\"col-sm-6 col-xs-6\">\n <div class=\"text-truncate\" title=\"{{ schedule.emailConfig.subject }}\">\n {{ schedule.emailConfig.subject }}\n </div>\n </div>\n <div class=\"col-sm-6 col-xs-6\">\n <div class=\"flex-row a-i-baseline\">\n <i c8yIcon=\"calendar\" class=\"text-muted m-r-4\"></i>\n <span class=\"smart-rule-information\">\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 2\"\n ngNonBindable\n translate\n [translateParams]=\"{ minutes: schedule.cronConfig.minute | number: '2.0-0' }\"\n >\n Hourly: {{ minutes }} minute(s) past the hour.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 3\"\n ngNonBindable\n translate\n [translateParams]=\"{\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Daily: at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 4\"\n ngNonBindable\n translate\n [translateParams]=\"{\n weekDay: cronService.getWeekDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Weekly: {{ weekDay }}, at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 5\"\n ngNonBindable\n translate\n [translateParams]=\"{\n monthDay: cronService.getMonthDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Monthly: {{ monthDay }} day of the month, at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 6\"\n ngNonBindable\n translate\n [translateParams]=\"{\n month: cronService.getMonthName(schedule.cronConfig),\n monthDay: cronService.getMonthDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Yearly: {{ month }}, {{ monthDay }} day of the month, at {{ hour }}:{{\n minutes\n }}.\n </span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\" (click)=\"$event.stopPropagation()\">\n <div class=\"settings dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n title=\"{{ 'Actions' | translate }}\"\n >\n <i [c8yIcon]=\"'ellipsis-v'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <li role=\"menuitem\">\n <button\n [title]=\"hasRequiredRole ? buttonLabels.edit : buttonLabels.editNoPermission\"\n (click)=\"editSchedule(schedule, i, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'pencil'\"></i> {{ 'Edit' | translate }}\n </button>\n </li>\n <li role=\"menuitem\">\n <button\n [title]=\"\n hasRequiredRole ? buttonLabels.duplicate : buttonLabels.duplicateNoPermission\n \"\n (click)=\"duplicateSchedule(schedule, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'copy'\"></i> {{ 'Duplicate' | translate }}\n </button>\n </li>\n <li role=\"menuitem\">\n <button\n [title]=\"\n hasRequiredRole ? buttonLabels.delete : buttonLabels.deleteNoPermission\n \"\n (click)=\"removeSchedule(schedule, i, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'trash'\"></i> {{ 'Delete' | translate }}\n </button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"alert alert-warning max-width-100\" *ngIf=\"!hasRequiredRole\" role=\"alert\" translate>\n You don't have the permission required to schedule exports.\n </div>\n <button\n type=\"button\"\n class=\"btn-add-block m-t-16\"\n title=\"{{ 'Add schedule' | translate }}\"\n (click)=\"addSchedule()\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add schedule' | translate }}\n </button>\n</div>\n"}]}],"members":{"exportId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"onSchedulesUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":62,"character":28},{"__symbolic":"reference","name":"CronService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":64,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":65,"character":25},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"OptionsService","line":66,"character":28}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"translateButtonTitles":[{"__symbolic":"method"}],"getCurrentUserEmail":[{"__symbolic":"method"}],"checkRole":[{"__symbolic":"method"}],"getScheduleList":[{"__symbolic":"method"}],"addSchedule":[{"__symbolic":"method"}],"editSchedule":[{"__symbolic":"method"}],"duplicateSchedule":[{"__symbolic":"method"}],"openAddEditModal":[{"__symbolic":"method"}],"getMessageFromModal":[{"__symbolic":"method"}],"removeSchedule":[{"__symbolic":"method"}]}},"ScheduleModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"schedule-modal","template":"<div class=\"modal-header text-center bg-primary\">\n <header class=\"text-white\">\n <div style=\"font-size: 62px;\">\n <span c8yIcon=\"c8y-report\"></span>\n </div>\n <h4 class=\"text-uppercase\">\n <span *ngIf=\"actionType === ActionType.CREATE\" translate>New export schedule</span>\n <span *ngIf=\"actionType === ActionType.EDIT\" translate>Edit export schedule</span>\n <span *ngIf=\"actionType === ActionType.DUPLICATE\" translate>Duplicate export schedule</span>\n </h4>\n </header>\n</div>\n\n<div class=\"modal-body\">\n <p class=\"lead text-center p-t-24 m-b-0\" translate>On schedule send export via email</p>\n</div>\n<div class=\"modal-inner-scroll smart-rule-control\">\n <form #scheduleForm=\"ngForm\" class=\"edit-smart-rule-details\">\n <div class=\"list-group\">\n <div class=\"list-group-item bg-gray-white\">\n <div class=\"smart-list-icon-label\">\n <span class=\"dot bg-primary-light m-r-8\">1</span>\n <strong translate>Frequency</strong>\n </div>\n <div class=\"p-t-16\">\n <div class=\"form-group\">\n <cron [cronIn]=\"cronExpression\" (emitter)=\"getCron($event)\" name=\"cron\"></cron>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"smart-list-icon-label\">\n <span class=\"dot bg-primary-light m-r-8\">2</span>\n <div class=\"d-inline-block\">\n <strong translate>Send email</strong>\n <p class=\"help-block text-muted small p-absolute\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n <span translate\n >Enter one or more valid email addresses, separated with a comma.</span\n >\n </p>\n </div>\n </div>\n <div class=\"p-t-24\">\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Send to</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control\"\n name=\"to\"\n [(ngModel)]=\"emailTo\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>CC</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control span\"\n name=\"cc\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n [(ngModel)]=\"emailCc\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>BCC</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control span\"\n name=\"bcc\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n [(ngModel)]=\"emailBcc\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Reply to (single email address)</label>\n <c8y-form-group>\n <input\n email\n type=\"text\"\n class=\"form-control span\"\n name=\"replyTo\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [(ngModel)]=\"emailReplyTo\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Subject</label>\n <c8y-form-group>\n <input\n type=\"text\"\n class=\"form-control span\"\n name=\"subject\"\n [(ngModel)]=\"emailSubject\"\n placeholder=\"{{ 'e.g. Daily report' | translate }}\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Message</label>\n <c8y-form-group>\n <textarea\n class=\"form-control\"\n name=\"text\"\n [(ngModel)]=\"emailText\"\n placeholder=\"{{ 'Message' | translate }}\"\n rows=\"4\"\n required\n ></textarea>\n <p class=\"help-block text-muted\">\n {{ placeholdersInfo | translate }}\n </p>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n\n<div class=\"modal-footer\">\n <button class=\"btn btn-default\" (click)=\"cancel()\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!validCron || !scheduleForm.form.valid\"\n >\n <span>\n <span *ngIf=\"actionType === ActionType.CREATE\" title=\"{{ 'Create' | translate }}\">\n {{ 'Create' | translate }}\n </span>\n <span *ngIf=\"actionType === ActionType.EDIT\" title=\"{{ 'Save' | translate }}\">\n {{ 'Save' | translate }}\n </span>\n <span *ngIf=\"actionType === ActionType.DUPLICATE\" title=\"{{ 'Duplicate' | translate }}\">\n {{ 'Duplicate' | translate }}\n </span>\n </span>\n </button>\n</div>\n"}]}],"members":{"emitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":41,"character":21},{"__symbolic":"reference","name":"CronService"}]}],"ngOnInit":[{"__symbolic":"method"}],"populateEmailFieldsFromSchedule":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"getCron":[{"__symbolic":"method"}],"populateScheduleFromCronExpression":[{"__symbolic":"method"}],"convertStringOfEmailsToArray":[{"__symbolic":"method"}],"populateScheduleFromEmailFields":[{"__symbolic":"method"}]}},"ReportsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":14,"character":26},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":15,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":16,"character":20}]}],"getExport":[{"__symbolic":"method"}],"getScheduleList":[{"__symbolic":"method"}],"extractScheduleListFromExport":[{"__symbolic":"method"}],"addSchedule":[{"__symbolic":"method"}],"updateSchedule":[{"__symbolic":"method"}],"updateSchedules":[{"__symbolic":"method"}],"reschedule":[{"__symbolic":"method"}],"deleteSchedule":[{"__symbolic":"method"}]}},"Export":{"__symbolic":"interface"},"Schedule":{"__symbolic":"interface"},"EmailConfig":{"__symbolic":"interface"},"CronConfig":{"__symbolic":"interface"},"EmittedCron":{"__symbolic":"interface"},"EmitterPayload":{"__symbolic":"interface"},"ActionType":{"CREATE":"create","EDIT":"edit","DUPLICATE":"duplicate"},"Base":{"Initial":1,"Hour":2,"Day":3,"Week":4,"Month":5,"Year":6},"CronService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":52,"character":40}]}],"generateCron":[{"__symbolic":"method"}],"generateCronConfig":[{"__symbolic":"method"}],"getBase":[{"__symbolic":"method"}],"validateModels":[{"__symbolic":"method"}],"clearNextModels":[{"__symbolic":"method"}],"getWeekDayName":[{"__symbolic":"method"}],"getMonthDayName":[{"__symbolic":"method"}],"getMonthName":[{"__symbolic":"method"}]}},"CronComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"cron","template":"<div class=\"cron-wrap\">\n <div class=\"form-group smart-cron-job-every\">\n <label for=\"smart-cron-job-every\" class=\"control-label\" translate>\n Interval\n </label>\n <div class=\"\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control\"\n id=\"smart-cron-job-every\"\n [(ngModel)]=\"base\"\n required=\"true\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngIf=\"base === 1\" value=\"1\" translate>\n Select…\n </option>\n <option *ngFor=\"let baseInterval of intervals\" [ngValue]=\"baseInterval.value\">\n {{ baseInterval.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"form-group smart-cron-job-on col-md-6\" *ngIf=\"base == 4\">\n <label class=\"control-label\" for=\"smart-cron-job-on\" translate>\n Day\n </label>\n\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control day-value\"\n id=\"smart-cron-job-on\"\n [(ngModel)]=\"cronConfig.weekday\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let dayOfWeek of daysOfWeekPosix\" [ngValue]=\"dayOfWeek.value\">\n {{ dayOfWeek.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-of col-md-6\" *ngIf=\"base == 6\">\n <label for=\"smart-cron-job-of\" class=\"control-label\" translate>\n Month\n </label>\n <div>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"smart-cron-job-of\"\n class=\"cron-select form-control month-value\"\n [(ngModel)]=\"cronConfig.month\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let month of months\" [ngValue]=\"month.value\">\n {{ month.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-on-the col-md-6\" *ngIf=\"base >= 5\">\n <label for=\"smart-cron-job-on-the\" class=\"control-label\" translate>\n Day\n </label>\n <div>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"smart-cron-job-on-the\"\n class=\"cron-select form-control day-of-month-value\"\n [(ngModel)]=\"cronConfig.day\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let dayOfMonth of daysOfMonth\" [ngValue]=\"dayOfMonth.value\">\n {{ dayOfMonth.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-at\" *ngIf=\"base >= 2\">\n <label for=\"smart-cron-job-at-hour\" class=\"control-label\">\n <span *ngIf=\"base >= 3\" translate>Time</span>\n <span *ngIf=\"base < 3\" translate>Minutes</span>\n </label>\n <div>\n <div class=\"form-inline\">\n <div class=\"c8y-select-wrapper\" *ngIf=\"base >= 3\">\n <select\n id=\"smart-cron-job-at-hour\"\n class=\"cron-select form-control hour-value\"\n [(ngModel)]=\"cronConfig.hour\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let hour of hours\" [ngValue]=\"hour.value\">\n {{ hour.value | number: '2.0-0' }}\n </option>\n </select>\n <span></span>\n </div>\n <span *ngIf=\"base >= 3\"> : </span>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control minute-value\"\n id=\"smart-cron-job-at-minute\"\n [(ngModel)]=\"cronConfig.minute\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let minute of minutes\" [ngValue]=\"minute.value\">\n {{ minute.value | number: '2.0-0' }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"cronIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"emitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CronService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onChangeSelect":[{"__symbolic":"method"}]}},"ng1Modules":["c8y.upgrade.reports"]},"origins":{"ReportsModule":"./reports.module","ExportSchedulesComponent":"./export-schedules.component","ScheduleModalComponent":"./schedule-modal.component","ReportsService":"./reports.service","Export":"./export-schedules.interface","Schedule":"./export-schedules.interface","EmailConfig":"./export-schedules.interface","CronConfig":"./export-schedules.interface","EmittedCron":"./export-schedules.interface","EmitterPayload":"./export-schedules.interface","ActionType":"./export-schedules.interface","Base":"./export-schedules.interface","CronService":"./cron.service","CronComponent":"./cron.component","ng1Modules":"./ng1"},"importAs":"@c8y/ngx-components/reports"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ReportsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":18,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"FormsModule","line":18,"character":24},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":18,"character":37},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":18,"character":55}],"entryComponents":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}],"providers":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","name":"CronService"}],"exports":[{"__symbolic":"reference","name":"ExportSchedulesComponent"},{"__symbolic":"reference","name":"ScheduleModalComponent"},{"__symbolic":"reference","name":"CronComponent"}]}]}],"members":{}},"ExportSchedulesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"export-schedules","template":"<div>\n <div *ngIf=\"loadingStatus.inProgress\" class=\"flex-row\">\n <c8y-loading></c8y-loading>\n <span translate>Retrieving schedules…</span>\n </div>\n\n <div *ngIf=\"!loadingStatus.inProgress && loadingStatus.done && loadingStatus.error\">\n <div class=\"alert alert-warning max-width-100\" translate>\n Could not load schedules list.\n </div>\n </div>\n\n <div *ngIf=\"!loadingStatus.inProgress && !loadingStatus.done && !loadingStatus.error\">\n <div class=\"c8y-empty-state text-center max-width-100\" *ngIf=\"!scheduleList.length\">\n <h1 c8yIcon=\"c8y-report\" class=\"c8y-icon-duocolor\"></h1>\n <h3 translate>No export schedules defined.</h3>\n </div>\n\n <div class=\"c8y-list__group\" *ngIf=\"scheduleList.length\">\n <div class=\"c8y-list__item hidden-xs\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i class=\"fa\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"flex-row\">\n <div class=\"col-sm-6\">\n <label class=\"m-0\">\n {{ 'Description' | translate }}\n </label>\n </div>\n <div class=\"col-sm-6 m-r-40\">\n <label class=\"m-0\">\n {{ 'Frequency' | translate }}\n </label>\n </div>\n </div>\n </div>\n <span></span>\n </div>\n </div>\n\n <div\n class=\"c8y-list__item flex-row pointer\"\n *ngFor=\"let schedule of scheduleList; index as i\"\n (click)=\"editSchedule(schedule, i, $event)\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i c8yIcon=\"c8y-report\" class=\"c8y-icon-duocolor\"></i>\n </div>\n <div class=\"c8y-list__item__body flex-row\">\n <div class=\"col-sm-6 col-xs-6\">\n <div class=\"text-truncate\" title=\"{{ schedule.emailConfig.subject }}\">\n {{ schedule.emailConfig.subject }}\n </div>\n </div>\n <div class=\"col-sm-6 col-xs-6\">\n <div class=\"flex-row a-i-baseline\">\n <i c8yIcon=\"calendar\" class=\"text-muted m-r-4\"></i>\n <span class=\"smart-rule-information\">\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 2\"\n ngNonBindable\n translate\n [translateParams]=\"{ minutes: schedule.cronConfig.minute | number: '2.0-0' }\"\n >\n Hourly: {{ minutes }} minute(s) past the hour.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 3\"\n ngNonBindable\n translate\n [translateParams]=\"{\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Daily: at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 4\"\n ngNonBindable\n translate\n [translateParams]=\"{\n weekDay: cronService.getWeekDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Weekly: {{ weekDay }}, at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 5\"\n ngNonBindable\n translate\n [translateParams]=\"{\n monthDay: cronService.getMonthDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Monthly: {{ monthDay }} day of the month, at {{ hour }}:{{ minutes }}.\n </span>\n <span\n *ngIf=\"cronService.getBase(schedule.cronConfig) === 6\"\n ngNonBindable\n translate\n [translateParams]=\"{\n month: cronService.getMonthName(schedule.cronConfig),\n monthDay: cronService.getMonthDayName(schedule.cronConfig),\n hour: schedule.cronConfig.hour | number: '2.0-0',\n minutes: schedule.cronConfig.minute | number: '2.0-0'\n }\"\n >\n Yearly: {{ month }}, {{ monthDay }} day of the month, at {{ hour }}:{{\n minutes\n }}.\n </span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\" (click)=\"$event.stopPropagation()\">\n <div class=\"settings dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n title=\"{{ 'Actions' | translate }}\"\n >\n <i [c8yIcon]=\"'ellipsis-v'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <li role=\"menuitem\">\n <button\n [title]=\"hasRequiredRole ? buttonLabels.edit : buttonLabels.editNoPermission\"\n (click)=\"editSchedule(schedule, i, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'pencil'\"></i> {{ 'Edit' | translate }}\n </button>\n </li>\n <li role=\"menuitem\">\n <button\n [title]=\"\n hasRequiredRole ? buttonLabels.duplicate : buttonLabels.duplicateNoPermission\n \"\n (click)=\"duplicateSchedule(schedule, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'copy'\"></i> {{ 'Duplicate' | translate }}\n </button>\n </li>\n <li role=\"menuitem\">\n <button\n [title]=\"\n hasRequiredRole ? buttonLabels.delete : buttonLabels.deleteNoPermission\n \"\n (click)=\"removeSchedule(schedule, i, $event)\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'trash'\"></i> {{ 'Delete' | translate }}\n </button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"alert alert-warning max-width-100\" *ngIf=\"!hasRequiredRole\" role=\"alert\" translate>\n You don't have the permission required to schedule exports.\n </div>\n <button\n type=\"button\"\n class=\"btn-add-block m-t-16\"\n title=\"{{ 'Add schedule' | translate }}\"\n (click)=\"addSchedule()\"\n [disabled]=\"!hasRequiredRole\"\n >\n <i [c8yIcon]=\"'plus-circle'\"></i>\n {{ 'Add schedule' | translate }}\n </button>\n</div>\n"}]}],"members":{"exportId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"onSchedulesUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":62,"character":28},{"__symbolic":"reference","name":"CronService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":64,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":65,"character":25},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"OptionsService","line":66,"character":28}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"translateButtonTitles":[{"__symbolic":"method"}],"getCurrentUserEmail":[{"__symbolic":"method"}],"checkRole":[{"__symbolic":"method"}],"getScheduleList":[{"__symbolic":"method"}],"addSchedule":[{"__symbolic":"method"}],"editSchedule":[{"__symbolic":"method"}],"duplicateSchedule":[{"__symbolic":"method"}],"openAddEditModal":[{"__symbolic":"method"}],"getMessageFromModal":[{"__symbolic":"method"}],"removeSchedule":[{"__symbolic":"method"}]}},"ScheduleModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"schedule-modal","template":"<div class=\"modal-header text-center bg-primary\">\n <header class=\"text-white\">\n <div style=\"font-size: 62px;\">\n <span c8yIcon=\"c8y-report\"></span>\n </div>\n <h4 class=\"text-uppercase\">\n <span *ngIf=\"actionType === ActionType.CREATE\" translate>New export schedule</span>\n <span *ngIf=\"actionType === ActionType.EDIT\" translate>Edit export schedule</span>\n <span *ngIf=\"actionType === ActionType.DUPLICATE\" translate>Duplicate export schedule</span>\n </h4>\n </header>\n</div>\n\n<div class=\"modal-body\">\n <p class=\"lead text-center p-t-24 m-b-0\" translate>On schedule send export via email</p>\n</div>\n<div class=\"modal-inner-scroll smart-rule-control\">\n <form #scheduleForm=\"ngForm\" class=\"edit-smart-rule-details\">\n <div class=\"list-group\">\n <div class=\"list-group-item bg-gray-white\">\n <div class=\"smart-list-icon-label\">\n <span class=\"dot bg-primary-light m-r-8\">1</span>\n <strong translate>Frequency</strong>\n </div>\n <div class=\"p-t-16\">\n <div class=\"form-group\">\n <cron [cronIn]=\"cronExpression\" (emitter)=\"getCron($event)\" name=\"cron\"></cron>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"smart-list-icon-label\">\n <span class=\"dot bg-primary-light m-r-8\">2</span>\n <div class=\"d-inline-block\">\n <strong translate>Send email</strong>\n <p class=\"help-block text-muted small p-absolute\">\n <i class=\"text-info m-r-4 text-14\" c8yIcon=\"info-circle\"></i>\n <span translate\n >Enter one or more valid email addresses, separated with a comma.</span\n >\n </p>\n </div>\n </div>\n <div class=\"p-t-24\">\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Send to</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control\"\n name=\"to\"\n [(ngModel)]=\"emailTo\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>CC</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control span\"\n name=\"cc\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n [(ngModel)]=\"emailCc\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>BCC</label>\n <c8y-form-group>\n <input\n emails\n type=\"text\"\n class=\"form-control span\"\n name=\"bcc\"\n placeholder=\"{{\n 'e.g. joe.doe@example.com,john.smith@example.com`LOCALIZE`' | translate\n }}\"\n [(ngModel)]=\"emailBcc\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Reply to (single email address)</label>\n <c8y-form-group>\n <input\n email\n type=\"text\"\n class=\"form-control span\"\n name=\"replyTo\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [(ngModel)]=\"emailReplyTo\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Subject</label>\n <c8y-form-group>\n <input\n type=\"text\"\n class=\"form-control span\"\n name=\"subject\"\n [(ngModel)]=\"emailSubject\"\n placeholder=\"{{ 'e.g. Daily report' | translate }}\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"form-group\">\n <label class=\"control-label\" translate>Message</label>\n <c8y-form-group>\n <textarea\n class=\"form-control\"\n name=\"text\"\n [(ngModel)]=\"emailText\"\n placeholder=\"{{ 'Message' | translate }}\"\n rows=\"4\"\n required\n ></textarea>\n <p class=\"help-block text-muted\">\n {{ placeholdersInfo | translate }}\n </p>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n\n<div class=\"modal-footer\">\n <button class=\"btn btn-default\" (click)=\"cancel()\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!validCron || !scheduleForm.form.valid\"\n >\n <span>\n <span *ngIf=\"actionType === ActionType.CREATE\" title=\"{{ 'Create' | translate }}\">\n {{ 'Create' | translate }}\n </span>\n <span *ngIf=\"actionType === ActionType.EDIT\" title=\"{{ 'Save' | translate }}\">\n {{ 'Save' | translate }}\n </span>\n <span *ngIf=\"actionType === ActionType.DUPLICATE\" title=\"{{ 'Duplicate' | translate }}\">\n {{ 'Duplicate' | translate }}\n </span>\n </span>\n </button>\n</div>\n"}]}],"members":{"emitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ReportsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":41,"character":21},{"__symbolic":"reference","name":"CronService"}]}],"ngOnInit":[{"__symbolic":"method"}],"populateEmailFieldsFromSchedule":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"getCron":[{"__symbolic":"method"}],"populateScheduleFromCronExpression":[{"__symbolic":"method"}],"convertStringOfEmailsToArray":[{"__symbolic":"method"}],"populateScheduleFromEmailFields":[{"__symbolic":"method"}]}},"ReportsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":13,"character":26},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":14,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":15,"character":20}]}],"getExport":[{"__symbolic":"method"}],"getScheduleList":[{"__symbolic":"method"}],"extractScheduleListFromExport":[{"__symbolic":"method"}],"addSchedule":[{"__symbolic":"method"}],"updateSchedule":[{"__symbolic":"method"}],"updateSchedules":[{"__symbolic":"method"}],"reschedule":[{"__symbolic":"method"}],"deleteSchedule":[{"__symbolic":"method"}],"removeConfiguration":[{"__symbolic":"method"}]}},"Export":{"__symbolic":"interface"},"Schedule":{"__symbolic":"interface"},"EmailConfig":{"__symbolic":"interface"},"CronConfig":{"__symbolic":"interface"},"EmittedCron":{"__symbolic":"interface"},"EmitterPayload":{"__symbolic":"interface"},"ActionType":{"CREATE":"create","EDIT":"edit","DUPLICATE":"duplicate"},"Base":{"Initial":1,"Hour":2,"Day":3,"Week":4,"Month":5,"Year":6},"CronService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":52,"character":40}]}],"generateCron":[{"__symbolic":"method"}],"generateCronConfig":[{"__symbolic":"method"}],"getBase":[{"__symbolic":"method"}],"validateModels":[{"__symbolic":"method"}],"clearNextModels":[{"__symbolic":"method"}],"getWeekDayName":[{"__symbolic":"method"}],"getMonthDayName":[{"__symbolic":"method"}],"getMonthName":[{"__symbolic":"method"}]}},"CronComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"cron","template":"<div class=\"cron-wrap\">\n <div class=\"form-group smart-cron-job-every\">\n <label for=\"smart-cron-job-every\" class=\"control-label\" translate>\n Interval\n </label>\n <div class=\"\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control\"\n id=\"smart-cron-job-every\"\n [(ngModel)]=\"base\"\n required=\"true\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngIf=\"base === 1\" value=\"1\" translate>\n Select…\n </option>\n <option *ngFor=\"let baseInterval of intervals\" [ngValue]=\"baseInterval.value\">\n {{ baseInterval.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"form-group smart-cron-job-on col-md-6\" *ngIf=\"base == 4\">\n <label class=\"control-label\" for=\"smart-cron-job-on\" translate>\n Day\n </label>\n\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control day-value\"\n id=\"smart-cron-job-on\"\n [(ngModel)]=\"cronConfig.weekday\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let dayOfWeek of daysOfWeekPosix\" [ngValue]=\"dayOfWeek.value\">\n {{ dayOfWeek.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-of col-md-6\" *ngIf=\"base == 6\">\n <label for=\"smart-cron-job-of\" class=\"control-label\" translate>\n Month\n </label>\n <div>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"smart-cron-job-of\"\n class=\"cron-select form-control month-value\"\n [(ngModel)]=\"cronConfig.month\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let month of months\" [ngValue]=\"month.value\">\n {{ month.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-on-the col-md-6\" *ngIf=\"base >= 5\">\n <label for=\"smart-cron-job-on-the\" class=\"control-label\" translate>\n Day\n </label>\n <div>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"smart-cron-job-on-the\"\n class=\"cron-select form-control day-of-month-value\"\n [(ngModel)]=\"cronConfig.day\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let dayOfMonth of daysOfMonth\" [ngValue]=\"dayOfMonth.value\">\n {{ dayOfMonth.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"form-group smart-cron-job-at\" *ngIf=\"base >= 2\">\n <label for=\"smart-cron-job-at-hour\" class=\"control-label\">\n <span *ngIf=\"base >= 3\" translate>Time</span>\n <span *ngIf=\"base < 3\" translate>Minutes</span>\n </label>\n <div>\n <div class=\"form-inline\">\n <div class=\"c8y-select-wrapper\" *ngIf=\"base >= 3\">\n <select\n id=\"smart-cron-job-at-hour\"\n class=\"cron-select form-control hour-value\"\n [(ngModel)]=\"cronConfig.hour\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let hour of hours\" [ngValue]=\"hour.value\">\n {{ hour.value | number: '2.0-0' }}\n </option>\n </select>\n <span></span>\n </div>\n <span *ngIf=\"base >= 3\"> : </span>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"cron-select form-control minute-value\"\n id=\"smart-cron-job-at-minute\"\n [(ngModel)]=\"cronConfig.minute\"\n (change)=\"onChangeSelect()\"\n >\n <option *ngFor=\"let minute of minutes\" [ngValue]=\"minute.value\">\n {{ minute.value | number: '2.0-0' }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"cronIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"emitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CronService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onChangeSelect":[{"__symbolic":"method"}]}},"ng1Modules":["c8y.upgrade.reports"]},"origins":{"ReportsModule":"./reports.module","ExportSchedulesComponent":"./export-schedules.component","ScheduleModalComponent":"./schedule-modal.component","ReportsService":"./reports.service","Export":"./export-schedules.interface","Schedule":"./export-schedules.interface","EmailConfig":"./export-schedules.interface","CronConfig":"./export-schedules.interface","EmittedCron":"./export-schedules.interface","EmitterPayload":"./export-schedules.interface","ActionType":"./export-schedules.interface","Base":"./export-schedules.interface","CronService":"./cron.service","CronComponent":"./cron.component","ng1Modules":"./ng1"},"importAs":"@c8y/ngx-components/reports"}
@@ -1,6 +1,6 @@
1
1
  import { Export, Schedule } from './export-schedules.interface';
2
2
  import { AlertService } from '@c8y/ngx-components';
3
- import { InventoryService, IdReference } from '@c8y/client';
3
+ import { InventoryService, IdReference, IFetchResponse, IIdentified } from '@c8y/client';
4
4
  import { FetchClient } from '@c8y/client';
5
5
  export declare class ReportsService {
6
6
  private alertService;
@@ -17,4 +17,5 @@ export declare class ReportsService {
17
17
  updateSchedules(exportId: IdReference, schedulesToRemove?: Schedule[], schedulesToAdd?: Schedule[]): Promise<boolean>;
18
18
  reschedule(exportId: IdReference): Promise<boolean>;
19
19
  deleteSchedule(schedule: Schedule, exportId: IdReference): Promise<boolean>;
20
+ removeConfiguration(config: IIdentified): Promise<IFetchResponse>;
20
21
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"exports":[{"from":"./unassign-modal.component"},{"from":"./delete-assets-modal.model"},{"from":"./add-group.service"},{"from":"./add-group.model"}],"metadata":{"GroupInfoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-group-info","template":"<div class=\"bg-gray-white\">\n <div class=\"card-block p-t-24 p-b-24 large-padding\">\n <div class=\"content-flex-70\">\n <div class=\"text-center\">\n <i class=\"c8y-icon-duocolor icon-48\" [c8yIcon]=\"groupIcon + '-open'\"></i>\n <p>\n <small class=\"label label-info\" *ngIf=\"group.c8y_IsDynamicGroup\">\n {{ 'Smart group' | translate }}\n </small>\n <small\n class=\"label label-info\"\n *ngIf=\"!group.c8y_IsDynamicGroup && !group.com_cumulocity_model_Agent\"\n >\n {{ 'Group' | translate }}\n </small>\n <small class=\"label label-info\" *ngIf=\"group.com_cumulocity_model_Agent\">\n {{ 'Remote group' | translate }}\n </small>\n </p>\n </div>\n\n <div class=\"flex-grow col-10\">\n <div class=\"content-flex-80\">\n <div class=\"col-9\">\n <form #groupNameForm=\"ngForm\">\n <c8y-form-group class=\"form-group-lg m-b-0\">\n <label class=\"sr-only\" translate>\n Name\n </label>\n\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">{{ group.name }}</p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"group.name\"\n name=\"name\"\n title=\"{{ 'Name' | translate }}\"\n size=\"{{ group.name.length + 2 }}\"\n placeholder=\"{{ 'e.g. My group' | translate }}\"\n maxlength=\"254\"\n required\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"update({ name: group.name }); groupNameForm.form.markAsPristine()\"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"groupNameForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </c8y-form-group>\n </form>\n <form #groupDescriptionForm=\"ngForm\">\n <label class=\"sr-only\" translate>\n Description\n </label>\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">{{ group.c8y_Notes }}</p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <textarea\n class=\"form-control\"\n [(ngModel)]=\"group.c8y_Notes\"\n name=\"description\"\n title=\"{{ 'Description' | translate }}\"\n cols=\"{{ group.c8y_Notes ? group.c8y_Notes.length : 25 }}\"\n placeholder=\"{{ 'e.g. My description' | translate }}\"\n ></textarea>\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"\n update({ c8y_Notes: group.c8y_Notes });\n groupDescriptionForm.form.markAsPristine()\n \"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"groupDescriptionForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n\n <form #smartGroupFilterForm=\"ngForm\" *ngIf=\"isSmartGroup()\">\n <c8y-form-group class=\"m-b-0 m-t-8\">\n <label class=\"m-b-0 text-nowrap\">\n {{ 'Smart group filter' | translate }}\n <button\n class=\"btn-clean text-primary m-r-4\"\n type=\"button\"\n popover=\"{{ filterHintMsg | translate }}\"\n triggers=\"focus\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button>\n </label>\n\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">\n {{ smartGroupFilter }}\n </p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"smartGroupFilter\"\n name=\"filter\"\n size=\"{{ smartGroupFilter.length + 2 }}\"\n placeholder=\"{{ 'e.g.' | translate }} $filter=(id eq '12*')\"\n maxlength=\"254\"\n title=\"{{ 'Smart group filter' | translate }}\"\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"\n update({ c8y_DeviceQueryString: smartGroupFilter });\n smartGroupFilterForm.form.markAsPristine()\n \"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"smartGroupFilterForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </c8y-form-group>\n </form>\n </div>\n <div class=\"flex-grow\">\n <p class=\"m-b-8\">\n <i c8yIcon=\"info-circle\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ 'Group info' | translate }}</span>\n </p>\n <ul class=\"list-unstyled small\">\n <li class=\"p-t-4 p-b-4 flex-row separator-top-bottom text-nowrap\">\n <label class=\"small m-b-0 m-r-8\">{{ 'Created' | translate }}</label>\n <span class=\"flex-item-right\">{{ group.creationTime | c8yDate }}</span>\n </li>\n <li class=\"p-t-4 p-b-4 flex-row separator-bottom text-nowrap\">\n <label class=\"small m-b-0 m-r-8\">{{ 'Last updated' | translate }}</label>\n <span class=\"flex-item-right\">{{ group.lastUpdated | c8yDate }}</span>\n </li>\n\n <li\n *ngIf=\"group.com_cumulocity_model_Agent\"\n class=\"p-t-4 p-b-4 flex-row separator-bottom text-nowrap\"\n >\n <label class=\"small m-b-0 m-r-8\">{{ 'Status' | translate }}</label>\n <span class=\"flex-item-right\" *ngIf=\"group.c8y_BrokerSource\">\n {{ group.c8y_BrokerSource.status }}\n </span>\n <span class=\"flex-item-right\" *ngIf=\"!group.c8y_BrokerSource\">\n {{ 'Offline' | translate }}\n </span>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"onGroupChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":25,"character":23},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":27,"character":32},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":28,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":29,"character":26},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":30,"character":23},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"ModalService","line":31,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"setHintMsg":[{"__symbolic":"method"}],"updateGroup":[{"__symbolic":"method"}],"updateSmartGroup":[{"__symbolic":"method"}],"setGroup":[{"__symbolic":"method"}],"isQueryExecutable":[{"__symbolic":"method"}]}},"SubAssetsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-sub-assets","template":"<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"!isSmartGroup()\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i><span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"!isSmartGroup()\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i><span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-flex d-col\">\n <c8y-group-info\n *ngIf=\"showGroupInfo\"\n [group]=\"group\"\n (onGroupChange)=\"groupChange($event)\"\n ></c8y-group-info>\n <c8y-sub-assets-grid\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n class=\"d-contents\"\n ></c8y-sub-assets-grid>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices=$event\"\n (selectedDevice)=\"showChildrenForDevice=$event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\" *ngIf=\"showAssignChildDevices\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":29,"character":19},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AppStateService","line":30,"character":22},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":31,"character":32},{"__symbolic":"reference","name":"SubAssetsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"groupChange":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SubAssetsGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"c8y-sub-assets-grid","template":"<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [refresh]=\"refresh\"\n [displayOptions]=\"displayOptions\"\n (onConfigChange)=\"configChange($event)\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n class=\"d-contents\"\n>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"c8y-group-add\" class=\"c8y-icon-duocolor\"></h1>\n <div>\n <p>\n <strong>{{ 'No items to display.' | translate }}</strong>\n </p>\n <small>{{ emptyStateText | translate }}</small>\n </div>\n </div>\n</c8y-data-grid>\n"}]}],"members":{"parentGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3},"arguments":["parent-group"]}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"emptyStateText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3},"arguments":["pagination"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3},"arguments":["actionControls"]}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"baseQuery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3},"arguments":["bulkActionControls"]}]}],"filterable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"sortable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"onColumnsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":78,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":3}}]}],"dataGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":88,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridComponent","line":88,"character":13},{"static":true}]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3},"arguments":["displayOptions"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":117,"character":28},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":118,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"setActionControls":[{"__symbolic":"method"}],"onUnassignAsset":[{"__symbolic":"method"}],"onDeleteAsset":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"trackByName":[{"__symbolic":"method"}],"onDataSourceModifier":[{"__symbolic":"method"}],"configChange":[{"__symbolic":"method"}],"uiOnlyCountersUpdate":[{"__symbolic":"method"}]}},"SubAssetsService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridService","line":36,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":44,"character":32},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":45,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AppStateService","line":46,"character":24},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":47,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"AssetNodeService","line":48,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":49,"character":34},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":50,"character":34},{"__symbolic":"reference","module":"@c8y/client","name":"SmartRulesService","line":51,"character":33},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":52,"character":28},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"Permissions","line":53,"character":34}]}],"getDefaultColumns":[{"__symbolic":"method"}],"getDefaultPagination":[{"__symbolic":"method"}],"getDefaultActionControls":[{"__symbolic":"method"}],"unassignAsset":[{"__symbolic":"method"}],"isDevice":[{"__symbolic":"method"}],"deleteAsset":[{"__symbolic":"method"}],"shouldShowWithDeviceUserCheckbox":[{"__symbolic":"method"}],"getDefaultBulkActionControls":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getCount":[{"__symbolic":"method"}],"getTotal":[{"__symbolic":"method"}],"canEditGroup":[{"__symbolic":"method"}],"canEditSmartGroup":[{"__symbolic":"method"}],"canDeleteSmartGroup":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"isUsingInventoryRoles":[{"__symbolic":"method"}],"getAssetsStatistics":[{"__symbolic":"method"}],"buildCombinedRootQueryFilter":[{"__symbolic":"method"}],"deleteGroup":[{"__symbolic":"method"}],"deleteDevice":[{"__symbolic":"method"}],"deactivateSmartrulesForAsset":[{"__symbolic":"method"}],"isDeviceUser":[{"__symbolic":"method"}],"deleteDeviceWithUser":[{"__symbolic":"method"}],"getAssetsFilters":[{"__symbolic":"method"}]}},"SubAssetsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SubAssetsComponent"},{"__symbolic":"reference","name":"SubAssetsGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"GroupsComponent"},{"__symbolic":"reference","name":"GroupInfoComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"AssignDevicesComponent"},{"__symbolic":"reference","name":"AssignChildDevicesComponent"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":29,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridModule","line":29,"character":24},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":29,"character":58}],"entryComponents":[{"__symbolic":"reference","name":"SubAssetsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"GroupsComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"exports":[],"providers":[{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":40,"character":15},"useValue":[{"context":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"ViewContext","line":43,"character":19},"member":"Group"},"path":"subassets","priority":1000,"icon":"c8y-group-open","label":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"gettext","line":47,"character":17},"arguments":["Subassets"]},"component":{"__symbolic":"reference","name":"SubAssetsComponent"}},{"path":"group","component":{"__symbolic":"reference","name":"GroupsComponent"}}],"multi":true},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"GroupsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-groups-name","template":"<c8y-title>\n {{'Groups'|translate}}\n</c8y-title>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n >\n <i c8yIcon=\"plus-circle\"></i>&nbsp;<span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n class=\"content-fullpage d-flex d-col\"\n></c8y-sub-assets-grid>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"Permissions","line":13,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}]}},"AssignDevicesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-assign-devices","template":"<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </h4>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"'Select target devices' | translate\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [itemsSelectLimit]=\"itemsSelectLimit\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n (onChildDevices)=\"setActionControls($event)\"\n [showChildDevices]=\"{ show: true, value: false }\"\n class=\"flex-grow col-xs-12 no-gutter\"\n>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n</c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button (click)=\"onCancel.emit()\" type=\"button\" class=\"btn btn-default\" title=\"{{'Cancel' | translate}}\">\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n (click)=\"assignDevices()\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n title=\"{{'Assign' | translate}}\"\n [disabled]=\"selected.length === 0\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"onShowChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"selectedDevice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":30,"character":81}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":34,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":40,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"setNotIncludedInGroupQuery":[{"__symbolic":"method"}],"setActionControls":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}],"selectChildren":[{"__symbolic":"method"}]}},"AssignChildDevicesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-assign-child-devices","template":"<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign child devices' | translate }}\n </h4>\n </div>\n </div>\n</div>\n\n<div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-sub-assets-grid\n [title]=\"'Select target child devices' | translate\"\n [emptyStateText]=\"'All child devices are already assigned to the group' | translate\"\n [refresh]=\"refresh\"\n [actionControls]=\"[]\"\n [selectable]=\"true\"\n [parent-group]=\"parentDevice\"\n [baseQuery]=\"baseQuery\"\n (itemsSelect)=\"onSelected($event)\"\n class=\"d-contents\"\n >\n </c8y-sub-assets-grid>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n (click)=\"onCancel.emit()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n (click)=\"assignDevices()\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n title=\"{{ 'Assign' | translate }}\"\n [disabled]=\"selected.length === 0\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"parentDevice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":22,"character":19},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":24,"character":30},{"__symbolic":"reference","name":"ɵd"}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":28,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":34,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"setNotIncludedInGroupQuery":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<device-status class=\"m-l-8\" [mo]=\"context.item\" *ngIf=\"isDevice\"></device-status>\n<i\n [c8yIcon]=\"groupIcon\"\n title=\"{{ iconTitle | translate }}\"\n class=\"m-l-8 c8y-icon-duocolor\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":13,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":14,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"getIconTitle":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"c8y-delete-assets-modal","template":"<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n <form #assetsForm=\"ngForm\">\n <p class=\"text-wrap m-b-16\">\n {{ message | translate }}\n </p>\n <c8y-form-group *ngIf=\"showWithCascadeCheckbox\" class=\"m-b-0\">\n <label title=\"{{ 'Delete devices' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"cascade\" [(ngModel)]=\"config.cascade\" />\n <span></span>\n <span>\n {{ 'Also delete all devices inside selected asset and its subassets.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n <c8y-form-group *ngIf=\"showWithDeviceUserCheckbox\" class=\"m-b-0\">\n <label title=\"{{ 'Delete associated device owner' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"withDeviceUser\" [(ngModel)]=\"config.withDeviceUser\" />\n <span></span>\n <span>\n {{ 'Also delete associated device owner.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n </form>\n</c8y-confirm-modal>\n"}]}],"members":{"showWithCascadeCheckbox":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"showWithDeviceUserCheckbox":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"asset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":21,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":32,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-unassign-modal","template":"<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n <span>{{ message | translate }}</span>\n</c8y-confirm-modal>\n"}]}],"members":{"asset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":17,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":5,"character":40}]}],"assignDevices":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵf"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridModule","line":9,"character":24},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":42},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":55}],"entryComponents":[{"__symbolic":"reference","name":"ɵf"}],"exports":[{"__symbolic":"reference","name":"ɵf"}],"providers":[{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":14,"character":15},"useValue":[{"path":"add-group","component":{"__symbolic":"reference","name":"ɵf"}}],"multi":true},{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-add-group","template":"<c8y-title *ngIf=\"!currentGroupId\">\n {{ 'Add group' | translate }}\n</c8y-title>\n\n<div class=\"d-contents\" *ngIf=\"!currentGroupId; else stepper\">\n <ng-container [ngTemplateOutlet]=\"stepper\"></ng-container>\n</div>\n\n<ng-template #stepper>\n <c8y-stepper\n class=\"flex-col flex-nowrap no-align-items fit-h c8y-stepper--no-btns\"\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n [customClasses]=\"['col-md-6', 'col-md-offset-3', 'p-t-16', 'p-b-32', 'flex-no-shrink']\"\n linear\n >\n <cdk-step [stepControl]=\"formGroupStepOne\" [label]=\"'New group' | translate\">\n <div class=\"p-16 p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'New group' | translate }}\n </h4>\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-b-0\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <c8y-form-group>\n <div [formGroup]=\"formGroupStepOne\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n class=\"form-control\"\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"{{ 'e.g. First floor' | translate }} \"\n #nameRef\n required\n />\n <c8y-messages>\n <c8y-message *ngIf=\"!formGroupStepOne.untouched && !nameRef.value\" translate\n >This field is required.</c8y-message\n >\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n class=\"form-control\"\n type=\"text\"\n formControlName=\"description\"\n placeholder=\"{{ 'e.g. first floor devices' | translate }}\"\n />\n </c8y-form-group>\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <div [formGroup]=\"formGroupStepOne\"></div>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-stepper-buttons\n class=\"d-block card-footer p-24 separator\"\n (onCancel)=\"onCancel.emit()\"\n [labels]=\"{ next: btnLabels.next, cancel: btnLabels.cancel }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step [label]=\"'Assign devices' | translate\">\n <div class=\"p-16 p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </h4>\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 no-gutter flex-grow\">\n <c8y-device-grid\n [title]=\"'Select target devices' | translate\"\n [actionControls]=\"[]\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"'true'\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [itemsSelectLimit]=\"ITEMS_SELECT_LIMIT\"\n [refresh]=\"refresh\"\n class=\"d-contents\"\n >\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n </c8y-device-grid>\n </div>\n <c8y-stepper-buttons\n class=\"d-block card-footer p-24 separator\"\n (onCancel)=\"onCancel.emit()\"\n (onCustom)=\"createGroup()\"\n [labels]=\"{ custom: btnLabels.create }\"\n [pending]=\"pendingStatus\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</ng-template>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"onDeviceQueryStringChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"stepper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"C8yStepper","line":25,"character":13},{"static":false}]}]}],"nameInputRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["nameRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridService","line":46,"character":33},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":47,"character":16},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":49,"character":19},{"__symbolic":"reference","name":"SubAssetsService"}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":53,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":61,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"onBackspaceKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":65,"character":3},"arguments":["document:keydown.backspace",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"createGroup":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}],"resetStepper":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setFocusOnNameInput":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":9,"character":40}]}],"createGroupAndAssignDevices":[{"__symbolic":"method"}],"getGroupMO":[{"__symbolic":"method"}],"getGroupType":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}]}}},"origins":{"GroupInfoComponent":"./group-info.component","SubAssetsComponent":"./sub-assets.component","SubAssetsGridComponent":"./sub-assets-grid.component","SubAssetsService":"./sub-assets.service","SubAssetsModule":"./sub-assets.module","GroupsComponent":"./groups.component","AssignDevicesComponent":"./assign-devices/assign-devices.component","AssignChildDevicesComponent":"./assign-devices/assign-child-devices.component","ɵa":"./columns/asset-type.cell-renderer.component","ɵb":"./delete-assets-modal/delete-assets-modal.component","ɵc":"./unassign-assets-modal/unassign-modal.component","ɵd":"./assign-devices/assign-devices.service","ɵe":"./add-group/add-group.module","ɵf":"./add-group/add-group.component","ɵg":"./add-group/add-group.service"},"importAs":"@c8y/ngx-components/sub-assets"}
1
+ {"__symbolic":"module","version":4,"exports":[{"from":"./unassign-modal.component"},{"from":"./delete-assets-modal.model"},{"from":"./add-group.service"},{"from":"./add-group.model"}],"metadata":{"GroupInfoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-group-info","template":"<div class=\"bg-gray-white\">\n <div class=\"card-block p-t-24 p-b-24 large-padding\">\n <div class=\"content-flex-70\">\n <div class=\"text-center\">\n <i class=\"c8y-icon-duocolor icon-48\" [c8yIcon]=\"groupIcon + '-open'\"></i>\n <p>\n <small class=\"label label-info\" *ngIf=\"group.c8y_IsDynamicGroup\">\n {{ 'Smart group' | translate }}\n </small>\n <small\n class=\"label label-info\"\n *ngIf=\"!group.c8y_IsDynamicGroup && !group.com_cumulocity_model_Agent\"\n >\n {{ 'Group' | translate }}\n </small>\n <small class=\"label label-info\" *ngIf=\"group.com_cumulocity_model_Agent\">\n {{ 'Remote group' | translate }}\n </small>\n </p>\n </div>\n\n <div class=\"flex-grow col-10\">\n <div class=\"content-flex-80\">\n <div class=\"col-9\">\n <form #groupNameForm=\"ngForm\">\n <c8y-form-group class=\"form-group-lg m-b-0\">\n <label class=\"sr-only\" translate>\n Name\n </label>\n\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">{{ group.name }}</p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"group.name\"\n name=\"name\"\n title=\"{{ 'Name' | translate }}\"\n size=\"{{ group.name.length + 2 }}\"\n placeholder=\"{{ 'e.g. My group' | translate }}\"\n maxlength=\"254\"\n required\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"update({ name: group.name }); groupNameForm.form.markAsPristine()\"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"groupNameForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </c8y-form-group>\n </form>\n <form #groupDescriptionForm=\"ngForm\">\n <label class=\"sr-only\" translate>\n Description\n </label>\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">{{ group.c8y_Notes }}</p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <textarea\n class=\"form-control\"\n [(ngModel)]=\"group.c8y_Notes\"\n name=\"description\"\n title=\"{{ 'Description' | translate }}\"\n cols=\"{{ group.c8y_Notes ? group.c8y_Notes.length : 25 }}\"\n placeholder=\"{{ 'e.g. My description' | translate }}\"\n ></textarea>\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"\n update({ c8y_Notes: group.c8y_Notes });\n groupDescriptionForm.form.markAsPristine()\n \"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"groupDescriptionForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n\n <form #smartGroupFilterForm=\"ngForm\" *ngIf=\"isSmartGroup()\">\n <c8y-form-group class=\"m-b-0 m-t-8\">\n <label class=\"m-b-0 text-nowrap\">\n {{ 'Smart group filter' | translate }}\n <button\n class=\"btn-clean text-primary m-r-4\"\n type=\"button\"\n popover=\"{{ filterHintMsg | translate }}\"\n triggers=\"focus\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button>\n </label>\n\n <p *ngIf=\"!canEdit\" class=\"form-control-static\">\n {{ smartGroupFilter }}\n </p>\n <div *ngIf=\"canEdit\" class=\"input-group input-group-editable\">\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"smartGroupFilter\"\n name=\"filter\"\n size=\"{{ smartGroupFilter.length + 2 }}\"\n placeholder=\"{{ 'e.g.' | translate }} $filter=(id eq '12*')\"\n maxlength=\"254\"\n title=\"{{ 'Smart group filter' | translate }}\"\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n (click)=\"\n update({ c8y_DeviceQueryString: smartGroupFilter });\n smartGroupFilterForm.form.markAsPristine()\n \"\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n [disabled]=\"smartGroupFilterForm.form.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </c8y-form-group>\n </form>\n </div>\n <div class=\"flex-grow\">\n <p class=\"m-b-8\">\n <i c8yIcon=\"info-circle\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ 'Group info' | translate }}</span>\n </p>\n <ul class=\"list-unstyled small\">\n <li class=\"p-t-4 p-b-4 flex-row separator-top-bottom text-nowrap\">\n <label class=\"small m-b-0 m-r-8\">{{ 'Created' | translate }}</label>\n <span class=\"flex-item-right\">{{ group.creationTime | c8yDate }}</span>\n </li>\n <li class=\"p-t-4 p-b-4 flex-row separator-bottom text-nowrap\">\n <label class=\"small m-b-0 m-r-8\">{{ 'Last updated' | translate }}</label>\n <span class=\"flex-item-right\">{{ group.lastUpdated | c8yDate }}</span>\n </li>\n\n <li\n *ngIf=\"group.com_cumulocity_model_Agent\"\n class=\"p-t-4 p-b-4 flex-row separator-bottom text-nowrap\"\n >\n <label class=\"small m-b-0 m-r-8\">{{ 'Status' | translate }}</label>\n <span class=\"flex-item-right\" *ngIf=\"group.c8y_BrokerSource\">\n {{ group.c8y_BrokerSource.status }}\n </span>\n <span class=\"flex-item-right\" *ngIf=\"!group.c8y_BrokerSource\">\n {{ 'Offline' | translate }}\n </span>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"onGroupChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":25,"character":23},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":27,"character":32},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":28,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":29,"character":26},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":30,"character":23},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"ModalService","line":31,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"setHintMsg":[{"__symbolic":"method"}],"updateGroup":[{"__symbolic":"method"}],"updateSmartGroup":[{"__symbolic":"method"}],"setGroup":[{"__symbolic":"method"}],"isQueryExecutable":[{"__symbolic":"method"}]}},"SubAssetsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-sub-assets","template":"<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"!isSmartGroup()\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i><span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"!isSmartGroup()\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i><span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage d-flex d-col\">\n <c8y-group-info [group]=\"group\" (onGroupChange)=\"groupChange($event)\"></c8y-group-info>\n <c8y-sub-assets-grid\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n class=\"d-contents\"\n ></c8y-sub-assets-grid>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices = $event\"\n (selectedDevice)=\"showChildrenForDevice = $event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\" *ngIf=\"showAssignChildDevices\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":28,"character":19},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":29,"character":32},{"__symbolic":"reference","name":"SubAssetsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"groupChange":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SubAssetsGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"c8y-sub-assets-grid","template":"<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [refresh]=\"refresh\"\n [displayOptions]=\"displayOptions\"\n (onConfigChange)=\"configChange($event)\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n class=\"d-contents\"\n>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"c8y-group-add\" class=\"c8y-icon-duocolor\"></h1>\n <div>\n <p>\n <strong>{{ 'No items to display.' | translate }}</strong>\n </p>\n <small>{{ emptyStateText | translate }}</small>\n </div>\n </div>\n</c8y-data-grid>\n"}]}],"members":{"parentGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3},"arguments":["parent-group"]}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"emptyStateText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3},"arguments":["pagination"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3},"arguments":["actionControls"]}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"baseQuery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3},"arguments":["bulkActionControls"]}]}],"filterable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"sortable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"onColumnsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":78,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":3}}]}],"dataGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":88,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"DataGridComponent","line":88,"character":13},{"static":true}]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3},"arguments":["displayOptions"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":117,"character":28},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":118,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"setActionControls":[{"__symbolic":"method"}],"onUnassignAsset":[{"__symbolic":"method"}],"onDeleteAsset":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"trackByName":[{"__symbolic":"method"}],"onDataSourceModifier":[{"__symbolic":"method"}],"configChange":[{"__symbolic":"method"}],"uiOnlyCountersUpdate":[{"__symbolic":"method"}]}},"SubAssetsService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridService","line":36,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":44,"character":32},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":45,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AppStateService","line":46,"character":24},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":47,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"AssetNodeService","line":48,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":49,"character":34},{"__symbolic":"reference","module":"@c8y/client","name":"SmartGroupsService","line":50,"character":34},{"__symbolic":"reference","module":"@c8y/client","name":"SmartRulesService","line":51,"character":33},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":52,"character":28},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"Permissions","line":53,"character":34}]}],"getDefaultColumns":[{"__symbolic":"method"}],"getDefaultPagination":[{"__symbolic":"method"}],"getDefaultActionControls":[{"__symbolic":"method"}],"unassignAsset":[{"__symbolic":"method"}],"isDevice":[{"__symbolic":"method"}],"deleteAsset":[{"__symbolic":"method"}],"shouldShowWithDeviceUserCheckbox":[{"__symbolic":"method"}],"getDefaultBulkActionControls":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getCount":[{"__symbolic":"method"}],"getTotal":[{"__symbolic":"method"}],"canEditGroup":[{"__symbolic":"method"}],"canEditSmartGroup":[{"__symbolic":"method"}],"canDeleteSmartGroup":[{"__symbolic":"method"}],"isSmartGroup":[{"__symbolic":"method"}],"isUsingInventoryRoles":[{"__symbolic":"method"}],"getAssetsStatistics":[{"__symbolic":"method"}],"buildCombinedRootQueryFilter":[{"__symbolic":"method"}],"deleteGroup":[{"__symbolic":"method"}],"deleteDevice":[{"__symbolic":"method"}],"deactivateSmartrulesForAsset":[{"__symbolic":"method"}],"isDeviceUser":[{"__symbolic":"method"}],"deleteDeviceWithUser":[{"__symbolic":"method"}],"getAssetsFilters":[{"__symbolic":"method"}]}},"SubAssetsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SubAssetsComponent"},{"__symbolic":"reference","name":"SubAssetsGridComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"GroupsComponent"},{"__symbolic":"reference","name":"GroupInfoComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"AssignDevicesComponent"},{"__symbolic":"reference","name":"AssignChildDevicesComponent"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":29,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridModule","line":29,"character":24},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":29,"character":58}],"entryComponents":[{"__symbolic":"reference","name":"SubAssetsComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"GroupsComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"exports":[],"providers":[{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":40,"character":15},"useValue":[{"context":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"ViewContext","line":43,"character":19},"member":"Group"},"path":"subassets","priority":1000,"icon":"c8y-group-open","label":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"gettext","line":47,"character":17},"arguments":["Subassets"]},"component":{"__symbolic":"reference","name":"SubAssetsComponent"}},{"path":"group","component":{"__symbolic":"reference","name":"GroupsComponent"}}],"multi":true},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"GroupsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-groups-name","template":"<c8y-title>\n {{'Groups'|translate}}\n</c8y-title>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n >\n <i c8yIcon=\"plus-circle\"></i>&nbsp;<span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n class=\"content-fullpage d-flex d-col\"\n></c8y-sub-assets-grid>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"Permissions","line":13,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}]}},"AssignDevicesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-assign-devices","template":"<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </h4>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"'Select target devices' | translate\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [itemsSelectLimit]=\"itemsSelectLimit\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n (onChildDevices)=\"setActionControls($event)\"\n [showChildDevices]=\"{ show: true, value: false }\"\n class=\"flex-grow col-xs-12 no-gutter\"\n>\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n</c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button (click)=\"onCancel.emit()\" type=\"button\" class=\"btn btn-default\" title=\"{{'Cancel' | translate}}\">\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n (click)=\"assignDevices()\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n title=\"{{'Assign' | translate}}\"\n [disabled]=\"selected.length === 0\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"onShowChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"selectedDevice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":30,"character":81}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":34,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":40,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"setNotIncludedInGroupQuery":[{"__symbolic":"method"}],"setActionControls":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}],"selectChildren":[{"__symbolic":"method"}]}},"AssignChildDevicesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-assign-child-devices","template":"<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign child devices' | translate }}\n </h4>\n </div>\n </div>\n</div>\n\n<div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-sub-assets-grid\n [title]=\"'Select target child devices' | translate\"\n [emptyStateText]=\"'All child devices are already assigned to the group' | translate\"\n [refresh]=\"refresh\"\n [actionControls]=\"[]\"\n [selectable]=\"true\"\n [parent-group]=\"parentDevice\"\n [baseQuery]=\"baseQuery\"\n (itemsSelect)=\"onSelected($event)\"\n class=\"d-contents\"\n >\n </c8y-sub-assets-grid>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n (click)=\"onCancel.emit()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n (click)=\"assignDevices()\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n title=\"{{ 'Assign' | translate }}\"\n [disabled]=\"selected.length === 0\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"parentDevice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":22,"character":19},{"__symbolic":"reference","name":"SubAssetsService"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":24,"character":30},{"__symbolic":"reference","name":"ɵd"}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":28,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":34,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"setNotIncludedInGroupQuery":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"template":"<device-status class=\"m-l-8\" [mo]=\"context.item\" *ngIf=\"isDevice\"></device-status>\n<i\n [c8yIcon]=\"groupIcon\"\n title=\"{{ iconTitle | translate }}\"\n class=\"m-l-8 c8y-icon-duocolor\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CellRendererContext","line":13,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/assets-navigator","name":"DeviceGroupService","line":14,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"getIconTitle":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"c8y-delete-assets-modal","template":"<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n <form #assetsForm=\"ngForm\">\n <p class=\"text-wrap m-b-16\">\n {{ message | translate }}\n </p>\n <c8y-form-group *ngIf=\"showWithCascadeCheckbox\" class=\"m-b-0\">\n <label title=\"{{ 'Delete devices' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"cascade\" [(ngModel)]=\"config.cascade\" />\n <span></span>\n <span>\n {{ 'Also delete all devices inside selected asset and its subassets.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n <c8y-form-group *ngIf=\"showWithDeviceUserCheckbox\" class=\"m-b-0\">\n <label title=\"{{ 'Delete associated device owner' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"withDeviceUser\" [(ngModel)]=\"config.withDeviceUser\" />\n <span></span>\n <span>\n {{ 'Also delete associated device owner.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n </form>\n</c8y-confirm-modal>\n"}]}],"members":{"showWithCascadeCheckbox":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"showWithDeviceUserCheckbox":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"asset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":21,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":32,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-unassign-modal","template":"<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n <span>{{ message | translate }}</span>\n</c8y-confirm-modal>\n"}]}],"members":{"asset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":17,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":5,"character":40}]}],"assignDevices":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵf"}],"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridModule","line":9,"character":24},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":42},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":55}],"entryComponents":[{"__symbolic":"reference","name":"ɵf"}],"exports":[{"__symbolic":"reference","name":"ɵf"}],"providers":[{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":14,"character":15},"useValue":[{"path":"add-group","component":{"__symbolic":"reference","name":"ɵf"}}],"multi":true},{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-add-group","template":"<c8y-title *ngIf=\"!currentGroupId\">\n {{ 'Add group' | translate }}\n</c8y-title>\n\n<div class=\"d-contents\" *ngIf=\"!currentGroupId; else stepper\">\n <ng-container [ngTemplateOutlet]=\"stepper\"></ng-container>\n</div>\n\n<ng-template #stepper>\n <c8y-stepper\n class=\"flex-col flex-nowrap no-align-items fit-h c8y-stepper--no-btns\"\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n [customClasses]=\"['col-md-6', 'col-md-offset-3', 'p-t-16', 'p-b-32', 'flex-no-shrink']\"\n linear\n >\n <cdk-step [stepControl]=\"formGroupStepOne\" [label]=\"'New group' | translate\">\n <div class=\"p-16 p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'New group' | translate }}\n </h4>\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-b-0\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <c8y-form-group>\n <div [formGroup]=\"formGroupStepOne\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n class=\"form-control\"\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"{{ 'e.g. First floor' | translate }} \"\n #nameRef\n required\n />\n <c8y-messages>\n <c8y-message *ngIf=\"!formGroupStepOne.untouched && !nameRef.value\" translate\n >This field is required.</c8y-message\n >\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n class=\"form-control\"\n type=\"text\"\n formControlName=\"description\"\n placeholder=\"{{ 'e.g. first floor devices' | translate }}\"\n />\n </c8y-form-group>\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <div [formGroup]=\"formGroupStepOne\"></div>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-stepper-buttons\n class=\"d-block card-footer p-24 separator\"\n (onCancel)=\"onCancel.emit()\"\n [labels]=\"{ next: btnLabels.next, cancel: btnLabels.cancel }\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step [label]=\"'Assign devices' | translate\">\n <div class=\"p-16 p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <h4 class=\"text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </h4>\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 no-gutter flex-grow\">\n <c8y-device-grid\n [title]=\"'Select target devices' | translate\"\n [actionControls]=\"[]\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"'true'\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [itemsSelectLimit]=\"ITEMS_SELECT_LIMIT\"\n [refresh]=\"refresh\"\n class=\"d-contents\"\n >\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ 'No matching devices.' | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n </c8y-device-grid>\n </div>\n <c8y-stepper-buttons\n class=\"d-block card-footer p-24 separator\"\n (onCancel)=\"onCancel.emit()\"\n (onCustom)=\"createGroup()\"\n [labels]=\"{ custom: btnLabels.create }\"\n [pending]=\"pendingStatus\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n</ng-template>\n"}]}],"members":{"currentGroupId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"onDeviceQueryStringChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"stepper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"C8yStepper","line":25,"character":13},{"static":false}]}]}],"nameInputRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["nameRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components/device-grid","name":"DeviceGridService","line":46,"character":33},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":47,"character":16},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":49,"character":19},{"__symbolic":"reference","name":"SubAssetsService"}]}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":53,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}],"onEscapeKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":61,"character":3},"arguments":["document:keydown.escape",["$event"]]}]}],"onBackspaceKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":65,"character":3},"arguments":["document:keydown.backspace",["$event"]]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"createGroup":[{"__symbolic":"method"}],"onSelected":[{"__symbolic":"method"}],"resetStepper":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setFocusOnNameInput":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":9,"character":40}]}],"createGroupAndAssignDevices":[{"__symbolic":"method"}],"getGroupMO":[{"__symbolic":"method"}],"getGroupType":[{"__symbolic":"method"}],"assignDevices":[{"__symbolic":"method"}]}}},"origins":{"GroupInfoComponent":"./group-info.component","SubAssetsComponent":"./sub-assets.component","SubAssetsGridComponent":"./sub-assets-grid.component","SubAssetsService":"./sub-assets.service","SubAssetsModule":"./sub-assets.module","GroupsComponent":"./groups.component","AssignDevicesComponent":"./assign-devices/assign-devices.component","AssignChildDevicesComponent":"./assign-devices/assign-child-devices.component","ɵa":"./columns/asset-type.cell-renderer.component","ɵb":"./delete-assets-modal/delete-assets-modal.component","ɵc":"./unassign-assets-modal/unassign-modal.component","ɵd":"./assign-devices/assign-devices.service","ɵe":"./add-group/add-group.module","ɵf":"./add-group/add-group.component","ɵg":"./add-group/add-group.service"},"importAs":"@c8y/ngx-components/sub-assets"}
@@ -1,12 +1,11 @@
1
1
  import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ActivatedRoute } from '@angular/router';
3
3
  import { IIdentified, IManagedObject } from '@c8y/client';
4
- import { AppStateService, DisplayOptions } from '@c8y/ngx-components';
4
+ import { DisplayOptions } from '@c8y/ngx-components';
5
5
  import { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';
6
6
  import { SubAssetsService } from './sub-assets.service';
7
7
  export declare class SubAssetsComponent implements OnInit, OnDestroy {
8
8
  private route;
9
- private appState;
10
9
  private deviceGroupService;
11
10
  private subAssetsService;
12
11
  currentGroupId: IIdentified;
@@ -17,13 +16,12 @@ export declare class SubAssetsComponent implements OnInit, OnDestroy {
17
16
  showAssignDevices: boolean;
18
17
  requestInProgress: boolean;
19
18
  group: IManagedObject;
20
- showGroupInfo: boolean;
21
19
  showAssignChildDevices: boolean;
22
20
  refresh: EventEmitter<any>;
23
21
  filterable: boolean;
24
22
  displayOptions: DisplayOptions;
25
23
  private dataSub;
26
- constructor(route: ActivatedRoute, appState: AppStateService, deviceGroupService: DeviceGroupService, subAssetsService: SubAssetsService);
24
+ constructor(route: ActivatedRoute, deviceGroupService: DeviceGroupService, subAssetsService: SubAssetsService);
27
25
  ngOnInit(): void;
28
26
  groupChange(group: IManagedObject): void;
29
27
  isSmartGroup(): boolean;