UNPKG

devexpress-reporting

Version:

DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.

66 lines (65 loc) 3.27 kB
/** * DevExpress HTML/JS Reporting (designer\internal\fieldlist\_dataSourceItemsExtender.js) * Version: 25.2.3 * Build date: Dec 15, 2025 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { getFirstItemByPropertyValue } from '@devexpress/analytics-core/analytics-internal'; export class DataSourceItemsExtender { constructor(dataSources, _renameCallback) { this._renameCallback = _renameCallback; this._dataSources = dataSources; } beforeItemsFilled(request, items) { return false; } afterItemsFilled(request, items) { if (!(this._dataSources && this._dataSources.peek())) return; if (!request.fullPath) { this._dataSources.peek().forEach((dataSourceItem) => { const dataMember = getFirstItemByPropertyValue(items, 'displayName', dataSourceItem.name); if (!(dataMember && dataSourceItem.data)) return; if (dataSourceItem.data.tableInfoCollection) { dataMember['contenttemplate'] = 'dxrd-datasource-item'; dataMember['tableInfoItems'] = dataSourceItem.data.tableInfoCollection; } else if (dataSourceItem.isSqlDataSource) { dataMember['canAddSqlQuery'] = true; dataMember['isSqlDataSource'] = true; } else if (dataSourceItem.isFederationDataSource) { dataMember['canAddFederatedQuery'] = true; dataMember['isFederationDataSource'] = true; } else if (dataSourceItem.isJsonDataSource) { dataMember['isJsonDataSource'] = true; } else if (dataSourceItem.isMongoDBDataSource) { dataMember['isMongoDBDataSource'] = true; } else if (dataSourceItem.isObjectDataSource) { dataMember['isObjectDataSource'] = true; dataMember['hasParams'] = dataSourceItem['hasParams']; } if (dataSourceItem.isFilterableDataSource) dataMember['isFilterableDataSource'] = true; dataMember['canRemove'] = true; dataMember['rename'] = (newName) => this._renameCallback(newName, dataSourceItem); }); } else if (request.fullPath === request.id || request.fullPath === request.ref) { const dataSourcesInfo = this._dataSources.peek().filter((dataSourceItem) => { return !!dataSourceItem.id && dataSourceItem.id === request.id || !!dataSourceItem.ref && dataSourceItem.ref === request.ref; })[0]; if (!dataSourcesInfo || (!dataSourcesInfo.isSqlDataSource && !dataSourcesInfo.isFederationDataSource)) return; items.forEach((dataMemberItem) => { dataMemberItem['canEditQuery'] = dataSourcesInfo.isSqlDataSource && dataMemberItem.isList; dataMemberItem['canEditFederatedQuery'] = dataSourcesInfo.isFederationDataSource && dataMemberItem.isList; }); } } }