import React from "react"; import { InputText } from "primereact/inputtext"; import { Dropdown, DropdownChangeParams } from "primereact/dropdown"; import "./NewWidget.scss"; import { Button } from "primereact/button"; import axios from "axios"; import { DataService } from "../services/DataService"; import { ApiQueryFilters } from "../data-contracts/ApiQueryFilter"; import { Widget } from "../types/widget"; import ReactApexChart from "react-apexcharts"; import { ChartComponentState } from "../types/ChartComponentState"; const calcTypes = [{Name: "Sum", Disabled: false}, {Name: "Min", Disabled: true}, {Name: "Max", Disabled: false}, {Name: "Count", Disabled: false}, {Name: "Average", Disabled: true}] ; interface NewWidgetProps { onOkButton(data: Widget); onCancelButton(); } interface NewWidgetState { Widget: Widget; objectTables: any[]; objectFields: any[]; } const chartState:ChartComponentState = { series: [ { data: [10,20,30], }, ], options: { chart: { toolbar:{show: false}, }, colors: ["#22D792"], plotOptions: { bar: { borderRadius: 4, horizontal: true, } }, dataLabels: { enabled: false, }, xaxis: { categories: ['A','B','C'], }, }, }; const ChartTypes = [{ Name: "Column", Disabled: true },{ Name: "Area", Disabled: false }, { Name: "Bar", Disabled: false }, { Name: "Pie", Disabled: true }, { Name: "Donut", Disabled: true }]; class NewWidget extends React.Component { constructor(props) { super(props); const defaultWidget: Widget = { WidgetName: 'New Widget', WidgetType: "Bar", CalcType: null, ValueFieldName: null, ValueFieldId: null, EntityName: null, EntityId: null, Group: null }; this.state = { Widget: defaultWidget, objectTables: [], objectFields: [], }; this.getData(); } getData() { this.getObjectTables(); } getObjectTables() { let service = new DataService(); const filters = new ApiQueryFilters(); filters.addAdditionalFilter( "ObjectTableId", this.state.Widget.EntityName, null, null, "Equals", false, false, false, "string" ); filters.addAdditionalFilter( "Name", 'GLAccount,ARPayment,ARInvoice', null, null, "InListExact", false, false, false, "string" ); service.getObjectTables(filters).then((response: any) => { console.log("getObjectTables", response); this.setState({ objectTables: response.data.Result }); },(error)=>{ alert("Something wrong happen, " + error); }); } getObjectFields() { let service = new DataService(); const filters = new ApiQueryFilters(); filters.SortBy = 'FieldName'; filters.addAdditionalFilter( "ObjectTableId", this.state.Widget.EntityId, null, null, "Equals", false, false, false, "string" ); service.getObjectFields(filters).then((response: any) => { console.log("getByfilters", response); this.setState({ objectFields: response.data.Result }); },(error)=>{ alert("Something wrong happen, " + error); }); } selectedTable; onEntityChanged = (e: DropdownChangeParams) => { const selectedTable = e.target.value; this.selectedTable = selectedTable; // const selectedTable = e.value; console.log("onEntityChanged",selectedTable); this.state.Widget.EntityName = selectedTable?.Name; this.state.Widget.EntityId = selectedTable?.Id; this.setState({ Widget: {...this.state.Widget} }, () => { if (selectedTable) { this.getObjectFields(); } else { this.state.Widget.Group = null; this.state.Widget.ValueFieldId = null; this.state.Widget.ValueFieldName = null; this.setState({ Widget: {...this.state.Widget}, objectFields: [] }); } }); } onGroupChanged = (e: DropdownChangeParams) => { this.state.Widget.Group = e.value; this.setState({ Widget: {...this.state.Widget} }); } selectedValueField; onValueChanged = (e: DropdownChangeParams) => { this.selectedValueField = e.value; this.state.Widget.ValueFieldId = this.selectedValueField.Id; this.state.Widget.ValueFieldName = this.selectedValueField.FieldName; this.setState({ Widget: {...this.state.Widget} }); }; onCalcTypeChanged = (e: DropdownChangeParams) => { this.state.Widget.CalcType = e.value; this.setState({ Widget: {...this.state.Widget} }); } render() { return (
option?.Disabled} onChange={(e) => { this.state.Widget.WidgetType = e.value; this.setState({ Widget: { ...this.state.Widget } }); }} />

{this.state.Widget.WidgetType === 'Bar' && } {this.state.Widget.WidgetType === 'Area' && }
{/* */}
{/* Name */}
{ this.state.Widget.WidgetName = e.target.value; this.setState({ Widget: { ...this.state.Widget } }); }} />
{/* Entity */}
{/* Group */}
{/* CalcType */}
option?.Disabled} onChange={this.onCalcTypeChanged} showClear required placeholder="Select type" />
{/* Value */}
); } } export default NewWidget;