UNPKG

jqwidgets-framework

Version:

jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.

351 lines (290 loc) 9.29 kB
/* tslint:disable */ /* eslint-disable */ (function(){ if (typeof document === 'undefined') { return; } (function ($) { if (!Array.prototype.find) { Object.defineProperty(Array.prototype, 'find', { value: function (predicate) { // 1. var O be ? ToObject(this value). if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. var len be ? ToLength(? Get(O, "length")). var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, var T be thisArg; else var T be undefined. var thisArg = arguments[1]; // 5. var k be 0. var k = 0; // 6. Repeat, while k < len while (k < len) { // a. var Pk be ! ToString(k). // b. var kValue be ? Get(O, Pk). // c. var testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return kValue. var kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return kValue; } // e. Increase k by 1. k++; } // 7. Return undefined. return undefined; } }); } if (!Array.prototype.findIndex) { Object.defineProperty(Array.prototype, 'findIndex', { value: function (predicate) { // 1. var O be ? ToObject(this value). if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. var len be ? ToLength(? Get(O, "length")). var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, var T be thisArg; else var T be undefined. var thisArg = arguments[1]; // 5. var k be 0. var k = 0; // 6. Repeat, while k < len while (k < len) { // a. var Pk be ! ToString(k). // b. var kValue be ? Get(O, Pk). // c. var testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return k. var kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return k; } // e. Increase k by 1. k++; } // 7. Return -1. return -1; }, configurable: true, writable: true }); } $.extend($.jqx._jqxGrid.prototype, { _getChartDataFields: function (data) { var that = this; var record = data[0]; var stringOnly = true, xAxisDataField, series = []; for (var dataField in record) { if (dataField === '$' || dataField === 'uid' || dataField === 'boundindex' || dataField === 'uniqueid' || dataField === 'visibleindex') { continue; } if (that.source._source.dataFields) { var dataType = that.source._source.dataFields.find(function (gridField) { return gridField.name === dataField }).type; } else { var dataType = that.source._source.datafields.find(function (gridField) { return gridField.name === dataField }).type; } if (dataType === 'string') { var index = that.columns.records.findIndex(function (col) { return col.datafield === dataField }); if (index === 0) { xAxisDataField = dataField; } } else { stringOnly = false; series.push({ dataField: dataField, displayText: dataField }); } } return { xAxisDataField: xAxisDataField, series: series, stringOnly: stringOnly }; }, createChart: function (type, dataSource) { var that = this; var gridSelection = that.getselection(), selectedRows = gridSelection.rows, selectedCells = gridSelection.cells, chartElement = document.createElement('div'), chartData = [], seriesGroup = {}; var rowsToPlot = [], columnsToPlot = [], series; if (selectedCells && selectedCells.length > 1) { selectedCells.forEach(function (cell) { if (rowsToPlot.indexOf(cell.rowindex) === -1) { rowsToPlot.push(cell.rowindex); } if (columnsToPlot.indexOf(cell.datafield) === -1) { columnsToPlot.push(cell.datafield); } }); } if (selectedRows.length === 0 && selectedCells.length === 0) { var dataSource = that.source.records; } if (dataSource) { chartData = chartData.concat(dataSource); } else { var dataSource = that.source.records; for (var i = 0; i < dataSource.length; i++) { var record = {}; if (selectedRows.length > 0) { if (selectedRows.indexOf(i) === -1) { continue; } } else if (selectedCells.length > 0) { if (selectedCells.length > 1) { if (rowsToPlot.indexOf(i) === -1) { continue; } columnsToPlot.forEach(function (dataField) { record[dataField] = dataSource[i][dataField]; }); chartData.push(record); continue; } } that.columns.records.forEach(function (col) { record[col.datafield] = dataSource[i][col.datafield] }); chartData.push(record); } } var chartDataFields = that._getChartDataFields(chartData); if (chartDataFields.stringOnly) { if (that.showheader) { var chartIcon = that.element.querySelector('#' + type); that.toolbar[0].firstElementChild.classList.add('warning'); if (chartIcon) { chartIcon.classList.add('warning'); } setTimeout(function () { that.toolbar[0].firstElementChild.classList.remove('warning'); if (chartIcon) { chartIcon.classList.remove('warning'); } }, 1000); } return; } series = chartDataFields.series; var chart = {}; chart.title = ''; chart.description = ''; chart.showLegend = true; chart.showBorderLine = false; chart.padding = { left: 5, top: 10, right: 5, bottom: 5 }; chart.source = chartData; chart.xAxis = { dataField: chartDataFields.xAxisDataField, gridLines: { visible: true } }; chart.valueAxis = { displayValueAxis: true, description: that.charting.description, axisSize: 'auto', formatSettings: that.charting.formatSettings }; chart.colorScheme = that.charting.colorScheme; chart.seriesGroups = [seriesGroup]; seriesGroup.formatSettings = that.charting.formatSettings; seriesGroup.series = series; if (type === 'line') { series.forEach(function (serie) { serie.symbolSize = 8; serie.symbolType = 'square'; }); } else if (type === 'pie') { var pieDataField = series[0].dataField; delete seriesGroup.formatSettings; seriesGroup.formatFunction = function (value, index) { if (isNaN(value)) { if (typeof value === 'object') { return index; } return value; } return value; }; seriesGroup.showLabels = true; series.length = 0; series.push({ dataField: pieDataField, displayText: chartDataFields.xAxisDataField, initialAngle: 0 }); } else if (type === 'bar') { type = 'column'; seriesGroup.orientation = 'horizontal'; chart.xAxis.textRotationAngle = 90; chart.valueAxis.textRotationAngle = 30; chart.valueAxis.flip = true; } else if (type === 'area') { var opacity = 1; for (var i = 0; i < series.length; i++) { series[i].opacity = opacity; opacity -= 0.2; opacity = Math.max(0.3, opacity); } } seriesGroup.type = type; if (that.charting.ready) { that.charting.ready(chart); } if (that.charting.appendTo) { var container = that.charting.appendTo === 'string' ? document.querySelector(that.charting.appendTo) : that.charting.appendTo; if (container) { var chartInstance = new jqxChart(chartElement, chart); container.appendChild(chartElement); } } else { that._openChartDialog(chartElement, type, chart); } }, _openChartDialog: function (chart, chartType, settings) { var that = this; if (!that.charting.dialog.enabled) { return false; } var dialogElement = document.createElement('div'); dialogElement.innerHTML = '<div>' + that.charting.dialog.header + '</div><div style="overflow:hidden;"></div>'; var chartLabel = chartType.substring(0, 1).toUpperCase() + chartType.substring(1); chart.style.width = '100%'; chart.style.height = '100%'; var dialog = new jqxWindow(dialogElement, { width: that.charting.dialog.width, height: that.charting.dialog.height, position: that.charting.dialog.position, isModal: true }); dialog.open(); setTimeout(function () { dialogElement.querySelector('.jqx-widget-content').appendChild(chart); var chartInstance = new jqxChart(chart, settings); }, 100); dialog.on('close', function () { dialog.destroy(); }); } }); })(jqxBaseFramework); })();