UNPKG

igniteui-react-charts

Version:

Ignite UI React charting components for building rich data visualizations using TypeScript APIs.

902 lines (901 loc) 32.8 kB
/* THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE: https://www.infragistics.com/legal/license/igultimate-la https://www.infragistics.com/legal/license/igultimate-eula GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company. */ import { Base, BaseError, fromEnum, typeCast, runOn, delegateCombine, delegateRemove, markType, TypeRegistrar } from "igniteui-react-core"; import { IDataChartToolbarProvider_$type } from "./IDataChartToolbarProvider"; import { SeriesViewer } from "./SeriesViewer"; import { ToolActionIconMenuInfo } from "igniteui-react-core"; import { ToolActionGroupHeaderInfo } from "igniteui-react-core"; import { ToolActionSeparatorInfo } from "igniteui-react-core"; import { ToolActionLabelInfo } from "igniteui-react-core"; import { ToolActionCheckboxInfo } from "igniteui-react-core"; import { DeviceUtils } from "igniteui-react-core"; import { Series } from "./Series"; import { ToolActionRadioInfo } from "igniteui-react-core"; import { Rect } from "igniteui-react-core"; import { ToolContextBindingInfo } from "igniteui-react-core"; import { List$1 } from "igniteui-react-core"; import { XamDataChart } from "./XamDataChart"; import { Axis } from "./Axis"; import { BrushUtilCore } from "igniteui-react-core"; import { ToolCommandArgument } from "igniteui-react-core"; import { AutomaticSeriesRequest } from "./AutomaticSeriesRequest"; import { AxisStrokeSettings } from "./AxisStrokeSettings"; import { FastIterationDictionary$2 } from "igniteui-react-core"; import { CaptureImageSettings } from "igniteui-react-core"; import { isNaN_ } from "igniteui-react-core"; /** * @hidden */ export let DataChartToolbarProvider = /*@__PURE__*/ (() => { class DataChartToolbarProvider extends Base { constructor() { super(...arguments); this._container = null; this.k = null; this.i = null; this.g = null; this.q = null; this.r = new FastIterationDictionary$2(Axis.$, AxisStrokeSettings.$, 0); } get container() { return this._container; } set container(a) { this._container = a; } get l() { if (TypeRegistrar.isRegistered("HorizontalAnchoredCategorySeriesProxy")) { return TypeRegistrar.create("HorizontalAnchoredCategorySeriesProxy"); } else { throw new BaseError(1, "category series module is not loaded, but is required."); } } get v() { return (TypeRegistrar.isRegistered("HorizontalAnchoredCategorySeriesProxy")); } get j() { if (TypeRegistrar.isRegistered("FinancialPriceSeriesProxy")) { return TypeRegistrar.create("FinancialPriceSeriesProxy"); } else { throw new BaseError(1, "category series module is not loaded, but is required."); } } get u() { return (TypeRegistrar.isRegistered("HorizontalAnchoredCategorySeriesProxy")); } get h() { if (this.g == null) { if (TypeRegistrar.isRegistered("AnnotationLayerProxy")) { this.g = TypeRegistrar.create("AnnotationLayerProxy"); this.g.container = this.container; } else { throw new BaseError(1, "annotation layer module is not loaded, but is required."); } } return this.g; } get t() { return (TypeRegistrar.isRegistered("AnnotationLayerProxy")); } getDesiredToolbarActions(a) { let b = new ToolActionIconMenuInfo(); b.name = "ZoomMenu"; b.iconName = "zoomin"; b.iconCollectionName = "ChartToolbarIcons"; b.iconWidth = 24; b.iconHeight = 25; b.actions = this.e(); let c = new ToolActionGroupHeaderInfo(); c.name = "AnalyzeHeader"; c.title = "Analyze"; let d = new ToolActionSeparatorInfo(); d.name = "AnalyzeHeaderSeparator"; d.isGroupHeaderSeparator = true; let e = new ToolActionLabelInfo(); e.name = "LinesMenu"; e.title = "Lines"; e.iconName = "analyze-lines"; e.iconCollectionName = "ChartToolbarIcons"; e.iconWidth = 24; e.iconHeight = 25; e.actions = this.a(); let f = new ToolActionSeparatorInfo(); f.name = "LinesMenuSeparator"; let g = new ToolActionLabelInfo(); g.name = "TrendsMenu"; g.title = "Trends"; g.iconName = "analyze-trends"; g.iconCollectionName = "ChartToolbarIcons"; g.iconWidth = 24; g.iconHeight = 25; g.actions = this.c(); let h = new ToolActionGroupHeaderInfo(); h.name = "HelpersHeader"; h.title = "Helpers"; let i = new ToolActionSeparatorInfo(); i.name = "HelpersHeaderSeparator"; i.isGroupHeaderSeparator = true; let j = new ToolActionCheckboxInfo(); j.name = "SeriesAvg"; j.title = "Series Average"; j.iconName = "analyze-seriesavg"; j.iconCollectionName = "ChartToolbarIcons"; j.iconWidth = 24; j.iconHeight = 25; let k = new ToolActionSeparatorInfo(); k.name = "SeriesAvgSeparator"; let l = new ToolActionLabelInfo(); l.name = "ValueLabelsMenu"; l.title = "Value Labels"; l.iconName = "analyze-valuelabels"; l.iconCollectionName = "ChartToolbarIcons"; l.actions = this.d(a); l.iconWidth = 24; l.iconHeight = 24; let m = new ToolActionSeparatorInfo(); m.name = "HelpersSectionSeparator"; m.size = DeviceUtils.g(10); let n = new ToolActionCheckboxInfo(); n.name = "ShowGridlines"; n.title = "Grid"; n.iconName = "analyze-grid"; n.iconCollectionName = "ChartToolbarIcons"; n.iconWidth = 24; n.iconHeight = 25; let o = new ToolActionSeparatorInfo(); o.name = "GridSeparator"; let p = new ToolActionCheckboxInfo(); p.name = "ShowCrosshairs"; p.title = "Crosshairs"; p.iconName = "analyze-crosshairs"; p.iconCollectionName = "ChartToolbarIcons"; p.iconWidth = 24; p.iconHeight = 25; let q = new ToolActionIconMenuInfo(); q.name = "AnalyzeMenu"; q.iconName = "analyze"; q.iconCollectionName = "ChartToolbarIcons"; q.iconWidth = 24; q.iconHeight = 25; q.actions = [c, d, e, f, g, h, i, j, k, l, m, n, o, p]; let r = new ToolActionGroupHeaderInfo(); r.name = "CopyHeader"; r.title = "Copy..."; let s = new ToolActionLabelInfo(); s.name = "CopyAsImage"; s.title = "As Image"; s.iconName = "copy-image"; s.iconCollectionName = "ChartToolbarIcons"; s.closeOnExecute = true; let t = new ToolActionLabelInfo(); t.name = "CopyAsTable"; t.title = "Table Data"; t.iconName = "copy-table"; t.iconCollectionName = "ChartToolbarIcons"; let u = new ToolActionIconMenuInfo(); u.name = "CopyMenu"; u.iconName = "copy"; u.iconCollectionName = "ChartToolbarIcons"; u.iconWidth = 24; u.iconHeight = 24; u.actions = [r, s]; let v = [b, ((() => { let $ret = new ToolActionSeparatorInfo(); $ret.name = "ZoomMenuSeparator"; return $ret; })()), q, ((() => { let $ret = new ToolActionSeparatorInfo(); $ret.name = "AnalyzeMenuSeparator"; return $ret; })()), u]; for (let w = 0; w < v.length; w++) { this.ba(a, v[w]); } return v; } ba(a, b) { if (b.actions != null && b.actions.length > 0) { for (let c = 0; c < b.actions.length; c++) { this.ba(a, b.actions[c]); } } switch (b.name) { case "ZoomReset": { for (let d of fromEnum(a.gr)) { d.setContextValue("ZoomResetIsDisabled", 5, Rect.l_op_Equality(a.xc, null) || a.xc.isEmpty || (a.xc.width >= 1 && a.xc.height >= 1)); } } break; case "ShowValueLabels": { let e = b; let f = this.m(a); e.isChecked = f != null && f._visibility == 0; } break; case "ShowLastValueLabel": { let g = b; let h = this.o(a); g.isChecked = h != null && h._visibility == 0; } break; case "Linear": { let i = b; let j = a.ao(a); i.isChecked = j.e(8); } break; case "Exponential": { let k = b; let l = a.ao(a); k.isChecked = l.e(7); } break; case "Logarithmic": { let m = b; let n = a.ao(a); m.isChecked = n.e(9); } break; case "NoTrends": { let o = b; let p = a.ao(a); o.isChecked = !p.e(8) && !p.e(7) && !p.e(9); } break; case "MinValue": { let q = b; let r = this.p(a, 4); q.isChecked = r != null && r._visibility == 0; } break; case "MaxValue": { let s = b; let t = this.p(a, 5); s.isChecked = t != null && t._visibility == 0; } break; case "Average": { let u = b; let v = this.p(a, 6); u.isChecked = v != null && v._visibility == 0; } break; case "ShowCrosshairs": { let w = b; let x = this.n(a); w.isChecked = x != null && x._visibility == 0; } break; case "ShowGridlines": { let y = b; y.isChecked = this.s(a); } break; case "SeriesAvg": { let z = b; let aa = this.p(a, 3); z.isChecked = aa != null && aa._visibility == 0; } break; } } e() { let a = new ToolActionGroupHeaderInfo(); a.name = "ZoomHeader"; a.title = "Zoom"; let b = new ToolActionLabelInfo(); b.name = "ZoomIn"; b.iconName = "zoomin"; b.iconCollectionName = "ChartToolbarIcons"; b.iconWidth = 24; b.iconHeight = 25; b.title = "Zoom In"; let c = new ToolActionLabelInfo(); c.name = "ZoomOut"; c.iconName = "zoomout"; c.iconCollectionName = "ChartToolbarIcons"; c.iconWidth = 24; c.iconHeight = 25; c.title = "Zoom Out"; let d = new ToolActionLabelInfo(); d.name = "ZoomReset"; d.iconName = "reset"; d.iconCollectionName = "ChartToolbarIcons"; d.iconWidth = 24; d.iconHeight = 24; d.title = "Reset"; d.contextBindings = [((() => { let $ret = new ToolContextBindingInfo(); $ret.contextKey = "ZoomResetIsDisabled"; $ret.propertyName = "IsDisabled"; return $ret; })())]; return [a, b, c, d]; } a() { let a = new ToolActionGroupHeaderInfo(); a.name = "LinesHeader"; a.title = "Lines"; let b = new ToolActionSeparatorInfo(); b.isGroupHeaderSeparator = true; let c = new ToolActionCheckboxInfo(); c.name = "MaxValue"; c.title = "Max value"; c.iconName = "analyze-lines-maxvalue"; c.iconCollectionName = "ChartToolbarIcons"; c.iconWidth = 24; c.iconHeight = 25; let d = new ToolActionCheckboxInfo(); d.name = "MinValue"; d.title = "Min value"; d.iconName = "analyze-lines-minvalue"; d.iconCollectionName = "ChartToolbarIcons"; d.iconWidth = 24; d.iconHeight = 25; let e = new ToolActionCheckboxInfo(); e.name = "Average"; e.title = "Average"; e.iconName = "analyze-seriesavg"; e.iconCollectionName = "ChartToolbarIcons"; e.iconWidth = 24; e.iconHeight = 25; return [a, b, c, d, e]; } c() { let a = new ToolActionGroupHeaderInfo(); a.name = "TrendsHeader"; a.title = "Trends"; let b = new ToolActionSeparatorInfo(); b.name = "TrendsHeaderSeparator"; b.isGroupHeaderSeparator = true; let c = new ToolActionRadioInfo(); c.name = "Exponential"; c.title = "Exponential"; c.iconName = "analyze-trends-exp"; c.iconCollectionName = "ChartToolbarIcons"; c.channel = "trends"; c.iconWidth = 24; c.iconHeight = 25; let d = new ToolActionRadioInfo(); d.name = "Linear"; d.title = "Linear"; d.iconName = "analyze-trends-trendline"; d.iconCollectionName = "ChartToolbarIcons"; d.channel = "trends"; d.iconWidth = 24; d.iconHeight = 25; let e = new ToolActionRadioInfo(); e.name = "Logarithmic"; e.title = "Logarithmic"; e.iconName = "analyze-trends-log"; e.iconCollectionName = "ChartToolbarIcons"; e.channel = "trends"; e.iconWidth = 24; e.iconHeight = 25; let f = new ToolActionRadioInfo(); f.name = "NoTrends"; f.title = "None"; f.channel = "trends"; f.iconName = "ig-NoIcon"; return [a, b, c, d, e, f]; } b() { let a = new ToolActionGroupHeaderInfo(); a.name = "TimePeriodHighlightHeader"; a.title = "TIME HIGHLIGHT"; let b = new ToolActionSeparatorInfo(); b.isGroupHeaderSeparator = true; let c = new ToolActionRadioInfo(); c.name = "Quarters"; c.title = "Quarters"; c.channel = "time"; let d = new ToolActionRadioInfo(); d.name = "Seasons"; d.title = "Seasons"; d.channel = "time"; let e = new ToolActionRadioInfo(); e.name = "Weekends"; e.title = "Weekends"; e.channel = "time"; let f = new ToolActionRadioInfo(); f.name = "WorkDays"; f.title = "Work days"; f.channel = "time"; return [a, b, c, d, e, f]; } d(a) { let b = new ToolActionGroupHeaderInfo(); b.name = "ValueLabelsHeader"; b.title = "Value Labels"; let c = new ToolActionSeparatorInfo(); c.isGroupHeaderSeparator = true; let d = new ToolActionCheckboxInfo(); d.name = "ShowValueLabels"; d.title = "Show Value Labels"; d.iconName = "analyze-valuelabels"; d.iconCollectionName = "ChartToolbarIcons"; d.iconWidth = 24; d.iconHeight = 24; let e = new ToolActionCheckboxInfo(); e.name = "ShowLastValueLabel"; e.title = "Show Last Value Label"; e.iconName = "analyze-valuelabels-showlast"; e.iconCollectionName = "ChartToolbarIcons"; return [b, c, d, e]; } m(a) { for (let b of fromEnum(a.series)) { if (this.h.isCalloutLayer(b) && this.h.getIsAutoCalloutBehaviorEnabled(b)) { return b; } } return null; } o(a) { for (let b of fromEnum(a.series)) { if (this.h.isFinalValueLayer(b)) { return b; } } return null; } p(a, b) { for (let c of fromEnum(a.series)) { if (this.h.isValueLayer(c) && this.h.getValueMode(c) == b) { return c; } } return null; } n(a) { for (let b of fromEnum(a.series)) { if (this.h.isCrosshairLayer(b)) { return b; } } return null; } s(a) { let b = typeCast(XamDataChart.$, a); if (b != null) { for (let c = 0; c < b.axes.count; c++) { let d = b.axes._inner[c]; if (d.jw != null && !BrushUtilCore.a(d.jw) && d.et != 0) { return true; } } } return false; } onToolCommandExecuting(a, b) { switch (b.commandId) { case "ZoomReset": this.br(a, b); break; case "ZoomIn": this.bp(a, b); break; case "ZoomOut": this.bq(a, b); break; case "ShowCrosshairs": this.bd(a, b); break; case "ShowGridlines": this.bf(a, b); break; case "MaxValue": this.bj(a, b); break; case "MinValue": this.bk(a, b); break; case "Average": this.bb(a, b); break; case "Exponential": this.be(a, b); break; case "Linear": this.bh(a, b); break; case "Logarithmic": this.bi(a, b); break; case "NoTrends": this.bl(a, b); break; case "SeriesAvg": this.bm(a, b); break; case "ShowValueLabels": this.bo(a, b); break; case "ShowLastValueLabel": this.bn(a, b); break; case "CopyAsImage": this.bc(a, b); return 2; } return 0; } onTargetPropertyChanged(a, b, c, d) { switch (b) { case SeriesViewer.$$p[56]: if (Rect.l_op_Inequality(a.xc, null) && !a.xc.isEmpty && a.gr != null) { for (let e of fromEnum(a.gr)) { e.setContextValue("ZoomResetIsDisabled", 5, Rect.l_op_Equality(a.xc, null) || a.xc.isEmpty || (a.xc.width >= 1 && a.xc.height >= 1)); } } break; } } w(a, b) { if (a.commandId == b) { let e = a.argumentsList; for (let d = 0; d < e.length; d++) { let c = e[d]; if (c.argumentName == "IsChecked") { return c.value; } } } return false; } bd(a, b) { let c = this.n(a); if (this.x(a, c)) { return; } this.bs(a, b, "ShowCrosshairs", 0, () => { let d = this.h.createCrosshairLayer(); this.h.setCrosshairOnAxesEnabled(d, true); let e = new AutomaticSeriesRequest(); e.a = 0; e.e = true; e.d = d; return e; }); } f(a, b) { let c = new AxisStrokeSettings(); c.b = a.jz == null || BrushUtilCore.a(a.jz) ? b : a.jz; c.a = isNaN_(a.et) || a.et == 0 ? DeviceUtils.g(1) : a.et; this.r.item(a, c); return c; } bf(a, b) { let c = this.w(b, "ShowGridlines"); if (!c) { let d = typeCast(XamDataChart.$, a); if (d != null) { for (let e = 0; e < d.axes.count; e++) { let f = d.axes._inner[e]; if (!this.r.d(f)) { this.f(f, d.abh); } f.et = 0; } } } else { let g = typeCast(XamDataChart.$, a); if (g != null) { for (let h = 0; h < g.axes.count; h++) { let i = g.axes._inner[h]; let j = true; if (this.r.d(i)) { if (this.r.item(i).b != i.jz || i.et != 0) { j = true; } else { i.jz = this.r.item(i).b; i.et = this.r.item(i).a; j = false; } } if (j) { let k = this.f(i, g.abh); i.jz = k.b; i.et = k.a; } } } } } a9(a, b, c, d) { let e = a.ao(a); e.l(c); let f = new List$1(Series.$, 0); for (let g of fromEnum(a.series)) { if (g.e0 || g.fb || g.fu || g.fq || g.fx) { f.add(g); } } let h = 0; for (let i of fromEnum(f)) { let j = this.h.createTrendLineLayer(); this.h.setTrendLineTarget(j, i); this.h.setTrendLineType(j, b); this.h.setUseLegend(j, true); this.h.setLegendItemBadgeShape(j, 2); if (i.title != null && typeof i.title === 'string') { let k = i.title; this.h.setTitle(j, k + " " + d); } let l = new AutomaticSeriesRequest(); l.a = c; l.c = i; l.d = j; e.b.add(l); } } be(a, b) { let c = this.w(b, "Exponential"); if (c) { let d = a.ao(a); d.l(9); d.l(8); this.a9(a, 7, 7, "Exponential Fit"); } } bh(a, b) { let c = this.w(b, "Linear"); if (c) { let d = a.ao(a); d.l(9); d.l(7); this.a9(a, 1, 8, "Linear Fit"); } } bi(a, b) { let c = this.w(b, "Logarithmic"); if (c) { let d = a.ao(a); d.l(8); d.l(7); this.a9(a, 6, 9, "Logarithmic Fit"); } } bl(a, b) { let c = a.ao(a); c.l(7); c.l(8); c.l(9); } bs(a, b, c, d, e) { let f = this.w(b, c); let g = a.ao(a); if (f && !g.e(d)) { if (this.t && e != null) { g.b.add(e()); } } if (!f && g.e(d)) { g.l(d); } } bj(a, b) { let c = this.p(a, 5); if (c != null && this.h.getValueMode(c) == 5 && this.x(a, c)) { return; } this.bs(a, b, "MaxValue", 1, () => { let d = this.h.createValueLayer(); this.h.setValueMode(d, 5); this.h.setValueAxisAnnotationEnabled(d, true); this.h.setUseLegend(d, true); this.h.setTitle(d, "Maximum"); this.h.setLegendItemBadgeShape(d, 2); let e = new AutomaticSeriesRequest(); e.a = 1; e.e = true; e.d = d; return e; }); } bk(a, b) { let c = this.p(a, 4); if (c != null && this.x(a, c)) { return; } this.bs(a, b, "MinValue", 2, () => { let d = this.h.createValueLayer(); this.h.setValueMode(d, 4); this.h.setValueAxisAnnotationEnabled(d, true); this.h.setUseLegend(d, true); this.h.setTitle(d, "Minimum"); this.h.setLegendItemBadgeShape(d, 2); let e = new AutomaticSeriesRequest(); e.a = 2; e.e = true; e.d = d; return e; }); } bb(a, b) { let c = this.p(a, 6); if (c != null && this.x(a, c)) { return; } this.bs(a, b, "Average", 3, () => { let d = this.h.createValueLayer(); this.h.setValueMode(d, 6); this.h.setValueAxisAnnotationEnabled(d, true); this.h.setUseLegend(d, true); this.h.setTitle(d, "Average"); this.h.setLegendItemBadgeShape(d, 2); let e = new AutomaticSeriesRequest(); e.a = 3; e.e = true; e.d = d; return e; }); } bm(a, b) { let c = a.ao(a); let d = this.p(a, 3); if (d != null) { c.l(4); return; } if (!this.t) { return; } let e = a.series.count; for (let f = 0; f < e; f++) { let g = a.series._inner[f]; if (g.eu) { continue; } let h = this.h.createValueLayer(); this.h.setValueMode(h, 3); this.h.setValueAxisAnnotationEnabled(h, true); this.h.setUseLegend(h, a.f6); if (g.title != null && typeof g.title === 'string') { let i = g.title; this.h.setTitle(h, i + " Avg"); } this.h.setLegendItemBadgeShape(h, 2); this.h.setTargetSeries(h, g); this.h.setBrush(h, g.ve); let j = new AutomaticSeriesRequest(); j.a = 4; j.e = true; j.d = h; c.b.add(j); } } x(a, b) { if (b != null) { let c = false; let d = a.ao(a); for (let e of fromEnum(d.b)) { if (e.d == b) { c = true; break; } } if (!c) { if (b._visibility == 0) { let cl_ = b; let v_ = 1; cl_.visibility = v_; return true; } else if (b._visibility == 1) { let cl_ = b; let v_ = 0; cl_.visibility = v_; return true; } } } return false; } bo(a, b) { let c = this.m(a); if (this.x(a, c)) { return; } this.bs(a, b, "ShowValueLabels", 5, () => { for (let d of fromEnum(a.series)) { if (d.e0) { if (this.v && this.l.matchesType(d)) { let e = this.l.getMarkerType(d); if (e == 1) { this.l.setMarkerType(d, 13); } } } } let f = this.h.createCalloutLayer(); this.h.setIsAutoCalloutBehaviorEnabled(f, true); let g = new AutomaticSeriesRequest(); g.a = 5; g.e = true; g.d = f; return g; }); } bn(a, b) { let c = this.o(a); if (this.x(a, c)) { return; } this.bs(a, b, "ShowLastValueLabel", 6, () => { for (let d of fromEnum(a.series)) { let e = d.ai(); if (e != null) { for (let g = 0; g < e.length; g++) { let f = e[g]; if (f.cj) { f.cu = true; } } } } let h = this.h.createFinalValueLayer(); let i = new AutomaticSeriesRequest(); i.a = 6; i.e = true; i.d = h; return i; }); } bc(a, b) { this.q = b; let c = new CaptureImageSettings(); c.b = true; c.a = 0; a.imageCaptured = delegateCombine(a.imageCaptured, runOn(this, this.bg)); a.nt(c); a.al.q(); } bg(a, b) { this.q.argumentsList = [((() => { let $ret = new ToolCommandArgument(); $ret.argumentName = "Image"; $ret.value = b.base64Data; return $ret; })())]; let c = a; c.imageCaptured = delegateRemove(c.imageCaptured, runOn(this, this.bg)); if (c.commandCompleted != null) { c.commandCompleted(this.q); } } bp(a, b) { a.sj(0.05); } bq(a, b) { a.sk(0.05); } br(a, b) { a.rr(); } } DataChartToolbarProvider.$t = /*@__PURE__*/ markType(DataChartToolbarProvider, 'DataChartToolbarProvider', Base.$, [IDataChartToolbarProvider_$type]); return DataChartToolbarProvider; })();