@c8y/ngx-components 1010.0.30 → 1010.0.31

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.
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-assets-navigator.js","sources":["ng://@c8y/ngx-components/assets-navigator/load-more-node.ts","ng://@c8y/ngx-components/assets-navigator/group-fragment.model.ts","ng://@c8y/ngx-components/assets-navigator/action.enum.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.ts","ng://@c8y/ngx-components/assets-navigator/dynamic-group-node.ts","ng://@c8y/ngx-components/assets-navigator/asset-node-config.model.ts","ng://@c8y/ngx-components/assets-navigator/group.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.factory.ts","ng://@c8y/ngx-components/assets-navigator/assets-navigator.module.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/group-node.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/group-node.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector.component.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector-node.component.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector.module.ts","ng://@c8y/ngx-components/assets-navigator/c8y-ngx-components-assets-navigator.ts"],"sourcesContent":["import { NavigatorNode, gettext } from '@c8y/ngx-components';\n\nexport class LoadMoreNode extends NavigatorNode {\n priority = -Infinity;\n label = gettext('Load more');\n icon = 'plus';\n droppable = true;\n}\n","export enum GroupFragment {\n groupType = 'c8y_DeviceGroup',\n subGroupType = 'c8y_DeviceSubgroup',\n groupFragmentType = 'c8y_IsDeviceGroup',\n dataBrokerSourceFragment = 'c8y_BrokerSource',\n dynamicGroupType = 'c8y_DynamicGroup',\n dynamicGroupFragment = 'c8y_IsDynamicGroup',\n dynamicGroupColumnConfig = 'c8y_UIDeviceFilterConfig',\n dynamicGroupQueryString = 'c8y_DeviceQueryString',\n}\n","export enum Action {\n FETCH,\n NEXT,\n REFRESH,\n LOADING_DONE\n}\n","import { Paging } from '@c8y/client';\nimport { ClickOptions, gettext, NavigatorNode, DeviceStatusComponent } from '@c8y/ngx-components';\nimport { get, has } from 'lodash-es';\nimport { Subject, Subscription } from 'rxjs';\nimport { AssetNodeMo, AssetNodeService } from './asset-node.service';\nimport { LoadMoreNode } from './load-more-node';\nimport { GroupFragment } from './group-fragment.model';\nimport { Action } from './action.enum';\n\nexport class AssetNode extends NavigatorNode {\n root: boolean;\n mo: any;\n\n get label() {\n return (this.root && gettext('Groups')) || this.mo.name || '--';\n }\n\n get hasChildren() {\n return this.root || this.service.groups.isGroup(this.mo);\n }\n\n get iconComponent() {\n return this.isDeviceOrProbablyChildDevice ? DeviceStatusComponent : undefined;\n }\n\n get isDevice() {\n return !!this.mo.c8y_IsDevice;\n }\n\n get isDeviceOrProbablyChildDevice() {\n return this.isDevice || this.isNeitherDeviceOrGroup;\n }\n\n get isNeitherDeviceOrGroup() {\n const { isGroup, isDynamicGroup } = this.service.groups;\n return !isGroup(this.mo) && !isDynamicGroup(this.mo) && !this.isDevice && !this.root;\n }\n\n events: Subject<Action>;\n protected paging: Paging<AssetNodeMo>;\n protected loadMoreNode: LoadMoreNode;\n private onUpdateSubscription: Subscription;\n\n constructor(protected service: AssetNodeService, config = {}) {\n super(config);\n this.root = this.root || false;\n this.mo = this.mo || {};\n this.path = this.root\n ? 'group'\n : this.isDeviceOrProbablyChildDevice\n ? `device/${this.mo.id}`\n : `group/${this.mo.id}`;\n this.draggable = !this.service.moduleConfig.disableDragAndDrop && !this.root;\n this.droppable =\n !this.service.moduleConfig.disableDragAndDrop && !this.isDeviceOrProbablyChildDevice;\n this.routerLinkExact = this.root;\n this.updateIcon(false);\n this.onUpdateSubscription = this.service\n .onUpdate(this)\n .subscribe(({ data, method }) => this.refresh(data, method));\n }\n\n openOnStart(url) {\n const urlRegex = /^\\/group\\//;\n if (this.root) {\n if (this.service.moduleConfig.openOnStart || urlRegex.test(url)) {\n return true;\n }\n }\n const matches = url.match(/\\/(group)\\/(\\d+)/);\n let isMatch = false;\n if (matches) {\n const id = matches[2];\n isMatch = []\n .concat(get(this.mo, 'childAssets.references', []))\n .some(({ managedObject }) => managedObject.id === id);\n return isMatch;\n }\n return false;\n }\n\n refresh(mo: any = {}, method = 'GET') {\n if (mo.id === this.mo.id) {\n this.mo = mo;\n } else if (method === 'DELETE') {\n this.parents.forEach((node: AssetNode) => node.refresh());\n return;\n }\n if (this.events) {\n this.events.next(Action.REFRESH);\n }\n }\n\n click(options: ClickOptions = {}) {\n if (this.isDeviceOrProbablyChildDevice) {\n this.service.preferBreadcrumb(this.parents);\n return;\n }\n this.hookEvents();\n\n this.updateIcon(options.open);\n if (options.open) {\n this.events.next(Action.FETCH);\n }\n }\n\n sort() {\n this.children.sort((a, b) => {\n if (a.priority > b.priority) {\n return -1;\n } else if (a.priority < b.priority) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n addManagedObject(mo) {\n const { childAdditions } = this.mo;\n if (!this.isChildAddition(childAdditions, mo)) {\n this.add(this.service.createChildNode(mo));\n }\n }\n\n isChildAddition(childAdditions, mo) {\n return (\n childAdditions && childAdditions.references.some(({ managedObject: { id } }) => id === mo.id)\n );\n }\n\n destroy() {\n this.onUpdateSubscription.unsubscribe();\n }\n\n get canDrop() {\n const nodeToMove = this.service.draggedData;\n if (nodeToMove) {\n const shouldGetChildOfItsOwn = !!nodeToMove.find(child => child === this);\n const isAlreadyChild = (this.children as AssetNode[]).some(\n child => child.mo && child.mo.id === nodeToMove.mo.id\n );\n const preventMove = this === nodeToMove || shouldGetChildOfItsOwn || isAlreadyChild;\n return this.droppable && !preventMove;\n }\n return this.droppable;\n }\n\n dragStart($event) {\n super.dragStart($event);\n this.service.draggedData = this;\n this.service.rootNode.droppable = !this.isDeviceOrProbablyChildDevice;\n }\n\n dragEnd($event) {\n super.dragEnd($event);\n }\n\n async drop($event) {\n super.drop($event);\n const nodeToMove = this.service.draggedData;\n if (this.canDrop) {\n await this.moveNode(nodeToMove);\n } else {\n this.draggedHover = false;\n this.service.draggedData = undefined;\n }\n }\n\n hookEvents() {\n if (!this.events) {\n this.events = new Subject();\n this.events.subscribe(evt => {\n if (!this.loading) {\n this.handleEvent(evt);\n }\n });\n }\n }\n\n protected fetch() {\n return this.root ? this.service.getRootNodes() : this.service.getGroupItems(this.mo.id);\n }\n\n protected async handleEvent(evt: Action) {\n if (!this.children.length && evt === Action.FETCH) {\n this.loading = true;\n this.addNodes(await this.fetch());\n this.loading = false;\n } else if (evt === Action.NEXT) {\n this.loadMoreNode.loading = true;\n this.addNodes(await this.paging.next());\n this.loadMoreNode.loading = false;\n } else if (evt === Action.REFRESH) {\n this.loading = false;\n this.paging = undefined;\n this.loadMoreNode = undefined;\n this.empty();\n this.events.next(Action.FETCH);\n }\n }\n\n protected addNodes(res) {\n if (res.paging) {\n const { currentPage, nextPage, pageSize } = (this.paging = res.paging);\n if (currentPage === 1) {\n this.empty();\n }\n const itemsCount = res.data.length;\n const moreItemsAvailable = !!nextPage && itemsCount === pageSize;\n this.toggleLoadMore(moreItemsAvailable);\n }\n (res.data || res).map(mo => this.addManagedObject(mo));\n this.events.next(Action.LOADING_DONE);\n }\n\n protected toggleLoadMore(show: boolean) {\n if (!this.loadMoreNode && show) {\n this.loadMoreNode = new LoadMoreNode();\n this.add(this.loadMoreNode);\n this.loadMoreNode.click = () => this.events.next(Action.NEXT);\n }\n\n if (this.loadMoreNode) {\n this.loadMoreNode.hidden = !show;\n }\n }\n\n private async moveNode(nodeToMove: AssetNode) {\n try {\n const isCopy = await this.showDropConfirm(nodeToMove);\n await this.verifyNodeAccess(nodeToMove);\n await this.addMovedNode(nodeToMove);\n if (!isCopy) {\n await this.removeMovedNode(nodeToMove);\n }\n this.expand();\n } catch (ex) {\n if (ex) {\n this.service.alert.addServerFailure(ex);\n }\n } finally {\n this.draggedHover = false;\n this.service.draggedData = undefined;\n }\n }\n\n private async showDropConfirm(nodeToMove: AssetNode) {\n this.confirm.title = gettext('Move');\n this.confirm.message = gettext('Do you want to move the group?');\n const buttons: any = [\n {\n label: gettext('Cancel'),\n action: () => Promise.reject()\n },\n {\n label: gettext('Move'),\n status: 'default',\n action: () => Promise.resolve(false)\n }\n ];\n if (nodeToMove.isDeviceOrProbablyChildDevice) {\n this.confirm.title = gettext('Move or add');\n this.confirm.message = gettext('Do you want to move or add the device?');\n buttons.push({\n label: gettext('Add'),\n status: 'primary',\n action: () => Promise.resolve(true)\n });\n }\n return this.confirm.show(buttons);\n }\n\n private async verifyNodeAccess(nodeToMove: AssetNode) {\n return this.service.inventory.update({ id: nodeToMove.mo.id });\n }\n\n private async addMovedNode(nodeToMove: AssetNode) {\n let mo;\n if (this.root) {\n const { data } = await this.service.inventory.update({\n id: nodeToMove.mo.id,\n type: GroupFragment.groupType\n });\n mo = data;\n } else {\n const { data } = await this.service.inventory.childAssetsAdd(nodeToMove.mo, this.mo);\n mo = data;\n }\n this.addManagedObject(mo);\n }\n\n private async removeMovedNode(nodeToMove: AssetNode) {\n for (const parent of nodeToMove.parents as AssetNode[]) {\n if (parent.mo && parent.mo.type === GroupFragment.dynamicGroupType) {\n break; // smart groups don't need to be changed\n }\n if (parent.root) {\n await this.service.inventory.update({\n id: nodeToMove.mo.id,\n type: GroupFragment.subGroupType\n });\n } else {\n await this.service.inventory.childAssetsRemove(nodeToMove.mo, parent.mo);\n }\n parent.remove(nodeToMove);\n }\n }\n\n private updateIcon(open) {\n this.icon = this.service.groups.icon(\n // if it's root we are going to pass a fake mo to get the same icon as groups\n this.root ? { type: GroupFragment.groupType } : this.mo,\n open\n );\n }\n}\n","\nimport { AssetNode } from './asset-node';\nimport { AssetNodeService } from './asset-node.service';\n\nexport class DynamicGroupNode extends AssetNode {\n constructor(\n protected service: AssetNodeService,\n config = {}\n ) {\n super(service, config);\n this.draggable = false;\n this.droppable = false;\n }\n\n get hasChildren() {\n return true;\n }\n\n get query() {\n return this.mo.c8y_DeviceQueryString;\n }\n\n protected fetch(): any {\n return this.service.getDynamicGroupItems(this.query);\n }\n}\n","import { InjectionToken } from '@angular/core';\r\nexport const ASSET_NAVIGATOR_CONFIG = new InjectionToken<AssetNavigatorConfig>('AssetNodeConfig');\r\n\r\nexport interface AssetNavigatorConfig {\r\n smartGroups?: boolean;\r\n openOnStart?: boolean;\r\n rootNodePriority?: number;\r\n disableDragAndDrop?: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { GroupFragment } from './group-fragment.model';\nimport { IManagedObject } from '@c8y/client';\n\n@Injectable()\nexport class DeviceGroupService {\n icons = {\n brokerSourceInactive: {\n icon: 'c8y-group-remote-inactive'\n },\n brokerSource: {\n icon: 'c8y-group-remote',\n iconOpen: 'c8y-group-remote-open'\n },\n group: {\n icon: 'c8y-group',\n iconOpen: 'c8y-group-open'\n },\n dynamicGroup: {\n icon: 'c8y-group-smart',\n iconOpen: 'c8y-group-smart-open'\n },\n other: {\n icon: 'circle',\n iconClass: 'statusUnknown'\n }\n };\n dataBrokerSourceFragmentInactive = `_${GroupFragment.dataBrokerSourceFragment}`;\n\n isGroup(mo) {\n return (\n !!mo[GroupFragment.groupFragmentType] ||\n mo.type === GroupFragment.groupType ||\n mo.type === GroupFragment.subGroupType\n );\n }\n\n isDynamicGroup(mo) {\n return !!mo[GroupFragment.dynamicGroupFragment] || mo.type === GroupFragment.dynamicGroupType;\n }\n\n isDataBroker(mo) {\n return (\n !!mo[GroupFragment.dataBrokerSourceFragment] || !!mo[this.dataBrokerSourceFragmentInactive]\n );\n }\n\n isDataBrokerActive(mo) {\n return (\n !!mo[GroupFragment.dataBrokerSourceFragment] && !mo[this.dataBrokerSourceFragmentInactive]\n );\n }\n\n isDevice(mo) {\n return !!mo.c8y_IsDevice;\n }\n\n icon(mo, open = false) {\n let type = 'other';\n if (this.isDynamicGroup(mo)) {\n type = 'dynamicGroup';\n } else if (this.isDataBrokerActive(mo)) {\n type = 'brokerSource';\n } else if (this.isDataBroker(mo)) {\n type = 'brokerSourceInactive';\n } else if (this.isGroup(mo)) {\n type = 'group';\n }\n const icon = this.icons[type];\n return (open && icon.iconOpen) || icon.icon;\n }\n\n isAnyGroup(mo: IManagedObject) {\n return (\n this.isGroup(mo) ||\n this.isDynamicGroup(mo) ||\n this.isDataBroker(mo) ||\n this.isDataBrokerActive(mo)\n );\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { InventoryService, QueriesUtil, UserService, IManagedObject, IResult } from '@c8y/client';\nimport {\n AlertService,\n BreadcrumbService,\n ModalService,\n NavigatorNode,\n AppStateService\n} from '@c8y/ngx-components';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { empty } from 'rxjs';\nimport { filter, mergeMap } from 'rxjs/operators';\nimport { AssetNode } from './asset-node';\nimport { AssetNavigatorConfig, ASSET_NAVIGATOR_CONFIG } from './asset-node-config.model';\nimport { DynamicGroupNode } from './dynamic-group-node';\nimport { GroupFragment } from './group-fragment.model';\nimport { DeviceGroupService } from './group.service';\n\nexport interface AssetNodeMo {\n id: string;\n type: string;\n}\n\n@Injectable()\nexport class AssetNodeService {\n rootNode: AssetNode;\n firstUrl = true;\n draggedData: AssetNode;\n queriesUtil: QueriesUtil;\n protected PAGE_SIZE = 20;\n\n constructor(\n public inventory: InventoryService,\n public groups: DeviceGroupService,\n public apiService: ApiService,\n public modal: ModalService,\n public alert: AlertService,\n protected breadcrumbService: BreadcrumbService,\n protected user: UserService,\n protected appState: AppStateService,\n @Optional() @Inject(ASSET_NAVIGATOR_CONFIG) public moduleConfig: AssetNavigatorConfig\n ) {\n this.moduleConfig = {\n rootNodePriority: 2000,\n ...(moduleConfig || {})\n };\n this.queriesUtil = new QueriesUtil();\n }\n\n createRootNode() {\n this.rootNode = this.createAssetNode({\n root: true,\n priority: this.moduleConfig.rootNodePriority\n });\n return this.rootNode;\n }\n\n createDynamicGroupNode(config) {\n return new DynamicGroupNode(this, config);\n }\n\n createAssetNode(config) {\n return new AssetNode(this, config);\n }\n\n createChildNode(managedObject) {\n const { type } = managedObject;\n const config: Partial<AssetNode> = { mo: managedObject };\n if (type === GroupFragment.dynamicGroupType) {\n return this.createDynamicGroupNode(config);\n }\n return this.createAssetNode(config);\n }\n\n getRootNodes(customFilter?: any): Promise<any> {\n const defaultFilter = {\n pageSize: this.PAGE_SIZE,\n withChildren: false,\n query: this.queriesUtil.buildQuery(this.rootQueryFilter())\n };\n const groupFilter = customFilter ? customFilter : defaultFilter;\n\n // due to BE performance limitations we do not allow filtering and sorting for a user without inventory roles\n if (!this.user.hasRole(this.appState.currentUser.value, 'ROLE_INVENTORY_READ')) {\n delete groupFilter.query;\n Object.assign(groupFilter, {\n fragmentType: GroupFragment.groupFragmentType,\n onlyRoots: true\n });\n }\n return this.inventory.list(this.createFilter(groupFilter));\n }\n\n getGroupItems(moId: string, extraFilter: object = {}) {\n const queryFilter = {\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n query: this.groupQueryFilter(moId)\n };\n return this.inventory.childAssetsList(moId, { ...queryFilter, ...extraFilter });\n }\n\n getDynamicGroupItems(groupQuery: string, filterObj: any = {}) {\n const { query, ...queryParams } = filterObj;\n const orderByQuery = query;\n const queryFilter = {\n q: this.buildCombinedQuery(groupQuery, orderByQuery),\n ...queryParams\n };\n return this.inventory.list(this.createFilter(queryFilter));\n }\n\n getDeviceChildren(moId: string, extraFilter: object = {}) {\n const queryFilter = {\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n query: this.groupQueryFilter(moId)\n };\n return this.inventory.childDevicesList(moId, { ...queryFilter, ...extraFilter });\n }\n\n groupQueryFilter(moId: string) {\n return `$filter=(bygroupid(${moId}))$orderby=name`;\n }\n\n rootQueryFilter() {\n const { moduleConfig } = this;\n const rootFilter = {\n __filter: {\n type: `${GroupFragment.groupType}`\n },\n __orderby: [{ name: 1 }]\n };\n if (moduleConfig.smartGroups) {\n const queryFilter = {\n __filter: {\n __and: [\n {\n type: `${GroupFragment.dynamicGroupType}`\n },\n {\n __has: `${GroupFragment.dynamicGroupFragment}`\n },\n { __not: { __has: `${GroupFragment.dynamicGroupFragment}.invisible` } }\n ]\n }\n };\n this.queriesUtil.addOrFilter(rootFilter, queryFilter);\n }\n return rootFilter;\n }\n\n onUpdate({ mo, root }) {\n if (mo.id) {\n return this.apiService\n .hookResponse(\n ({ url, method }) =>\n ['PUT', 'DELETE', 'POST'].includes(method) &&\n RegExp(`((inventory/managedObjects)|(service/smartgroup/smartgroups))/${mo.id}`).test(\n url\n )\n )\n .pipe(\n filter(() => !this.draggedData),\n mergeMap(this.apiService.resolveData),\n filter(response => !response.data.c8y_Dashboard)\n );\n } else if (root) {\n return this.apiService\n .hookResponse(\n ({ url, method }) =>\n RegExp('((inventory/managedObjects)|(service/smartgroup/smartgroups))/?$').test(url) &&\n method === 'POST'\n )\n .pipe(\n mergeMap(this.apiService.resolveData),\n filter(response => this.isNewManagedObjectRoot(response))\n );\n } else {\n return empty();\n }\n }\n\n isNewManagedObjectRoot(response: Partial<IResult<IManagedObject>> = {}) {\n const { data } = response;\n let isRootAsset = false;\n\n if (typeof data === 'object') {\n isRootAsset = !!data[GroupFragment.groupFragmentType];\n if (!isRootAsset && this.moduleConfig.smartGroups) {\n isRootAsset = !!data[GroupFragment.dynamicGroupFragment];\n }\n }\n return isRootAsset;\n }\n\n /**\n * There could be multiple breadcrumbs for devices,\n * so we set a preferred one on click on a device.\n * @param parents The parent nodes of the device to select the prefered one.\n */\n preferBreadcrumb(parents: NavigatorNode[]) {\n if (parents.length === 1) {\n this.breadcrumbService.selectPreferredByPath(parents[0].path);\n }\n }\n\n protected createFilter(extraParams: any = {}) {\n const params = {\n currentPage: 1,\n withTotalPages: true,\n pageSize: 10\n };\n return { ...params, ...extraParams };\n }\n\n private buildCombinedQuery(query, orderByQuery) {\n let combinedQuery;\n if (query && orderByQuery) {\n const filterQuery = this.queriesUtil.buildQuery({\n __useFilterQueryString: query\n });\n combinedQuery = `${filterQuery} ${orderByQuery}`;\n } else {\n combinedQuery = query || orderByQuery || '';\n }\n return combinedQuery;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AssetNodeService } from './asset-node.service';\nimport { NavigatorNode } from '@c8y/ngx-components';\n\n@Injectable()\nexport class AssetNodeFactory {\n constructor(private service: AssetNodeService) {}\n\n get(): NavigatorNode {\n if (!this.service.rootNode) {\n this.service.createRootNode();\n }\n return this.service.rootNode;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HOOK_NAVIGATOR_NODES, ModalModule, ModalService, DeviceStatusComponent, DeviceStatusModule} from '@c8y/ngx-components';\nimport { ASSET_NAVIGATOR_CONFIG} from './asset-node-config.model';\nimport { AssetNodeFactory } from './asset-node.factory';\nimport { AssetNodeService } from './asset-node.service';\nimport { AssetNavigatorConfig } from './asset-node-config.model';\nimport { DeviceGroupService } from './group.service';\n\n@NgModule({\n declarations: [],\n imports: [\n ModalModule,\n DeviceStatusModule\n ],\n providers: [\n ModalService,\n AssetNodeService,\n DeviceGroupService,\n {\n provide: HOOK_NAVIGATOR_NODES, useClass: AssetNodeFactory, multi: true\n }\n ],\n entryComponents: [DeviceStatusComponent]\n})\nexport class AssetsNavigatorModule {\n static config(config: AssetNavigatorConfig): ModuleWithProviders {\n return {\n ngModule: AssetsNavigatorModule,\n providers: [\n {\n provide: ASSET_NAVIGATOR_CONFIG, useValue: config\n }\n ],\n };\n }\n\n}\n","import { GroupNodeService } from './group-node.service';\nimport { AssetNode } from '../asset-node';\n\nexport class GroupNode extends AssetNode {\n // FIXME: Currently hasChildren returns true if it is a group,\n // Issue is, that we disable the children in the API\n // getGroupItems service call due to performance. This leads\n // to that the dropdown chevron is shown always. Issue is,\n // that even if we return the chevrons, we have no way to determine\n // if the childAssets contain groups or other assets (like dashboards).\n // get hasChildren() {\n // return this.root || this.service.groups.isGroup(this.mo) && (this.mo as IManagedObject).childAssets.references.length > 0;\n // }\n\n /**\n * Creates a new node which shows only groups.\n *\n * @param service The service to use.\n * @param config The default configuration of the node.\n */\n constructor(protected service: GroupNodeService, config = {}) {\n super(service, config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AssetNodeService } from '../asset-node.service';\nimport { GroupNode } from './group-node';\nimport { GroupFragment } from '../group-fragment.model';\n\n@Injectable()\nexport class GroupNodeService extends AssetNodeService {\n protected PAGE_SIZE = 5;\n\n createGroupNode(config) {\n return new GroupNode(this, config);\n }\n\n createChildNode(managedObject): GroupNode {\n const config: Partial<GroupNode> = { mo: managedObject };\n return this.createGroupNode(config);\n }\n\n subAssetsQueryFilter() {\n const rootQueryFilter = this.rootQueryFilter();\n const filter = this.queriesUtil.addOrFilter(rootQueryFilter, {\n type: GroupFragment.subGroupType\n });\n return this.queriesUtil.buildQuery(filter);\n }\n\n getGroupItems(moId: string): Promise<any> {\n return this.inventory.childAssetsList(moId, {\n query: this.subAssetsQueryFilter(),\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n withTotalPages: true\n });\n }\n}\n","import { Component, Output, Input, EventEmitter, OnInit } from '@angular/core';\nimport { GroupNodeService } from './group-node.service';\nimport { GroupNode } from './group-node';\nimport { IManagedObject } from '@c8y/client';\n\n/**\n * Displays a hierarchical tree selector for assets.\n */\n@Component({\n selector: 'c8y-asset-selector',\n templateUrl: './asset-selector.component.html'\n})\nexport class AssetSelectorComponent implements OnInit {\n /**\n * An array of predefined nodes.\n */\n @Input() selected: IManagedObject[] = [];\n /**\n * Emits if one item was selected (all currently selected nodes).\n */\n @Output() onChange = new EventEmitter<IManagedObject[]>();\n /**\n * @ignore\n */\n rootNode: GroupNode;\n\n /**\n * @ignore only DI\n */\n constructor(private groupNodeService: GroupNodeService) {}\n\n /**\n * @ignore\n */\n ngOnInit(): void {\n this.rootNode = this.groupNodeService.createGroupNode({ root: true });\n }\n\n /**\n * Adds an managed object to the selected array and emits the change.\n * @param selectedMo The selected asset.\n */\n select(selectedMo: IManagedObject) {\n const index = this.getIndexOfSelected(this.selected, selectedMo);\n if (index === -1) {\n this.selected.push(selectedMo);\n }\n this.onChange.emit(this.selected);\n }\n\n /**\n * Removes a managed object from the selected array and emits the change.\n * @param selectedMo The selected asset.\n */\n deselect(selectedMo: IManagedObject) {\n const index = this.getIndexOfSelected(this.selected, selectedMo);\n if (index > -1) {\n this.selected.splice(index, 1);\n }\n this.onChange.emit(this.selected);\n }\n\n getIndexOfSelected(selected: Array<Partial<IManagedObject>>, selectedMo: IManagedObject) {\n return selected.findIndex(mo => mo.id === selectedMo.id);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GroupNode } from './group-node';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\nimport { AssetSelectorComponent } from './asset-selector.component';\nimport { IManagedObject } from '@c8y/client';\nimport { Action } from '../action.enum';\n\n@Component({\n selector: 'c8y-asset-selector-node',\n templateUrl: './asset-selector-node.component.html'\n})\nexport class AssetSelectorNodeComponent implements OnInit {\n /**\n * The current node.\n */\n @Input() node: GroupNode;\n /**\n * All preselected items\n */\n @Input() preselected: Array<Partial<IManagedObject>> = [];\n /**\n * Should the path be shown\n */\n @Input() showPath: boolean = false;\n /**\n * The current path to the node\n */\n breadcrumb: string;\n /**\n * @ignore\n */\n level: number = 0;\n /**\n * The selection status of the node\n */\n checked: boolean = false;\n /**\n * @ignore\n */\n unsubscribe$ = new Subject<any>();\n\n /**\n * @ignore\n */\n get expandTitle() {\n return !this.node.open ? gettext('Expand') : gettext('Collapse');\n }\n\n /**\n * @ignore only di\n */\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n private parentNode: AssetSelectorComponent\n ) {}\n\n /**\n * @ignore\n */\n async ngOnInit() {\n this.breadcrumb = this.node.label;\n this.setupBreadcrumbsAndLevel(this.node);\n\n if (this.node instanceof GroupNode) {\n this.node.hookEvents();\n }\n\n // open on startup\n if (this.node.root) {\n this.click();\n }\n\n if (this.node.events) {\n this.node.events\n .pipe(\n takeUntil(this.unsubscribe$),\n filter((a: Action) => a === Action.LOADING_DONE)\n )\n .subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n this.checked = this.isPreselected();\n }\n\n /**\n * Opens a node.\n */\n click() {\n this.node.open = !this.node.open;\n this.node.click({ open: this.node.open });\n }\n\n /**\n * TODO: Only level used. Breadcrumbs needs to be implemented.\n */\n setupBreadcrumbsAndLevel(node: GroupNode) {\n if (node.parents && node.parents.length) {\n const parent = node.parents[0] as GroupNode;\n this.breadcrumb = this.translateService.instant(parent.label) + ' > ' + this.breadcrumb;\n this.level++;\n\n this.setupBreadcrumbsAndLevel(parent);\n }\n }\n\n /**\n * Selects the node and emits a change on the parent component.\n * @param node The node to select.\n */\n selected(node: GroupNode) {\n this.checked = !this.checked;\n this.updateSelection(node.mo);\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this.unsubscribe$.next(true);\n this.unsubscribe$.complete();\n }\n\n private isPreselected() {\n if (this.node.root || !this.node.mo) {\n return false;\n }\n return this.parentNode.getIndexOfSelected(this.preselected, this.node.mo) > -1;\n }\n\n private updateSelection(selectedMo: IManagedObject) {\n if (this.checked) {\n this.parentNode.select(selectedMo);\n return;\n }\n this.parentNode.deselect(selectedMo);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { GroupNodeService } from './group-node.service';\n\nimport { AssetSelectorNodeComponent } from './asset-selector-node.component';\nimport { AssetSelectorComponent } from './asset-selector.component';\n\n@NgModule({\n imports: [CommonModule, CollapseModule, BsDropdownModule ],\n exports: [AssetSelectorNodeComponent, AssetSelectorComponent],\n providers: [GroupNodeService],\n declarations: [AssetSelectorNodeComponent, AssetSelectorComponent]\n})\nexport class AssetSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__extends","tslib_1.__values","tslib_1.__param","tslib_1.__decorate"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-assets-navigator.js","sources":["ng://@c8y/ngx-components/assets-navigator/load-more-node.ts","ng://@c8y/ngx-components/assets-navigator/group-fragment.model.ts","ng://@c8y/ngx-components/assets-navigator/action.enum.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.ts","ng://@c8y/ngx-components/assets-navigator/dynamic-group-node.ts","ng://@c8y/ngx-components/assets-navigator/asset-node-config.model.ts","ng://@c8y/ngx-components/assets-navigator/group.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-node.factory.ts","ng://@c8y/ngx-components/assets-navigator/assets-navigator.module.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/group-node.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/group-node.service.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector.component.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector-node.component.ts","ng://@c8y/ngx-components/assets-navigator/asset-selector/asset-selector.module.ts","ng://@c8y/ngx-components/assets-navigator/c8y-ngx-components-assets-navigator.ts"],"sourcesContent":["import { NavigatorNode, gettext } from '@c8y/ngx-components';\n\nexport class LoadMoreNode extends NavigatorNode {\n priority = -Infinity;\n label = gettext('Load more');\n icon = 'plus';\n droppable = true;\n}\n","export enum GroupFragment {\n groupType = 'c8y_DeviceGroup',\n subGroupType = 'c8y_DeviceSubgroup',\n groupFragmentType = 'c8y_IsDeviceGroup',\n dataBrokerSourceFragment = 'c8y_BrokerSource',\n dynamicGroupType = 'c8y_DynamicGroup',\n dynamicGroupFragment = 'c8y_IsDynamicGroup',\n dynamicGroupColumnConfig = 'c8y_UIDeviceFilterConfig',\n dynamicGroupQueryString = 'c8y_DeviceQueryString',\n}\n","export enum Action {\n FETCH,\n NEXT,\n REFRESH,\n LOADING_DONE\n}\n","import { Paging } from '@c8y/client';\nimport { ClickOptions, gettext, NavigatorNode, DeviceStatusComponent } from '@c8y/ngx-components';\nimport { get, has } from 'lodash-es';\nimport { Subject, Subscription } from 'rxjs';\nimport { AssetNodeMo, AssetNodeService } from './asset-node.service';\nimport { LoadMoreNode } from './load-more-node';\nimport { GroupFragment } from './group-fragment.model';\nimport { Action } from './action.enum';\n\nexport class AssetNode extends NavigatorNode {\n root: boolean;\n mo: any;\n\n get label() {\n return (this.root && gettext('Groups')) || this.mo.name || '--';\n }\n\n get hasChildren() {\n return this.root || this.service.groups.isGroup(this.mo);\n }\n\n get iconComponent() {\n return this.isDeviceOrProbablyChildDevice ? DeviceStatusComponent : undefined;\n }\n\n get isDevice() {\n return !!this.mo.c8y_IsDevice;\n }\n\n get isDeviceOrProbablyChildDevice() {\n return this.isDevice || this.isNeitherDeviceOrGroup;\n }\n\n get isNeitherDeviceOrGroup() {\n const { isGroup, isDynamicGroup } = this.service.groups;\n return !isGroup(this.mo) && !isDynamicGroup(this.mo) && !this.isDevice && !this.root;\n }\n\n events: Subject<Action>;\n protected paging: Paging<AssetNodeMo>;\n protected loadMoreNode: LoadMoreNode;\n private onUpdateSubscription: Subscription;\n\n constructor(protected service: AssetNodeService, config = {}) {\n super(config);\n this.root = this.root || false;\n this.mo = this.mo || {};\n this.path = this.root\n ? 'group'\n : this.isDeviceOrProbablyChildDevice\n ? `device/${this.mo.id}`\n : `group/${this.mo.id}`;\n this.draggable = !this.service.moduleConfig.disableDragAndDrop && !this.root;\n this.droppable =\n !this.service.moduleConfig.disableDragAndDrop && !this.isDeviceOrProbablyChildDevice;\n this.routerLinkExact = this.root;\n this.updateIcon(false);\n this.onUpdateSubscription = this.service\n .onUpdate(this)\n .subscribe(({ data, method }) => this.refresh(data, method));\n }\n\n openOnStart(url) {\n const urlRegex = /^\\/group\\//;\n if (this.root) {\n if (this.service.moduleConfig.openOnStart || urlRegex.test(url)) {\n return true;\n }\n }\n const matches = url.match(/\\/(group)\\/(\\d+)/);\n let isMatch = false;\n if (matches) {\n const id = matches[2];\n isMatch = []\n .concat(get(this.mo, 'childAssets.references', []))\n .some(({ managedObject }) => managedObject.id === id);\n return isMatch;\n }\n return false;\n }\n\n refresh(mo: any = {}, method = 'GET') {\n if (mo.id === this.mo.id) {\n this.mo = mo;\n } else if (method === 'DELETE') {\n this.parents.forEach((node: AssetNode) => node.refresh());\n return;\n }\n if (this.events) {\n this.events.next(Action.REFRESH);\n }\n }\n\n click(options: ClickOptions = {}) {\n if (this.isDeviceOrProbablyChildDevice) {\n this.service.preferBreadcrumb(this.parents);\n return;\n }\n this.hookEvents();\n\n this.updateIcon(options.open);\n if (options.open) {\n this.events.next(Action.FETCH);\n }\n }\n\n sort() {\n this.children.sort((a, b) => {\n if (a.priority > b.priority) {\n return -1;\n } else if (a.priority < b.priority) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n addManagedObject(mo) {\n const { childAdditions } = this.mo;\n if (!this.isChildAddition(childAdditions, mo)) {\n this.add(this.service.createChildNode(mo));\n }\n }\n\n isChildAddition(childAdditions, mo) {\n return (\n childAdditions && childAdditions.references.some(({ managedObject: { id } }) => id === mo.id)\n );\n }\n\n destroy() {\n this.onUpdateSubscription.unsubscribe();\n }\n\n get canDrop() {\n const nodeToMove = this.service.draggedData;\n if (nodeToMove) {\n const shouldGetChildOfItsOwn = !!nodeToMove.find(child => child === this);\n const isAlreadyChild = (this.children as AssetNode[]).some(\n child => child.mo && child.mo.id === nodeToMove.mo.id\n );\n const preventMove = this === nodeToMove || shouldGetChildOfItsOwn || isAlreadyChild;\n return this.droppable && !preventMove;\n }\n return this.droppable;\n }\n\n dragStart($event) {\n super.dragStart($event);\n this.service.draggedData = this;\n this.service.rootNode.droppable = !this.isDeviceOrProbablyChildDevice;\n }\n\n dragEnd($event) {\n super.dragEnd($event);\n }\n\n async drop($event) {\n super.drop($event);\n const nodeToMove = this.service.draggedData;\n if (this.canDrop) {\n await this.moveNode(nodeToMove);\n } else {\n this.draggedHover = false;\n this.service.draggedData = undefined;\n }\n }\n\n hookEvents() {\n if (!this.events) {\n this.events = new Subject();\n this.events.subscribe(evt => {\n if (!this.loading) {\n this.handleEvent(evt);\n }\n });\n }\n }\n\n protected fetch() {\n return this.root ? this.service.getRootNodes() : this.service.getGroupItems(this.mo.id);\n }\n\n protected async handleEvent(evt: Action) {\n if (!this.children.length && evt === Action.FETCH) {\n this.loading = true;\n this.addNodes(await this.fetch());\n this.loading = false;\n } else if (evt === Action.NEXT) {\n this.loadMoreNode.loading = true;\n this.addNodes(await this.paging.next());\n this.loadMoreNode.loading = false;\n } else if (evt === Action.REFRESH) {\n this.loading = false;\n this.paging = undefined;\n this.loadMoreNode = undefined;\n this.empty();\n this.events.next(Action.FETCH);\n }\n }\n\n protected addNodes(res) {\n if (res.paging) {\n const { currentPage, nextPage, pageSize } = (this.paging = res.paging);\n if (currentPage === 1) {\n this.empty();\n }\n const itemsCount = res.data.length;\n const moreItemsAvailable = !!nextPage && itemsCount === pageSize;\n this.toggleLoadMore(moreItemsAvailable);\n }\n (res.data || res).map(mo => this.addManagedObject(mo));\n this.events.next(Action.LOADING_DONE);\n }\n\n protected toggleLoadMore(show: boolean) {\n if (!this.loadMoreNode && show) {\n this.loadMoreNode = new LoadMoreNode();\n this.add(this.loadMoreNode);\n this.loadMoreNode.click = () => this.events.next(Action.NEXT);\n }\n\n if (this.loadMoreNode) {\n this.loadMoreNode.hidden = !show;\n }\n }\n\n private async moveNode(nodeToMove: AssetNode) {\n try {\n const isCopy = await this.showDropConfirm(nodeToMove);\n await this.verifyNodeAccess(nodeToMove);\n await this.addMovedNode(nodeToMove);\n if (!isCopy) {\n await this.removeMovedNode(nodeToMove);\n }\n this.expand();\n } catch (ex) {\n if (ex) {\n this.service.alert.addServerFailure(ex);\n }\n } finally {\n this.draggedHover = false;\n this.service.draggedData = undefined;\n }\n }\n\n private async showDropConfirm(nodeToMove: AssetNode) {\n this.confirm.title = gettext('Move');\n this.confirm.message = gettext('Do you want to move the group?');\n const buttons: any = [\n {\n label: gettext('Cancel'),\n action: () => Promise.reject()\n },\n {\n label: gettext('Move'),\n status: 'default',\n action: () => Promise.resolve(false)\n }\n ];\n if (nodeToMove.isDeviceOrProbablyChildDevice) {\n this.confirm.title = gettext('Move or add');\n this.confirm.message = gettext('Do you want to move or add the device?');\n buttons.push({\n label: gettext('Add'),\n status: 'primary',\n action: () => Promise.resolve(true)\n });\n }\n return this.confirm.show(buttons);\n }\n\n private async verifyNodeAccess(nodeToMove: AssetNode) {\n return this.service.inventory.update({ id: nodeToMove.mo.id });\n }\n\n private async addMovedNode(nodeToMove: AssetNode) {\n let mo;\n if (this.root) {\n const { data } = await this.service.inventory.update({\n id: nodeToMove.mo.id,\n type: GroupFragment.groupType\n });\n mo = data;\n } else {\n const { data } = await this.service.inventory.childAssetsAdd(nodeToMove.mo, this.mo);\n mo = data;\n }\n this.addManagedObject(mo);\n }\n\n private async removeMovedNode(nodeToMove: AssetNode) {\n for (const parent of nodeToMove.parents as AssetNode[]) {\n if (parent.mo && parent.mo.type === GroupFragment.dynamicGroupType) {\n break; // smart groups don't need to be changed\n }\n if (parent.root) {\n await this.service.inventory.update({\n id: nodeToMove.mo.id,\n type: GroupFragment.subGroupType\n });\n } else {\n await this.service.inventory.childAssetsRemove(nodeToMove.mo, parent.mo);\n }\n parent.remove(nodeToMove);\n }\n }\n\n private updateIcon(open) {\n this.icon = this.service.groups.icon(\n // if it's root we are going to pass a fake mo to get the same icon as groups\n this.root ? { type: GroupFragment.groupType } : this.mo,\n open\n );\n }\n}\n","\nimport { AssetNode } from './asset-node';\nimport { AssetNodeService } from './asset-node.service';\n\nexport class DynamicGroupNode extends AssetNode {\n constructor(\n protected service: AssetNodeService,\n config = {}\n ) {\n super(service, config);\n this.draggable = false;\n this.droppable = false;\n }\n\n get hasChildren() {\n return true;\n }\n\n get query() {\n return this.mo.c8y_DeviceQueryString;\n }\n\n protected fetch(): any {\n return this.service.getDynamicGroupItems(this.query);\n }\n}\n","import { InjectionToken } from '@angular/core';\r\nexport const ASSET_NAVIGATOR_CONFIG = new InjectionToken<AssetNavigatorConfig>('AssetNodeConfig');\r\n\r\nexport interface AssetNavigatorConfig {\r\n smartGroups?: boolean;\r\n openOnStart?: boolean;\r\n rootNodePriority?: number;\r\n disableDragAndDrop?: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { GroupFragment } from './group-fragment.model';\nimport { IManagedObject } from '@c8y/client';\n\n@Injectable()\nexport class DeviceGroupService {\n icons = {\n brokerSourceInactive: {\n icon: 'c8y-group-remote-inactive'\n },\n brokerSource: {\n icon: 'c8y-group-remote',\n iconOpen: 'c8y-group-remote-open'\n },\n group: {\n icon: 'c8y-group',\n iconOpen: 'c8y-group-open'\n },\n dynamicGroup: {\n icon: 'c8y-group-smart',\n iconOpen: 'c8y-group-smart-open'\n },\n other: {\n icon: 'circle',\n iconClass: 'statusUnknown'\n }\n };\n dataBrokerSourceFragmentInactive = `_${GroupFragment.dataBrokerSourceFragment}`;\n\n isGroup(mo) {\n return (\n !!mo[GroupFragment.groupFragmentType] ||\n mo.type === GroupFragment.groupType ||\n mo.type === GroupFragment.subGroupType\n );\n }\n\n isDynamicGroup(mo) {\n return !!mo[GroupFragment.dynamicGroupFragment] || mo.type === GroupFragment.dynamicGroupType;\n }\n\n isDataBroker(mo) {\n return (\n !!mo[GroupFragment.dataBrokerSourceFragment] || !!mo[this.dataBrokerSourceFragmentInactive]\n );\n }\n\n isDataBrokerActive(mo) {\n return (\n !!mo[GroupFragment.dataBrokerSourceFragment] && !mo[this.dataBrokerSourceFragmentInactive]\n );\n }\n\n isDevice(mo) {\n return !!mo.c8y_IsDevice;\n }\n\n icon(mo, open = false) {\n let type = 'other';\n if (this.isDynamicGroup(mo)) {\n type = 'dynamicGroup';\n } else if (this.isDataBrokerActive(mo)) {\n type = 'brokerSource';\n } else if (this.isDataBroker(mo)) {\n type = 'brokerSourceInactive';\n } else if (this.isGroup(mo)) {\n type = 'group';\n }\n const icon = this.icons[type];\n return (open && icon.iconOpen) || icon.icon;\n }\n\n isAnyGroup(mo: IManagedObject) {\n return (\n this.isGroup(mo) ||\n this.isDynamicGroup(mo) ||\n this.isDataBroker(mo) ||\n this.isDataBrokerActive(mo)\n );\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { InventoryService, QueriesUtil, UserService, IManagedObject, IResult } from '@c8y/client';\nimport {\n AlertService,\n BreadcrumbService,\n ModalService,\n NavigatorNode,\n AppStateService\n} from '@c8y/ngx-components';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { empty } from 'rxjs';\nimport { filter, mergeMap } from 'rxjs/operators';\nimport { AssetNode } from './asset-node';\nimport { AssetNavigatorConfig, ASSET_NAVIGATOR_CONFIG } from './asset-node-config.model';\nimport { DynamicGroupNode } from './dynamic-group-node';\nimport { GroupFragment } from './group-fragment.model';\nimport { DeviceGroupService } from './group.service';\n\nexport interface AssetNodeMo {\n id: string;\n type: string;\n}\n\n@Injectable()\nexport class AssetNodeService {\n rootNode: AssetNode;\n firstUrl = true;\n draggedData: AssetNode;\n queriesUtil: QueriesUtil;\n protected PAGE_SIZE = 20;\n\n constructor(\n public inventory: InventoryService,\n public groups: DeviceGroupService,\n public apiService: ApiService,\n public modal: ModalService,\n public alert: AlertService,\n protected breadcrumbService: BreadcrumbService,\n protected user: UserService,\n protected appState: AppStateService,\n @Optional() @Inject(ASSET_NAVIGATOR_CONFIG) public moduleConfig: AssetNavigatorConfig\n ) {\n this.moduleConfig = {\n rootNodePriority: 2000,\n ...(moduleConfig || {})\n };\n this.queriesUtil = new QueriesUtil();\n }\n\n createRootNode() {\n this.rootNode = this.createAssetNode({\n root: true,\n priority: this.moduleConfig.rootNodePriority\n });\n return this.rootNode;\n }\n\n createDynamicGroupNode(config) {\n return new DynamicGroupNode(this, config);\n }\n\n createAssetNode(config) {\n return new AssetNode(this, config);\n }\n\n createChildNode(managedObject) {\n const { type } = managedObject;\n const config: Partial<AssetNode> = { mo: managedObject };\n if (type === GroupFragment.dynamicGroupType) {\n return this.createDynamicGroupNode(config);\n }\n return this.createAssetNode(config);\n }\n\n getRootNodes(customFilter?: any): Promise<any> {\n const defaultFilter = {\n pageSize: this.PAGE_SIZE,\n withChildren: false,\n query: this.queriesUtil.buildQuery(this.navRootQueryFilter())\n };\n const groupFilter = customFilter ? customFilter : defaultFilter;\n\n // due to BE performance limitations we do not allow filtering and sorting for a user without inventory roles\n if (!this.user.hasRole(this.appState.currentUser.value, 'ROLE_INVENTORY_READ')) {\n delete groupFilter.query;\n Object.assign(groupFilter, {\n fragmentType: GroupFragment.groupFragmentType,\n onlyRoots: true\n });\n }\n return this.inventory.list(this.createFilter(groupFilter));\n }\n\n getGroupItems(moId: string, extraFilter: object = {}) {\n const queryFilter = {\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n query: this.groupQueryFilter(moId)\n };\n return this.inventory.childAssetsList(moId, { ...queryFilter, ...extraFilter });\n }\n\n getDynamicGroupItems(groupQuery: string, filterObj: any = {}) {\n const { query, ...queryParams } = filterObj;\n const orderByQuery = query;\n const queryFilter = {\n q: this.buildCombinedQuery(groupQuery, orderByQuery),\n ...queryParams\n };\n return this.inventory.list(this.createFilter(queryFilter));\n }\n\n getDeviceChildren(moId: string, extraFilter: object = {}) {\n const queryFilter = {\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n query: this.groupQueryFilter(moId)\n };\n return this.inventory.childDevicesList(moId, { ...queryFilter, ...extraFilter });\n }\n\n groupQueryFilter(moId: string) {\n return `$filter=(bygroupid(${moId}))$orderby=name`;\n }\n\n navRootQueryFilter() {\n const navRootFilter = this.rootQueryFilter();\n navRootFilter.__orderby = [{ name: 1 }];\n return navRootFilter;\n }\n\n rootQueryFilter() {\n const { moduleConfig } = this;\n const rootFilter = {\n __filter: {\n type: `${GroupFragment.groupType}`\n },\n __orderby: []\n };\n if (moduleConfig.smartGroups) {\n const queryFilter = {\n __filter: {\n __and: [\n {\n type: `${GroupFragment.dynamicGroupType}`\n },\n {\n __has: `${GroupFragment.dynamicGroupFragment}`\n },\n { __not: { __has: `${GroupFragment.dynamicGroupFragment}.invisible` } }\n ]\n }\n };\n this.queriesUtil.addOrFilter(rootFilter, queryFilter);\n }\n return rootFilter;\n }\n\n onUpdate({ mo, root }) {\n if (mo.id) {\n return this.apiService\n .hookResponse(\n ({ url, method }) =>\n ['PUT', 'DELETE', 'POST'].includes(method) &&\n RegExp(`((inventory/managedObjects)|(service/smartgroup/smartgroups))/${mo.id}`).test(\n url\n )\n )\n .pipe(\n filter(() => !this.draggedData),\n mergeMap(this.apiService.resolveData),\n filter(response => !response.data.c8y_Dashboard)\n );\n } else if (root) {\n return this.apiService\n .hookResponse(\n ({ url, method }) =>\n RegExp('((inventory/managedObjects)|(service/smartgroup/smartgroups))/?$').test(url) &&\n method === 'POST'\n )\n .pipe(\n mergeMap(this.apiService.resolveData),\n filter(response => this.isNewManagedObjectRoot(response))\n );\n } else {\n return empty();\n }\n }\n\n isNewManagedObjectRoot(response: Partial<IResult<IManagedObject>> = {}) {\n const { data } = response;\n let isRootAsset = false;\n\n if (typeof data === 'object') {\n isRootAsset = !!data[GroupFragment.groupFragmentType];\n if (!isRootAsset && this.moduleConfig.smartGroups) {\n isRootAsset = !!data[GroupFragment.dynamicGroupFragment];\n }\n }\n return isRootAsset;\n }\n\n /**\n * There could be multiple breadcrumbs for devices,\n * so we set a preferred one on click on a device.\n * @param parents The parent nodes of the device to select the prefered one.\n */\n preferBreadcrumb(parents: NavigatorNode[]) {\n if (parents.length === 1) {\n this.breadcrumbService.selectPreferredByPath(parents[0].path);\n }\n }\n\n protected createFilter(extraParams: any = {}) {\n const params = {\n currentPage: 1,\n withTotalPages: true,\n pageSize: 10\n };\n return { ...params, ...extraParams };\n }\n\n private buildCombinedQuery(query, orderByQuery) {\n let combinedQuery;\n if (query && orderByQuery) {\n const filterQuery = this.queriesUtil.buildQuery({\n __useFilterQueryString: query\n });\n combinedQuery = `${filterQuery} ${orderByQuery}`;\n } else {\n combinedQuery = query || orderByQuery || '';\n }\n return combinedQuery;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AssetNodeService } from './asset-node.service';\nimport { NavigatorNode } from '@c8y/ngx-components';\n\n@Injectable()\nexport class AssetNodeFactory {\n constructor(private service: AssetNodeService) {}\n\n get(): NavigatorNode {\n if (!this.service.rootNode) {\n this.service.createRootNode();\n }\n return this.service.rootNode;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HOOK_NAVIGATOR_NODES, ModalModule, ModalService, DeviceStatusComponent, DeviceStatusModule} from '@c8y/ngx-components';\nimport { ASSET_NAVIGATOR_CONFIG} from './asset-node-config.model';\nimport { AssetNodeFactory } from './asset-node.factory';\nimport { AssetNodeService } from './asset-node.service';\nimport { AssetNavigatorConfig } from './asset-node-config.model';\nimport { DeviceGroupService } from './group.service';\n\n@NgModule({\n declarations: [],\n imports: [\n ModalModule,\n DeviceStatusModule\n ],\n providers: [\n ModalService,\n AssetNodeService,\n DeviceGroupService,\n {\n provide: HOOK_NAVIGATOR_NODES, useClass: AssetNodeFactory, multi: true\n }\n ],\n entryComponents: [DeviceStatusComponent]\n})\nexport class AssetsNavigatorModule {\n static config(config: AssetNavigatorConfig): ModuleWithProviders {\n return {\n ngModule: AssetsNavigatorModule,\n providers: [\n {\n provide: ASSET_NAVIGATOR_CONFIG, useValue: config\n }\n ],\n };\n }\n\n}\n","import { GroupNodeService } from './group-node.service';\nimport { AssetNode } from '../asset-node';\n\nexport class GroupNode extends AssetNode {\n // FIXME: Currently hasChildren returns true if it is a group,\n // Issue is, that we disable the children in the API\n // getGroupItems service call due to performance. This leads\n // to that the dropdown chevron is shown always. Issue is,\n // that even if we return the chevrons, we have no way to determine\n // if the childAssets contain groups or other assets (like dashboards).\n // get hasChildren() {\n // return this.root || this.service.groups.isGroup(this.mo) && (this.mo as IManagedObject).childAssets.references.length > 0;\n // }\n\n /**\n * Creates a new node which shows only groups.\n *\n * @param service The service to use.\n * @param config The default configuration of the node.\n */\n constructor(protected service: GroupNodeService, config = {}) {\n super(service, config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AssetNodeService } from '../asset-node.service';\nimport { GroupNode } from './group-node';\nimport { GroupFragment } from '../group-fragment.model';\n\n@Injectable()\nexport class GroupNodeService extends AssetNodeService {\n protected PAGE_SIZE = 5;\n\n createGroupNode(config) {\n return new GroupNode(this, config);\n }\n\n createChildNode(managedObject): GroupNode {\n const config: Partial<GroupNode> = { mo: managedObject };\n return this.createGroupNode(config);\n }\n\n subAssetsQueryFilter() {\n const rootQueryFilter = this.rootQueryFilter();\n const filter = this.queriesUtil.addOrFilter(rootQueryFilter, {\n type: GroupFragment.subGroupType\n });\n return this.queriesUtil.buildQuery(filter);\n }\n\n getGroupItems(moId: string): Promise<any> {\n return this.inventory.childAssetsList(moId, {\n query: this.subAssetsQueryFilter(),\n withChildren: false,\n pageSize: this.PAGE_SIZE,\n withTotalPages: true\n });\n }\n}\n","import { Component, Output, Input, EventEmitter, OnInit } from '@angular/core';\nimport { GroupNodeService } from './group-node.service';\nimport { GroupNode } from './group-node';\nimport { IManagedObject } from '@c8y/client';\n\n/**\n * Displays a hierarchical tree selector for assets.\n */\n@Component({\n selector: 'c8y-asset-selector',\n templateUrl: './asset-selector.component.html'\n})\nexport class AssetSelectorComponent implements OnInit {\n /**\n * An array of predefined nodes.\n */\n @Input() selected: IManagedObject[] = [];\n /**\n * Emits if one item was selected (all currently selected nodes).\n */\n @Output() onChange = new EventEmitter<IManagedObject[]>();\n /**\n * @ignore\n */\n rootNode: GroupNode;\n\n /**\n * @ignore only DI\n */\n constructor(private groupNodeService: GroupNodeService) {}\n\n /**\n * @ignore\n */\n ngOnInit(): void {\n this.rootNode = this.groupNodeService.createGroupNode({ root: true });\n }\n\n /**\n * Adds an managed object to the selected array and emits the change.\n * @param selectedMo The selected asset.\n */\n select(selectedMo: IManagedObject) {\n const index = this.getIndexOfSelected(this.selected, selectedMo);\n if (index === -1) {\n this.selected.push(selectedMo);\n }\n this.onChange.emit(this.selected);\n }\n\n /**\n * Removes a managed object from the selected array and emits the change.\n * @param selectedMo The selected asset.\n */\n deselect(selectedMo: IManagedObject) {\n const index = this.getIndexOfSelected(this.selected, selectedMo);\n if (index > -1) {\n this.selected.splice(index, 1);\n }\n this.onChange.emit(this.selected);\n }\n\n getIndexOfSelected(selected: Array<Partial<IManagedObject>>, selectedMo: IManagedObject) {\n return selected.findIndex(mo => mo.id === selectedMo.id);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GroupNode } from './group-node';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\nimport { AssetSelectorComponent } from './asset-selector.component';\nimport { IManagedObject } from '@c8y/client';\nimport { Action } from '../action.enum';\n\n@Component({\n selector: 'c8y-asset-selector-node',\n templateUrl: './asset-selector-node.component.html'\n})\nexport class AssetSelectorNodeComponent implements OnInit {\n /**\n * The current node.\n */\n @Input() node: GroupNode;\n /**\n * All preselected items\n */\n @Input() preselected: Array<Partial<IManagedObject>> = [];\n /**\n * Should the path be shown\n */\n @Input() showPath: boolean = false;\n /**\n * The current path to the node\n */\n breadcrumb: string;\n /**\n * @ignore\n */\n level: number = 0;\n /**\n * The selection status of the node\n */\n checked: boolean = false;\n /**\n * @ignore\n */\n unsubscribe$ = new Subject<any>();\n\n /**\n * @ignore\n */\n get expandTitle() {\n return !this.node.open ? gettext('Expand') : gettext('Collapse');\n }\n\n /**\n * @ignore only di\n */\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n private parentNode: AssetSelectorComponent\n ) {}\n\n /**\n * @ignore\n */\n async ngOnInit() {\n this.breadcrumb = this.node.label;\n this.setupBreadcrumbsAndLevel(this.node);\n\n if (this.node instanceof GroupNode) {\n this.node.hookEvents();\n }\n\n // open on startup\n if (this.node.root) {\n this.click();\n }\n\n if (this.node.events) {\n this.node.events\n .pipe(\n takeUntil(this.unsubscribe$),\n filter((a: Action) => a === Action.LOADING_DONE)\n )\n .subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n this.checked = this.isPreselected();\n }\n\n /**\n * Opens a node.\n */\n click() {\n this.node.open = !this.node.open;\n this.node.click({ open: this.node.open });\n }\n\n /**\n * TODO: Only level used. Breadcrumbs needs to be implemented.\n */\n setupBreadcrumbsAndLevel(node: GroupNode) {\n if (node.parents && node.parents.length) {\n const parent = node.parents[0] as GroupNode;\n this.breadcrumb = this.translateService.instant(parent.label) + ' > ' + this.breadcrumb;\n this.level++;\n\n this.setupBreadcrumbsAndLevel(parent);\n }\n }\n\n /**\n * Selects the node and emits a change on the parent component.\n * @param node The node to select.\n */\n selected(node: GroupNode) {\n this.checked = !this.checked;\n this.updateSelection(node.mo);\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this.unsubscribe$.next(true);\n this.unsubscribe$.complete();\n }\n\n private isPreselected() {\n if (this.node.root || !this.node.mo) {\n return false;\n }\n return this.parentNode.getIndexOfSelected(this.preselected, this.node.mo) > -1;\n }\n\n private updateSelection(selectedMo: IManagedObject) {\n if (this.checked) {\n this.parentNode.select(selectedMo);\n return;\n }\n this.parentNode.deselect(selectedMo);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { GroupNodeService } from './group-node.service';\n\nimport { AssetSelectorNodeComponent } from './asset-selector-node.component';\nimport { AssetSelectorComponent } from './asset-selector.component';\n\n@NgModule({\n imports: [CommonModule, CollapseModule, BsDropdownModule ],\n exports: [AssetSelectorNodeComponent, AssetSelectorComponent],\n providers: [GroupNodeService],\n declarations: [AssetSelectorNodeComponent, AssetSelectorComponent]\n})\nexport class AssetSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__extends","tslib_1.__values","tslib_1.__param","tslib_1.__decorate"],"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.30",
3
+ "version": "1010.0.31",
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.30",
26
+ "@c8y/client": "1010.0.31",
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",