UNPKG

@adaptabletools/adaptable-cjs

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

131 lines (130 loc) 6.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChartingModule = void 0; const tslib_1 = require("tslib"); const AdaptableModuleBase_1 = require("./AdaptableModuleBase"); const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants")); const ShowChartButton_1 = require("../View/Charting/ShowChartButton"); const ChartingWizard_1 = require("../View/Charting/ChartingWizard"); const ChartingRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/ChartingRedux")); const ChartingStatusBarPopover_1 = require("../View/Charting/ChartingStatusBarPopover"); const ChartingState_1 = require("../AdaptableState/ChartingState"); const Helper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/Helper")); const getObjectTagsViewItems_1 = require("../Utilities/getObjectTagsViewItems"); const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions")); class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase { constructor(api) { super(ModuleConstants.ChartingModuleId, ModuleConstants.ChartingFriendlyName, 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api); } isModuleAvailable() { const agChartsAvailable = this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable(); const externalChartsAvailable = Helper_1.default.objectHasKeys(this.api.optionsApi.getChartingOptions().externalChartingOptions); return Boolean(agChartsAvailable || externalChartsAvailable); } createColumnMenuItems(column) { if (column && this.isModuleEditable() && ArrayExtensions_1.default.IsNotNullOrEmpty(this.api.chartingApi.getChartDefinitions())) { return [ this.createMainMenuItemShowPopup({ Name: 'chart-show', Label: 'Manage Charts', ComponentName: this.moduleInfo.Popup, Icon: this.moduleInfo.Glyph, }), ]; } } getModuleAdaptableObjects() { return [ ...this.api.chartingApi.getChartDefinitions(), ...this.api.chartingApi.getExternalChartDefinitions(), ]; } toViewAll() { return this.getModuleAdaptableObjects().map((chartDef) => this.toView(chartDef)); } toView(chart) { if ((0, ChartingState_1.isExternalChartDefinition)(chart)) { return this.toViewExternalChartDefinition(chart); } else { return this.toViewChartDefinition(chart); } } toViewExternalChartDefinition(chart) { return { items: [{ name: 'Name', values: [chart.Name] }], abObject: chart, }; } toViewChartDefinition(chart) { return { items: [ { name: 'Name', values: [chart.Name], }, { name: 'About', values: [ `Chart Type: ${chart.Model.chartType}`, chart.Model.aggFunc && `Aggregation Function: ${chart.Model.aggFunc}`, ].filter(Boolean), }, { name: 'Settings', values: [ `Unlink from data: ${chart.Model.unlinkChart ? 'Yes' : 'No'}`, `Suppress Chart Ranges: ${chart.Model.suppressChartRanges ? 'Yes' : 'No'}`, ], }, { name: 'Range', values: [ `Row start index: ${chart.Model.cellRange.rowStartIndex}`, `Row end index: ${chart.Model.cellRange.rowEndIndex}`, chart.Model.cellRange.columnStart && `Column start: ${typeof chart.Model.cellRange.columnStart === 'string' ? this.api.columnApi.getFriendlyNameForColumnId(chart.Model.cellRange.columnStart) : this.api.columnApi.getFriendlyNameForColumnId(chart.Model.cellRange.columnStart.getColId())}`, chart.Model.cellRange.columnEnd && `Column start: ${typeof chart.Model.cellRange.columnEnd === 'string' ? this.api.columnApi.getFriendlyNameForColumnId(chart.Model.cellRange.columnEnd) : this.api.columnApi.getFriendlyNameForColumnId(chart.Model.cellRange.columnEnd.getColId())}`, chart.Model.cellRange.columns?.length && `Columns ${chart.Model.cellRange.columns .map((column) => typeof column === 'string' ? this.api.columnApi.getFriendlyNameForColumnId(column) : this.api.columnApi.getFriendlyNameForColumnId(column.getColId())) .join(', ')}`, ].filter(Boolean), }, (0, getObjectTagsViewItems_1.getObjectTagsViewItems)(chart, this.api), ].filter(Boolean), abObject: chart, }; } getViewProperties() { return { actions: [ShowChartButton_1.ShowChartButton], getEditWizard: () => ChartingWizard_1.ChartingWizard, // not sure if charts should be created via adaptable wizard hideNewButton: true, getDeleteAction: (chartDefinition) => { return (0, ChartingState_1.isAgChartDefinition)(chartDefinition) ? ChartingRedux.ChartingDeleteChart(chartDefinition) : ChartingRedux.ChartingDeleteExternalChart(chartDefinition); }, emptyView: 'To create a chart select a few cells and right click. Then select "Chart Range" from the context menu.', getStatusBarPanelProps: () => { const content = ChartingStatusBarPopover_1.ChartingStatusBarPopover; return { content, triggerActionOnWrapperClick: false, }; }, }; } } exports.ChartingModule = ChartingModule;