@easyquery/ui 7.2.3-rc03 → 7.2.4-beta03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/browser/eq.community.css.map +1 -1
  2. package/dist/browser/eq.community.js +32587 -34146
  3. package/dist/browser/eq.community.js.map +1 -1
  4. package/dist/browser/eq.community.min.js +1 -9
  5. package/dist/browser/eq.community.min.js.map +1 -1
  6. package/dist/browser/eq.core.css +17 -112
  7. package/dist/browser/eq.core.min.css +3 -10
  8. package/dist/browser/eq.view.css +1 -1
  9. package/dist/browser/eq.view.css.map +1 -1
  10. package/dist/browser/eq.view.min.css +1 -10
  11. package/dist/bundles/easyquery.ui.js +23032 -22870
  12. package/dist/bundles/easyquery.ui.js.map +1 -1
  13. package/dist/bundles/easyquery.ui.min.js +1 -1
  14. package/dist/bundles/easyquery.ui.min.js.map +1 -1
  15. package/dist/lib/dialog/aggr_settings_dialog.d.ts +12 -12
  16. package/dist/lib/dialog/aggr_settings_dialog.js +106 -106
  17. package/dist/lib/dialog/export_dialog.d.ts +7 -7
  18. package/dist/lib/dialog/export_dialog.js +63 -63
  19. package/dist/lib/extensions.d.ts +7 -7
  20. package/dist/lib/extensions.js +13 -13
  21. package/dist/lib/facets/chart_facet.d.ts +21 -21
  22. package/dist/lib/facets/chart_facet.js +240 -238
  23. package/dist/lib/facets/chart_facet.js.map +1 -1
  24. package/dist/lib/facets/datatable_facet.d.ts +15 -15
  25. package/dist/lib/facets/datatable_facet.js +71 -69
  26. package/dist/lib/facets/datatable_facet.js.map +1 -1
  27. package/dist/lib/facets/pivot_table_facet.d.ts +51 -51
  28. package/dist/lib/facets/pivot_table_facet.js +698 -696
  29. package/dist/lib/facets/pivot_table_facet.js.map +1 -1
  30. package/dist/lib/facets/result_facet.d.ts +40 -40
  31. package/dist/lib/facets/result_facet.js +246 -246
  32. package/dist/lib/facets/result_facet.js.map +1 -1
  33. package/dist/lib/i18n/text_resources.d.ts +1 -1
  34. package/dist/lib/i18n/text_resources.js +260 -259
  35. package/dist/lib/i18n/text_resources.js.map +1 -1
  36. package/dist/lib/public_api.d.ts +61 -61
  37. package/dist/lib/public_api.js +92 -90
  38. package/dist/lib/public_api.js.map +1 -1
  39. package/dist/lib/types/facet_type.d.ts +5 -5
  40. package/dist/lib/types/facet_type.js +6 -6
  41. package/dist/lib/types/qp_editable_part.d.ts +15 -15
  42. package/dist/lib/types/qp_editable_part.js +16 -16
  43. package/dist/lib/utils/browser_utils.d.ts +8 -8
  44. package/dist/lib/utils/browser_utils.js +58 -58
  45. package/dist/lib/utils/display_format_parser.d.ts +11 -11
  46. package/dist/lib/utils/display_format_parser.js +61 -61
  47. package/dist/lib/utils/dropdown.d.ts +11 -11
  48. package/dist/lib/utils/dropdown.js +57 -55
  49. package/dist/lib/utils/dropdown.js.map +1 -1
  50. package/dist/lib/utils/popup_menu.d.ts +163 -163
  51. package/dist/lib/utils/popup_menu.js +1259 -1260
  52. package/dist/lib/utils/popup_menu.js.map +1 -1
  53. package/dist/lib/utils/utils.d.ts +9 -9
  54. package/dist/lib/utils/utils.js +46 -46
  55. package/dist/lib/utils/utils.js.map +1 -1
  56. package/dist/lib/views/adv_search_view.d.ts +95 -95
  57. package/dist/lib/views/adv_search_view.js +712 -710
  58. package/dist/lib/views/adv_search_view.js.map +1 -1
  59. package/dist/lib/views/data_filter_view.d.ts +17 -17
  60. package/dist/lib/views/data_filter_view.js +79 -77
  61. package/dist/lib/views/data_filter_view.js.map +1 -1
  62. package/dist/lib/views/html_data_filter_view.d.ts +19 -19
  63. package/dist/lib/views/html_data_filter_view.js +44 -42
  64. package/dist/lib/views/html_data_filter_view.js.map +1 -1
  65. package/dist/lib/views/report_view.d.ts +173 -173
  66. package/dist/lib/views/report_view.js +733 -731
  67. package/dist/lib/views/report_view.js.map +1 -1
  68. package/dist/lib/views/view.d.ts +149 -149
  69. package/dist/lib/views/view.js +538 -538
  70. package/dist/lib/views/view.js.map +1 -1
  71. package/dist/lib/views/view_options.d.ts +113 -113
  72. package/dist/lib/views/view_options.js +1 -0
  73. package/dist/lib/widgets/aggregation_bar.d.ts +30 -30
  74. package/dist/lib/widgets/aggregation_bar.js +145 -143
  75. package/dist/lib/widgets/aggregation_bar.js.map +1 -1
  76. package/dist/lib/widgets/charts/chart_type.d.ts +14 -14
  77. package/dist/lib/widgets/charts/chart_type.js +15 -15
  78. package/dist/lib/widgets/charts/chart_widget.d.ts +92 -92
  79. package/dist/lib/widgets/charts/chart_widget.js +384 -382
  80. package/dist/lib/widgets/charts/chart_widget.js.map +1 -1
  81. package/dist/lib/widgets/charts/chart_widget_chartjs.d.ts +23 -23
  82. package/dist/lib/widgets/charts/chart_widget_chartjs.js +186 -184
  83. package/dist/lib/widgets/charts/chart_widget_chartjs.js.map +1 -1
  84. package/dist/lib/widgets/charts/chart_widget_google.d.ts +23 -23
  85. package/dist/lib/widgets/charts/chart_widget_google.js +165 -163
  86. package/dist/lib/widgets/charts/chart_widget_google.js.map +1 -1
  87. package/dist/lib/widgets/columns_bar.d.ts +64 -64
  88. package/dist/lib/widgets/columns_bar.js +722 -721
  89. package/dist/lib/widgets/columns_bar.js.map +1 -1
  90. package/dist/lib/widgets/columns_panel.d.ts +64 -62
  91. package/dist/lib/widgets/columns_panel.js +739 -721
  92. package/dist/lib/widgets/columns_panel.js.map +1 -1
  93. package/dist/lib/widgets/easy_grid_widget.d.ts +38 -38
  94. package/dist/lib/widgets/easy_grid_widget.js +229 -227
  95. package/dist/lib/widgets/easy_grid_widget.js.map +1 -1
  96. package/dist/lib/widgets/entities_panel.d.ts +49 -49
  97. package/dist/lib/widgets/entities_panel.js +627 -625
  98. package/dist/lib/widgets/entities_panel.js.map +1 -1
  99. package/dist/lib/widgets/eq_result_html_grid.d.ts +32 -32
  100. package/dist/lib/widgets/eq_result_html_grid.js +185 -183
  101. package/dist/lib/widgets/eq_result_html_grid.js.map +1 -1
  102. package/dist/lib/widgets/export_widget.d.ts +10 -10
  103. package/dist/lib/widgets/export_widget.js +57 -55
  104. package/dist/lib/widgets/export_widget.js.map +1 -1
  105. package/dist/lib/widgets/facet_container.d.ts +12 -12
  106. package/dist/lib/widgets/facet_container.js +53 -51
  107. package/dist/lib/widgets/facet_container.js.map +1 -1
  108. package/dist/lib/widgets/filter_bar.d.ts +38 -38
  109. package/dist/lib/widgets/filter_bar.js +259 -257
  110. package/dist/lib/widgets/filter_bar.js.map +1 -1
  111. package/dist/lib/widgets/grid.d.ts +35 -35
  112. package/dist/lib/widgets/grid.js +79 -77
  113. package/dist/lib/widgets/grid.js.map +1 -1
  114. package/dist/lib/widgets/html_content_widget.d.ts +35 -35
  115. package/dist/lib/widgets/html_content_widget.js +71 -69
  116. package/dist/lib/widgets/html_content_widget.js.map +1 -1
  117. package/dist/lib/widgets/locale_widget.d.ts +16 -16
  118. package/dist/lib/widgets/locale_widget.js +79 -77
  119. package/dist/lib/widgets/locale_widget.js.map +1 -1
  120. package/dist/lib/widgets/manage_drilldown_widget.d.ts +18 -18
  121. package/dist/lib/widgets/manage_drilldown_widget.js +154 -152
  122. package/dist/lib/widgets/manage_drilldown_widget.js.map +1 -1
  123. package/dist/lib/widgets/process_widget.d.ts +21 -21
  124. package/dist/lib/widgets/process_widget.js +50 -48
  125. package/dist/lib/widgets/process_widget.js.map +1 -1
  126. package/dist/lib/widgets/query_panel.d.ts +62 -58
  127. package/dist/lib/widgets/query_panel.js +675 -653
  128. package/dist/lib/widgets/query_panel.js.map +1 -1
  129. package/dist/lib/widgets/queryname_widget.d.ts +27 -27
  130. package/dist/lib/widgets/queryname_widget.js +109 -107
  131. package/dist/lib/widgets/queryname_widget.js.map +1 -1
  132. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.d.ts +54 -54
  133. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js +429 -429
  134. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js.map +1 -1
  135. package/dist/lib/widgets/renderers/base_element_renderer.d.ts +15 -15
  136. package/dist/lib/widgets/renderers/base_element_renderer.js +63 -63
  137. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.d.ts +11 -11
  138. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js +62 -60
  139. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js.map +1 -1
  140. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.d.ts +53 -53
  141. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js +550 -550
  142. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js.map +1 -1
  143. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.d.ts +9 -9
  144. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js +79 -77
  145. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js.map +1 -1
  146. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.d.ts +17 -17
  147. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js +180 -178
  148. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js.map +1 -1
  149. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.d.ts +72 -72
  150. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js +819 -817
  151. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js.map +1 -1
  152. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.d.ts +22 -18
  153. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js +245 -214
  154. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js.map +1 -1
  155. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.d.ts +13 -13
  156. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js +180 -178
  157. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js.map +1 -1
  158. package/dist/lib/widgets/renderers/dropdown_renderer.d.ts +9 -9
  159. package/dist/lib/widgets/renderers/dropdown_renderer.js +42 -40
  160. package/dist/lib/widgets/renderers/dropdown_renderer.js.map +1 -1
  161. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.d.ts +16 -16
  162. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js +87 -85
  163. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js.map +1 -1
  164. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.d.ts +14 -14
  165. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js +71 -69
  166. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js.map +1 -1
  167. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.d.ts +7 -7
  168. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js +41 -39
  169. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js.map +1 -1
  170. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.d.ts +27 -27
  171. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js +231 -229
  172. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js.map +1 -1
  173. package/dist/lib/widgets/renderers/querypanel/condition_renderer.d.ts +48 -48
  174. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js +509 -507
  175. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js.map +1 -1
  176. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.d.ts +13 -13
  177. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js +108 -106
  178. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js.map +1 -1
  179. package/dist/lib/widgets/renderers/querypanel/expression_renderer.d.ts +28 -28
  180. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js +91 -89
  181. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js.map +1 -1
  182. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.d.ts +14 -14
  183. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js +165 -163
  184. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js.map +1 -1
  185. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.d.ts +35 -35
  186. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js +317 -315
  187. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js.map +1 -1
  188. package/dist/lib/widgets/renderers/querypanel/operator_renderer.d.ts +19 -19
  189. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js +95 -93
  190. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js.map +1 -1
  191. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.d.ts +27 -27
  192. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js +237 -235
  193. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js.map +1 -1
  194. package/dist/lib/widgets/renderers/querypanel/text_renderer.d.ts +11 -11
  195. package/dist/lib/widgets/renderers/querypanel/text_renderer.js +36 -36
  196. package/dist/lib/widgets/renderers/querypanel/text_renderer.js.map +1 -1
  197. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.d.ts +26 -26
  198. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js +163 -163
  199. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js.map +1 -1
  200. package/dist/lib/widgets/result_facets_panel.d.ts +64 -64
  201. package/dist/lib/widgets/result_facets_panel.js +503 -501
  202. package/dist/lib/widgets/result_facets_panel.js.map +1 -1
  203. package/dist/lib/widgets/sorting_bar.d.ts +34 -34
  204. package/dist/lib/widgets/sorting_bar.js +330 -328
  205. package/dist/lib/widgets/sorting_bar.js.map +1 -1
  206. package/dist/lib/widgets/statement_panel.d.ts +21 -21
  207. package/dist/lib/widgets/statement_panel.js +60 -58
  208. package/dist/lib/widgets/statement_panel.js.map +1 -1
  209. package/dist/lib/widgets/widget_options.d.ts +433 -429
  210. package/dist/lib/widgets/widget_options.js +1 -0
  211. package/package.json +25 -25
  212. package/webpack.config.js +31 -24
  213. package/dist/browser/eq.community.min.css.map +0 -1
  214. package/dist/browser/eq.view.min.css.map +0 -1
@@ -1,383 +1,385 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- extendStatics(d, b);
10
- function __() { this.constructor = d; }
11
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
- };
13
- })();
14
- import { Widget, WidgetGroup, } from '@easyquery/core';
15
- import { i18n, utils as dataUtils } from '@easydata/core';
16
- import { addCssClass, showElement, hideElement, toggleVisibility, isVisible } from '@easydata/ui';
17
- import { ChartType } from './chart_type';
18
- var ChartWidget = /** @class */ (function (_super) {
19
- __extends(ChartWidget, _super);
20
- /**
21
- * The default constructor.
22
- * @param slot The html element.
23
- * @param provider The provider.
24
- */
25
- function ChartWidget(slot) {
26
- var _this = _super.call(this, slot) || this;
27
- _this.chartType = ChartType.Pie;
28
- _this.supportedChartTypes = [];
29
- _this.dataTable = null;
30
- _this.potentialLabelColumns = [];
31
- _this.potentialDataColumns = [];
32
- _this.labelColumn = -1;
33
- _this.dataColumns = [];
34
- _this.options = {
35
- chartType: ChartType.Pie,
36
- showOnPaging: false,
37
- hideSettings: false,
38
- legend: {
39
- show: false,
40
- position: 'right'
41
- }
42
- };
43
- _this.element = slot;
44
- _this.group = WidgetGroup.Result;
45
- return _this;
46
- }
47
- Object.defineProperty(ChartWidget.prototype, "cssPrefix", {
48
- get: function () {
49
- return 'eqjs-chart';
50
- },
51
- enumerable: true,
52
- configurable: true
53
- });
54
- /**
55
- * Initialize widget.
56
- * @param context The context.
57
- * @param options The options.
58
- */
59
- ChartWidget.prototype.init = function (context, options) {
60
- _super.prototype.init.call(this, context, options);
61
- this.dataTable = context.resultTable;
62
- this.setOptions(options);
63
- };
64
- /**
65
- * Checks, if widget has data.
66
- * @returns `true` if has data, otherwise - `false`.
67
- */
68
- ChartWidget.prototype.hasData = function () {
69
- var result = this.dataTable != null;
70
- if (result) {
71
- result = this.dataTable.getCachedCount() > 0;
72
- }
73
- return result;
74
- };
75
- /**
76
- * Checks, if there ara colums for chart
77
- * @returns `true` if there are columns, otherwise - `false`.
78
- */
79
- ChartWidget.prototype.hasColumnsForChart = function () {
80
- return this.potentialLabelColumns.length > 0 && this.potentialDataColumns.length > 0;
81
- };
82
- /**
83
- * Refresh widget implementation
84
- */
85
- ChartWidget.prototype.refreshCore = function () {
86
- this.prepareChartData();
87
- this.render();
88
- };
89
- ChartWidget.prototype.setOptions = function (options) {
90
- dataUtils.assignDeep(this.options, options);
91
- this.supportedChartTypes = this.getSupportedChartTypes();
92
- if (this.supportedChartTypes.length == 0) {
93
- throw Error("Chart widget should support at least one chart type");
94
- }
95
- if (options.chartType && this.supportedChartTypes.indexOf(options.chartType) >= 0) {
96
- this.chartType = options.chartType;
97
- }
98
- else {
99
- this.chartType = this.supportedChartTypes[0];
100
- }
101
- };
102
- ChartWidget.prototype.getOptions = function () {
103
- return this.options;
104
- };
105
- ChartWidget.prototype.getChartTypeName = function (ct) {
106
- switch (ct) {
107
- case ChartType.Area:
108
- return i18n.getText('ChartType', 'Area');
109
- case ChartType.Bar:
110
- return i18n.getText('ChartType', 'Bar');
111
- case ChartType.Column:
112
- return i18n.getText('ChartType', 'Column');
113
- case ChartType.Combo:
114
- return i18n.getText('ChartType', 'Combo');
115
- case ChartType.Doughnut:
116
- return i18n.getText('ChartType', 'Doughnut');
117
- case ChartType.Polar:
118
- return i18n.getText('ChartType', 'Polar');
119
- case ChartType.Radar:
120
- return i18n.getText('ChartType', 'Radar');
121
- case ChartType.Histogram:
122
- return i18n.getText('ChartType', 'Histogram');
123
- case ChartType.Line:
124
- return i18n.getText('ChartType', 'Line');
125
- case ChartType.SteppedLine:
126
- return i18n.getText('ChartType', 'SteppedLine');
127
- default:
128
- return i18n.getText('ChartType', 'Pie');
129
- }
130
- };
131
- ChartWidget.prototype.updateSettings = function (settings, updateColumns) {
132
- if (updateColumns === void 0) { updateColumns = true; }
133
- if (typeof settings.showLegend !== 'undefined') {
134
- this.options.legend = this.options.legend || {};
135
- this.options.legend.show = settings.showLegend;
136
- }
137
- this.chartType = settings.type;
138
- this.labelColumn = settings.labelColumn;
139
- this.dataColumns[0] = settings.dataColumn;
140
- if (updateColumns)
141
- this.updateChartColumns();
142
- };
143
- /**
144
- * Prepares data for chart.
145
- */
146
- ChartWidget.prototype.prepareChartData = function () {
147
- var _this = this;
148
- if (this.dataTable) {
149
- this.potentialLabelColumns = [];
150
- this.potentialDataColumns = [];
151
- var colNum = this.dataTable.columns.count;
152
- for (var i = 0; i < colNum; i++) {
153
- var column = this.dataTable.columns.get(i);
154
- var colType = column.type;
155
- var colLabel = column.label;
156
- this.potentialLabelColumns.push({ idx: i, label: colLabel });
157
- if (dataUtils.isNumericType(colType)) {
158
- this.potentialDataColumns.push({ idx: i, label: colLabel });
159
- }
160
- }
161
- ;
162
- if (this.labelColumn != -1) {
163
- if (!this.potentialLabelColumns
164
- .filter(function (c) { return c.idx == _this.labelColumn; })
165
- .length) {
166
- this.labelColumn = -1;
167
- }
168
- }
169
- else {
170
- this.labelColumn = (this.potentialLabelColumns.length > 0)
171
- ? this.potentialLabelColumns[0].idx : -1;
172
- }
173
- if (this.dataColumns.length) {
174
- var ids_1 = this.potentialDataColumns.map(function (d) { return d.idx; });
175
- this.dataColumns = this.dataColumns.filter(function (v) { return ids_1.indexOf(v) >= 0; });
176
- if (!this.dataColumns.length) {
177
- this.dataColumns = (this.potentialDataColumns.length > 0)
178
- ? [].concat(this.potentialDataColumns[0].idx)
179
- : [];
180
- }
181
- }
182
- else {
183
- this.dataColumns = (this.potentialDataColumns.length > 0)
184
- ? [].concat(this.potentialDataColumns[0].idx)
185
- : [];
186
- }
187
- this.initChart();
188
- }
189
- };
190
- ChartWidget.prototype.getSupportedChartTypes = function () {
191
- var _this = this;
192
- var chartTypes = this.options.supportedChartTypes
193
- ? this.options.supportedChartTypes
194
- : Object.keys(ChartType).map(function (key) { return ChartType[key]; });
195
- return chartTypes.filter(function (type) { return _this.hasChartTypes.indexOf(type) >= 0; });
196
- };
197
- ChartWidget.prototype.getCurrentChartType = function () {
198
- return this.chartType;
199
- };
200
- ChartWidget.prototype.render = function () {
201
- var _this = this;
202
- this.clear();
203
- if (this.hasData() && this.hasColumnsForChart()
204
- && (this.context.resultTable.getTotal()
205
- == this.context.resultTable.getCachedCount())) {
206
- var headerDiv = document.createElement('div');
207
- addCssClass(headerDiv, this.cssPrefix + "-header");
208
- var mainDiv = document.createElement('div');
209
- addCssClass(mainDiv, this.cssPrefix + "-main");
210
- if (this.canDraw()) {
211
- var chartTypeSelector = document.createElement('select');
212
- for (var _i = 0, _a = this.supportedChartTypes; _i < _a.length; _i++) {
213
- var ct = _a[_i];
214
- var sopt = document.createElement('option');
215
- sopt.value = ct.toString();
216
- sopt.text = this.getChartTypeName(ct);
217
- chartTypeSelector.appendChild(sopt);
218
- }
219
- chartTypeSelector.value = this.chartType.toString();
220
- headerDiv.appendChild(chartTypeSelector);
221
- chartTypeSelector.addEventListener('change', function (ev) {
222
- var ctkey = ev.target.value;
223
- _this.chartType = parseInt(ctkey);
224
- _this.refresh();
225
- });
226
- this.settingsDiv = document.createElement('div');
227
- addCssClass(this.settingsDiv, this.cssPrefix + "-settings");
228
- hideElement(this.settingsDiv);
229
- mainDiv.appendChild(this.settingsDiv);
230
- this.chartDiv = document.createElement('div');
231
- addCssClass(this.chartDiv, this.cssPrefix + "-content");
232
- hideElement(this.chartDiv);
233
- mainDiv.appendChild(this.chartDiv);
234
- this.initSettingsDiv();
235
- var chartSettingsBtn = document.createElement('div');
236
- addCssClass(chartSettingsBtn, this.cssPrefix + "-settings-icon");
237
- chartSettingsBtn.title = "Settings";
238
- headerDiv.appendChild(chartSettingsBtn);
239
- chartSettingsBtn.addEventListener('click', function (ev) {
240
- _this.toggleSettings();
241
- });
242
- this.drawChart(100);
243
- }
244
- else {
245
- this.addContentDiv(mainDiv, 'Unable to render the chart. None of the supported chart libraries (ChartJS, Google Charts, etc) is found.');
246
- }
247
- if (!this.options.hideSettings) {
248
- this.element.appendChild(headerDiv);
249
- }
250
- this.element.appendChild(mainDiv);
251
- this.element.style.display = "";
252
- }
253
- else {
254
- this.element.style.display = "none";
255
- }
256
- };
257
- ChartWidget.prototype.addContentDiv = function (mainDiv, text) {
258
- var contentDiv = document.createElement('div');
259
- addCssClass(contentDiv, this.cssPrefix + "-no-data");
260
- contentDiv.innerText = text;
261
- mainDiv.appendChild(contentDiv);
262
- };
263
- /**
264
- * Clears the chart.
265
- */
266
- ChartWidget.prototype.clear = function () {
267
- this.element.innerHTML = '';
268
- };
269
- /**
270
- * Draws chart with a delay.
271
- * @param delay The delay.
272
- */
273
- ChartWidget.prototype.drawChart = function (delay) {
274
- var _this = this;
275
- showElement(this.chartDiv);
276
- if (delay > 0) {
277
- setTimeout(function () { return _this.drawCore(); }, delay);
278
- }
279
- else {
280
- this.drawCore();
281
- }
282
- };
283
- /**
284
- * Inititializes the settings div.
285
- */
286
- ChartWidget.prototype.initSettingsDiv = function () {
287
- var _this = this;
288
- var settingsHeader = document.createElement('div');
289
- settingsHeader.textContent = 'SETTINGS';
290
- addCssClass(settingsHeader, this.cssPrefix + "-settings-header");
291
- this.settingsDiv.appendChild(settingsHeader);
292
- // Label column
293
- var labelDiv = document.createElement('div');
294
- addCssClass(labelDiv, this.cssPrefix + "-settings-single");
295
- this.settingsDiv.appendChild(labelDiv);
296
- var labelColumnSelectorCaption = document.createElement('span');
297
- showElement(labelColumnSelectorCaption);
298
- labelColumnSelectorCaption.textContent = 'Label column';
299
- labelDiv.appendChild(labelColumnSelectorCaption);
300
- var labelColumnSelector = document.createElement('select');
301
- showElement(labelColumnSelector);
302
- labelDiv.appendChild(labelColumnSelector);
303
- for (var _i = 0, _a = this.potentialLabelColumns; _i < _a.length; _i++) {
304
- var col = _a[_i];
305
- var sopt = document.createElement('option');
306
- sopt.value = col.idx.toString();
307
- sopt.text = col.label;
308
- labelColumnSelector.appendChild(sopt);
309
- }
310
- if (this.labelColumn >= 0) {
311
- labelColumnSelector.value = this.labelColumn.toString();
312
- }
313
- labelColumnSelector.addEventListener('change', function (ev) {
314
- _this.labelColumn = parseInt(ev.target.value);
315
- _this.updateChartColumns();
316
- _this.toggleSettings(function () {
317
- _this.drawChart(100);
318
- });
319
- });
320
- // Data column
321
- var dataDiv = document.createElement('div');
322
- addCssClass(dataDiv, this.cssPrefix + "-settings-single");
323
- this.settingsDiv.appendChild(dataDiv);
324
- var dataColumnSelectorCaption = document.createElement('span');
325
- showElement(dataColumnSelectorCaption);
326
- dataColumnSelectorCaption.textContent = 'Data column';
327
- dataDiv.appendChild(dataColumnSelectorCaption);
328
- var dataColumnSelector = document.createElement('select');
329
- showElement(dataColumnSelector);
330
- dataDiv.appendChild(dataColumnSelector);
331
- for (var _b = 0, _c = this.potentialDataColumns; _b < _c.length; _b++) {
332
- var col = _c[_b];
333
- var sopt = document.createElement('option');
334
- sopt.value = col.idx.toString();
335
- sopt.text = col.label;
336
- dataColumnSelector.appendChild(sopt);
337
- }
338
- if (this.dataColumns.length > 0 && this.dataColumns[0] >= 0) {
339
- dataColumnSelector.value = this.dataColumns[0].toString();
340
- }
341
- dataColumnSelector.addEventListener('change', function (ev) {
342
- _this.dataColumns[0] = parseInt(ev.target.value);
343
- _this.updateChartColumns();
344
- _this.toggleSettings(function () {
345
- _this.drawChart(100);
346
- });
347
- });
348
- };
349
- ChartWidget.prototype.getPotentialLabelColumns = function () {
350
- return this.potentialLabelColumns;
351
- };
352
- ChartWidget.prototype.getPotentialDataColumns = function () {
353
- return this.potentialDataColumns;
354
- };
355
- ChartWidget.prototype.getLabelColumnIndex = function () {
356
- return this.labelColumn;
357
- };
358
- ChartWidget.prototype.getDataColumnIndex = function () {
359
- return this.dataColumns[0];
360
- };
361
- /**
362
- * Toggles settings.
363
- * @param callback The callback.
364
- */
365
- ChartWidget.prototype.toggleSettings = function (callback) {
366
- var first;
367
- var second;
368
- if (isVisible(this.chartDiv)) {
369
- first = this.chartDiv;
370
- second = this.settingsDiv;
371
- }
372
- else {
373
- first = this.settingsDiv;
374
- second = this.chartDiv;
375
- }
376
- toggleVisibility(first, second, {
377
- complete: callback
378
- });
379
- };
380
- return ChartWidget;
381
- }(Widget));
382
- export { ChartWidget };
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { Widget, WidgetGroup, } from '@easyquery/core';
17
+ import { i18n, utils as dataUtils } from '@easydata/core';
18
+ import { addCssClass, showElement, hideElement, toggleVisibility, isVisible } from '@easydata/ui';
19
+ import { ChartType } from './chart_type';
20
+ var ChartWidget = /** @class */ (function (_super) {
21
+ __extends(ChartWidget, _super);
22
+ /**
23
+ * The default constructor.
24
+ * @param slot The html element.
25
+ * @param provider The provider.
26
+ */
27
+ function ChartWidget(slot) {
28
+ var _this = _super.call(this, slot) || this;
29
+ _this.chartType = ChartType.Pie;
30
+ _this.supportedChartTypes = [];
31
+ _this.dataTable = null;
32
+ _this.potentialLabelColumns = [];
33
+ _this.potentialDataColumns = [];
34
+ _this.labelColumn = -1;
35
+ _this.dataColumns = [];
36
+ _this.options = {
37
+ chartType: ChartType.Pie,
38
+ showOnPaging: false,
39
+ hideSettings: false,
40
+ legend: {
41
+ show: false,
42
+ position: 'right'
43
+ }
44
+ };
45
+ _this.element = slot;
46
+ _this.group = WidgetGroup.Result;
47
+ return _this;
48
+ }
49
+ Object.defineProperty(ChartWidget.prototype, "cssPrefix", {
50
+ get: function () {
51
+ return 'eqjs-chart';
52
+ },
53
+ enumerable: false,
54
+ configurable: true
55
+ });
56
+ /**
57
+ * Initialize widget.
58
+ * @param context The context.
59
+ * @param options The options.
60
+ */
61
+ ChartWidget.prototype.init = function (context, options) {
62
+ _super.prototype.init.call(this, context, options);
63
+ this.dataTable = context.resultTable;
64
+ this.setOptions(options);
65
+ };
66
+ /**
67
+ * Checks, if widget has data.
68
+ * @returns `true` if has data, otherwise - `false`.
69
+ */
70
+ ChartWidget.prototype.hasData = function () {
71
+ var result = this.dataTable != null;
72
+ if (result) {
73
+ result = this.dataTable.getCachedCount() > 0;
74
+ }
75
+ return result;
76
+ };
77
+ /**
78
+ * Checks, if there ara colums for chart
79
+ * @returns `true` if there are columns, otherwise - `false`.
80
+ */
81
+ ChartWidget.prototype.hasColumnsForChart = function () {
82
+ return this.potentialLabelColumns.length > 0 && this.potentialDataColumns.length > 0;
83
+ };
84
+ /**
85
+ * Refresh widget implementation
86
+ */
87
+ ChartWidget.prototype.refreshCore = function () {
88
+ this.prepareChartData();
89
+ this.render();
90
+ };
91
+ ChartWidget.prototype.setOptions = function (options) {
92
+ dataUtils.assignDeep(this.options, options);
93
+ this.supportedChartTypes = this.getSupportedChartTypes();
94
+ if (this.supportedChartTypes.length == 0) {
95
+ throw Error("Chart widget should support at least one chart type");
96
+ }
97
+ if (options.chartType && this.supportedChartTypes.indexOf(options.chartType) >= 0) {
98
+ this.chartType = options.chartType;
99
+ }
100
+ else {
101
+ this.chartType = this.supportedChartTypes[0];
102
+ }
103
+ };
104
+ ChartWidget.prototype.getOptions = function () {
105
+ return this.options;
106
+ };
107
+ ChartWidget.prototype.getChartTypeName = function (ct) {
108
+ switch (ct) {
109
+ case ChartType.Area:
110
+ return i18n.getText('ChartType', 'Area');
111
+ case ChartType.Bar:
112
+ return i18n.getText('ChartType', 'Bar');
113
+ case ChartType.Column:
114
+ return i18n.getText('ChartType', 'Column');
115
+ case ChartType.Combo:
116
+ return i18n.getText('ChartType', 'Combo');
117
+ case ChartType.Doughnut:
118
+ return i18n.getText('ChartType', 'Doughnut');
119
+ case ChartType.Polar:
120
+ return i18n.getText('ChartType', 'Polar');
121
+ case ChartType.Radar:
122
+ return i18n.getText('ChartType', 'Radar');
123
+ case ChartType.Histogram:
124
+ return i18n.getText('ChartType', 'Histogram');
125
+ case ChartType.Line:
126
+ return i18n.getText('ChartType', 'Line');
127
+ case ChartType.SteppedLine:
128
+ return i18n.getText('ChartType', 'SteppedLine');
129
+ default:
130
+ return i18n.getText('ChartType', 'Pie');
131
+ }
132
+ };
133
+ ChartWidget.prototype.updateSettings = function (settings, updateColumns) {
134
+ if (updateColumns === void 0) { updateColumns = true; }
135
+ if (typeof settings.showLegend !== 'undefined') {
136
+ this.options.legend = this.options.legend || {};
137
+ this.options.legend.show = settings.showLegend;
138
+ }
139
+ this.chartType = settings.type;
140
+ this.labelColumn = settings.labelColumn;
141
+ this.dataColumns[0] = settings.dataColumn;
142
+ if (updateColumns)
143
+ this.updateChartColumns();
144
+ };
145
+ /**
146
+ * Prepares data for chart.
147
+ */
148
+ ChartWidget.prototype.prepareChartData = function () {
149
+ var _this = this;
150
+ if (this.dataTable) {
151
+ this.potentialLabelColumns = [];
152
+ this.potentialDataColumns = [];
153
+ var colNum = this.dataTable.columns.count;
154
+ for (var i = 0; i < colNum; i++) {
155
+ var column = this.dataTable.columns.get(i);
156
+ var colType = column.type;
157
+ var colLabel = column.label;
158
+ this.potentialLabelColumns.push({ idx: i, label: colLabel });
159
+ if (dataUtils.isNumericType(colType)) {
160
+ this.potentialDataColumns.push({ idx: i, label: colLabel });
161
+ }
162
+ }
163
+ ;
164
+ if (this.labelColumn != -1) {
165
+ if (!this.potentialLabelColumns
166
+ .filter(function (c) { return c.idx == _this.labelColumn; })
167
+ .length) {
168
+ this.labelColumn = -1;
169
+ }
170
+ }
171
+ else {
172
+ this.labelColumn = (this.potentialLabelColumns.length > 0)
173
+ ? this.potentialLabelColumns[0].idx : -1;
174
+ }
175
+ if (this.dataColumns.length) {
176
+ var ids_1 = this.potentialDataColumns.map(function (d) { return d.idx; });
177
+ this.dataColumns = this.dataColumns.filter(function (v) { return ids_1.indexOf(v) >= 0; });
178
+ if (!this.dataColumns.length) {
179
+ this.dataColumns = (this.potentialDataColumns.length > 0)
180
+ ? [].concat(this.potentialDataColumns[0].idx)
181
+ : [];
182
+ }
183
+ }
184
+ else {
185
+ this.dataColumns = (this.potentialDataColumns.length > 0)
186
+ ? [].concat(this.potentialDataColumns[0].idx)
187
+ : [];
188
+ }
189
+ this.initChart();
190
+ }
191
+ };
192
+ ChartWidget.prototype.getSupportedChartTypes = function () {
193
+ var _this = this;
194
+ var chartTypes = this.options.supportedChartTypes
195
+ ? this.options.supportedChartTypes
196
+ : Object.keys(ChartType).map(function (key) { return ChartType[key]; });
197
+ return chartTypes.filter(function (type) { return _this.hasChartTypes.indexOf(type) >= 0; });
198
+ };
199
+ ChartWidget.prototype.getCurrentChartType = function () {
200
+ return this.chartType;
201
+ };
202
+ ChartWidget.prototype.render = function () {
203
+ var _this = this;
204
+ this.clear();
205
+ if (this.hasData() && this.hasColumnsForChart()
206
+ && (this.context.resultTable.getTotal()
207
+ == this.context.resultTable.getCachedCount())) {
208
+ var headerDiv = document.createElement('div');
209
+ addCssClass(headerDiv, "".concat(this.cssPrefix, "-header"));
210
+ var mainDiv = document.createElement('div');
211
+ addCssClass(mainDiv, "".concat(this.cssPrefix, "-main"));
212
+ if (this.canDraw()) {
213
+ var chartTypeSelector = document.createElement('select');
214
+ for (var _i = 0, _a = this.supportedChartTypes; _i < _a.length; _i++) {
215
+ var ct = _a[_i];
216
+ var sopt = document.createElement('option');
217
+ sopt.value = ct.toString();
218
+ sopt.text = this.getChartTypeName(ct);
219
+ chartTypeSelector.appendChild(sopt);
220
+ }
221
+ chartTypeSelector.value = this.chartType.toString();
222
+ headerDiv.appendChild(chartTypeSelector);
223
+ chartTypeSelector.addEventListener('change', function (ev) {
224
+ var ctkey = ev.target.value;
225
+ _this.chartType = parseInt(ctkey);
226
+ _this.refresh();
227
+ });
228
+ this.settingsDiv = document.createElement('div');
229
+ addCssClass(this.settingsDiv, "".concat(this.cssPrefix, "-settings"));
230
+ hideElement(this.settingsDiv);
231
+ mainDiv.appendChild(this.settingsDiv);
232
+ this.chartDiv = document.createElement('div');
233
+ addCssClass(this.chartDiv, "".concat(this.cssPrefix, "-content"));
234
+ hideElement(this.chartDiv);
235
+ mainDiv.appendChild(this.chartDiv);
236
+ this.initSettingsDiv();
237
+ var chartSettingsBtn = document.createElement('div');
238
+ addCssClass(chartSettingsBtn, "".concat(this.cssPrefix, "-settings-icon"));
239
+ chartSettingsBtn.title = "Settings";
240
+ headerDiv.appendChild(chartSettingsBtn);
241
+ chartSettingsBtn.addEventListener('click', function (ev) {
242
+ _this.toggleSettings();
243
+ });
244
+ this.drawChart(100);
245
+ }
246
+ else {
247
+ this.addContentDiv(mainDiv, 'Unable to render the chart. None of the supported chart libraries (ChartJS, Google Charts, etc) is found.');
248
+ }
249
+ if (!this.options.hideSettings) {
250
+ this.element.appendChild(headerDiv);
251
+ }
252
+ this.element.appendChild(mainDiv);
253
+ this.element.style.display = "";
254
+ }
255
+ else {
256
+ this.element.style.display = "none";
257
+ }
258
+ };
259
+ ChartWidget.prototype.addContentDiv = function (mainDiv, text) {
260
+ var contentDiv = document.createElement('div');
261
+ addCssClass(contentDiv, "".concat(this.cssPrefix, "-no-data"));
262
+ contentDiv.innerText = text;
263
+ mainDiv.appendChild(contentDiv);
264
+ };
265
+ /**
266
+ * Clears the chart.
267
+ */
268
+ ChartWidget.prototype.clear = function () {
269
+ this.element.innerHTML = '';
270
+ };
271
+ /**
272
+ * Draws chart with a delay.
273
+ * @param delay The delay.
274
+ */
275
+ ChartWidget.prototype.drawChart = function (delay) {
276
+ var _this = this;
277
+ showElement(this.chartDiv);
278
+ if (delay > 0) {
279
+ setTimeout(function () { return _this.drawCore(); }, delay);
280
+ }
281
+ else {
282
+ this.drawCore();
283
+ }
284
+ };
285
+ /**
286
+ * Inititializes the settings div.
287
+ */
288
+ ChartWidget.prototype.initSettingsDiv = function () {
289
+ var _this = this;
290
+ var settingsHeader = document.createElement('div');
291
+ settingsHeader.textContent = 'SETTINGS';
292
+ addCssClass(settingsHeader, "".concat(this.cssPrefix, "-settings-header"));
293
+ this.settingsDiv.appendChild(settingsHeader);
294
+ // Label column
295
+ var labelDiv = document.createElement('div');
296
+ addCssClass(labelDiv, "".concat(this.cssPrefix, "-settings-single"));
297
+ this.settingsDiv.appendChild(labelDiv);
298
+ var labelColumnSelectorCaption = document.createElement('span');
299
+ showElement(labelColumnSelectorCaption);
300
+ labelColumnSelectorCaption.textContent = 'Label column';
301
+ labelDiv.appendChild(labelColumnSelectorCaption);
302
+ var labelColumnSelector = document.createElement('select');
303
+ showElement(labelColumnSelector);
304
+ labelDiv.appendChild(labelColumnSelector);
305
+ for (var _i = 0, _a = this.potentialLabelColumns; _i < _a.length; _i++) {
306
+ var col = _a[_i];
307
+ var sopt = document.createElement('option');
308
+ sopt.value = col.idx.toString();
309
+ sopt.text = col.label;
310
+ labelColumnSelector.appendChild(sopt);
311
+ }
312
+ if (this.labelColumn >= 0) {
313
+ labelColumnSelector.value = this.labelColumn.toString();
314
+ }
315
+ labelColumnSelector.addEventListener('change', function (ev) {
316
+ _this.labelColumn = parseInt(ev.target.value);
317
+ _this.updateChartColumns();
318
+ _this.toggleSettings(function () {
319
+ _this.drawChart(100);
320
+ });
321
+ });
322
+ // Data column
323
+ var dataDiv = document.createElement('div');
324
+ addCssClass(dataDiv, "".concat(this.cssPrefix, "-settings-single"));
325
+ this.settingsDiv.appendChild(dataDiv);
326
+ var dataColumnSelectorCaption = document.createElement('span');
327
+ showElement(dataColumnSelectorCaption);
328
+ dataColumnSelectorCaption.textContent = 'Data column';
329
+ dataDiv.appendChild(dataColumnSelectorCaption);
330
+ var dataColumnSelector = document.createElement('select');
331
+ showElement(dataColumnSelector);
332
+ dataDiv.appendChild(dataColumnSelector);
333
+ for (var _b = 0, _c = this.potentialDataColumns; _b < _c.length; _b++) {
334
+ var col = _c[_b];
335
+ var sopt = document.createElement('option');
336
+ sopt.value = col.idx.toString();
337
+ sopt.text = col.label;
338
+ dataColumnSelector.appendChild(sopt);
339
+ }
340
+ if (this.dataColumns.length > 0 && this.dataColumns[0] >= 0) {
341
+ dataColumnSelector.value = this.dataColumns[0].toString();
342
+ }
343
+ dataColumnSelector.addEventListener('change', function (ev) {
344
+ _this.dataColumns[0] = parseInt(ev.target.value);
345
+ _this.updateChartColumns();
346
+ _this.toggleSettings(function () {
347
+ _this.drawChart(100);
348
+ });
349
+ });
350
+ };
351
+ ChartWidget.prototype.getPotentialLabelColumns = function () {
352
+ return this.potentialLabelColumns;
353
+ };
354
+ ChartWidget.prototype.getPotentialDataColumns = function () {
355
+ return this.potentialDataColumns;
356
+ };
357
+ ChartWidget.prototype.getLabelColumnIndex = function () {
358
+ return this.labelColumn;
359
+ };
360
+ ChartWidget.prototype.getDataColumnIndex = function () {
361
+ return this.dataColumns[0];
362
+ };
363
+ /**
364
+ * Toggles settings.
365
+ * @param callback The callback.
366
+ */
367
+ ChartWidget.prototype.toggleSettings = function (callback) {
368
+ var first;
369
+ var second;
370
+ if (isVisible(this.chartDiv)) {
371
+ first = this.chartDiv;
372
+ second = this.settingsDiv;
373
+ }
374
+ else {
375
+ first = this.settingsDiv;
376
+ second = this.chartDiv;
377
+ }
378
+ toggleVisibility(first, second, {
379
+ complete: callback
380
+ });
381
+ };
382
+ return ChartWidget;
383
+ }(Widget));
384
+ export { ChartWidget };
383
385
  //# sourceMappingURL=chart_widget.js.map