@easyquery/ui 7.2.3 → 7.2.4-rc01

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 (215) hide show
  1. package/dist/assets/css/easyquery.css +5 -2
  2. package/dist/browser/eq.community.css.map +1 -1
  3. package/dist/browser/eq.community.js +32224 -33715
  4. package/dist/browser/eq.community.js.map +1 -1
  5. package/dist/browser/eq.community.min.js +1 -9
  6. package/dist/browser/eq.community.min.js.map +1 -1
  7. package/dist/browser/eq.core.css +22 -114
  8. package/dist/browser/eq.core.min.css +3 -10
  9. package/dist/browser/eq.view.css +1 -1
  10. package/dist/browser/eq.view.css.map +1 -1
  11. package/dist/browser/eq.view.min.css +1 -10
  12. package/dist/bundles/easyquery.ui.js +22951 -22870
  13. package/dist/bundles/easyquery.ui.js.map +1 -1
  14. package/dist/bundles/easyquery.ui.min.js +1 -1
  15. package/dist/bundles/easyquery.ui.min.js.map +1 -1
  16. package/dist/lib/dialog/aggr_settings_dialog.d.ts +12 -12
  17. package/dist/lib/dialog/aggr_settings_dialog.js +106 -106
  18. package/dist/lib/dialog/export_dialog.d.ts +7 -7
  19. package/dist/lib/dialog/export_dialog.js +63 -63
  20. package/dist/lib/extensions.d.ts +7 -7
  21. package/dist/lib/extensions.js +13 -13
  22. package/dist/lib/facets/chart_facet.d.ts +21 -21
  23. package/dist/lib/facets/chart_facet.js +240 -238
  24. package/dist/lib/facets/chart_facet.js.map +1 -1
  25. package/dist/lib/facets/datatable_facet.d.ts +15 -15
  26. package/dist/lib/facets/datatable_facet.js +71 -69
  27. package/dist/lib/facets/datatable_facet.js.map +1 -1
  28. package/dist/lib/facets/pivot_table_facet.d.ts +51 -51
  29. package/dist/lib/facets/pivot_table_facet.js +698 -696
  30. package/dist/lib/facets/pivot_table_facet.js.map +1 -1
  31. package/dist/lib/facets/result_facet.d.ts +40 -40
  32. package/dist/lib/facets/result_facet.js +246 -246
  33. package/dist/lib/facets/result_facet.js.map +1 -1
  34. package/dist/lib/i18n/text_resources.d.ts +1 -1
  35. package/dist/lib/i18n/text_resources.js +260 -259
  36. package/dist/lib/i18n/text_resources.js.map +1 -1
  37. package/dist/lib/public_api.d.ts +61 -61
  38. package/dist/lib/public_api.js +92 -90
  39. package/dist/lib/public_api.js.map +1 -1
  40. package/dist/lib/types/facet_type.d.ts +5 -5
  41. package/dist/lib/types/facet_type.js +6 -6
  42. package/dist/lib/types/qp_editable_part.d.ts +15 -15
  43. package/dist/lib/types/qp_editable_part.js +16 -16
  44. package/dist/lib/utils/browser_utils.d.ts +8 -8
  45. package/dist/lib/utils/browser_utils.js +58 -58
  46. package/dist/lib/utils/display_format_parser.d.ts +11 -11
  47. package/dist/lib/utils/display_format_parser.js +61 -61
  48. package/dist/lib/utils/dropdown.d.ts +11 -11
  49. package/dist/lib/utils/dropdown.js +57 -55
  50. package/dist/lib/utils/dropdown.js.map +1 -1
  51. package/dist/lib/utils/popup_menu.d.ts +163 -163
  52. package/dist/lib/utils/popup_menu.js +1259 -1260
  53. package/dist/lib/utils/popup_menu.js.map +1 -1
  54. package/dist/lib/utils/utils.d.ts +9 -9
  55. package/dist/lib/utils/utils.js +46 -46
  56. package/dist/lib/utils/utils.js.map +1 -1
  57. package/dist/lib/views/adv_search_view.d.ts +95 -95
  58. package/dist/lib/views/adv_search_view.js +712 -710
  59. package/dist/lib/views/adv_search_view.js.map +1 -1
  60. package/dist/lib/views/data_filter_view.d.ts +17 -17
  61. package/dist/lib/views/data_filter_view.js +79 -77
  62. package/dist/lib/views/data_filter_view.js.map +1 -1
  63. package/dist/lib/views/html_data_filter_view.d.ts +19 -19
  64. package/dist/lib/views/html_data_filter_view.js +44 -42
  65. package/dist/lib/views/html_data_filter_view.js.map +1 -1
  66. package/dist/lib/views/report_view.d.ts +173 -173
  67. package/dist/lib/views/report_view.js +733 -731
  68. package/dist/lib/views/report_view.js.map +1 -1
  69. package/dist/lib/views/view.d.ts +149 -149
  70. package/dist/lib/views/view.js +538 -538
  71. package/dist/lib/views/view.js.map +1 -1
  72. package/dist/lib/views/view_options.d.ts +113 -113
  73. package/dist/lib/views/view_options.js +1 -0
  74. package/dist/lib/widgets/aggregation_bar.d.ts +30 -30
  75. package/dist/lib/widgets/aggregation_bar.js +145 -143
  76. package/dist/lib/widgets/aggregation_bar.js.map +1 -1
  77. package/dist/lib/widgets/charts/chart_type.d.ts +14 -14
  78. package/dist/lib/widgets/charts/chart_type.js +15 -15
  79. package/dist/lib/widgets/charts/chart_widget.d.ts +92 -92
  80. package/dist/lib/widgets/charts/chart_widget.js +384 -382
  81. package/dist/lib/widgets/charts/chart_widget.js.map +1 -1
  82. package/dist/lib/widgets/charts/chart_widget_chartjs.d.ts +23 -23
  83. package/dist/lib/widgets/charts/chart_widget_chartjs.js +186 -184
  84. package/dist/lib/widgets/charts/chart_widget_chartjs.js.map +1 -1
  85. package/dist/lib/widgets/charts/chart_widget_google.d.ts +23 -23
  86. package/dist/lib/widgets/charts/chart_widget_google.js +165 -163
  87. package/dist/lib/widgets/charts/chart_widget_google.js.map +1 -1
  88. package/dist/lib/widgets/columns_bar.d.ts +64 -64
  89. package/dist/lib/widgets/columns_bar.js +722 -721
  90. package/dist/lib/widgets/columns_bar.js.map +1 -1
  91. package/dist/lib/widgets/columns_panel.d.ts +64 -62
  92. package/dist/lib/widgets/columns_panel.js +740 -721
  93. package/dist/lib/widgets/columns_panel.js.map +1 -1
  94. package/dist/lib/widgets/easy_grid_widget.d.ts +38 -38
  95. package/dist/lib/widgets/easy_grid_widget.js +229 -227
  96. package/dist/lib/widgets/easy_grid_widget.js.map +1 -1
  97. package/dist/lib/widgets/entities_panel.d.ts +49 -49
  98. package/dist/lib/widgets/entities_panel.js +627 -625
  99. package/dist/lib/widgets/entities_panel.js.map +1 -1
  100. package/dist/lib/widgets/eq_result_html_grid.d.ts +32 -32
  101. package/dist/lib/widgets/eq_result_html_grid.js +185 -183
  102. package/dist/lib/widgets/eq_result_html_grid.js.map +1 -1
  103. package/dist/lib/widgets/export_widget.d.ts +10 -10
  104. package/dist/lib/widgets/export_widget.js +57 -55
  105. package/dist/lib/widgets/export_widget.js.map +1 -1
  106. package/dist/lib/widgets/facet_container.d.ts +12 -12
  107. package/dist/lib/widgets/facet_container.js +53 -51
  108. package/dist/lib/widgets/facet_container.js.map +1 -1
  109. package/dist/lib/widgets/filter_bar.d.ts +38 -38
  110. package/dist/lib/widgets/filter_bar.js +259 -257
  111. package/dist/lib/widgets/filter_bar.js.map +1 -1
  112. package/dist/lib/widgets/grid.d.ts +35 -35
  113. package/dist/lib/widgets/grid.js +79 -77
  114. package/dist/lib/widgets/grid.js.map +1 -1
  115. package/dist/lib/widgets/html_content_widget.d.ts +35 -35
  116. package/dist/lib/widgets/html_content_widget.js +71 -69
  117. package/dist/lib/widgets/html_content_widget.js.map +1 -1
  118. package/dist/lib/widgets/locale_widget.d.ts +16 -16
  119. package/dist/lib/widgets/locale_widget.js +79 -77
  120. package/dist/lib/widgets/locale_widget.js.map +1 -1
  121. package/dist/lib/widgets/manage_drilldown_widget.d.ts +18 -18
  122. package/dist/lib/widgets/manage_drilldown_widget.js +154 -152
  123. package/dist/lib/widgets/manage_drilldown_widget.js.map +1 -1
  124. package/dist/lib/widgets/process_widget.d.ts +21 -21
  125. package/dist/lib/widgets/process_widget.js +50 -48
  126. package/dist/lib/widgets/process_widget.js.map +1 -1
  127. package/dist/lib/widgets/query_panel.d.ts +62 -58
  128. package/dist/lib/widgets/query_panel.js +675 -653
  129. package/dist/lib/widgets/query_panel.js.map +1 -1
  130. package/dist/lib/widgets/queryname_widget.d.ts +27 -27
  131. package/dist/lib/widgets/queryname_widget.js +109 -107
  132. package/dist/lib/widgets/queryname_widget.js.map +1 -1
  133. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.d.ts +54 -54
  134. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js +429 -429
  135. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js.map +1 -1
  136. package/dist/lib/widgets/renderers/base_element_renderer.d.ts +15 -15
  137. package/dist/lib/widgets/renderers/base_element_renderer.js +63 -63
  138. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.d.ts +11 -11
  139. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js +62 -60
  140. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js.map +1 -1
  141. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.d.ts +53 -53
  142. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js +550 -550
  143. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js.map +1 -1
  144. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.d.ts +9 -9
  145. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js +79 -77
  146. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js.map +1 -1
  147. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.d.ts +17 -17
  148. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js +180 -178
  149. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js.map +1 -1
  150. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.d.ts +74 -72
  151. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js +829 -817
  152. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js.map +1 -1
  153. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.d.ts +21 -18
  154. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js +238 -214
  155. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js.map +1 -1
  156. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.d.ts +13 -13
  157. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js +180 -178
  158. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js.map +1 -1
  159. package/dist/lib/widgets/renderers/dropdown_renderer.d.ts +9 -9
  160. package/dist/lib/widgets/renderers/dropdown_renderer.js +42 -40
  161. package/dist/lib/widgets/renderers/dropdown_renderer.js.map +1 -1
  162. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.d.ts +16 -16
  163. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js +87 -85
  164. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js.map +1 -1
  165. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.d.ts +14 -14
  166. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js +71 -69
  167. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js.map +1 -1
  168. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.d.ts +7 -7
  169. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js +41 -39
  170. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js.map +1 -1
  171. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.d.ts +27 -27
  172. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js +231 -229
  173. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js.map +1 -1
  174. package/dist/lib/widgets/renderers/querypanel/condition_renderer.d.ts +48 -48
  175. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js +509 -507
  176. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js.map +1 -1
  177. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.d.ts +13 -13
  178. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js +108 -106
  179. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js.map +1 -1
  180. package/dist/lib/widgets/renderers/querypanel/expression_renderer.d.ts +28 -28
  181. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js +91 -89
  182. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js.map +1 -1
  183. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.d.ts +14 -14
  184. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js +165 -163
  185. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js.map +1 -1
  186. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.d.ts +35 -35
  187. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js +317 -315
  188. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js.map +1 -1
  189. package/dist/lib/widgets/renderers/querypanel/operator_renderer.d.ts +19 -19
  190. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js +95 -93
  191. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js.map +1 -1
  192. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.d.ts +27 -27
  193. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js +237 -235
  194. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js.map +1 -1
  195. package/dist/lib/widgets/renderers/querypanel/text_renderer.d.ts +11 -11
  196. package/dist/lib/widgets/renderers/querypanel/text_renderer.js +36 -36
  197. package/dist/lib/widgets/renderers/querypanel/text_renderer.js.map +1 -1
  198. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.d.ts +26 -26
  199. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js +163 -163
  200. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js.map +1 -1
  201. package/dist/lib/widgets/result_facets_panel.d.ts +64 -64
  202. package/dist/lib/widgets/result_facets_panel.js +503 -501
  203. package/dist/lib/widgets/result_facets_panel.js.map +1 -1
  204. package/dist/lib/widgets/sorting_bar.d.ts +32 -34
  205. package/dist/lib/widgets/sorting_bar.js +245 -328
  206. package/dist/lib/widgets/sorting_bar.js.map +1 -1
  207. package/dist/lib/widgets/statement_panel.d.ts +21 -21
  208. package/dist/lib/widgets/statement_panel.js +60 -58
  209. package/dist/lib/widgets/statement_panel.js.map +1 -1
  210. package/dist/lib/widgets/widget_options.d.ts +433 -429
  211. package/dist/lib/widgets/widget_options.js +1 -0
  212. package/package.json +25 -25
  213. package/webpack.config.js +31 -24
  214. package/dist/browser/eq.community.min.css.map +0 -1
  215. 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