UNPKG

@progress/kendo-react-chart-wizard

Version:

React Chart Wizard lets you create a chart using data from a Grid, another data-bound component, or an external source

9 lines (8 loc) 5.51 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react"),W=require("@progress/kendo-react-dialogs"),d=require("@progress/kendo-react-layout"),A=require("@progress/kendo-react-buttons"),f=require("@progress/kendo-svg-icons"),i=require("./utils.js"),F=require("@progress/kendo-react-intl"),r=require("./messages.js"),H=require("./types/export.js"),j=require("./components/panels/ConfigurationPanel.js"),G=require("./components/panels/ChartAreaPanel.js"),V=require("./components/panels/TitlePanel.js"),_=require("./components/panels/SeriesPanel.js"),M=require("./components/panels/LegendPanel.js"),U=require("./components/panels/CategoryAxisPanel.js"),J=require("./components/panels/ValueAxisPanel.js"),K=require("./components/panels/BarChartPanel.js"),Q=require("./components/panels/ColumnChartPanel.js"),X=require("./components/panels/LineChartPanel.js"),Y=require("./components/panels/ScatterChartPanel.js"),Z=require("./components/panels/PieChartPanel.js"),$=require("./components/ChartComponent.js");function ee(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const u=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(s,o,u.get?u:{enumerable:!0,get:()=>t[o]})}}return s.default=t,Object.freeze(s)}const e=ee(O),E=e.forwardRef((t,s)=>{const o=F.useLocalization(),u=e.useRef(null),m=e.useRef(null),P=e.useCallback(a=>{var c;if(m.current){const h=new H.ExportEvent(m.current,i.resolveExportOptions(t.exportOptions));(c=t.onExport)==null||c.call(void 0,h),h.isDefaultPrevented()||a.item.exportHandler.call(void 0,h)}},[t.onExport,t.exportOptions]),x=t.window||W.Window,[b,w]=e.useState({width:700,height:550}),[v,k]=e.useState("DEFAULT"),q=e.useCallback(a=>{w({width:a.width,height:a.height})},[]),T=e.useCallback(a=>{k(a.state)},[]),[z,R]=e.useState([{collapsible:!1},{size:"300px",collapsible:!1}]),I=e.useCallback(a=>{R(a.newState)},[]),[y,L]=e.useState(0),B=e.useCallback(a=>{L(a.selected)},[]),[D,p]=e.useState(i.createInitialState(t.data||[],"bar",t.defaultState)),l=a=>{var c;(c=t.onStateChange)==null||c.call(void 0,a),t.state||p(a)},n=t.state||D,g=e.useRef(n);g.current=n;const S=e.useRef(t);S.current=t;const N=e.useCallback(()=>({get chart(){return m.current},get state(){return g.current}}),[]);e.useImperativeHandle(s,N),e.useEffect(()=>{var a;if(g.current.seriesType&&t.data){const c=i.mergeStates(g.current,i.createState(t.data,g.current.seriesType));(a=S.current.onStateChange)==null||a.call(void 0,c),S.current.state||p(c)}},[t.data]),e.useEffect(()=>{var a,c;(c=(a=u.current)==null?void 0:a.element)==null||c.focus()},[]);const C=n.seriesType;return e.createElement(x,{title:o.toLanguageString(r.windowTitle,r.messages.windowTitle),className:"k-chart-wizard",modal:!0,resizable:!0,minimizeButton:()=>null,onClose:t.onClose,onResize:q,stage:v,onStageChange:T,...b},e.createElement(d.Splitter,{panes:z,onChange:I,className:"k-chart-wizard-splitter"},e.createElement("div",{className:"k-chart-wizard-preview-pane k-pane"},e.createElement("div",{className:"k-preview-pane-header"},e.createElement(A.DropDownButton,{ref:u,text:o.toLanguageString(r.exportButton,r.messages.exportButton),fillMode:"flat",svgIcon:f.exportIcon,icon:"export",onItemClick:P,items:[{svgIcon:f.filePdfIcon,icon:"file-pdf",exportHandler:i.handlePDFExport,text:o.toLanguageString(r.exportPDFButton,r.messages.exportPDFButton)},{svgIcon:f.fileIcon,icon:"file",exportHandler:i.handleSVGExport,text:o.toLanguageString(r.exportSVGButton,r.messages.exportSVGButton)},{svgIcon:f.fileImageIcon,icon:"file-image",exportHandler:i.handleImageExport,text:o.toLanguageString(r.exportPNGButton,r.messages.exportPNGButton)}]})),e.createElement("div",{className:"k-preview-pane-content",style:{height:"calc(100% - 50px)"}},e.createElement($.ChartComponent,{ref:m,state:n}))),e.createElement("div",{className:"k-chart-wizard-property-pane k-pane k-pane-static"},e.createElement(d.TabStrip,{selected:y,onSelect:B,animation:!1},e.createElement(d.TabStripTab,{title:o.toLanguageString(r.tabChart,r.messages.tabChart)},e.createElement("div",null,e.createElement(K.BarChartPanel,{state:n,onStateChange:l}),e.createElement(Z.PieChartPanel,{state:n,onStateChange:l}),e.createElement(Q.ColumnChartPanel,{state:n,onStateChange:l}),e.createElement(X.LineChartPanel,{state:n,onStateChange:l}),e.createElement(Y.ScatterChartPanel,{state:n,onStateChange:l}))),e.createElement(d.TabStripTab,{title:o.toLanguageString(r.tabData,r.messages.tabData)},e.createElement(j.ConfigurationPanel,{state:n,onStateChange:l})),e.createElement(d.TabStripTab,{title:o.toLanguageString(r.tabFormat,r.messages.tabFormat)},e.createElement("div",null,e.createElement(G.ChartAreaPanel,{state:n,onStateChange:l}),e.createElement(V.TitlePanel,{state:n,onStateChange:l}),e.createElement(_.SeriesPanel,{state:n,onStateChange:l}),e.createElement(M.LegendPanel,{state:n,onStateChange:l}),C!=="pie"&&e.createElement(U.CategoryAxisPanel,{state:n,onStateChange:l}),C!=="pie"&&e.createElement(J.ValueAxisPanel,{state:n,onStateChange:l})))))))});E.displayName="ChartWizard";exports.ChartWizard=E;