@c8y/ngx-components 1010.0.20 → 1010.0.24

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.
@@ -626,16 +626,14 @@ var GroupInfoComponent = /** @class */ (function () {
626
626
  }());
627
627
 
628
628
  var SubAssetsComponent = /** @class */ (function () {
629
- function SubAssetsComponent(route, appState, deviceGroupService, subAssetsService) {
629
+ function SubAssetsComponent(route, deviceGroupService, subAssetsService) {
630
630
  var _this = this;
631
631
  this.route = route;
632
- this.appState = appState;
633
632
  this.deviceGroupService = deviceGroupService;
634
633
  this.subAssetsService = subAssetsService;
635
634
  this.toggle = false;
636
635
  this.showAddGroup = false;
637
636
  this.showAssignDevices = false;
638
- this.showGroupInfo = true;
639
637
  this.showAssignChildDevices = false;
640
638
  this.refresh = new EventEmitter();
641
639
  this.filterable = true;
@@ -648,10 +646,6 @@ var SubAssetsComponent = /** @class */ (function () {
648
646
  });
649
647
  }
650
648
  SubAssetsComponent.prototype.ngOnInit = function () {
651
- var _this = this;
652
- this.appState.state$.subscribe(function (state) {
653
- _this.showGroupInfo = state.app.name === 'cockpit' || state.app.name === 'devicemanagement';
654
- });
655
649
  this.displayOptions = {
656
650
  striped: true,
657
651
  bordered: false,
@@ -678,14 +672,13 @@ var SubAssetsComponent = /** @class */ (function () {
678
672
  };
679
673
  SubAssetsComponent.ctorParameters = function () { return [
680
674
  { type: ActivatedRoute },
681
- { type: AppStateService },
682
675
  { type: DeviceGroupService },
683
676
  { type: SubAssetsService }
684
677
  ]; };
685
678
  SubAssetsComponent = __decorate([
686
679
  Component({
687
680
  selector: 'c8y-sub-assets',
688
- 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"
681
+ 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"
689
682
  })
690
683
  ], SubAssetsComponent);
691
684
  return SubAssetsComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-sub-assets.js","sources":["ng://@c8y/ngx-components/sub-assets/columns/asset-type.cell-renderer.component.ts","ng://@c8y/ngx-components/sub-assets/columns/asset-type-grid-column.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.service.ts","ng://@c8y/ngx-components/sub-assets/group-info.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.component.ts","ng://@c8y/ngx-components/sub-assets/delete-assets-modal/delete-assets-modal.component.ts","ng://@c8y/ngx-components/sub-assets/unassign-assets-modal/unassign-modal.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets-grid.component.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.service.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.component.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.module.ts","ng://@c8y/ngx-components/sub-assets/groups.component.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-devices.service.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-devices.component.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-child-devices.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.module.ts","ng://@c8y/ngx-components/sub-assets/c8y-ngx-components-sub-assets.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { CellRendererContext, gettext } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: string;\n isAnyGroup: boolean;\n isDevice: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n private deviceGroupService: DeviceGroupService\n ) {}\n\n ngOnInit() {\n this.isAnyGroup = this.deviceGroupService.isAnyGroup(this.context.item);\n this.isDevice = this.deviceGroupService.isDevice(this.context.item);\n this.groupIcon = this.deviceGroupService.icon(this.context.item);\n this.iconTitle = this.getIconTitle(this.groupIcon);\n }\n\n private getIconTitle(icon: string) {\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n default:\n return gettext('Child device');\n }\n }\n}\n","import { gettext, ColumnDataType, ColumnConfig } from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\nimport { BaseDeviceGridColumn } from '@c8y/ngx-components/device-grid';\n\nexport class AssetTypeGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IManagedObject,\n InventoryService,\n IRule,\n QueriesUtil,\n SmartGroupsService,\n SmartRulesService,\n UserService\n} from '@c8y/client';\nimport {\n ActionControl,\n AlertService,\n AppStateService,\n BulkActionControl,\n gettext,\n Pagination,\n Permissions\n} from '@c8y/ngx-components';\nimport { AssetNodeService, DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AssetTypeGridColumn } from './columns/asset-type-grid-column';\n\n@Injectable()\nexport class SubAssetsService extends DeviceGridService {\n queriesUtil: QueriesUtil;\n uiOnlyCountersUpdate = new BehaviorSubject(null);\n protected GRID_CONFIG_DEFAULT_STORAGE_KEY = 'sub-assets-grid-config';\n private IS_DEVICE_GROUP_FRAGMENT = 'c8y_IsDeviceGroup';\n private IS_DYNAMIC_GROUP_FRAGMENT = 'c8y_IsDynamicGroup';\n\n constructor(\n protected translateService: TranslateService,\n protected inventoryService: InventoryService,\n protected appState: AppStateService,\n protected user: UserService,\n protected assetNodeService: AssetNodeService,\n protected deviceGroupService: DeviceGroupService,\n protected smartGroupsService: SmartGroupsService,\n protected smartRulesService: SmartRulesService,\n protected alertService: AlertService,\n protected permissionsService: Permissions\n ) {\n super(inventoryService, translateService);\n }\n\n getDefaultColumns(filterable: boolean = true, sortable: boolean = true): DeviceGridColumn[] {\n const defaultColumns = [\n new AssetTypeGridColumn({ sortOrder: 'desc' }),\n new NameDeviceGridColumn({ sortOrder: 'asc' }),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn({ visible: false }),\n new RegistrationDateDeviceGridColumn({ visible: false }),\n new SystemIdDeviceGridColumn({ visible: false }),\n new ImeiDeviceGridColumn({ visible: false }),\n new AlarmsDeviceGridColumn()\n ];\n return defaultColumns;\n }\n\n getDefaultPagination(): Pagination {\n const { pagination } = this.getConfig();\n return {\n pageSize: pagination.pageSize,\n currentPage: 1\n };\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [];\n }\n\n async unassignAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const { id: assetId } = asset;\n const { id: parentId } = parentRef;\n\n if (this.isDevice(asset)) {\n try {\n await this.inventoryService.childAssetsRemove(assetId, parentId);\n const alertMessage = this.translateService.instant(gettext('Asset unassigned.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not unassign devices.'));\n this.alertService.danger(alertMessage);\n }\n await this.deactivateSmartrulesForAsset(asset, parentRef);\n }\n }\n\n isDevice(asset: IManagedObject): boolean {\n return (\n !asset.hasOwnProperty(this.IS_DEVICE_GROUP_FRAGMENT) &&\n !asset.hasOwnProperty(this.IS_DYNAMIC_GROUP_FRAGMENT)\n );\n }\n\n async deleteAsset(asset: IManagedObject, parentRef: IManagedObject, params = {}) {\n const isGroup =\n asset.hasOwnProperty(this.IS_DEVICE_GROUP_FRAGMENT) ||\n this.smartGroupsService.isSmartGroup(asset);\n\n if (isGroup) {\n await this.deleteGroup(asset, params);\n } else {\n await this.deleteDevice(asset, params);\n }\n\n if (\n parentRef &&\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n ) {\n await this.deactivateSmartrulesForAsset(asset, parentRef);\n }\n }\n\n shouldShowWithDeviceUserCheckbox(asset: IManagedObject): boolean {\n const { owner, c8y_IsDevice: isRootDevice } = asset;\n const hasDeviceUserAsOwner = asset.owner && this.isDeviceUser(owner);\n\n return Boolean(isRootDevice && hasDeviceUserAsOwner);\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n async getData(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n parentReference: IManagedObject,\n baseQuery: any = {}\n ) {\n const isRoot = !parentReference;\n if (isRoot) {\n const query = this.buildCombinedRootQueryFilter(columns, pagination);\n return this.assetNodeService.getRootNodes({ ...pagination, query });\n }\n const filters = {\n ...this.getAssetsFilters(columns, pagination, baseQuery),\n withParents: false\n };\n if (this.deviceGroupService.isGroup(parentReference)) {\n return this.assetNodeService.getGroupItems(parentReference.id, filters);\n }\n if (this.deviceGroupService.isDynamicGroup(parentReference)) {\n return this.assetNodeService.getDynamicGroupItems(\n parentReference.c8y_DeviceQueryString,\n filters\n );\n }\n if (this.deviceGroupService.isDevice(parentReference)) {\n return this.assetNodeService.getDeviceChildren(parentReference.id, filters);\n }\n }\n\n async getCount(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n parentReference: IManagedObject,\n baseQuery: any = {}\n ): Promise<number> {\n const defaultFilters = {\n pageSize: 1,\n withChildren: false\n };\n const filters = !parentReference\n ? {\n query: this.buildCombinedRootQueryFilter(columns, pagination),\n ...defaultFilters\n }\n : {\n ...this.getAssetsFilters(columns, pagination, baseQuery),\n ...defaultFilters\n };\n return this.getAssetsStatistics(parentReference, filters);\n }\n\n getTotal(parentReference: IManagedObject, baseQuery: any = {}): Promise<number> {\n const queryFilter = this.assetNodeService.rootQueryFilter();\n const query = !parentReference\n ? this.queriesUtil.addAndFilter(queryFilter, baseQuery)\n : baseQuery;\n const filters = {\n query: this.queriesUtil.buildQuery(query),\n withChildren: false,\n withTotalPages: true,\n pageSize: 1\n };\n return this.getAssetsStatistics(parentReference, filters);\n }\n\n canEditGroup(group: IManagedObject) {\n const currentUser = this.appState.currentUser.value;\n const hasAdminRole = this.user.hasAnyRole(currentUser, ['ROLE_INVENTORY_ADMIN']);\n const isOwner = group.owner === currentUser.userName;\n return hasAdminRole || isOwner;\n }\n\n canEditSmartGroup(): boolean {\n const SMART_GROUPS_ROLES_EDIT = ['ROLE_SMARTGROUP_UPDATE', 'ROLE_SMARTGROUP_ADMIN'];\n return this.permissionsService.hasAnyRole(SMART_GROUPS_ROLES_EDIT);\n }\n\n canDeleteSmartGroup(): boolean {\n const SMART_GROUPS_ROLES_DELETE = ['ROLE_SMARTGROUP_ADMIN', 'ROLE_INVENTORY_ADMIN'];\n return this.permissionsService.hasAnyRole(SMART_GROUPS_ROLES_DELETE);\n }\n\n isSmartGroup(group: IManagedObject): boolean {\n return this.smartGroupsService.isSmartGroup(group) || this.smartGroupsService.isSmartGroupV2(group);\n }\n\n isUsingInventoryRoles() {\n const currentUser = this.appState.currentUser.value;\n const hasAnyInventoryRole = this.user.hasAnyRole(currentUser, [\n 'ROLE_INVENTORY_ADMIN',\n 'ROLE_INVENTORY_READ',\n 'ROLE_INVENTORY_CREATE'\n ]);\n return !hasAnyInventoryRole;\n }\n\n protected async getAssetsStatistics(\n parentReference: IManagedObject,\n filters: object\n ): Promise<number> {\n const isRoot = !parentReference;\n if (isRoot) {\n return (await this.assetNodeService.getRootNodes(filters)).paging.totalPages;\n }\n if (this.deviceGroupService.isGroup(parentReference)) {\n return (await this.assetNodeService.getGroupItems(parentReference.id, filters)).paging\n .totalPages;\n }\n if (this.deviceGroupService.isDynamicGroup(parentReference)) {\n return (await this.assetNodeService.getDynamicGroupItems(\n parentReference.c8y_DeviceQueryString,\n filters\n )).paging.totalPages;\n }\n if (this.deviceGroupService.isDevice(parentReference)) {\n return (await this.assetNodeService.getDeviceChildren(parentReference.id, filters)).paging\n .totalPages;\n }\n }\n\n protected buildCombinedRootQueryFilter(columns, pagination) {\n const queryFilter = this.assetNodeService.rootQueryFilter();\n const userQuery = this.getQueryObj(columns, pagination);\n\n const queryPart = this.queriesUtil.addOrderbys(queryFilter, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n private async deleteGroup(group: IManagedObject, params: any = {}) {\n const { cascade } = params;\n\n try {\n this.smartGroupsService.isSmartGroup(group) || this.smartGroupsService.isSmartGroupV2(group)\n ? await this.smartGroupsService.delete(group, { cascade })\n : await this.inventoryService.delete(group, { cascade });\n\n const alertMessage = this.translateService.instant(gettext('Asset deleted.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not delete asset.'));\n this.alertService.danger(alertMessage);\n }\n }\n\n private async deleteDevice(device: IManagedObject, params: any = {}) {\n const { cascade, withDeviceUser } = params;\n try {\n const { owner } = device;\n const shouldRemoveOwner = withDeviceUser && owner && this.isDeviceUser(owner);\n\n shouldRemoveOwner\n ? await this.deleteDeviceWithUser(device, cascade)\n : await this.inventoryService.delete(device, { cascade });\n\n const alertMessage = this.translateService.instant(gettext('Asset deleted.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not delete asset.'));\n this.alertService.danger(alertMessage);\n }\n }\n\n private async deactivateSmartrulesForAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const { id: assetId } = asset;\n const { id: parentId } = parentRef;\n const rules: IRule[] = (await this.smartRulesService.listByContext(parentId)).data;\n\n const upateSmartrulesPromises = rules.map(rule =>\n this.smartRulesService.bulkDeactivateEnabledSources(rule, [assetId])\n );\n\n try {\n await Promise.all(upateSmartrulesPromises);\n } catch (error) {\n const alertMessage = this.translateService.instant(\n gettext('Could not deactivate smart rules.')\n );\n this.alertService.danger(alertMessage);\n }\n }\n\n private isDeviceUser(userId: string) {\n return userId.match(/^device_/);\n }\n\n private async deleteDeviceWithUser(device: IManagedObject, cascade: boolean) {\n const params = { cascade, withDeviceUser: true };\n try {\n return await this.inventoryService.delete(device, params);\n } catch (error) {\n return await this.inventoryService.delete(device, { cascade });\n }\n }\n\n private getAssetsFilters(columns: DeviceGridColumn[], pagination: Pagination, baseQuery) {\n const query = this.queriesUtil.addAndFilter(this.getQueryObj(columns), baseQuery);\n return {\n query: this.queriesUtil.buildQuery(query),\n pageSize: pagination.pageSize || this.DEFAULT_PAGE_SIZE,\n currentPage: pagination.currentPage,\n withTotalPages: true\n };\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IManagedObject, InventoryService, SmartGroupsService } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SubAssetsService } from './sub-assets.service';\n\n@Component({\n selector: 'c8y-group-info',\n templateUrl: './group-info.component.html'\n})\nexport class GroupInfoComponent {\n @Input() group: IManagedObject;\n @Output() onGroupChange = new EventEmitter();\n canEdit: boolean;\n groupIcon: string;\n smartGroupFilter: string;\n filterHintMsg: string;\n\n private filterMsg = gettext(\n 'Smart groups are groups dynamically constructed based on filtering criteria.'\n );\n private canEditMsg = gettext('You can edit the filter here.');\n private readonly GROUP_UPDATED_MSG = gettext('Group updated.');\n constructor(\n private inventory: InventoryService,\n private subAssetsService: SubAssetsService,\n private deviceGroupService: DeviceGroupService,\n private smartGroupsService: SmartGroupsService,\n private alertService: AlertService,\n private translate: TranslateService,\n private modalService: ModalService\n ) {}\n\n ngOnInit() {\n this.canEdit = this.smartGroupsService.isSmartGroupV2(this.group)\n ? this.subAssetsService.canEditSmartGroup()\n : this.subAssetsService.canEditGroup(this.group);\n this.groupIcon = this.deviceGroupService.icon(this.group);\n this.smartGroupFilter = this.group.c8y_DeviceQueryString;\n\n this.setHintMsg();\n }\n\n isSmartGroup() {\n return this.subAssetsService.isSmartGroup(this.group);\n }\n\n async update(partialGroup: Partial<IManagedObject>) {\n try {\n const isSmartGroup: boolean = this.subAssetsService.isSmartGroup(this.group);\n isSmartGroup\n ? await this.updateSmartGroup(partialGroup)\n : await this.updateGroup(partialGroup);\n } catch (error) {\n this.alertService.addServerFailure(error);\n }\n }\n\n private setHintMsg() {\n const filterMsgTranslated = this.translate.instant(this.filterMsg);\n const canEditMsgTranslated = this.translate.instant(this.canEditMsg);\n this.filterHintMsg = this.canEdit\n ? `${filterMsgTranslated} ${canEditMsgTranslated}`\n : this.filterMsg;\n }\n\n private async updateGroup(partialGroup: Partial<IManagedObject>) {\n const { id } = this.group;\n const group: Partial<IManagedObject> = { id, ...partialGroup };\n\n const updatedGroup = (await this.inventory.update(group)).data;\n this.setGroup(updatedGroup);\n }\n\n private async updateSmartGroup(partialGroup: Partial<IManagedObject>) {\n const { id } = this.group;\n const { c8y_DeviceQueryString } = partialGroup;\n const group: Partial<IManagedObject> = { id, ...partialGroup };\n let updatedGroup: IManagedObject;\n\n if (!c8y_DeviceQueryString) {\n updatedGroup = (await this.smartGroupsService.update(group)).data;\n this.setGroup(updatedGroup);\n return;\n }\n\n try {\n const modalBody = gettext(\n 'You are about to change the smart group filter. Do you want to proceed?'\n );\n const title = gettext('Smart group filter');\n await this.modalService.confirm(title, modalBody, Status.WARNING, {\n ok: gettext('Save'),\n cancel: gettext('Cancel')\n });\n\n if (!(await this.isQueryExecutable(c8y_DeviceQueryString))) {\n return;\n }\n } catch (e) {\n return;\n }\n updatedGroup = (await this.smartGroupsService.update(group)).data;\n this.setGroup(updatedGroup);\n }\n\n private setGroup(group: IManagedObject) {\n this.onGroupChange.emit(group);\n this.alertService.success(this.GROUP_UPDATED_MSG);\n }\n\n private async isQueryExecutable(query: string): Promise<boolean> {\n try {\n const filter = { q: query };\n await this.inventory.list(filter);\n return true;\n } catch (error) {\n this.alertService.addServerFailure(error);\n return false;\n }\n }\n}\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IIdentified, IManagedObject } from '@c8y/client';\nimport { AppStateService, DisplayOptions } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport { Subscription } from 'rxjs';\nimport { SubAssetsService } from './sub-assets.service';\n\n@Component({\n selector: 'c8y-sub-assets',\n templateUrl: './sub-assets.component.html'\n})\nexport class SubAssetsComponent implements OnInit, OnDestroy {\n currentGroupId: IIdentified;\n showChildrenForDevice: IManagedObject;\n title: string;\n toggle: boolean = false;\n showAddGroup: boolean = false;\n showAssignDevices: boolean = false;\n requestInProgress: boolean;\n group: IManagedObject;\n showGroupInfo: boolean = true;\n showAssignChildDevices: boolean = false;\n refresh: EventEmitter<any> = new EventEmitter();\n filterable: boolean = true;\n displayOptions: DisplayOptions;\n private dataSub: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private appState: AppStateService,\n private deviceGroupService: DeviceGroupService,\n private subAssetsService: SubAssetsService\n ) {\n this.dataSub = this.route.parent.data.subscribe(({ contextData }) => {\n this.title = contextData.name;\n this.currentGroupId = contextData.id;\n this.group = contextData;\n this.filterable = !this.deviceGroupService.isDynamicGroup(contextData);\n });\n }\n\n ngOnInit(): void {\n this.appState.state$.subscribe(state => {\n this.showGroupInfo = state.app.name === 'cockpit' || state.app.name === 'devicemanagement';\n });\n\n this.displayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: !this.isSmartGroup()\n };\n }\n\n groupChange(group: IManagedObject): void {\n /**\n * Group is cached in the context-route guard. To avoid loading old data (when switching tabs) we need to update\n * this object in the cache.\n */\n Object.assign(this.group, group);\n this.title = group.name;\n this.refresh.emit();\n }\n\n isSmartGroup() {\n return this.subAssetsService.isSmartGroup(this.group);\n }\n\n ngOnDestroy(): void {\n if (this.dataSub) {\n this.dataSub.unsubscribe();\n }\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ConfirmModalComponent,\n gettext,\n ModalLabels,\n Status,\n StatusType\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { DeleteModalCheckboxes } from './delete-assets-modal.model';\n\n@Component({\n selector: 'c8y-delete-assets-modal',\n templateUrl: './delete-assets-modal.component.html'\n})\nexport class DeleteAssetsModalComponent {\n @Input() showWithCascadeCheckbox: boolean = true;\n @Input() showWithDeviceUserCheckbox: boolean = false;\n @Input() asset: IManagedObject;\n @ViewChild('modalRef', { static: false }) modalRef: ConfirmModalComponent;\n closeSubject: Subject<DeleteModalCheckboxes> = new Subject();\n labels: ModalLabels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n title = gettext('Delete asset');\n status: StatusType = Status.DANGER;\n config: DeleteModalCheckboxes = {\n cascade: false,\n withDeviceUser: false\n };\n message: string;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit() {\n this.message = this.translateService.instant(\n gettext(\n 'You are about to delete asset: \"{{name}}\". This operation is irreversible. Do you want to proceed?'\n ),\n { name: this.asset.name }\n );\n }\n\n async ngAfterViewInit() {\n try {\n await this.modalRef.result;\n this.onClose();\n } catch (error) {\n this.onDismiss();\n }\n }\n\n onClose() {\n this.closeSubject.next(this.config);\n this.closeSubject.complete();\n }\n\n onDismiss() {\n this.closeSubject.complete();\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ConfirmModalComponent,\n gettext,\n ModalLabels,\n Status,\n StatusType\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\n@Component({\n selector: 'c8y-unassign-modal',\n templateUrl: './unassign-modal.component.html'\n})\nexport class UnassignModalComponent {\n @Input() asset: IManagedObject;\n @ViewChild('modalRef', { static: false }) modalRef: ConfirmModalComponent;\n message: string;\n closeSubject: Subject<boolean> = new Subject();\n labels: ModalLabels = { ok: gettext('Unassign'), cancel: gettext('Cancel') };\n title = gettext('Unassign devices');\n status: StatusType = Status.WARNING;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit() {\n this.message = this.translateService.instant(\n gettext('You are about to unassign asset: \"{{name}}\" . Do you want to proceed?'),\n { name: this.asset.name }\n );\n }\n\n async ngAfterViewInit() {\n try {\n await this.modalRef.result;\n this.onClose();\n } catch (error) {\n this.onDismiss();\n }\n }\n\n onClose() {\n this.closeSubject.next(true);\n this.closeSubject.complete();\n }\n\n onDismiss() {\n this.closeSubject.complete();\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { DeleteModalCheckboxes } from './delete-assets-modal';\nimport { DeleteAssetsModalComponent } from './delete-assets-modal/delete-assets-modal.component';\nimport { SubAssetsService } from './sub-assets.service';\nimport { UnassignModalComponent } from './unassign-assets-modal/unassign-modal.component';\n@Component({\n selector: 'c8y-sub-assets-grid',\n templateUrl: './sub-assets-grid.component.html'\n})\nexport class SubAssetsGridComponent implements OnInit {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() refresh: EventEmitter<any>;\n @Input() title: string = gettext('Subassets');\n @Input() emptyStateText: string = gettext(\n 'Add your first group or assign devices using the buttons on the toolbar.'\n );\n @Input() loadingItemsLabel: string = gettext('Loading assets…');\n\n get columns() {\n return this._columns;\n }\n @Input() set columns(value: DeviceGridColumn[]) {\n if (value) {\n this._columns = this.subAssetsGridService.getUserConfiguredColumns(value);\n } else {\n this._columns = this.subAssetsGridService.getUserConfiguredColumns(\n this.subAssetsGridService.getDefaultColumns()\n );\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.subAssetsGridService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.subAssetsGridService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input() baseQuery: any = {};\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.subAssetsGridService.getDefaultBulkActionControls();\n }\n }\n @Input() filterable: boolean = true;\n @Input() sortable: boolean = true;\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n @Output() itemsSelect: EventEmitter<string[]> = new EventEmitter<string[]>();\n\n pagination: Pagination = this.subAssetsGridService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.subAssetsGridService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: true\n };\n\n private _columns: DeviceGridColumn[];\n\n get isRootGroup() {\n return !this.parentGroup;\n }\n\n get getInfiniteScrollMode() {\n return this.isRootGroup && this.subAssetsGridService.isUsingInventoryRoles()\n ? 'auto'\n : undefined;\n }\n\n @Input('displayOptions')\n set _displayOptions(displayOptions) {\n this.displayOptions = { ...this.displayOptions, ...displayOptions };\n }\n\n constructor(\n public subAssetsGridService: SubAssetsService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.columns = this.subAssetsGridService.getDefaultColumns(this.filterable, this.sortable);\n if (!this.filterable || !this.sortable) {\n this.columns.forEach(column => {\n column.filterable = this.filterable;\n column.sortable = this.sortable;\n });\n }\n this.setActionControls();\n }\n\n async setActionControls() {\n const actionControls: ActionControl[] = [];\n const {\n data: isMicroserviceInstalled\n } = await this.smartGroupsService.isSmartGroupsV2MicroserviceInstalled();\n\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup),\n showIf: (asset: Row) => {\n if (this.smartGroupsService.isSmartGroupV2(asset as IManagedObject)) {\n return isMicroserviceInstalled ? this.subAssetsGridService.canDeleteSmartGroup() : false;\n }\n\n if (this.smartGroupsService.isSmartGroup(asset as IManagedObject)) {\n return this.subAssetsGridService.canDeleteSmartGroup();\n }\n\n return true;\n }\n };\n\n actionControls.push(deleteAction);\n\n const unassignAction: ActionControl = {\n type: 'UNASSIGN',\n icon: 'unlink',\n text: gettext('Unassign'),\n callback: (asset: Row) => this.onUnassignAsset(asset as IManagedObject, this.parentGroup),\n showIf: (asset: Row) =>\n this.subAssetsGridService.isDevice(asset as IManagedObject) &&\n !this.subAssetsGridService.isSmartGroup(this.parentGroup as IManagedObject)\n };\n\n actionControls.push(unassignAction);\n\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\n }\n\n onUnassignAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const initialState = {\n asset\n };\n const modalRef = this.bsModalService.show(UnassignModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: boolean) => {\n if (result) {\n await this.subAssetsGridService.unassignAsset(asset, parentRef);\n this.refresh.emit();\n }\n });\n }\n\n async onDeleteAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n this.subAssetsGridService.uiOnlyCountersUpdate.next('DECREASE');\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.parentGroup && !changes.parentGroup.firstChange) {\n this.dataGrid.reload();\n }\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const promises = [];\n let counters;\n\n promises.push(\n this.subAssetsGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.parentGroup,\n this.baseQuery\n )\n );\n\n const action = this.subAssetsGridService.uiOnlyCountersUpdate.value;\n if (action) {\n counters = this.uiOnlyCountersUpdate(action);\n this.subAssetsGridService.uiOnlyCountersUpdate.next(null);\n } else {\n promises.push(this.subAssetsGridService.getTotal(this.parentGroup, this.baseQuery));\n promises.push(\n this.subAssetsGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.parentGroup,\n this.baseQuery\n )\n );\n }\n const [dataResponse, size, filteredSize] = await Promise.all(promises);\n if (!counters) {\n counters = {\n size,\n filteredSize\n };\n }\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res: dataResponse.res,\n data: dataResponse.data,\n paging: dataResponse.paging,\n ...counters\n };\n }\n\n configChange(config) {\n this.subAssetsGridService.saveConfig(config);\n }\n\n // workaround since the totalPages value is cached on the BE\n private uiOnlyCountersUpdate(action: 'INCREASE' | 'DECREASE') {\n const currentAllItemsCount = this.dataGrid.filteringLabelsParams.allItemsCount;\n const currentFilteredItemsCount = this.dataGrid.filteringLabelsParams.filteredItemsCount;\n let counters;\n if (action === 'DECREASE') {\n counters = {\n size: currentAllItemsCount - 1,\n filteredSize: currentFilteredItemsCount - 1\n };\n }\n if (action === 'INCREASE') {\n counters = {\n size: currentAllItemsCount + 1,\n filteredSize: currentFilteredItemsCount + 1\n };\n }\n return counters;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IIdentified, IManagedObject, InventoryService } from '@c8y/client';\nimport { GroupForm } from './add-group.model';\nimport { GroupFragment } from '@c8y/ngx-components/assets-navigator';\n\n@Injectable()\nexport class AddGroupService {\n private GROUP_FRAGMENT_TYPE = 'c8y_IsDeviceGroup';\n\n constructor(private inventoryService: InventoryService) {}\n\n async createGroupAndAssignDevices(\n groupForm: GroupForm,\n groupContextId: string | number,\n selectedDevices: string[]\n ): Promise<IManagedObject | IIdentified> {\n let group: IManagedObject | IIdentified;\n const { name, description } = groupForm;\n const newGroupMO = this.getGroupMO(name, description, groupContextId);\n\n if (groupContextId) {\n group = (await this.inventoryService.childAssetsCreate(newGroupMO, groupContextId)).data;\n } else {\n group = (await this.inventoryService.create(newGroupMO)).data;\n }\n\n if (selectedDevices.length > 0) {\n await this.assignDevices(group.id, selectedDevices);\n }\n\n return group;\n }\n\n private getGroupMO(\n name: string,\n description: string = '',\n groupContextId: string | number\n ): Partial<IManagedObject> {\n const group = {\n type: this.getGroupType(groupContextId),\n [this.GROUP_FRAGMENT_TYPE]: {},\n name,\n description\n };\n\n return group;\n }\n\n private getGroupType(\n groupContextId: string | number\n ): GroupFragment.subGroupType | GroupFragment.groupType {\n return groupContextId ? GroupFragment.subGroupType : GroupFragment.groupType;\n }\n\n private async assignDevices(id: string | number, selectedDevices: string[]) {\n const promises = [];\n\n selectedDevices.forEach(moId => {\n promises.push(this.inventoryService.childAssetsAdd(moId, id));\n });\n\n return await Promise.all(promises);\n }\n}\n","import {\n Component,\n Output,\n EventEmitter,\n ViewChild,\n Input,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { C8yStepper, Pagination, AlertService, gettext } from '@c8y/ngx-components';\nimport { AddGroupService } from './add-group.service';\nimport { SubAssetsService } from '../sub-assets.service';\n\n@Component({\n selector: 'c8y-add-group',\n templateUrl: './add-group.component.html'\n})\nexport class AddGroupComponent {\n @Input() currentGroupId: string;\n @Input() refresh = new EventEmitter<any>();\n @Output() onDeviceQueryStringChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() onCancel = new EventEmitter<any>();\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild('nameRef', { static: false })\n nameInputRef: ElementRef;\n deviceQueryStringOutput: string;\n formGroupStepOne: FormGroup;\n pendingStatus: boolean = false;\n pagination: Pagination = { pageSize: 20, currentPage: 1 };\n selected: string[] = [];\n subscription: Subscription;\n\n readonly ITEMS_SELECT_LIMIT: number = 15;\n readonly btnLabels = {\n next: gettext('Next'),\n cancel: gettext('Cancel'),\n create: gettext('Create')\n };\n\n private nameInput: HTMLInputElement;\n\n constructor(\n protected deviceGridService: DeviceGridService,\n private fb: FormBuilder,\n private addGroupService: AddGroupService,\n private alert: AlertService,\n private subAssetsService: SubAssetsService\n ) {}\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n // Order matters! Needs to be placed before this.stepper.next\n if (this.stepper.selectedIndex === 1) {\n this.createGroup();\n }\n this.stepper.next();\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n @HostListener('document:keydown.backspace', ['$event']) onBackspaceKeyDown(event: KeyboardEvent) {\n this.stepper.previous();\n\n setTimeout(() => {\n this.setFocusOnNameInput();\n });\n }\n\n ngOnInit() {\n this.formGroupStepOne = this.fb.group({\n name: ['', Validators.required],\n description: ['']\n });\n this.subscription = this.onCancel.subscribe(() => this.resetStepper());\n }\n\n ngAfterViewInit() {\n this.nameInput = this.nameInputRef.nativeElement as HTMLInputElement;\n this.setFocusOnNameInput();\n }\n\n async createGroup() {\n this.pendingStatus = true;\n this.subAssetsService.uiOnlyCountersUpdate.next('INCREASE');\n await this.addGroupService.createGroupAndAssignDevices(\n this.formGroupStepOne.value,\n this.currentGroupId,\n this.selected\n );\n\n this.pendingStatus = false;\n this.resetStepper();\n this.alert.success(gettext('Group created.'));\n\n this.refresh.emit();\n this.onCancel.emit();\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n\n resetStepper() {\n this.stepper.reset();\n this.stepper.selectedIndex = 1;\n this.selected = [];\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private setFocusOnNameInput() {\n if (this.nameInput) {\n this.nameInput.focus();\n this.nameInput.select();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { AddGroupComponent } from './add-group.component';\nimport { AddGroupService } from './add-group.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [AddGroupComponent],\n imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule],\n entryComponents: [AddGroupComponent],\n exports: [AddGroupComponent],\n providers: [\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'add-group',\n component: AddGroupComponent\n }\n ],\n multi: true\n },\n AddGroupService\n ]\n})\nexport class AddGroupModule {}\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { Permissions } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-groups-name',\n templateUrl: './groups.component.html'\n})\nexport class GroupsComponent implements OnInit {\n refresh: EventEmitter<any> = new EventEmitter();\n showAddGroup = false;\n filterable: boolean = false;\n sortable: boolean = true;\n\n constructor(private permissions: Permissions) {}\n\n ngOnInit() {\n if (!this.permissions.hasRole('ROLE_INVENTORY_READ')) {\n this.sortable = false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { InventoryService } from '@c8y/client';\n\n@Injectable()\nexport class AssignDevicesService {\n constructor(private inventoryService: InventoryService) {}\n\n async assignDevices(id: string | number, selectedDevices: string[]) {\n const promises = [];\n\n selectedDevices.forEach(moId => {\n promises.push(this.inventoryService.childAssetsAdd(moId, id));\n });\n\n return await Promise.all(promises);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';\nimport { Pagination, AlertService, gettext, ActionControl, Row } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { SubAssetsService } from '../sub-assets.service';\nimport { IManagedObject } from '@c8y/client';\nimport { QueriesUtil } from '@c8y/client';\nimport { AssignDevicesService } from './assign-devices.service';\n\n@Component({\n selector: 'c8y-assign-devices',\n templateUrl: './assign-devices.component.html'\n})\nexport class AssignDevicesComponent {\n @Input() currentGroupId: string;\n @Input() refresh = new EventEmitter<any>();\n @Output() onCancel = new EventEmitter<any>();\n @Output() onShowChildDevices = new EventEmitter<boolean>();\n @Output() selectedDevice = new EventEmitter<IManagedObject>();\n\n deviceQueryStringOutput: string;\n pendingStatus: boolean = false;\n pagination: Pagination = { pageSize: 20, currentPage: 1 };\n selected: string[] = [];\n baseQuery: any;\n canAssignDevice: boolean = false;\n actionControls: ActionControl[] = [];\n readonly isSelectable = true;\n readonly itemsSelectLimit = 15;\n private queriesUtil: QueriesUtil;\n\n constructor(private assignDevicesService: AssignDevicesService, private alert: AlertService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n if (this.selected.length > 0) {\n this.assignDevices();\n }\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n ngOnInit() {\n this.setNotIncludedInGroupQuery();\n }\n\n setNotIncludedInGroupQuery() {\n const notIncludedInGroupQuery = { __not: { __bygroupid: this.currentGroupId } };\n this.baseQuery = notIncludedInGroupQuery;\n }\n\n setActionControls(showChildren: boolean) {\n const actionControls: ActionControl[] = [];\n const selectChildrenAction: ActionControl = {\n type: 'SELECT_CHILDREN',\n icon: 'enter-bottom',\n text: gettext('Select children'),\n callback: (asset: Row) => this.selectChildren(asset as IManagedObject),\n showIf: (asset: Row) =>\n asset.childDevices.references.length > 0\n };\n\n if (showChildren) {\n actionControls.push(selectChildrenAction);\n }\n this.actionControls = actionControls;\n this.refresh.emit();\n }\n\n async assignDevices() {\n this.pendingStatus = true;\n await this.assignDevicesService.assignDevices(this.currentGroupId, this.selected);\n this.pendingStatus = false;\n this.selected = [];\n\n this.onCancel.emit();\n this.refresh.emit();\n\n this.alert.success(gettext('Devices assigned to the group.'));\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n\n selectChildren(asset: IManagedObject) {\n this.onShowChildDevices.emit(true);\n this.selectedDevice.emit(asset);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { SubAssetsService } from '../sub-assets.service';\nimport { IManagedObject } from '@c8y/client';\nimport { AssignDevicesService } from './assign-devices.service';\n\n@Component({\n selector: 'c8y-assign-child-devices',\n templateUrl: './assign-child-devices.component.html'\n})\nexport class AssignChildDevicesComponent {\n @Input() currentGroupId: string;\n @Input() parentDevice: IManagedObject;\n @Output() onCancel = new EventEmitter<any>();\n @Input() refresh = new EventEmitter<any>();\n\n selected: string[] = [];\n baseQuery: any;\n pendingStatus: boolean = false;\n\n constructor(\n private alert: AlertService,\n private subAssetsService: SubAssetsService,\n private inventoryService: InventoryService,\n private assignDevicesService: AssignDevicesService\n ) {}\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n if (this.selected.length > 0) {\n this.assignDevices();\n }\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n async ngOnInit() {\n this.setNotIncludedInGroupQuery();\n }\n\n setNotIncludedInGroupQuery() {\n const notIncludedInGroupQuery = { __not: { __bygroupid: this.currentGroupId } };\n this.baseQuery = notIncludedInGroupQuery;\n }\n\n async assignDevices() {\n this.pendingStatus = true;\n\n try {\n await this.assignDevicesService.assignDevices(this.currentGroupId, this.selected);\n this.refresh.emit();\n this.alert.success(gettext('Child devices assigned to the group.'));\n } catch (error) {\n this.alert.danger(gettext('Could not assign child devices to the group'), error);\n }\n this.pendingStatus = false;\n this.selected = [];\n this.onCancel.emit();\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, gettext, HOOK_ONCE_ROUTE, ViewContext } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { AddGroupModule } from './add-group/add-group.module';\nimport { AssetTypeCellRendererComponent } from './columns/asset-type.cell-renderer.component';\nimport { DeleteAssetsModalComponent } from './delete-assets-modal/delete-assets-modal.component';\nimport { GroupInfoComponent } from './group-info.component';\nimport { GroupsComponent } from './groups.component';\nimport { SubAssetsGridComponent } from './sub-assets-grid.component';\nimport { SubAssetsComponent } from './sub-assets.component';\nimport { SubAssetsService } from './sub-assets.service';\nimport { UnassignModalComponent } from './unassign-assets-modal/unassign-modal.component';\nimport { AssignDevicesComponent } from './assign-devices/assign-devices.component';\nimport { AssignChildDevicesComponent } from './assign-devices/assign-child-devices.component';\nimport { AssignDevicesService } from './assign-devices/assign-devices.service';\n\n@NgModule({\n declarations: [\n SubAssetsComponent,\n SubAssetsGridComponent,\n AssetTypeCellRendererComponent,\n GroupsComponent,\n GroupInfoComponent,\n DeleteAssetsModalComponent,\n UnassignModalComponent,\n AssignDevicesComponent,\n AssignChildDevicesComponent\n ],\n imports: [CoreModule, DeviceGridModule, AddGroupModule, PopoverModule],\n entryComponents: [\n SubAssetsComponent,\n AssetTypeCellRendererComponent,\n GroupsComponent,\n DeleteAssetsModalComponent,\n UnassignModalComponent\n ],\n exports: [],\n providers: [\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n context: ViewContext.Group,\n path: 'subassets',\n priority: 1000,\n icon: 'c8y-group-open',\n label: gettext('Subassets'),\n component: SubAssetsComponent\n },\n {\n path: 'group',\n component: GroupsComponent\n }\n ],\n multi: true\n },\n SubAssetsService,\n AssignDevicesService\n ]\n})\nexport class SubAssetsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AddGroupComponent as ɵf} from './add-group/add-group.component';\nexport {AddGroupModule as ɵe} from './add-group/add-group.module';\nexport {AddGroupService as ɵg} from './add-group/add-group.service';\nexport {AssignDevicesService as ɵd} from './assign-devices/assign-devices.service';\nexport {AssetTypeCellRendererComponent as ɵa} from './columns/asset-type.cell-renderer.component';\nexport {DeleteAssetsModalComponent as ɵb} from './delete-assets-modal/delete-assets-modal.component';\nexport {UnassignModalComponent as ɵc} from './unassign-assets-modal/unassign-modal.component';"],"names":["tslib_1.__extends","tslib_1.__decorate","tslib_1.__read"],"mappings":";;;;;;;;;;;;;;IAYE,wCACS,OAA4B,EAC3B,kBAAsC;QADvC,YAAO,GAAP,OAAO,CAAqB;QAC3B,uBAAkB,GAAlB,kBAAkB,CAAoB;KAC5C;IAEJ,iDAAQ,GAAR;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpD;IAEO,qDAAY,GAApB,UAAqB,IAAY;QAC/B,QAAQ,IAAI;YACV,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;YAChC,KAAK,2BAA2B;gBAC9B,OAAO,uBAAuB,CAAC;YACjC,KAAK,kBAAkB;gBACrB,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;YACjC;gBACE,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;SAClC;KACF;;gBAxBiB,mBAAmB;gBACP,kBAAkB;;IAPrC,8BAA8B;QAH1C,SAAS,CAAC;YACT,+PAAwD;SACzD,CAAC;OACW,8BAA8B,CA+B1C;IAAD,qCAAC;CA/BD;;;ICHyCA,uCAAoB;IAC3D,6BAAY,mBAAkC;QAA9C,YACE,kBAAM,mBAAmB,CAAC,SAS3B;QARC,KAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,KAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAI,CAAC,QAAQ,qBAAuB;QACpC,KAAI,CAAC,qBAAqB,GAAG,8BAA8B,CAAC;QAC5D,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAI,CAAC,aAAa,GAAG;YACnB,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;SACpD,CAAC;;KACH;IACH,0BAAC;CAZD,CAAyC,oBAAoB;;;ICgCvBA,oCAAiB;IAOrD,0BACY,gBAAkC,EAClC,gBAAkC,EAClC,QAAyB,EACzB,IAAiB,EACjB,gBAAkC,EAClC,kBAAsC,EACtC,kBAAsC,EACtC,iBAAoC,EACpC,YAA0B,EAC1B,kBAA+B;QAV3C,YAYE,kBAAM,gBAAgB,EAAE,gBAAgB,CAAC,SAC1C;QAZW,sBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,cAAQ,GAAR,QAAQ,CAAiB;QACzB,UAAI,GAAJ,IAAI,CAAa;QACjB,sBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,wBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,wBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,uBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,kBAAY,GAAZ,YAAY,CAAc;QAC1B,wBAAkB,GAAlB,kBAAkB,CAAa;QAf3C,0BAAoB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,qCAA+B,GAAG,wBAAwB,CAAC;QAC7D,8BAAwB,GAAG,mBAAmB,CAAC;QAC/C,+BAAyB,GAAG,oBAAoB,CAAC;;KAexD;IAED,4CAAiB,GAAjB,UAAkB,UAA0B,EAAE,QAAwB;QAApD,2BAAA,EAAA,iBAA0B;QAAE,yBAAA,EAAA,eAAwB;QACpE,IAAM,cAAc,GAAG;YACrB,IAAI,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAC9C,IAAI,oBAAoB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC9C,IAAI,qBAAqB,EAAE;YAC3B,IAAI,4BAA4B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACpD,IAAI,gCAAgC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACxD,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAChD,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5C,IAAI,sBAAsB,EAAE;SAC7B,CAAC;QACF,OAAO,cAAc,CAAC;KACvB;IAED,+CAAoB,GAApB;QACU,IAAA,wCAAU,CAAsB;QACxC,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,WAAW,EAAE,CAAC;SACf,CAAC;KACH;IAED,mDAAwB,GAAxB;QACE,OAAO,EAAE,CAAC;KACX;IAEK,wCAAa,GAAnB,UAAoB,KAAqB,EAAE,SAAyB;;;;;;wBACtD,OAAO,GAAK,KAAK,GAAV,CAAW;wBAClB,QAAQ,GAAK,SAAS,GAAd,CAAe;6BAE/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAApB,wBAAoB;;;;wBAEpB,qBAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;wBAC3D,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACjF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;;;;wBAElC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;wBAC3F,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;4BAEzC,qBAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC,EAAA;;wBAAzD,SAAyD,CAAC;;;;;;KAE7D;IAED,mCAAQ,GAAR,UAAS,KAAqB;QAC5B,QACE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC;YACpD,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,EACrD;KACH;IAEK,sCAAW,GAAjB,UAAkB,KAAqB,EAAE,SAAyB,EAAE,MAAW;QAAX,uBAAA,EAAA,WAAW;;;;;;wBACvE,OAAO,GACX,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC;4BACnD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;6BAE1C,OAAO,EAAP,wBAAO;wBACT,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAA;;wBAArC,SAAqC,CAAC;;4BAEtC,qBAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;;;8BAIvC,SAAS;4BACT,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;4BAC5C,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA,EAF9C,wBAE8C;wBAE9C,qBAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC,EAAA;;wBAAzD,SAAyD,CAAC;;;;;;KAE7D;IAED,2DAAgC,GAAhC,UAAiC,KAAqB;QAC5C,IAAA,mBAAK,EAAE,iCAA0B,CAAW;QACpD,IAAM,oBAAoB,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAErE,OAAO,OAAO,CAAC,YAAY,IAAI,oBAAoB,CAAC,CAAC;KACtD;IAED,uDAA4B,GAA5B;QACE,OAAO,EAAE,CAAC;KACX;IAEK,kCAAO,GAAb,UACE,OAA2B,EAC3B,UAAsB,EACtB,eAA+B,EAC/B,SAAmB;QAAnB,0BAAA,EAAA,cAAmB;;;;gBAEb,MAAM,GAAG,CAAC,eAAe,CAAC;gBAChC,IAAI,MAAM,EAAE;oBACJ,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACrE,sBAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,cAAM,UAAU,IAAE,KAAK,OAAA,IAAG,EAAC;iBACrE;gBACK,OAAO,gBACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,IACxD,WAAW,EAAE,KAAK,GACnB,CAAC;gBACF,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;oBACpD,sBAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,EAAC;iBACzE;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;oBAC3D,sBAAO,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAC/C,eAAe,CAAC,qBAAqB,EACrC,OAAO,CACR,EAAC;iBACH;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;oBACrD,sBAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,EAAC;iBAC7E;;;;KACF;IAEK,mCAAQ,GAAd,UACE,OAA2B,EAC3B,UAAsB,EACtB,eAA+B,EAC/B,SAAmB;QAAnB,0BAAA,EAAA,cAAmB;;;;gBAEb,cAAc,GAAG;oBACrB,QAAQ,EAAE,CAAC;oBACX,YAAY,EAAE,KAAK;iBACpB,CAAC;gBACI,OAAO,GAAG,CAAC,eAAe;iCAE1B,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,IAC1D,cAAc,iBAGd,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EACrD,cAAc,CAClB,CAAC;gBACN,sBAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,EAAC;;;KAC3D;IAED,mCAAQ,GAAR,UAAS,eAA+B,EAAE,SAAmB;QAAnB,0BAAA,EAAA,cAAmB;QAC3D,IAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAM,KAAK,GAAG,CAAC,eAAe;cAC1B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC;cACrD,SAAS,CAAC;QACd,IAAM,OAAO,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;YACzC,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KAC3D;IAED,uCAAY,GAAZ,UAAa,KAAqB;QAChC,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QACpD,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjF,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ,CAAC;QACrD,OAAO,YAAY,IAAI,OAAO,CAAC;KAChC;IAED,4CAAiB,GAAjB;QACE,IAAM,uBAAuB,GAAG,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;KACpE;IAED,8CAAmB,GAAnB;QACE,IAAM,yBAAyB,GAAG,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;KACtE;IAED,uCAAY,GAAZ,UAAa,KAAqB;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACrG;IAED,gDAAqB,GAArB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QACpD,IAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC5D,sBAAsB;YACtB,qBAAqB;YACrB,uBAAuB;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,mBAAmB,CAAC;KAC7B;IAEe,8CAAmB,GAAnC,UACE,eAA+B,EAC/B,OAAe;;;;;;wBAET,MAAM,GAAG,CAAC,eAAe,CAAC;6BAC5B,MAAM,EAAN,wBAAM;wBACA,qBAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAA;4BAAzD,sBAAO,CAAC,SAAiD,EAAE,MAAM,CAAC,UAAU,EAAC;;6BAE3E,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAhD,wBAAgD;wBAC1C,qBAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,EAAA;4BAA9E,sBAAO,CAAC,SAAsE,EAAE,MAAM;6BACnF,UAAU,EAAC;;6BAEZ,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAvD,wBAAuD;wBACjD,qBAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CACtD,eAAe,CAAC,qBAAqB,EACrC,OAAO,CACR,EAAA;4BAHD,sBAAO,CAAC,SAGP,EAAE,MAAM,CAAC,UAAU,EAAC;;6BAEnB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAjD,wBAAiD;wBAC3C,qBAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,EAAA;4BAAlF,sBAAO,CAAC,SAA0E,EAAE,MAAM;6BACvF,UAAU,EAAC;;;;;KAEjB;IAES,uDAA4B,GAAtC,UAAuC,OAAO,EAAE,UAAU;QACxD,IAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAExD,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3F,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KAC/C;IAEa,sCAAW,GAAzB,UAA0B,KAAqB,EAAE,MAAgB;QAAhB,uBAAA,EAAA,WAAgB;;;;;;wBACvD,OAAO,GAAK,MAAM,QAAX,CAAY;;;;8BAGzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA,EAA5F,wBAA4F;wBACxF,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;;wBAAxD,KAAA,SAAwD,CAAA;;4BACxD,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;;wBAAtD,KAAA,SAAsD,CAAA;;;wBAF1D,GAE2D;wBAErD,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAC9E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;;;;wBAElC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBACvF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;;;;;KAE1C;IAEa,uCAAY,GAA1B,UAA2B,MAAsB,EAAE,MAAgB;QAAhB,uBAAA,EAAA,WAAgB;;;;;;wBACzD,OAAO,GAAqB,MAAM,QAA3B,EAAE,cAAc,GAAK,MAAM,eAAX,CAAY;;;;wBAEjC,KAAK,GAAK,MAAM,MAAX,CAAY;wBACnB,iBAAiB,GAAG,cAAc,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;6BAE9E,iBAAiB,EAAjB,wBAAiB;wBACb,qBAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;wBAAhD,KAAA,SAAgD,CAAA;;4BAChD,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;;wBAAvD,KAAA,SAAuD,CAAA;;;wBAF3D,GAE4D;wBAEtD,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAC9E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;;;;wBAElC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBACvF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;;;;;KAE1C;IAEa,uDAA4B,GAA1C,UAA2C,KAAqB,EAAE,SAAyB;;;;;;;wBAC7E,OAAO,GAAK,KAAK,GAAV,CAAW;wBAClB,QAAQ,GAAK,SAAS,GAAd,CAAe;wBACX,qBAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAA;;wBAAtE,KAAK,GAAY,CAAC,SAAoD,EAAE,IAAI;wBAE5E,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;4BAC5C,OAAA,KAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;yBAAA,CACrE,CAAC;;;;wBAGA,qBAAM,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAA;;wBAA1C,SAA0C,CAAC;;;;wBAErC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAChD,OAAO,CAAC,mCAAmC,CAAC,CAC7C,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;;;;;KAE1C;IAEO,uCAAY,GAApB,UAAqB,MAAc;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KACjC;IAEa,+CAAoB,GAAlC,UAAmC,MAAsB,EAAE,OAAgB;;;;;;wBACnE,MAAM,GAAG,EAAE,OAAO,SAAA,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;;;;wBAExC,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAA;4BAAzD,sBAAO,SAAkD,EAAC;;;wBAEnD,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;4BAA9D,sBAAO,SAAuD,EAAC;;;;;KAElE;IAEO,2CAAgB,GAAxB,UAAyB,OAA2B,EAAE,UAAsB,EAAE,SAAS;QACrF,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QAClF,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;YACzC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;YACvD,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,cAAc,EAAE,IAAI;SACrB,CAAC;KACH;;gBA1S6B,gBAAgB;gBAChB,gBAAgB;gBACxB,eAAe;gBACnB,WAAW;gBACC,gBAAgB;gBACd,kBAAkB;gBAClB,kBAAkB;gBACnB,iBAAiB;gBACtB,YAAY;gBACN,WAAW;;IAjBhC,gBAAgB;QAD5B,UAAU,EAAE;OACA,gBAAgB,CAmT5B;IAAD,uBAAC;CAAA,CAnTqC,iBAAiB;;;ICZrD,4BACU,SAA2B,EAC3B,gBAAkC,EAClC,kBAAsC,EACtC,kBAAsC,EACtC,YAA0B,EAC1B,SAA2B,EAC3B,YAA0B;QAN1B,cAAS,GAAT,SAAS,CAAkB;QAC3B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAkB;QAC3B,iBAAY,GAAZ,YAAY,CAAc;QAlB1B,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAMrC,cAAS,GAAG,OAAO,CACzB,8EAA8E,CAC/E,CAAC;QACM,eAAU,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC7C,sBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAS3D;IAEJ,qCAAQ,GAAR;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;cAC7D,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;cACzC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAEzD,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,yCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvD;IAEK,mCAAM,GAAZ,UAAa,YAAqC;;;;;;;wBAExC,YAAY,GAAY,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BAC7E,YAAY,EAAZ,wBAAY;wBACR,qBAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAA;;wBAAzC,KAAA,SAAyC,CAAA;;4BACzC,qBAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAA;;wBAApC,KAAA,SAAoC,CAAA;;;wBAFxC,GAEyC;;;;wBAEzC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAK,CAAC,CAAC;;;;;;KAE7C;IAEO,uCAAU,GAAlB;QACE,IAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO;cAC1B,mBAAmB,SAAI,oBAAsB;cAChD,IAAI,CAAC,SAAS,CAAC;KACpB;IAEa,wCAAW,GAAzB,UAA0B,YAAqC;;;;;;wBACrD,EAAE,GAAK,IAAI,CAAC,KAAK,GAAf,CAAgB;wBACpB,KAAK,cAA8B,EAAE,IAAA,IAAK,YAAY,CAAE,CAAC;wBAEzC,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAAlD,YAAY,GAAG,CAAC,SAAkC,EAAE,IAAI;wBAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;;;;KAC7B;IAEa,6CAAgB,GAA9B,UAA+B,YAAqC;;;;;;wBAC1D,EAAE,GAAK,IAAI,CAAC,KAAK,GAAf,CAAgB;wBAClB,qBAAqB,GAAK,YAAY,sBAAjB,CAAkB;wBACzC,KAAK,cAA8B,EAAE,IAAA,IAAK,YAAY,CAAE,CAAC;6BAG3D,CAAC,qBAAqB,EAAtB,wBAAsB;wBACR,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAA3D,YAAY,GAAG,CAAC,SAA2C,EAAE,IAAI,CAAC;wBAClE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;wBAC5B,sBAAO;;;wBAID,SAAS,GAAG,OAAO,CACvB,yEAAyE,CAC1E,CAAC;wBACI,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;wBAC5C,qBAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;gCAChE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC;gCACnB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;6BAC1B,CAAC,EAAA;;wBAHF,SAGE,CAAC;wBAEG,qBAAM,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,EAAA;;wBAAzD,IAAI,EAAE,SAAmD,CAAC,EAAE;4BAC1D,sBAAO;yBACR;;;;wBAED,sBAAO;4BAEO,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAA3D,YAAY,GAAG,CAAC,SAA2C,EAAE,IAAI,CAAC;wBAClE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;;;;KAC7B;IAEO,qCAAQ,GAAhB,UAAiB,KAAqB;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACnD;IAEa,8CAAiB,GAA/B,UAAgC,KAAa;;;;;;;wBAEnC,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;wBAC5B,qBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;wBAClC,sBAAO,IAAI,EAAC;;;wBAEZ,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAK,CAAC,CAAC;wBAC1C,sBAAO,KAAK,EAAC;;;;;KAEhB;;gBAhGoB,gBAAgB;gBACT,gBAAgB;gBACd,kBAAkB;gBAClB,kBAAkB;gBACxB,YAAY;gBACf,gBAAgB;gBACb,YAAY;;IAnB3BC;QAAR,KAAK,EAAE;qDAAuB;IACrBA;QAAT,MAAM,EAAE;6DAAoC;IAFlC,kBAAkB;QAJ9B,SAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;YAC1B,mqOAA0C;SAC3C,CAAC;OACW,kBAAkB,CA+G9B;IAAD,yBAAC;CA/GD;;;ICiBE,4BACU,KAAqB,EACrB,QAAyB,EACzB,kBAAsC,EACtC,gBAAkC;QAJ5C,iBAYC;QAXS,UAAK,GAAL,KAAK,CAAgB;QACrB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAhB5C,WAAM,GAAY,KAAK,CAAC;QACxB,iBAAY,GAAY,KAAK,CAAC;QAC9B,sBAAiB,GAAY,KAAK,CAAC;QAGnC,kBAAa,GAAY,IAAI,CAAC;QAC9B,2BAAsB,GAAY,KAAK,CAAC;QACxC,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAChD,eAAU,GAAY,IAAI,CAAC;QAUzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,EAAe;gBAAb,4BAAW;YAC5D,KAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;YAC9B,KAAI,CAAC,cAAc,GAAG,WAAW,CAAC,EAAE,CAAC;YACrC,KAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,KAAI,CAAC,UAAU,GAAG,CAAC,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACxE,CAAC,CAAC;KACJ;IAED,qCAAQ,GAAR;QAAA,iBAWC;QAVC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,UAAA,KAAK;YAClC,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,kBAAkB,CAAC;SAC5F,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG;YACpB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;SAC7B,CAAC;KACH;IAED,wCAAW,GAAX,UAAY,KAAqB;;;;;QAK/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,yCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvD;IAED,wCAAW,GAAX;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SAC5B;KACF;;gBA5CgB,cAAc;gBACX,eAAe;gBACL,kBAAkB;gBACpB,gBAAgB;;IApBjC,kBAAkB;QAJ9B,SAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;YAC1B,q7EAA0C;SAC3C,CAAC;OACW,kBAAkB,CA8D9B;IAAD,yBAAC;CA9DD;;;ICoBE,oCAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAd7C,4BAAuB,GAAY,IAAI,CAAC;QACxC,+BAA0B,GAAY,KAAK,CAAC;QAGrD,iBAAY,GAAmC,IAAI,OAAO,EAAE,CAAC;QAC7D,WAAM,GAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,UAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAChC,WAAM,GAAe,MAAM,CAAC,MAAM,CAAC;QACnC,WAAM,GAA0B;YAC9B,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,KAAK;SACtB,CAAC;KAGwD;IAE1D,6CAAQ,GAAR;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC1C,OAAO,CACL,oGAAoG,CACrG,EACD,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAC1B,CAAC;KACH;IAEK,oDAAe,GAArB;;;;;;;wBAEI,qBAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;;;;wBAEf,IAAI,CAAC,SAAS,EAAE,CAAC;;;;;;KAEpB;IAED,4CAAO,GAAP;QACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,8CAAS,GAAT;QACE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;;gBA3BqC,gBAAgB;;IAd7CA;QAAR,KAAK,EAAE;+EAAyC;IACxCA;QAAR,KAAK,EAAE;kFAA6C;IAC5CA;QAAR,KAAK,EAAE;6DAAuB;IACWA;QAAzC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gEAAiC;IAJ/D,0BAA0B;QAJtC,SAAS,CAAC;YACT,QAAQ,EAAE,yBAAyB;YACnC,ylCAAmD;SACpD,CAAC;OACW,0BAA0B,CA2CtC;IAAD,iCAAC;CA3CD;;;ICOE,gCAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QALtD,iBAAY,GAAqB,IAAI,OAAO,EAAE,CAAC;QAC/C,WAAM,GAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7E,UAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpC,WAAM,GAAe,MAAM,CAAC,OAAO,CAAC;KAEsB;IAE1D,yCAAQ,GAAR;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC1C,OAAO,CAAC,uEAAuE,CAAC,EAChF,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAC1B,CAAC;KACH;IAEK,gDAAe,GAArB;;;;;;;wBAEI,qBAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;;;;wBAEf,IAAI,CAAC,SAAS,EAAE,CAAC;;;;;;KAEpB;IAED,wCAAO,GAAP;QACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,0CAAS,GAAT;QACE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;;gBAzBqC,gBAAgB;;IAR7CA;QAAR,KAAK,EAAE;yDAAuB;IACWA;QAAzC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;4DAAiC;IAF/D,sBAAsB;QAJlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,qKAA8C;SAC/C,CAAC;OACW,sBAAsB,CAmClC;IAAD,6BAAC;CAnCD;;;ICoGE,gCACS,oBAAsC,EACrC,cAA8B,EAC9B,kBAAsC;QAFvC,yBAAoB,GAApB,oBAAoB,CAAkB;QACrC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,uBAAkB,GAAlB,kBAAkB,CAAoB;QAnFvC,UAAK,GAAW,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,mBAAc,GAAW,OAAO,CACvC,0EAA0E,CAC3E,CAAC;QACO,sBAAiB,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC;QA4BvD,eAAU,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAQ,EAAE,CAAC;QAQpB,eAAU,GAAY,IAAI,CAAC;QAC3B,aAAQ,GAAY,IAAI,CAAC;QACxB,oBAAe,GAAqC,IAAI,YAAY,EAE3E,CAAC;QACM,gBAAW,GAA2B,IAAI,YAAY,EAAY,CAAC;QAE7E,eAAU,GAAe,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;QAE1E,uBAAkB,GAAwB,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,EAAE,CAAC;QAMnG,mBAAc,GAAmB;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;SACb,CAAC;QAwBA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpE;IAhFD,sBAAI,2CAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;aACQ,UAAY,KAAyB;YAC5C,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;aAC3E;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAChE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,CAC9C,CAAC;aACH;SACF;;;OATA;IAUoB,sBAAI,+CAAW;aAAf,UAAgB,KAAiB;YACpD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;aACpE;SACF;;;OAAA;IACwB,sBAAI,mDAAe;aAAnB,UAAoB,KAAsB;YACjE,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,CAAC;aAC5E;SACF;;;OAAA;IAG4B,sBAAI,uDAAmB;aAAvB,UAAwB,KAA0B;YAC7E,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,EAAE,CAAC;aACpF;SACF;;;OAAA;IAyBD,sBAAI,+CAAW;aAAf;YACE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;SAC1B;;;OAAA;IAED,sBAAI,yDAAqB;aAAzB;YACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,EAAE;kBACxE,MAAM;kBACN,SAAS,CAAC;SACf;;;OAAA;IAGD,sBAAI,mDAAe;aAAnB,UAAoB,cAAc;YAChC,IAAI,CAAC,cAAc,gBAAQ,IAAI,CAAC,cAAc,EAAK,cAAc,CAAE,CAAC;SACrE;;;OAAA;IAUD,yCAAQ,GAAR;QAAA,iBASC;QARC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;gBACzB,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEK,kDAAiB,GAAvB;;;;;;;wBACQ,cAAc,GAAoB,EAAE,CAAC;wBAGvC,qBAAM,IAAI,CAAC,kBAAkB,CAAC,oCAAoC,EAAE,EAAA;;wBADhE,uBAAuB,GAC3B,CAAA,SAAoE,MADzC;wBAGzB,YAAY,GAAkB;4BAClC,IAAI;4BACJ,QAAQ,EAAE,UAAC,KAAU,IAAK,OAAA,KAAI,CAAC,aAAa,CAAC,KAAuB,EAAE,KAAI,CAAC,WAAW,CAAC,GAAA;4BACvF,MAAM,EAAE,UAAC,KAAU;gCACjB,IAAI,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAuB,CAAC,EAAE;oCACnE,OAAO,uBAAuB,GAAG,KAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC;iCAC1F;gCAED,IAAI,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAuB,CAAC,EAAE;oCACjE,OAAO,KAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;iCACxD;gCAED,OAAO,IAAI,CAAC;6BACb;yBACF,CAAC;wBAEF,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAE5B,cAAc,GAAkB;4BACpC,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;4BACzB,QAAQ,EAAE,UAAC,KAAU,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,KAAuB,EAAE,KAAI,CAAC,WAAW,CAAC,GAAA;4BACzF,MAAM,EAAE,UAAC,KAAU;gCACjB,OAAA,KAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAuB,CAAC;oCAC3D,CAAC,KAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,KAAI,CAAC,WAA6B,CAAC;6BAAA;yBAC9E,CAAC;wBAEF,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAEpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;4BACxB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;yBACtC;;;;;KACF;IAED,gDAAe,GAAf,UAAgB,KAAqB,EAAE,SAAyB;QAAhE,iBAYC;QAXC,IAAM,YAAY,GAAG;YACnB,KAAK,OAAA;SACN,CAAC;QACF,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,YAAY,cAAA,EAAE,CAAC,CAAC;QAEpF,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,UAAO,MAAe;;;;6BACxD,MAAM,EAAN,wBAAM;wBACR,qBAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,EAAA;;wBAA/D,SAA+D,CAAC;wBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;;;;;aAEvB,CAAC,CAAC;KACJ;IAEK,8CAAa,GAAnB,UAAoB,KAAqB,EAAE,SAAyB;;;;;gBAC5D,YAAY,GAAG;oBACnB,0BAA0B,EAAE,IAAI,CAAC,oBAAoB,CAAC,gCAAgC,CAAC,KAAK,CAAC;oBAC7F,KAAK,OAAA;oBACL,uBAAuB,EACrB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;wBAC5C,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC;iBACjD,CAAC;gBAEI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,YAAY,cAAA,EAAE,CAAC,CAAC;gBAExF,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,UAAO,MAA6B;;;;qCACtE,MAAM,EAAN,wBAAM;gCACR,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gCAChE,qBAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAA;;gCAArE,SAAqE,CAAC;gCACtE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;;;;;qBAEvB,CAAC,CAAC;;;;KACJ;IAED,4CAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxB;KACF;IAED,4CAAW,GAAX,UAAY,MAAM,EAAE,MAAwB;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC;KACpB;IAEK,qDAAoB,GAA1B,UACE,kBAAsC;;;;;;wBAEhC,QAAQ,GAAG,EAAE,CAAC;wBAGpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC/B,kBAAkB,CAAC,OAAO,EAC1B,kBAAkB,CAAC,UAAU,EAC7B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CACF,CAAC;wBAEI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAC;wBACpE,IAAI,MAAM,EAAE;4BACV,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;4BAC7C,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC3D;6BAAM;4BACL,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;4BACpF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAChC,kBAAkB,CAAC,OAAO,EAC1B,kBAAkB,CAAC,UAAU,EAC7B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CACF,CAAC;yBACH;wBAC0C,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;wBAAhE,KAAAC,sBAAqC,SAA2B,KAAA,EAA/D,YAAY,QAAA,EAAE,IAAI,QAAA,EAAE,YAAY,QAAA;wBACvC,IAAI,CAAC,QAAQ,EAAE;4BACb,QAAQ,GAAG;gCACT,IAAI,MAAA;gCACJ,YAAY,cAAA;6BACb,CAAC;yBACH;wBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;wBAEtD,iCACE,GAAG,EAAE,YAAY,CAAC,GAAG,EACrB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,MAAM,EAAE,YAAY,CAAC,MAAM,IACxB,QAAQ,GACX;;;;KACH;IAED,6CAAY,GAAZ,UAAa,MAAM;QACjB,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KAC9C;;IAGO,qDAAoB,GAA5B,UAA6B,MAA+B;QAC1D,IAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,aAAa,CAAC;QAC/E,IAAM,yBAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,kBAAkB,CAAC;QACzF,IAAI,QAAQ,CAAC;QACb,IAAI,MAAM,KAAK,UAAU,EAAE;YACzB,QAAQ,GAAG;gBACT,IAAI,EAAE,oBAAoB,GAAG,CAAC;gBAC9B,YAAY,EAAE,yBAAyB,GAAG,CAAC;aAC5C,CAAC;SACH;QACD,IAAI,MAAM,KAAK,UAAU,EAAE;YACzB,QAAQ,GAAG;gBACT,IAAI,EAAE,oBAAoB,GAAG,CAAC;gBAC9B,YAAY,EAAE,yBAAyB,GAAG,CAAC;aAC5C,CAAC;SACH;QACD,OAAO,QAAQ,CAAC;KACjB;;gBA5K8B,gBAAgB;gBACrB,cAAc;gBACV,kBAAkB;;IArFzBD;QAAtB,KAAK,CAAC,cAAc,CAAC;+DAA6B;IAC1CA;QAAR,KAAK,EAAE;2DAA4B;IAC3BA;QAAR,KAAK,EAAE;yDAAsC;IACrCA;QAAR,KAAK,EAAE;kEAEN;IACOA;QAAR,KAAK,EAAE;qEAAwD;IAKvDA;QAAR,KAAK,EAAE;yDAQP;IACoBA;QAApB,KAAK,CAAC,YAAY,CAAC;6DAMnB;IACwBA;QAAxB,KAAK,CAAC,gBAAgB,CAAC;iEAMvB;IACQA;QAAR,KAAK,EAAE;8DAA6B;IAC5BA;QAAR,KAAK,EAAE;6DAAqB;IACAA;QAA5B,KAAK,CAAC,oBAAoB,CAAC;qEAM3B;IACQA;QAAR,KAAK,EAAE;8DAA4B;IAC3BA;QAAR,KAAK,EAAE;4DAA0B;IACxBA;QAAT,MAAM,EAAE;mEAEL;IACMA;QAAT,MAAM,EAAE;+DAAoE;IAQ7EA;QADC,SAAS,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;4DACnB;IAsB5BA;QADC,KAAK,CAAC,gBAAgB,CAAC;iEAGvB;IAjFU,sBAAsB;QAJlC,SAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,o+BAA+C;SAChD,CAAC;OACW,sBAAsB,CAiQlC;IAAD,6BAAC;CAjQD;;;ICvBE,yBAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAF9C,wBAAmB,GAAG,mBAAmB,CAAC;KAEQ;IAEpD,qDAA2B,GAAjC,UACE,SAAoB,EACpB,cAA+B,EAC/B,eAAyB;;;;;;wBAGjB,IAAI,GAAkB,SAAS,KAA3B,EAAE,WAAW,GAAK,SAAS,YAAd,CAAe;wBAClC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;6BAElE,cAAc,EAAd,wBAAc;wBACP,qBAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,EAAA;;wBAAlF,KAAK,GAAG,CAAC,SAAyE,EAAE,IAAI,CAAC;;4BAEhF,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAA;;wBAAvD,KAAK,GAAG,CAAC,SAA8C,EAAE,IAAI,CAAC;;;8BAG5D,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA,EAA1B,wBAA0B;wBAC5B,qBAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,EAAA;;wBAAnD,SAAmD,CAAC;;4BAGtD,sBAAO,KAAK,EAAC;;;;KACd;IAEO,oCAAU,GAAlB,UACE,IAAY,EACZ,WAAwB,EACxB,cAA+B;;QAD/B,4BAAA,EAAA,gBAAwB;QAGxB,IAAM,KAAK;gBACT,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;;YACvC,GAAC,IAAI,CAAC,mBAAmB,IAAG,EAAE;YAC9B,OAAI,OAAA;YACJ,cAAW,cAAA;eACZ,CAAC;QAEF,OAAO,KAAK,CAAC;KACd;IAEO,sCAAY,GAApB,UACE,cAA+B;QAE/B,OAAO,cAAc,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC;KAC9E;IAEa,uCAAa,GAA3B,UAA4B,EAAmB,EAAE,eAAyB;;;;;;;wBAClE,QAAQ,GAAG,EAAE,CAAC;wBAEpB,eAAe,CAAC,OAAO,CAAC,UAAA,IAAI;4BAC1B,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;yBAC/D,CAAC,CAAC;wBAEI,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;4BAAlC,sBAAO,SAA2B,EAAC;;;;KACpC;;gBArDqC,gBAAgB;;IAH3C,eAAe;QAD3B,UAAU,EAAE;OACA,eAAe,CAyD3B;IAAD,sBAAC;CAzDD;;;ICuCE,2BACY,iBAAoC,EACtC,EAAe,EACf,eAAgC,EAChC,KAAmB,EACnB,gBAAkC;QAJhC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACtC,OAAE,GAAF,EAAE,CAAa;QACf,oBAAe,GAAf,eAAe,CAAiB;QAChC,UAAK,GAAL,KAAK,CAAc;QACnB,qBAAgB,GAAhB,gBAAgB,CAAkB;QA5BnC,YAAO,GAAG,IAAI,YAAY,EAAO,CAAC;QACjC,8BAAyB,GAAyB,IAAI,YAAY,EAAU,CAAC;QAC7E,aAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;QAO7C,kBAAa,GAAY,KAAK,CAAC;QAC/B,eAAU,GAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC1D,aAAQ,GAAa,EAAE,CAAC;QAGf,uBAAkB,GAAW,EAAE,CAAC;QAChC,cAAS,GAAG;YACnB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;YACzB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;SAC1B,CAAC;KAUE;IAEgD,0CAAc,GAAd,UAAe,KAAoB;;QAErF,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAEoD,2CAAe,GAAf,UAAgB,KAAoB;QACvF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEuD,8CAAkB,GAAlB,UAAmB,KAAoB;QAA/F,iBAMC;QALC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAExB,UAAU,CAAC;YACT,KAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ;IAED,oCAAQ,GAAR;QAAA,iBAMC;QALC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACpC,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,CAAC,EAAE,CAAC;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,YAAY,EAAE,GAAA,CAAC,CAAC;KACxE;IAED,2CAAe,GAAf;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAiC,CAAC;QACrE,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEK,uCAAW,GAAjB;;;;;wBACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5D,qBAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,CACpD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAC3B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,QAAQ,CACd,EAAA;;wBAJD,SAIC,CAAC;wBAEF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAE9C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;;;;KACtB;IAED,sCAAU,GAAV,UAAW,kBAA4B;QACrC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC;KACpC;IAED,wCAAY,GAAZ;QACE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAED,uCAAW,GAAX;QACE,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;KACF;IAEO,+CAAmB,GAA3B;QACE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;SACzB;KACF;;gBA9E8B,iBAAiB;gBAClC,WAAW;gBACE,eAAe;gBACzB,YAAY;gBACD,gBAAgB;;IA7BnCA;QAAR,KAAK,EAAE;6DAAwB;IACvBA;QAAR,KAAK,EAAE;sDAAmC;IACjCA;QAAT,MAAM,EAAE;wEAA8E;IAC7EA;QAAT,MAAM,EAAE;uDAAoC;IAE7CA;QADC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;sDACrB;IAEpBA;QADC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;2DACf;IAyB2BA;QAAnD,YAAY,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAC;2DAMlD;IAEoDA;QAApD,YAAY,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC;4DAEnD;IAEuDA;QAAvD,YAAY,CAAC,4BAA4B,EAAE,CAAC,QAAQ,CAAC,CAAC;+DAMtD;IAnDU,iBAAiB;QAJ7B,SAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,2+IAAyC;SAC1C,CAAC;OACW,iBAAiB,CAyG7B;IAAD,wBAAC;CAzGD;;SCLgB;IACR;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,iBAAiB;KAC7B;CACF;AAMP;IAAA;KAA8B;IAAjB,cAAc;QAnB1B,QAAQ,CAAC;YACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;YACjC,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,CAAC;YACzE,eAAe,EAAE,CAAC,iBAAiB,CAAC;YACpC,OAAO,EAAE,CAAC,iBAAiB,CAAC;YAC5B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe;oBACxB,QAAQ,IAKP;oBACD,KAAK,EAAE,IAAI;iBACZ;gBACD,eAAe;aAChB;SACF,CAAC;OACW,cAAc,CAAG;IAAD,qBAAC;CAA9B;;;ICbE,yBAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAL5C,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAChD,iBAAY,GAAG,KAAK,CAAC;QACrB,eAAU,GAAY,KAAK,CAAC;QAC5B,aAAQ,GAAY,IAAI,CAAC;KAEuB;IAEhD,kCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;YACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;KACF;;gBANgC,WAAW;;IANjC,eAAe;QAJ3B,SAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;YAC3B,4wBAAsC;SACvC,CAAC;OACW,eAAe,CAa3B;IAAD,sBAAC;CAbD;;;ICFE,8BAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;KAAI;IAEpD,4CAAa,GAAnB,UAAoB,EAAmB,EAAE,eAAyB;;;;;;;wBAC1D,QAAQ,GAAG,EAAE,CAAC;wBAEpB,eAAe,CAAC,OAAO,CAAC,UAAA,IAAI;4BAC1B,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;yBAC/D,CAAC,CAAC;wBAEI,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;4BAAlC,sBAAO,SAA2B,EAAC;;;;KACpC;;gBAVqC,gBAAgB;;IAD3C,oBAAoB;QADhC,UAAU,EAAE;OACA,oBAAoB,CAYhC;IAAD,2BAAC;CAZD;;;IC0BE,gCAAoB,oBAA0C,EAAU,KAAmB;QAAvE,yBAAoB,GAApB,oBAAoB,CAAsB;QAAU,UAAK,GAAL,KAAK,CAAc;QAhBlF,YAAO,GAAG,IAAI,YAAY,EAAO,CAAC;QACjC,aAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;QACnC,uBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;QACjD,mBAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;QAG9D,kBAAa,GAAY,KAAK,CAAC;QAC/B,eAAU,GAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC1D,aAAQ,GAAa,EAAE,CAAC;QAExB,oBAAe,GAAY,KAAK,CAAC;QACjC,mBAAc,GAAoB,EAAE,CAAC;QAC5B,iBAAY,GAAG,IAAI,CAAC;QACpB,qBAAgB,GAAG,EAAE,CAAC;QAI7B,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;KACtC;IAEmD,+CAAc,GAAd,UAAe,KAAoB;QACrF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAEoD,gDAAe,GAAf,UAAgB,KAAoB;QACvF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,yCAAQ,GAAR;QACE,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAED,2DAA0B,GAA1B;QACE,IAAM,uBAAuB,GAAG,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAChF,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC;KAC1C;IAED,kDAAiB,GAAjB,UAAkB,YAAqB;QAAvC,iBAgBC;QAfC,IAAM,cAAc,GAAoB,EAAE,CAAC;QAC3C,IAAM,oBAAoB,GAAkB;YAC1C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;YAChC,QAAQ,EAAE,UAAC,KAAU,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,KAAuB,CAAC,GAAA;YACtE,MAAM,EAAE,UAAC,KAAU;gBACjB,OAAA,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;aAAA;SAC3C,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAEK,8CAAa,GAAnB;;;;;wBACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,qBAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAA;;wBAAjF,SAAiF,CAAC;wBAClF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBAEnB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC;;;;;KAC/D;IAED,2CAAU,GAAV,UAAW,kBAA4B;QACrC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC;KACpC;IAED,+CAAc,GAAd,UAAe,KAAqB;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;;gBA5DyC,oBAAoB;gBAAiB,YAAY;;IAjBlFA;QAAR,KAAK,EAAE;kEAAwB;IACvBA;QAAR,KAAK,EAAE;2DAAmC;IACjCA;QAAT,MAAM,EAAE;4DAAoC;IACnCA;QAAT,MAAM,EAAE;sEAAkD;IACjDA;QAAT,MAAM,EAAE;kEAAqD;IAiBVA;QAAnD,YAAY,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAC;gEAIlD;IAEoDA;QAApD,YAAY,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC;iEAEnD;IA9BU,sBAAsB;QAJlC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,ymDAA8C;SAC/C,CAAC;OACW,sBAAsB,CA+ElC;IAAD,6BAAC;CA/ED;;;ICSE,qCACU,KAAmB,EACnB,gBAAkC,EAClC,gBAAkC,EAClC,oBAA0C;QAH1C,UAAK,GAAL,KAAK,CAAc;QACnB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,yBAAoB,GAApB,oBAAoB,CAAsB;QAX1C,aAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;QACpC,YAAO,GAAG,IAAI,YAAY,EAAO,CAAC;QAE3C,aAAQ,GAAa,EAAE,CAAC;QAExB,kBAAa,GAAY,KAAK,CAAC;KAO3B;IAEgD,oDAAc,GAAd,UAAe,KAAoB;QACrF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAEoD,qDAAe,GAAf,UAAgB,KAAoB;QACvF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEK,8CAAQ,GAAd;;;gBACE,IAAI,CAAC,0BAA0B,EAAE,CAAC;;;;KACnC;IAED,gEAA0B,GAA1B;QACE,IAAM,uBAAuB,GAAG,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAChF,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC;KAC1C;IAEK,mDAAa,GAAnB;;;;;;wBACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;;;;wBAGxB,qBAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAA;;wBAAjF,SAAiF,CAAC;wBAClF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAC;;;;wBAEpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,6CAA6C,CAAC,EAAE,OAAK,CAAC,CAAC;;;wBAEnF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;;;;KACtB;IAED,gDAAU,GAAV,UAAW,kBAA4B;QACrC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC;KACpC;;gBA1CgB,YAAY;gBACD,gBAAgB;gBAChB,gBAAgB;gBACZ,oBAAoB;;IAb3CA;QAAR,KAAK,EAAE;uEAAwB;IACvBA;QAAR,KAAK,EAAE;qEAA8B;IAC5BA;QAAT,MAAM,EAAE;iEAAoC;IACpCA;QAAR,KAAK,EAAE;gEAAmC;IAaSA;QAAnD,YAAY,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAC;qEAIlD;IAEoDA;QAApD,YAAY,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC;sEAEnD;IAzBU,2BAA2B;QAJvC,SAAS,CAAC;YACT,QAAQ,EAAE,0BAA0B;YACpC,+2CAAoD;SACrD,CAAC;OACW,2BAA2B,CAsDvC;IAAD,kCAAC;CAtDD;;WC8BgB;IACR;QACE,OAAO,EAAE,WAAW,CAAC,KAAK;QAC1B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,kBAAkB;KAC9B;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,eAAe;KAC3B;CACF;AAOP;IAAA;KAA+B;IAAlB,eAAe;QA5C3B,QAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,kBAAkB;gBAClB,sBAAsB;gBACtB,8BAA8B;gBAC9B,eAAe;gBACf,kBAAkB;gBAClB,0BAA0B;gBAC1B,sBAAsB;gBACtB,sBAAsB;gBACtB,2BAA2B;aAC5B;YACD,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,CAAC;YACtE,eAAe,EAAE;gBACf,kBAAkB;gBAClB,8BAA8B;gBAC9B,eAAe;gBACf,0BAA0B;gBAC1B,sBAAsB;aACvB;YACD,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe;oBACxB,QAAQ,MAaP;oBACD,KAAK,EAAE,IAAI;iBACZ;gBACD,gBAAgB;gBAChB,oBAAoB;aACrB;SACF,CAAC;OACW,eAAe,CAAG;IAAD,sBAAC;CAA/B;;AC7DA;;GAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-sub-assets.js","sources":["ng://@c8y/ngx-components/sub-assets/columns/asset-type.cell-renderer.component.ts","ng://@c8y/ngx-components/sub-assets/columns/asset-type-grid-column.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.service.ts","ng://@c8y/ngx-components/sub-assets/group-info.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.component.ts","ng://@c8y/ngx-components/sub-assets/delete-assets-modal/delete-assets-modal.component.ts","ng://@c8y/ngx-components/sub-assets/unassign-assets-modal/unassign-modal.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets-grid.component.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.service.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.component.ts","ng://@c8y/ngx-components/sub-assets/add-group/add-group.module.ts","ng://@c8y/ngx-components/sub-assets/groups.component.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-devices.service.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-devices.component.ts","ng://@c8y/ngx-components/sub-assets/assign-devices/assign-child-devices.component.ts","ng://@c8y/ngx-components/sub-assets/sub-assets.module.ts","ng://@c8y/ngx-components/sub-assets/c8y-ngx-components-sub-assets.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { CellRendererContext, gettext } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: string;\n isAnyGroup: boolean;\n isDevice: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n private deviceGroupService: DeviceGroupService\n ) {}\n\n ngOnInit() {\n this.isAnyGroup = this.deviceGroupService.isAnyGroup(this.context.item);\n this.isDevice = this.deviceGroupService.isDevice(this.context.item);\n this.groupIcon = this.deviceGroupService.icon(this.context.item);\n this.iconTitle = this.getIconTitle(this.groupIcon);\n }\n\n private getIconTitle(icon: string) {\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n default:\n return gettext('Child device');\n }\n }\n}\n","import { gettext, ColumnDataType, ColumnConfig } from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\nimport { BaseDeviceGridColumn } from '@c8y/ngx-components/device-grid';\n\nexport class AssetTypeGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IManagedObject,\n InventoryService,\n IRule,\n QueriesUtil,\n SmartGroupsService,\n SmartRulesService,\n UserService\n} from '@c8y/client';\nimport {\n ActionControl,\n AlertService,\n AppStateService,\n BulkActionControl,\n gettext,\n Pagination,\n Permissions\n} from '@c8y/ngx-components';\nimport { AssetNodeService, DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AssetTypeGridColumn } from './columns/asset-type-grid-column';\n\n@Injectable()\nexport class SubAssetsService extends DeviceGridService {\n queriesUtil: QueriesUtil;\n uiOnlyCountersUpdate = new BehaviorSubject(null);\n protected GRID_CONFIG_DEFAULT_STORAGE_KEY = 'sub-assets-grid-config';\n private IS_DEVICE_GROUP_FRAGMENT = 'c8y_IsDeviceGroup';\n private IS_DYNAMIC_GROUP_FRAGMENT = 'c8y_IsDynamicGroup';\n\n constructor(\n protected translateService: TranslateService,\n protected inventoryService: InventoryService,\n protected appState: AppStateService,\n protected user: UserService,\n protected assetNodeService: AssetNodeService,\n protected deviceGroupService: DeviceGroupService,\n protected smartGroupsService: SmartGroupsService,\n protected smartRulesService: SmartRulesService,\n protected alertService: AlertService,\n protected permissionsService: Permissions\n ) {\n super(inventoryService, translateService);\n }\n\n getDefaultColumns(filterable: boolean = true, sortable: boolean = true): DeviceGridColumn[] {\n const defaultColumns = [\n new AssetTypeGridColumn({ sortOrder: 'desc' }),\n new NameDeviceGridColumn({ sortOrder: 'asc' }),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn({ visible: false }),\n new RegistrationDateDeviceGridColumn({ visible: false }),\n new SystemIdDeviceGridColumn({ visible: false }),\n new ImeiDeviceGridColumn({ visible: false }),\n new AlarmsDeviceGridColumn()\n ];\n return defaultColumns;\n }\n\n getDefaultPagination(): Pagination {\n const { pagination } = this.getConfig();\n return {\n pageSize: pagination.pageSize,\n currentPage: 1\n };\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [];\n }\n\n async unassignAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const { id: assetId } = asset;\n const { id: parentId } = parentRef;\n\n if (this.isDevice(asset)) {\n try {\n await this.inventoryService.childAssetsRemove(assetId, parentId);\n const alertMessage = this.translateService.instant(gettext('Asset unassigned.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not unassign devices.'));\n this.alertService.danger(alertMessage);\n }\n await this.deactivateSmartrulesForAsset(asset, parentRef);\n }\n }\n\n isDevice(asset: IManagedObject): boolean {\n return (\n !asset.hasOwnProperty(this.IS_DEVICE_GROUP_FRAGMENT) &&\n !asset.hasOwnProperty(this.IS_DYNAMIC_GROUP_FRAGMENT)\n );\n }\n\n async deleteAsset(asset: IManagedObject, parentRef: IManagedObject, params = {}) {\n const isGroup =\n asset.hasOwnProperty(this.IS_DEVICE_GROUP_FRAGMENT) ||\n this.smartGroupsService.isSmartGroup(asset);\n\n if (isGroup) {\n await this.deleteGroup(asset, params);\n } else {\n await this.deleteDevice(asset, params);\n }\n\n if (\n parentRef &&\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n ) {\n await this.deactivateSmartrulesForAsset(asset, parentRef);\n }\n }\n\n shouldShowWithDeviceUserCheckbox(asset: IManagedObject): boolean {\n const { owner, c8y_IsDevice: isRootDevice } = asset;\n const hasDeviceUserAsOwner = asset.owner && this.isDeviceUser(owner);\n\n return Boolean(isRootDevice && hasDeviceUserAsOwner);\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n async getData(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n parentReference: IManagedObject,\n baseQuery: any = {}\n ) {\n const isRoot = !parentReference;\n if (isRoot) {\n const query = this.buildCombinedRootQueryFilter(columns, pagination);\n return this.assetNodeService.getRootNodes({ ...pagination, query });\n }\n const filters = {\n ...this.getAssetsFilters(columns, pagination, baseQuery),\n withParents: false\n };\n if (this.deviceGroupService.isGroup(parentReference)) {\n return this.assetNodeService.getGroupItems(parentReference.id, filters);\n }\n if (this.deviceGroupService.isDynamicGroup(parentReference)) {\n return this.assetNodeService.getDynamicGroupItems(\n parentReference.c8y_DeviceQueryString,\n filters\n );\n }\n if (this.deviceGroupService.isDevice(parentReference)) {\n return this.assetNodeService.getDeviceChildren(parentReference.id, filters);\n }\n }\n\n async getCount(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n parentReference: IManagedObject,\n baseQuery: any = {}\n ): Promise<number> {\n const defaultFilters = {\n pageSize: 1,\n withChildren: false\n };\n const filters = !parentReference\n ? {\n query: this.buildCombinedRootQueryFilter(columns, pagination),\n ...defaultFilters\n }\n : {\n ...this.getAssetsFilters(columns, pagination, baseQuery),\n ...defaultFilters\n };\n return this.getAssetsStatistics(parentReference, filters);\n }\n\n getTotal(parentReference: IManagedObject, baseQuery: any = {}): Promise<number> {\n const queryFilter = this.assetNodeService.rootQueryFilter();\n const query = !parentReference\n ? this.queriesUtil.addAndFilter(queryFilter, baseQuery)\n : baseQuery;\n const filters = {\n query: this.queriesUtil.buildQuery(query),\n withChildren: false,\n withTotalPages: true,\n pageSize: 1\n };\n return this.getAssetsStatistics(parentReference, filters);\n }\n\n canEditGroup(group: IManagedObject) {\n const currentUser = this.appState.currentUser.value;\n const hasAdminRole = this.user.hasAnyRole(currentUser, ['ROLE_INVENTORY_ADMIN']);\n const isOwner = group.owner === currentUser.userName;\n return hasAdminRole || isOwner;\n }\n\n canEditSmartGroup(): boolean {\n const SMART_GROUPS_ROLES_EDIT = ['ROLE_SMARTGROUP_UPDATE', 'ROLE_SMARTGROUP_ADMIN'];\n return this.permissionsService.hasAnyRole(SMART_GROUPS_ROLES_EDIT);\n }\n\n canDeleteSmartGroup(): boolean {\n const SMART_GROUPS_ROLES_DELETE = ['ROLE_SMARTGROUP_ADMIN', 'ROLE_INVENTORY_ADMIN'];\n return this.permissionsService.hasAnyRole(SMART_GROUPS_ROLES_DELETE);\n }\n\n isSmartGroup(group: IManagedObject): boolean {\n return this.smartGroupsService.isSmartGroup(group) || this.smartGroupsService.isSmartGroupV2(group);\n }\n\n isUsingInventoryRoles() {\n const currentUser = this.appState.currentUser.value;\n const hasAnyInventoryRole = this.user.hasAnyRole(currentUser, [\n 'ROLE_INVENTORY_ADMIN',\n 'ROLE_INVENTORY_READ',\n 'ROLE_INVENTORY_CREATE'\n ]);\n return !hasAnyInventoryRole;\n }\n\n protected async getAssetsStatistics(\n parentReference: IManagedObject,\n filters: object\n ): Promise<number> {\n const isRoot = !parentReference;\n if (isRoot) {\n return (await this.assetNodeService.getRootNodes(filters)).paging.totalPages;\n }\n if (this.deviceGroupService.isGroup(parentReference)) {\n return (await this.assetNodeService.getGroupItems(parentReference.id, filters)).paging\n .totalPages;\n }\n if (this.deviceGroupService.isDynamicGroup(parentReference)) {\n return (await this.assetNodeService.getDynamicGroupItems(\n parentReference.c8y_DeviceQueryString,\n filters\n )).paging.totalPages;\n }\n if (this.deviceGroupService.isDevice(parentReference)) {\n return (await this.assetNodeService.getDeviceChildren(parentReference.id, filters)).paging\n .totalPages;\n }\n }\n\n protected buildCombinedRootQueryFilter(columns, pagination) {\n const queryFilter = this.assetNodeService.rootQueryFilter();\n const userQuery = this.getQueryObj(columns, pagination);\n\n const queryPart = this.queriesUtil.addOrderbys(queryFilter, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n private async deleteGroup(group: IManagedObject, params: any = {}) {\n const { cascade } = params;\n\n try {\n this.smartGroupsService.isSmartGroup(group) || this.smartGroupsService.isSmartGroupV2(group)\n ? await this.smartGroupsService.delete(group, { cascade })\n : await this.inventoryService.delete(group, { cascade });\n\n const alertMessage = this.translateService.instant(gettext('Asset deleted.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not delete asset.'));\n this.alertService.danger(alertMessage);\n }\n }\n\n private async deleteDevice(device: IManagedObject, params: any = {}) {\n const { cascade, withDeviceUser } = params;\n try {\n const { owner } = device;\n const shouldRemoveOwner = withDeviceUser && owner && this.isDeviceUser(owner);\n\n shouldRemoveOwner\n ? await this.deleteDeviceWithUser(device, cascade)\n : await this.inventoryService.delete(device, { cascade });\n\n const alertMessage = this.translateService.instant(gettext('Asset deleted.'));\n this.alertService.success(alertMessage);\n } catch (error) {\n const alertMessage = this.translateService.instant(gettext('Could not delete asset.'));\n this.alertService.danger(alertMessage);\n }\n }\n\n private async deactivateSmartrulesForAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const { id: assetId } = asset;\n const { id: parentId } = parentRef;\n const rules: IRule[] = (await this.smartRulesService.listByContext(parentId)).data;\n\n const upateSmartrulesPromises = rules.map(rule =>\n this.smartRulesService.bulkDeactivateEnabledSources(rule, [assetId])\n );\n\n try {\n await Promise.all(upateSmartrulesPromises);\n } catch (error) {\n const alertMessage = this.translateService.instant(\n gettext('Could not deactivate smart rules.')\n );\n this.alertService.danger(alertMessage);\n }\n }\n\n private isDeviceUser(userId: string) {\n return userId.match(/^device_/);\n }\n\n private async deleteDeviceWithUser(device: IManagedObject, cascade: boolean) {\n const params = { cascade, withDeviceUser: true };\n try {\n return await this.inventoryService.delete(device, params);\n } catch (error) {\n return await this.inventoryService.delete(device, { cascade });\n }\n }\n\n private getAssetsFilters(columns: DeviceGridColumn[], pagination: Pagination, baseQuery) {\n const query = this.queriesUtil.addAndFilter(this.getQueryObj(columns), baseQuery);\n return {\n query: this.queriesUtil.buildQuery(query),\n pageSize: pagination.pageSize || this.DEFAULT_PAGE_SIZE,\n currentPage: pagination.currentPage,\n withTotalPages: true\n };\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IManagedObject, InventoryService, SmartGroupsService } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SubAssetsService } from './sub-assets.service';\n\n@Component({\n selector: 'c8y-group-info',\n templateUrl: './group-info.component.html'\n})\nexport class GroupInfoComponent {\n @Input() group: IManagedObject;\n @Output() onGroupChange = new EventEmitter();\n canEdit: boolean;\n groupIcon: string;\n smartGroupFilter: string;\n filterHintMsg: string;\n\n private filterMsg = gettext(\n 'Smart groups are groups dynamically constructed based on filtering criteria.'\n );\n private canEditMsg = gettext('You can edit the filter here.');\n private readonly GROUP_UPDATED_MSG = gettext('Group updated.');\n constructor(\n private inventory: InventoryService,\n private subAssetsService: SubAssetsService,\n private deviceGroupService: DeviceGroupService,\n private smartGroupsService: SmartGroupsService,\n private alertService: AlertService,\n private translate: TranslateService,\n private modalService: ModalService\n ) {}\n\n ngOnInit() {\n this.canEdit = this.smartGroupsService.isSmartGroupV2(this.group)\n ? this.subAssetsService.canEditSmartGroup()\n : this.subAssetsService.canEditGroup(this.group);\n this.groupIcon = this.deviceGroupService.icon(this.group);\n this.smartGroupFilter = this.group.c8y_DeviceQueryString;\n\n this.setHintMsg();\n }\n\n isSmartGroup() {\n return this.subAssetsService.isSmartGroup(this.group);\n }\n\n async update(partialGroup: Partial<IManagedObject>) {\n try {\n const isSmartGroup: boolean = this.subAssetsService.isSmartGroup(this.group);\n isSmartGroup\n ? await this.updateSmartGroup(partialGroup)\n : await this.updateGroup(partialGroup);\n } catch (error) {\n this.alertService.addServerFailure(error);\n }\n }\n\n private setHintMsg() {\n const filterMsgTranslated = this.translate.instant(this.filterMsg);\n const canEditMsgTranslated = this.translate.instant(this.canEditMsg);\n this.filterHintMsg = this.canEdit\n ? `${filterMsgTranslated} ${canEditMsgTranslated}`\n : this.filterMsg;\n }\n\n private async updateGroup(partialGroup: Partial<IManagedObject>) {\n const { id } = this.group;\n const group: Partial<IManagedObject> = { id, ...partialGroup };\n\n const updatedGroup = (await this.inventory.update(group)).data;\n this.setGroup(updatedGroup);\n }\n\n private async updateSmartGroup(partialGroup: Partial<IManagedObject>) {\n const { id } = this.group;\n const { c8y_DeviceQueryString } = partialGroup;\n const group: Partial<IManagedObject> = { id, ...partialGroup };\n let updatedGroup: IManagedObject;\n\n if (!c8y_DeviceQueryString) {\n updatedGroup = (await this.smartGroupsService.update(group)).data;\n this.setGroup(updatedGroup);\n return;\n }\n\n try {\n const modalBody = gettext(\n 'You are about to change the smart group filter. Do you want to proceed?'\n );\n const title = gettext('Smart group filter');\n await this.modalService.confirm(title, modalBody, Status.WARNING, {\n ok: gettext('Save'),\n cancel: gettext('Cancel')\n });\n\n if (!(await this.isQueryExecutable(c8y_DeviceQueryString))) {\n return;\n }\n } catch (e) {\n return;\n }\n updatedGroup = (await this.smartGroupsService.update(group)).data;\n this.setGroup(updatedGroup);\n }\n\n private setGroup(group: IManagedObject) {\n this.onGroupChange.emit(group);\n this.alertService.success(this.GROUP_UPDATED_MSG);\n }\n\n private async isQueryExecutable(query: string): Promise<boolean> {\n try {\n const filter = { q: query };\n await this.inventory.list(filter);\n return true;\n } catch (error) {\n this.alertService.addServerFailure(error);\n return false;\n }\n }\n}\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IIdentified, IManagedObject } from '@c8y/client';\nimport { DisplayOptions } from '@c8y/ngx-components';\nimport { DeviceGroupService } from '@c8y/ngx-components/assets-navigator';\nimport { Subscription } from 'rxjs';\nimport { SubAssetsService } from './sub-assets.service';\n\n@Component({\n selector: 'c8y-sub-assets',\n templateUrl: './sub-assets.component.html'\n})\nexport class SubAssetsComponent implements OnInit, OnDestroy {\n currentGroupId: IIdentified;\n showChildrenForDevice: IManagedObject;\n title: string;\n toggle: boolean = false;\n showAddGroup: boolean = false;\n showAssignDevices: boolean = false;\n requestInProgress: boolean;\n group: IManagedObject;\n showAssignChildDevices: boolean = false;\n refresh: EventEmitter<any> = new EventEmitter();\n filterable: boolean = true;\n displayOptions: DisplayOptions;\n private dataSub: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private deviceGroupService: DeviceGroupService,\n private subAssetsService: SubAssetsService\n ) {\n this.dataSub = this.route.parent.data.subscribe(({ contextData }) => {\n this.title = contextData.name;\n this.currentGroupId = contextData.id;\n this.group = contextData;\n this.filterable = !this.deviceGroupService.isDynamicGroup(contextData);\n });\n }\n\n ngOnInit(): void {\n this.displayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: !this.isSmartGroup()\n };\n }\n\n groupChange(group: IManagedObject): void {\n /**\n * Group is cached in the context-route guard. To avoid loading old data (when switching tabs) we need to update\n * this object in the cache.\n */\n Object.assign(this.group, group);\n this.title = group.name;\n this.refresh.emit();\n }\n\n isSmartGroup() {\n return this.subAssetsService.isSmartGroup(this.group);\n }\n\n ngOnDestroy(): void {\n if (this.dataSub) {\n this.dataSub.unsubscribe();\n }\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ConfirmModalComponent,\n gettext,\n ModalLabels,\n Status,\n StatusType\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { DeleteModalCheckboxes } from './delete-assets-modal.model';\n\n@Component({\n selector: 'c8y-delete-assets-modal',\n templateUrl: './delete-assets-modal.component.html'\n})\nexport class DeleteAssetsModalComponent {\n @Input() showWithCascadeCheckbox: boolean = true;\n @Input() showWithDeviceUserCheckbox: boolean = false;\n @Input() asset: IManagedObject;\n @ViewChild('modalRef', { static: false }) modalRef: ConfirmModalComponent;\n closeSubject: Subject<DeleteModalCheckboxes> = new Subject();\n labels: ModalLabels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n title = gettext('Delete asset');\n status: StatusType = Status.DANGER;\n config: DeleteModalCheckboxes = {\n cascade: false,\n withDeviceUser: false\n };\n message: string;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit() {\n this.message = this.translateService.instant(\n gettext(\n 'You are about to delete asset: \"{{name}}\". This operation is irreversible. Do you want to proceed?'\n ),\n { name: this.asset.name }\n );\n }\n\n async ngAfterViewInit() {\n try {\n await this.modalRef.result;\n this.onClose();\n } catch (error) {\n this.onDismiss();\n }\n }\n\n onClose() {\n this.closeSubject.next(this.config);\n this.closeSubject.complete();\n }\n\n onDismiss() {\n this.closeSubject.complete();\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ConfirmModalComponent,\n gettext,\n ModalLabels,\n Status,\n StatusType\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\n@Component({\n selector: 'c8y-unassign-modal',\n templateUrl: './unassign-modal.component.html'\n})\nexport class UnassignModalComponent {\n @Input() asset: IManagedObject;\n @ViewChild('modalRef', { static: false }) modalRef: ConfirmModalComponent;\n message: string;\n closeSubject: Subject<boolean> = new Subject();\n labels: ModalLabels = { ok: gettext('Unassign'), cancel: gettext('Cancel') };\n title = gettext('Unassign devices');\n status: StatusType = Status.WARNING;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit() {\n this.message = this.translateService.instant(\n gettext('You are about to unassign asset: \"{{name}}\" . Do you want to proceed?'),\n { name: this.asset.name }\n );\n }\n\n async ngAfterViewInit() {\n try {\n await this.modalRef.result;\n this.onClose();\n } catch (error) {\n this.onDismiss();\n }\n }\n\n onClose() {\n this.closeSubject.next(true);\n this.closeSubject.complete();\n }\n\n onDismiss() {\n this.closeSubject.complete();\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { DeleteModalCheckboxes } from './delete-assets-modal';\nimport { DeleteAssetsModalComponent } from './delete-assets-modal/delete-assets-modal.component';\nimport { SubAssetsService } from './sub-assets.service';\nimport { UnassignModalComponent } from './unassign-assets-modal/unassign-modal.component';\n@Component({\n selector: 'c8y-sub-assets-grid',\n templateUrl: './sub-assets-grid.component.html'\n})\nexport class SubAssetsGridComponent implements OnInit {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() refresh: EventEmitter<any>;\n @Input() title: string = gettext('Subassets');\n @Input() emptyStateText: string = gettext(\n 'Add your first group or assign devices using the buttons on the toolbar.'\n );\n @Input() loadingItemsLabel: string = gettext('Loading assets…');\n\n get columns() {\n return this._columns;\n }\n @Input() set columns(value: DeviceGridColumn[]) {\n if (value) {\n this._columns = this.subAssetsGridService.getUserConfiguredColumns(value);\n } else {\n this._columns = this.subAssetsGridService.getUserConfiguredColumns(\n this.subAssetsGridService.getDefaultColumns()\n );\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.subAssetsGridService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.subAssetsGridService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input() baseQuery: any = {};\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.subAssetsGridService.getDefaultBulkActionControls();\n }\n }\n @Input() filterable: boolean = true;\n @Input() sortable: boolean = true;\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n @Output() itemsSelect: EventEmitter<string[]> = new EventEmitter<string[]>();\n\n pagination: Pagination = this.subAssetsGridService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.subAssetsGridService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: true\n };\n\n private _columns: DeviceGridColumn[];\n\n get isRootGroup() {\n return !this.parentGroup;\n }\n\n get getInfiniteScrollMode() {\n return this.isRootGroup && this.subAssetsGridService.isUsingInventoryRoles()\n ? 'auto'\n : undefined;\n }\n\n @Input('displayOptions')\n set _displayOptions(displayOptions) {\n this.displayOptions = { ...this.displayOptions, ...displayOptions };\n }\n\n constructor(\n public subAssetsGridService: SubAssetsService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.columns = this.subAssetsGridService.getDefaultColumns(this.filterable, this.sortable);\n if (!this.filterable || !this.sortable) {\n this.columns.forEach(column => {\n column.filterable = this.filterable;\n column.sortable = this.sortable;\n });\n }\n this.setActionControls();\n }\n\n async setActionControls() {\n const actionControls: ActionControl[] = [];\n const {\n data: isMicroserviceInstalled\n } = await this.smartGroupsService.isSmartGroupsV2MicroserviceInstalled();\n\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup),\n showIf: (asset: Row) => {\n if (this.smartGroupsService.isSmartGroupV2(asset as IManagedObject)) {\n return isMicroserviceInstalled ? this.subAssetsGridService.canDeleteSmartGroup() : false;\n }\n\n if (this.smartGroupsService.isSmartGroup(asset as IManagedObject)) {\n return this.subAssetsGridService.canDeleteSmartGroup();\n }\n\n return true;\n }\n };\n\n actionControls.push(deleteAction);\n\n const unassignAction: ActionControl = {\n type: 'UNASSIGN',\n icon: 'unlink',\n text: gettext('Unassign'),\n callback: (asset: Row) => this.onUnassignAsset(asset as IManagedObject, this.parentGroup),\n showIf: (asset: Row) =>\n this.subAssetsGridService.isDevice(asset as IManagedObject) &&\n !this.subAssetsGridService.isSmartGroup(this.parentGroup as IManagedObject)\n };\n\n actionControls.push(unassignAction);\n\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\n }\n\n onUnassignAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const initialState = {\n asset\n };\n const modalRef = this.bsModalService.show(UnassignModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: boolean) => {\n if (result) {\n await this.subAssetsGridService.unassignAsset(asset, parentRef);\n this.refresh.emit();\n }\n });\n }\n\n async onDeleteAsset(asset: IManagedObject, parentRef: IManagedObject) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n this.subAssetsGridService.uiOnlyCountersUpdate.next('DECREASE');\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.parentGroup && !changes.parentGroup.firstChange) {\n this.dataGrid.reload();\n }\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const promises = [];\n let counters;\n\n promises.push(\n this.subAssetsGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.parentGroup,\n this.baseQuery\n )\n );\n\n const action = this.subAssetsGridService.uiOnlyCountersUpdate.value;\n if (action) {\n counters = this.uiOnlyCountersUpdate(action);\n this.subAssetsGridService.uiOnlyCountersUpdate.next(null);\n } else {\n promises.push(this.subAssetsGridService.getTotal(this.parentGroup, this.baseQuery));\n promises.push(\n this.subAssetsGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.parentGroup,\n this.baseQuery\n )\n );\n }\n const [dataResponse, size, filteredSize] = await Promise.all(promises);\n if (!counters) {\n counters = {\n size,\n filteredSize\n };\n }\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res: dataResponse.res,\n data: dataResponse.data,\n paging: dataResponse.paging,\n ...counters\n };\n }\n\n configChange(config) {\n this.subAssetsGridService.saveConfig(config);\n }\n\n // workaround since the totalPages value is cached on the BE\n private uiOnlyCountersUpdate(action: 'INCREASE' | 'DECREASE') {\n const currentAllItemsCount = this.dataGrid.filteringLabelsParams.allItemsCount;\n const currentFilteredItemsCount = this.dataGrid.filteringLabelsParams.filteredItemsCount;\n let counters;\n if (action === 'DECREASE') {\n counters = {\n size: currentAllItemsCount - 1,\n filteredSize: currentFilteredItemsCount - 1\n };\n }\n if (action === 'INCREASE') {\n counters = {\n size: currentAllItemsCount + 1,\n filteredSize: currentFilteredItemsCount + 1\n };\n }\n return counters;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IIdentified, IManagedObject, InventoryService } from '@c8y/client';\nimport { GroupForm } from './add-group.model';\nimport { GroupFragment } from '@c8y/ngx-components/assets-navigator';\n\n@Injectable()\nexport class AddGroupService {\n private GROUP_FRAGMENT_TYPE = 'c8y_IsDeviceGroup';\n\n constructor(private inventoryService: InventoryService) {}\n\n async createGroupAndAssignDevices(\n groupForm: GroupForm,\n groupContextId: string | number,\n selectedDevices: string[]\n ): Promise<IManagedObject | IIdentified> {\n let group: IManagedObject | IIdentified;\n const { name, description } = groupForm;\n const newGroupMO = this.getGroupMO(name, description, groupContextId);\n\n if (groupContextId) {\n group = (await this.inventoryService.childAssetsCreate(newGroupMO, groupContextId)).data;\n } else {\n group = (await this.inventoryService.create(newGroupMO)).data;\n }\n\n if (selectedDevices.length > 0) {\n await this.assignDevices(group.id, selectedDevices);\n }\n\n return group;\n }\n\n private getGroupMO(\n name: string,\n description: string = '',\n groupContextId: string | number\n ): Partial<IManagedObject> {\n const group = {\n type: this.getGroupType(groupContextId),\n [this.GROUP_FRAGMENT_TYPE]: {},\n name,\n description\n };\n\n return group;\n }\n\n private getGroupType(\n groupContextId: string | number\n ): GroupFragment.subGroupType | GroupFragment.groupType {\n return groupContextId ? GroupFragment.subGroupType : GroupFragment.groupType;\n }\n\n private async assignDevices(id: string | number, selectedDevices: string[]) {\n const promises = [];\n\n selectedDevices.forEach(moId => {\n promises.push(this.inventoryService.childAssetsAdd(moId, id));\n });\n\n return await Promise.all(promises);\n }\n}\n","import {\n Component,\n Output,\n EventEmitter,\n ViewChild,\n Input,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { C8yStepper, Pagination, AlertService, gettext } from '@c8y/ngx-components';\nimport { AddGroupService } from './add-group.service';\nimport { SubAssetsService } from '../sub-assets.service';\n\n@Component({\n selector: 'c8y-add-group',\n templateUrl: './add-group.component.html'\n})\nexport class AddGroupComponent {\n @Input() currentGroupId: string;\n @Input() refresh = new EventEmitter<any>();\n @Output() onDeviceQueryStringChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() onCancel = new EventEmitter<any>();\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild('nameRef', { static: false })\n nameInputRef: ElementRef;\n deviceQueryStringOutput: string;\n formGroupStepOne: FormGroup;\n pendingStatus: boolean = false;\n pagination: Pagination = { pageSize: 20, currentPage: 1 };\n selected: string[] = [];\n subscription: Subscription;\n\n readonly ITEMS_SELECT_LIMIT: number = 15;\n readonly btnLabels = {\n next: gettext('Next'),\n cancel: gettext('Cancel'),\n create: gettext('Create')\n };\n\n private nameInput: HTMLInputElement;\n\n constructor(\n protected deviceGridService: DeviceGridService,\n private fb: FormBuilder,\n private addGroupService: AddGroupService,\n private alert: AlertService,\n private subAssetsService: SubAssetsService\n ) {}\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n // Order matters! Needs to be placed before this.stepper.next\n if (this.stepper.selectedIndex === 1) {\n this.createGroup();\n }\n this.stepper.next();\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n @HostListener('document:keydown.backspace', ['$event']) onBackspaceKeyDown(event: KeyboardEvent) {\n this.stepper.previous();\n\n setTimeout(() => {\n this.setFocusOnNameInput();\n });\n }\n\n ngOnInit() {\n this.formGroupStepOne = this.fb.group({\n name: ['', Validators.required],\n description: ['']\n });\n this.subscription = this.onCancel.subscribe(() => this.resetStepper());\n }\n\n ngAfterViewInit() {\n this.nameInput = this.nameInputRef.nativeElement as HTMLInputElement;\n this.setFocusOnNameInput();\n }\n\n async createGroup() {\n this.pendingStatus = true;\n this.subAssetsService.uiOnlyCountersUpdate.next('INCREASE');\n await this.addGroupService.createGroupAndAssignDevices(\n this.formGroupStepOne.value,\n this.currentGroupId,\n this.selected\n );\n\n this.pendingStatus = false;\n this.resetStepper();\n this.alert.success(gettext('Group created.'));\n\n this.refresh.emit();\n this.onCancel.emit();\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n\n resetStepper() {\n this.stepper.reset();\n this.stepper.selectedIndex = 1;\n this.selected = [];\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private setFocusOnNameInput() {\n if (this.nameInput) {\n this.nameInput.focus();\n this.nameInput.select();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { AddGroupComponent } from './add-group.component';\nimport { AddGroupService } from './add-group.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [AddGroupComponent],\n imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule],\n entryComponents: [AddGroupComponent],\n exports: [AddGroupComponent],\n providers: [\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'add-group',\n component: AddGroupComponent\n }\n ],\n multi: true\n },\n AddGroupService\n ]\n})\nexport class AddGroupModule {}\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { Permissions } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-groups-name',\n templateUrl: './groups.component.html'\n})\nexport class GroupsComponent implements OnInit {\n refresh: EventEmitter<any> = new EventEmitter();\n showAddGroup = false;\n filterable: boolean = false;\n sortable: boolean = true;\n\n constructor(private permissions: Permissions) {}\n\n ngOnInit() {\n if (!this.permissions.hasRole('ROLE_INVENTORY_READ')) {\n this.sortable = false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { InventoryService } from '@c8y/client';\n\n@Injectable()\nexport class AssignDevicesService {\n constructor(private inventoryService: InventoryService) {}\n\n async assignDevices(id: string | number, selectedDevices: string[]) {\n const promises = [];\n\n selectedDevices.forEach(moId => {\n promises.push(this.inventoryService.childAssetsAdd(moId, id));\n });\n\n return await Promise.all(promises);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';\nimport { Pagination, AlertService, gettext, ActionControl, Row } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { SubAssetsService } from '../sub-assets.service';\nimport { IManagedObject } from '@c8y/client';\nimport { QueriesUtil } from '@c8y/client';\nimport { AssignDevicesService } from './assign-devices.service';\n\n@Component({\n selector: 'c8y-assign-devices',\n templateUrl: './assign-devices.component.html'\n})\nexport class AssignDevicesComponent {\n @Input() currentGroupId: string;\n @Input() refresh = new EventEmitter<any>();\n @Output() onCancel = new EventEmitter<any>();\n @Output() onShowChildDevices = new EventEmitter<boolean>();\n @Output() selectedDevice = new EventEmitter<IManagedObject>();\n\n deviceQueryStringOutput: string;\n pendingStatus: boolean = false;\n pagination: Pagination = { pageSize: 20, currentPage: 1 };\n selected: string[] = [];\n baseQuery: any;\n canAssignDevice: boolean = false;\n actionControls: ActionControl[] = [];\n readonly isSelectable = true;\n readonly itemsSelectLimit = 15;\n private queriesUtil: QueriesUtil;\n\n constructor(private assignDevicesService: AssignDevicesService, private alert: AlertService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n if (this.selected.length > 0) {\n this.assignDevices();\n }\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n ngOnInit() {\n this.setNotIncludedInGroupQuery();\n }\n\n setNotIncludedInGroupQuery() {\n const notIncludedInGroupQuery = { __not: { __bygroupid: this.currentGroupId } };\n this.baseQuery = notIncludedInGroupQuery;\n }\n\n setActionControls(showChildren: boolean) {\n const actionControls: ActionControl[] = [];\n const selectChildrenAction: ActionControl = {\n type: 'SELECT_CHILDREN',\n icon: 'enter-bottom',\n text: gettext('Select children'),\n callback: (asset: Row) => this.selectChildren(asset as IManagedObject),\n showIf: (asset: Row) =>\n asset.childDevices.references.length > 0\n };\n\n if (showChildren) {\n actionControls.push(selectChildrenAction);\n }\n this.actionControls = actionControls;\n this.refresh.emit();\n }\n\n async assignDevices() {\n this.pendingStatus = true;\n await this.assignDevicesService.assignDevices(this.currentGroupId, this.selected);\n this.pendingStatus = false;\n this.selected = [];\n\n this.onCancel.emit();\n this.refresh.emit();\n\n this.alert.success(gettext('Devices assigned to the group.'));\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n\n selectChildren(asset: IManagedObject) {\n this.onShowChildDevices.emit(true);\n this.selectedDevice.emit(asset);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport { SubAssetsService } from '../sub-assets.service';\nimport { IManagedObject } from '@c8y/client';\nimport { AssignDevicesService } from './assign-devices.service';\n\n@Component({\n selector: 'c8y-assign-child-devices',\n templateUrl: './assign-child-devices.component.html'\n})\nexport class AssignChildDevicesComponent {\n @Input() currentGroupId: string;\n @Input() parentDevice: IManagedObject;\n @Output() onCancel = new EventEmitter<any>();\n @Input() refresh = new EventEmitter<any>();\n\n selected: string[] = [];\n baseQuery: any;\n pendingStatus: boolean = false;\n\n constructor(\n private alert: AlertService,\n private subAssetsService: SubAssetsService,\n private inventoryService: InventoryService,\n private assignDevicesService: AssignDevicesService\n ) {}\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n if (this.selected.length > 0) {\n this.assignDevices();\n }\n }\n\n @HostListener('document:keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n this.onCancel.emit();\n }\n\n async ngOnInit() {\n this.setNotIncludedInGroupQuery();\n }\n\n setNotIncludedInGroupQuery() {\n const notIncludedInGroupQuery = { __not: { __bygroupid: this.currentGroupId } };\n this.baseQuery = notIncludedInGroupQuery;\n }\n\n async assignDevices() {\n this.pendingStatus = true;\n\n try {\n await this.assignDevicesService.assignDevices(this.currentGroupId, this.selected);\n this.refresh.emit();\n this.alert.success(gettext('Child devices assigned to the group.'));\n } catch (error) {\n this.alert.danger(gettext('Could not assign child devices to the group'), error);\n }\n this.pendingStatus = false;\n this.selected = [];\n this.onCancel.emit();\n }\n\n onSelected(selectedDevicesIDs: string[]) {\n this.selected = selectedDevicesIDs;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, gettext, HOOK_ONCE_ROUTE, ViewContext } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { AddGroupModule } from './add-group/add-group.module';\nimport { AssetTypeCellRendererComponent } from './columns/asset-type.cell-renderer.component';\nimport { DeleteAssetsModalComponent } from './delete-assets-modal/delete-assets-modal.component';\nimport { GroupInfoComponent } from './group-info.component';\nimport { GroupsComponent } from './groups.component';\nimport { SubAssetsGridComponent } from './sub-assets-grid.component';\nimport { SubAssetsComponent } from './sub-assets.component';\nimport { SubAssetsService } from './sub-assets.service';\nimport { UnassignModalComponent } from './unassign-assets-modal/unassign-modal.component';\nimport { AssignDevicesComponent } from './assign-devices/assign-devices.component';\nimport { AssignChildDevicesComponent } from './assign-devices/assign-child-devices.component';\nimport { AssignDevicesService } from './assign-devices/assign-devices.service';\n\n@NgModule({\n declarations: [\n SubAssetsComponent,\n SubAssetsGridComponent,\n AssetTypeCellRendererComponent,\n GroupsComponent,\n GroupInfoComponent,\n DeleteAssetsModalComponent,\n UnassignModalComponent,\n AssignDevicesComponent,\n AssignChildDevicesComponent\n ],\n imports: [CoreModule, DeviceGridModule, AddGroupModule, PopoverModule],\n entryComponents: [\n SubAssetsComponent,\n AssetTypeCellRendererComponent,\n GroupsComponent,\n DeleteAssetsModalComponent,\n UnassignModalComponent\n ],\n exports: [],\n providers: [\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n context: ViewContext.Group,\n path: 'subassets',\n priority: 1000,\n icon: 'c8y-group-open',\n label: gettext('Subassets'),\n component: SubAssetsComponent\n },\n {\n path: 'group',\n component: GroupsComponent\n }\n ],\n multi: true\n },\n SubAssetsService,\n AssignDevicesService\n ]\n})\nexport class SubAssetsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AddGroupComponent as ɵf} from './add-group/add-group.component';\nexport {AddGroupModule as ɵe} from './add-group/add-group.module';\nexport {AddGroupService as ɵg} from './add-group/add-group.service';\nexport {AssignDevicesService as ɵd} from './assign-devices/assign-devices.service';\nexport {AssetTypeCellRendererComponent as ɵa} from './columns/asset-type.cell-renderer.component';\nexport {DeleteAssetsModalComponent as ɵb} from './delete-assets-modal/delete-assets-modal.component';\nexport {UnassignModalComponent as ɵc} from './unassign-assets-modal/unassign-modal.component';"],"names":["tslib_1.__extends","tslib_1.__decorate","tslib_1.__read"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ngx-components",
3
- "version": "1010.0.20",
3
+ "version": "1010.0.24",
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.20",
26
+ "@c8y/client": "1010.0.24",
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",