@c8y/ngx-components 1006.6.36 → 1006.6.40
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.
- package/bundles/c8y-ngx-components-connectivity.umd.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +400 -131
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +2 -2
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.d.ts +90 -87
- package/c8y-ngx-components.metadata.json +1 -1
- package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
- package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
- package/core/authentication/new-password.component.d.ts +8 -6
- package/core/docs/guide-docs.component.d.ts +25 -3
- package/core/forms/validation-pattern.d.ts +1 -0
- package/core/i18n/force-html-translate.directive.d.ts +32 -0
- package/core/login/change-password.component.d.ts +1 -1
- package/core/login/login.service.d.ts +15 -2
- package/core/login/password-strength-validator.directive.d.ts +9 -0
- package/core/login/strength-validator-service.d.ts +7 -0
- package/core/user/user-edit.component.d.ts +4 -2
- package/esm2015/c8y-ngx-components.js +90 -87
- package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm2015/core/authentication/new-password.component.js +15 -20
- package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm2015/core/docs/guide-docs.component.js +69 -4
- package/esm2015/core/forms/validation-pattern.js +2 -1
- package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
- package/esm2015/core/i18n/i18n.module.js +5 -3
- package/esm2015/core/i18n/pattern-messages.data.js +2 -2
- package/esm2015/core/login/change-password.component.js +5 -5
- package/esm2015/core/login/credentials.component.js +2 -2
- package/esm2015/core/login/login.module.js +4 -2
- package/esm2015/core/login/login.service.js +40 -6
- package/esm2015/core/login/password-strength-validator.directive.js +32 -0
- package/esm2015/core/login/strength-validator-service.js +28 -0
- package/esm2015/core/user/user-edit.component.js +10 -5
- package/esm2015/repository/configuration/configuration-list.component.js +2 -2
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/esm5/c8y-ngx-components.js +90 -87
- package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm5/core/authentication/new-password.component.js +21 -25
- package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm5/core/docs/guide-docs.component.js +72 -4
- package/esm5/core/forms/validation-pattern.js +2 -1
- package/esm5/core/i18n/force-html-translate.directive.js +105 -0
- package/esm5/core/i18n/i18n.module.js +5 -3
- package/esm5/core/i18n/pattern-messages.data.js +2 -2
- package/esm5/core/login/change-password.component.js +5 -5
- package/esm5/core/login/credentials.component.js +2 -2
- package/esm5/core/login/login.module.js +4 -2
- package/esm5/core/login/login.service.js +43 -6
- package/esm5/core/login/password-strength-validator.directive.js +38 -0
- package/esm5/core/login/strength-validator-service.js +29 -0
- package/esm5/core/user/user-edit.component.js +19 -9
- package/esm5/repository/configuration/configuration-list.component.js +2 -2
- package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
- package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm2015/c8y-ngx-components-repository.js +1 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +281 -40
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm5/c8y-ngx-components-repository.js +1 -1
- package/fesm5/c8y-ngx-components-repository.js.map +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +315 -49
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/de.po +71 -60
- package/locales/es.po +120 -85
- package/locales/fr.po +107 -72
- package/locales/ja_JP.po +89 -78
- package/locales/ko.po +92 -57
- package/locales/locales.pot +9 -9
- package/locales/nl.po +95 -60
- package/locales/pl.po +88 -53
- package/locales/pt_BR.po +174 -138
- package/locales/ru.po +120 -85
- package/locales/zh_CN.po +87 -52
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-sensor-phone.js","sources":["ng://@c8y/ngx-components/sensor-phone/sensor-phone-modal.component.ts","ng://@c8y/ngx-components/sensor-phone/sensor-phone.service.ts","ng://@c8y/ngx-components/sensor-phone/connect-smartphone.factory.ts","ng://@c8y/ngx-components/sensor-phone/sensor-phone.module.ts","ng://@c8y/ngx-components/sensor-phone/c8y-ngx-components-sensor-phone.ts"],"sourcesContent":["import { Component, ViewChild, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap';\nimport { C8yStepper, gettext } from '@c8y/ngx-components';\nimport { SensorPhoneService } from './sensor-phone.service';\nimport { throttleTime } from 'rxjs/operators';\nimport { Realtime, DeviceRegistrationService } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { get } from 'lodash-es';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-sensor-phone',\n templateUrl: 'sensor-phone-modal.component.html'\n})\nexport class SensorPhoneModalComponent implements AfterViewInit {\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild(C8yStepper, { read: ElementRef, static: false })\n container: ElementRef;\n pendingDeviceBootstrap: boolean = true;\n success;\n errorMessage = gettext('Failed to register a smartphone.');\n registrationData = null;\n tenantId;\n instance;\n deviceId: string;\n dashboardLink: string = '';\n private bootStrapObservable: Subscription;\n private managedObjectObservable: Subscription;\n\n constructor(\n private bsModalRef: BsModalRef,\n private sensorPhoneService: SensorPhoneService,\n private renderer: Renderer2,\n private deviceRegistrationService: DeviceRegistrationService,\n private realTime: Realtime,\n private router: Router\n ) {}\n\n ngAfterViewInit() {\n this.stepper.selectionChange\n .pipe(throttleTime(100))\n .subscribe((partialStepper: Partial<C8yStepper>) => this.bootstrapDevice(partialStepper));\n this.tenantId = this.sensorPhoneService.getTenantName();\n this.instance = this.sensorPhoneService.getHost();\n }\n\n async bootstrapDevice(stepper: Partial<C8yStepper>) {\n const { selectedIndex } = stepper;\n if (selectedIndex && selectedIndex === 2) {\n let device;\n this.deviceId = this.generateDeviceId();\n this.bootStrapObservable = this.realTime\n .observable('/bootstrap')\n .pipe(\n filter(\n status =>\n get(status, 'data.id') === this.deviceId && get(status, 'realtimeAction') === 'UPDATE'\n )\n )\n .subscribe(status => {\n this.pendingDeviceBootstrap = false;\n this.onDeviceStatusChanged(this.deviceId);\n this.bootStrapObservable.unsubscribe();\n });\n try {\n const group = await this.sensorPhoneService.addPhoneGroup();\n if (group) {\n device = { id: this.deviceId, groupId: group.id };\n\n this.registrationData = this.sensorPhoneService.generateRegistrationData(this.deviceId);\n\n const { data, res } = await this.deviceRegistrationService.create(device);\n if (res.status !== this.sensorPhoneService.HTTP_STATUS_CODE.CREATED) {\n this.onFailure();\n }\n }\n } catch (error) {\n this.onFailure();\n }\n }\n }\n\n generateDeviceId() {\n return 'phone' + Math.floor(Math.random() * 100000);\n }\n\n async onDeviceStatusChanged(deviceId) {\n let deviceMo;\n let dashboardMo;\n this.managedObjectObservable = this.realTime\n .observable(`/managedobjects/*`)\n .pipe(\n filter(\n status =>\n get(status, 'data.owner') === `device_${deviceId}` &&\n get(status, 'realtimeAction') === 'CREATE'\n )\n )\n .subscribe(response => {\n const mo = response.data;\n if (mo.type === 'c8y_SensorPhone') {\n deviceMo = mo;\n }\n if (mo.c8y_Dashboard) {\n dashboardMo = mo;\n }\n if (deviceMo && dashboardMo) {\n this.onManagedObjectCreated(deviceMo, dashboardMo);\n this.managedObjectObservable.unsubscribe();\n }\n });\n\n try {\n const { res } = await this.deviceRegistrationService.accept(deviceId);\n if (res.status !== this.sensorPhoneService.HTTP_STATUS_CODE.OK) {\n this.onFailure();\n }\n } catch (error) {\n this.onFailure();\n }\n }\n\n onManagedObjectCreated(deviceMo, dashboardMo) {\n const { id } = dashboardMo;\n this.dashboardLink = `/device/${deviceMo.id}/dashboard/${id}`;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n this.success = true;\n }\n }\n\n openDashboard() {\n if (this.dashboardLink) {\n this.router.navigate([this.dashboardLink]);\n this.cancel();\n }\n }\n\n cancel() {\n this.bsModalRef.hide();\n this.deleteDeviceRequest();\n this.cleanSubscription();\n }\n\n retry() {\n this.success = undefined;\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'block');\n }\n this.deleteDeviceRequest();\n this.cleanSubscription();\n this.stepper.selectedIndex = 2;\n }\n\n onFailure() {\n this.success = false;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n }\n }\n\n async deleteDeviceRequest() {\n if (this.deviceId) {\n try {\n const { data, res } = await this.deviceRegistrationService.delete(this.deviceId);\n } catch (error) {\n //\n }\n }\n }\n\n cleanSubscription() {\n if (this.bootStrapObservable && !this.bootStrapObservable.closed) {\n this.bootStrapObservable.unsubscribe();\n }\n if (this.managedObjectObservable && !this.managedObjectObservable.closed) {\n this.managedObjectObservable.unsubscribe();\n }\n }\n\n ngOnDestroy() {\n this.cleanSubscription();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { AppStateService } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { head } from 'lodash-es';\nimport { gettext } from '@c8y/ngx-components';\n\n@Injectable()\nexport class SensorPhoneService {\n readonly HTTP_STATUS_CODE = {\n OK: 200,\n CREATED: 201\n };\n private domainName: string;\n private tenantId: string;\n private PHONE_GROUP_FRAGMENT = 'c8y_IsSensorPhoneGroup';\n private readonly PHONE_GROUP_NAME = gettext('Phones');\n\n constructor(\n private bsModalService: BsModalService,\n private ui: AppStateService,\n private inventoryService: InventoryService\n ) {\n this.ui.currentTenant.subscribe(data => {\n if (data) {\n this.domainName = data.domainName;\n this.tenantId = data.name;\n }\n });\n }\n\n createModal() {\n this.bsModalService.show(SensorPhoneModalComponent, {\n backdrop: 'static',\n class: 'lg'\n });\n }\n\n getHost() {\n return this.domainName.substring(this.domainName.indexOf('.') + 1);\n }\n\n getTenantName() {\n return this.domainName.split('.')[0];\n }\n\n getTenantId() {\n return this.tenantId;\n }\n\n async checkPhoneGroupExists() {\n const { data, res } = await this.inventoryService.list({\n fragmentType: this.PHONE_GROUP_FRAGMENT\n });\n if (data && res && res.status === this.HTTP_STATUS_CODE.OK) {\n return head(data);\n }\n return null;\n }\n\n async addPhoneGroup() {\n const group = await this.checkPhoneGroupExists();\n if (group) {\n return group;\n }\n return await this.createPhoneGroup();\n }\n\n async createPhoneGroup() {\n const newPhoneGroup = {\n c8y_Global: {},\n c8y_IsDeviceGroup: {},\n type: 'c8y_DeviceGroup',\n name: this.PHONE_GROUP_NAME,\n [this.PHONE_GROUP_FRAGMENT]: {}\n };\n\n const { data, res } = await this.inventoryService.create(newPhoneGroup);\n if (data && res && res.status === this.HTTP_STATUS_CODE.CREATED) {\n return data;\n }\n return null;\n }\n\n generateRegistrationData(deviceId) {\n const res = 'c8y://' + this.getTenantName() + '.' + this.getHost() + '/?deviceId=' + deviceId;\n return res;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DocLinkFactory, OptionsService, gettext, DocLink } from '@c8y/ngx-components';\nimport { of } from 'rxjs';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@Injectable()\nexport class ConnectSmartphoneFactory implements DocLinkFactory {\n constructor(\n private optionsService: OptionsService,\n private sensorPhoneService: SensorPhoneService\n ) {}\n get() {\n if (this.optionsService.get('sensorPhone', false)) {\n return of([\n {\n icon: 'c8y-mobile-add',\n type: 'quicklink',\n label: gettext('Connect smartphone'),\n url: undefined,\n click: () => this.sensorPhoneService.createModal()\n } as DocLink\n ]);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_DOCS } from '@c8y/ngx-components';\nimport { ConnectSmartphoneFactory } from './connect-smartphone.factory';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@NgModule({\n imports: [CoreModule, QRCodeModule],\n declarations: [SensorPhoneModalComponent],\n entryComponents: [SensorPhoneModalComponent],\n providers: [\n {\n provide: HOOK_DOCS,\n useClass: ConnectSmartphoneFactory,\n multi: true\n },\n SensorPhoneService\n ]\n})\nexport class SensorPhoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SensorPhoneModalComponent as ɵa} from './sensor-phone-modal.component';\nexport {SensorPhoneService as ɵb} from './sensor-phone.service';"],"names":["tslib_1.__decorate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-sensor-phone.js","sources":["ng://@c8y/ngx-components/sensor-phone/sensor-phone-modal.component.ts","ng://@c8y/ngx-components/sensor-phone/sensor-phone.service.ts","ng://@c8y/ngx-components/sensor-phone/connect-smartphone.factory.ts","ng://@c8y/ngx-components/sensor-phone/sensor-phone.module.ts","ng://@c8y/ngx-components/sensor-phone/c8y-ngx-components-sensor-phone.ts"],"sourcesContent":["import { Component, ViewChild, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap';\nimport { C8yStepper, gettext } from '@c8y/ngx-components';\nimport { SensorPhoneService } from './sensor-phone.service';\nimport { throttleTime } from 'rxjs/operators';\nimport { Realtime, DeviceRegistrationService } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { get } from 'lodash-es';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-sensor-phone',\n templateUrl: 'sensor-phone-modal.component.html'\n})\nexport class SensorPhoneModalComponent implements AfterViewInit {\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild(C8yStepper, { read: ElementRef, static: false })\n container: ElementRef;\n pendingDeviceBootstrap: boolean = true;\n success;\n errorMessage = gettext('Failed to register a smartphone.');\n registrationData = null;\n tenantId;\n instance;\n deviceId: string;\n dashboardLink: string = '';\n private bootStrapObservable: Subscription;\n private managedObjectObservable: Subscription;\n\n constructor(\n private bsModalRef: BsModalRef,\n private sensorPhoneService: SensorPhoneService,\n private renderer: Renderer2,\n private deviceRegistrationService: DeviceRegistrationService,\n private realTime: Realtime,\n private router: Router\n ) {}\n\n ngAfterViewInit() {\n this.stepper.selectionChange\n .pipe(throttleTime(100))\n .subscribe((partialStepper: Partial<C8yStepper>) => this.bootstrapDevice(partialStepper));\n this.tenantId = this.sensorPhoneService.getTenantName();\n this.instance = this.sensorPhoneService.getHost();\n }\n\n async bootstrapDevice(stepper: Partial<C8yStepper>) {\n const { selectedIndex } = stepper;\n if (selectedIndex && selectedIndex === 2) {\n let device;\n this.deviceId = this.generateDeviceId();\n this.bootStrapObservable = this.realTime\n .observable('/bootstrap')\n .pipe(\n filter(\n status =>\n get(status, 'data.id') === this.deviceId && get(status, 'realtimeAction') === 'UPDATE'\n )\n )\n .subscribe(status => {\n this.pendingDeviceBootstrap = false;\n this.onDeviceStatusChanged(this.deviceId);\n this.bootStrapObservable.unsubscribe();\n });\n try {\n const group = await this.sensorPhoneService.addPhoneGroup();\n if (group) {\n device = { id: this.deviceId, groupId: group.id };\n\n this.registrationData = this.sensorPhoneService.generateRegistrationData(this.deviceId);\n\n const { data, res } = await this.deviceRegistrationService.create(device);\n if (res.status !== this.sensorPhoneService.HTTP_STATUS_CODE.CREATED) {\n this.onFailure();\n }\n }\n } catch (error) {\n this.onFailure();\n }\n }\n }\n\n generateDeviceId() {\n return 'phone' + Math.floor(Math.random() * 100000);\n }\n\n async onDeviceStatusChanged(deviceId) {\n let deviceMo;\n let dashboardMo;\n this.managedObjectObservable = this.realTime\n .observable(`/managedobjects/*`)\n .pipe(\n filter(\n status =>\n get(status, 'data.owner') === `device_${deviceId}` &&\n get(status, 'realtimeAction') === 'CREATE'\n )\n )\n .subscribe(response => {\n const mo = response.data;\n if (mo.type === 'c8y_SensorPhone') {\n deviceMo = mo;\n }\n if (mo.c8y_Dashboard) {\n dashboardMo = mo;\n }\n if (deviceMo && dashboardMo) {\n this.onManagedObjectCreated(deviceMo, dashboardMo);\n this.managedObjectObservable.unsubscribe();\n }\n });\n\n try {\n const { res } = await this.deviceRegistrationService.accept(deviceId);\n if (res.status !== this.sensorPhoneService.HTTP_STATUS_CODE.OK) {\n this.onFailure();\n }\n } catch (error) {\n this.onFailure();\n }\n }\n\n onManagedObjectCreated(deviceMo, dashboardMo) {\n const { id } = dashboardMo;\n this.dashboardLink = `/device/${deviceMo.id}/dashboard/${id}`;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n this.success = true;\n }\n }\n\n openDashboard() {\n if (this.dashboardLink) {\n this.router.navigate([this.dashboardLink]);\n this.cancel();\n }\n }\n\n cancel() {\n this.bsModalRef.hide();\n this.deleteDeviceRequest();\n this.cleanSubscription();\n }\n\n retry() {\n this.success = undefined;\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'block');\n }\n this.deleteDeviceRequest();\n this.cleanSubscription();\n this.stepper.selectedIndex = 2;\n }\n\n onFailure() {\n this.success = false;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n }\n }\n\n async deleteDeviceRequest() {\n if (this.deviceId) {\n try {\n const { data, res } = await this.deviceRegistrationService.delete(this.deviceId);\n } catch (error) {\n //\n }\n }\n }\n\n cleanSubscription() {\n if (this.bootStrapObservable && !this.bootStrapObservable.closed) {\n this.bootStrapObservable.unsubscribe();\n }\n if (this.managedObjectObservable && !this.managedObjectObservable.closed) {\n this.managedObjectObservable.unsubscribe();\n }\n }\n\n ngOnDestroy() {\n this.cleanSubscription();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { AppStateService } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { head } from 'lodash-es';\nimport { gettext } from '@c8y/ngx-components';\n\n@Injectable()\nexport class SensorPhoneService {\n readonly HTTP_STATUS_CODE = {\n OK: 200,\n CREATED: 201\n };\n private domainName: string;\n private tenantId: string;\n private PHONE_GROUP_FRAGMENT = 'c8y_IsSensorPhoneGroup';\n private readonly PHONE_GROUP_NAME = gettext('Phones');\n\n constructor(\n private bsModalService: BsModalService,\n private ui: AppStateService,\n private inventoryService: InventoryService\n ) {\n this.ui.currentTenant.subscribe(data => {\n if (data) {\n this.domainName = data.domainName;\n this.tenantId = data.name;\n }\n });\n }\n\n createModal() {\n this.bsModalService.show(SensorPhoneModalComponent, {\n backdrop: 'static',\n class: 'lg'\n });\n }\n\n getHost() {\n return this.domainName.substring(this.domainName.indexOf('.') + 1);\n }\n\n getTenantName() {\n return this.domainName.split('.')[0];\n }\n\n getTenantId() {\n return this.tenantId;\n }\n\n async checkPhoneGroupExists() {\n const { data, res } = await this.inventoryService.list({\n fragmentType: this.PHONE_GROUP_FRAGMENT\n });\n if (data && res && res.status === this.HTTP_STATUS_CODE.OK) {\n return head(data);\n }\n return null;\n }\n\n async addPhoneGroup() {\n const group = await this.checkPhoneGroupExists();\n if (group) {\n return group;\n }\n return await this.createPhoneGroup();\n }\n\n async createPhoneGroup() {\n const newPhoneGroup = {\n c8y_Global: {},\n c8y_IsDeviceGroup: {},\n type: 'c8y_DeviceGroup',\n name: this.PHONE_GROUP_NAME,\n [this.PHONE_GROUP_FRAGMENT]: {}\n };\n\n const { data, res } = await this.inventoryService.create(newPhoneGroup);\n if (data && res && res.status === this.HTTP_STATUS_CODE.CREATED) {\n return data;\n }\n return null;\n }\n\n generateRegistrationData(deviceId) {\n const res = 'c8y://' + this.getTenantName() + '.' + this.getHost() + '/?deviceId=' + deviceId;\n return res;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DocLinkFactory, OptionsService, gettext, DocLink } from '@c8y/ngx-components';\nimport { of } from 'rxjs';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@Injectable()\nexport class ConnectSmartphoneFactory implements DocLinkFactory {\n constructor(\n private optionsService: OptionsService,\n private sensorPhoneService: SensorPhoneService\n ) {}\n get() {\n if (this.optionsService.get('sensorPhone', false)) {\n return of([\n {\n icon: 'c8y-mobile-add',\n type: 'quicklink',\n label: gettext('Connect smartphone'),\n url: undefined,\n click: () => this.sensorPhoneService.createModal()\n } as DocLink\n ]);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_DOCS } from '@c8y/ngx-components';\nimport { ConnectSmartphoneFactory } from './connect-smartphone.factory';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@NgModule({\n imports: [CoreModule, QRCodeModule],\n declarations: [SensorPhoneModalComponent],\n entryComponents: [SensorPhoneModalComponent],\n providers: [\n {\n provide: HOOK_DOCS,\n useClass: ConnectSmartphoneFactory,\n multi: true\n },\n SensorPhoneService\n ]\n})\nexport class SensorPhoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SensorPhoneModalComponent as ɵa} from './sensor-phone-modal.component';\nexport {SensorPhoneService as ɵb} from './sensor-phone.service';"],"names":["tslib_1.__decorate"],"mappings":"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"}
|