@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,818 +1,820 @@
1
- var __spreadArrays = (this && this.__spreadArrays) || function () {
2
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
3
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
4
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
5
- r[k] = a[j];
6
- return r;
7
- };
8
- import { SortDirection, QueryChangeAction, i18n } from '@easyquery/core';
9
- import { eqDragManager, DropEffect, createBrowserEvent, domel } from '@easydata/ui';
10
- import { eqCssPrefix } from '../../../utils/utils';
11
- import { PopupMenu } from '../../../utils/popup_menu';
12
- import { browserUtils } from '../../../utils/browser_utils';
13
- import { safeFocus } from '../../../utils/utils';
14
- export var ColumnAction;
15
- (function (ColumnAction) {
16
- ColumnAction[ColumnAction["Enable"] = 0] = "Enable";
17
- ColumnAction[ColumnAction["Delete"] = 1] = "Delete";
18
- ColumnAction[ColumnAction["Hidden"] = 2] = "Hidden";
19
- ColumnAction[ColumnAction["SortingNone"] = 3] = "SortingNone";
20
- ColumnAction[ColumnAction["SortingAsc"] = 4] = "SortingAsc";
21
- ColumnAction[ColumnAction["SortingDesc"] = 5] = "SortingDesc";
22
- ColumnAction[ColumnAction["MoveTop"] = 6] = "MoveTop";
23
- ColumnAction[ColumnAction["MoveUp"] = 7] = "MoveUp";
24
- ColumnAction[ColumnAction["MoveDown"] = 8] = "MoveDown";
25
- ColumnAction[ColumnAction["MoveBottom"] = 9] = "MoveBottom";
26
- ColumnAction[ColumnAction["Menu"] = 10] = "Menu";
27
- ColumnAction[ColumnAction["Type"] = 11] = "Type";
28
- ColumnAction[ColumnAction["Format"] = 12] = "Format";
29
- })(ColumnAction || (ColumnAction = {}));
30
- var ColumnRendererCP = /** @class */ (function () {
31
- function ColumnRendererCP(panel, column, slot) {
32
- this.functionMenu = null;
33
- this.formatsMenu = null;
34
- this.buttonMenu = null;
35
- this.isMouseOverBlock = false;
36
- this.keepShowingButtons = false;
37
- this.panel = panel;
38
- this.column = column;
39
- this.element = slot;
40
- }
41
- Object.defineProperty(ColumnRendererCP.prototype, "cssPrefix", {
42
- get: function () {
43
- return 'eqjs-qc';
44
- },
45
- enumerable: true,
46
- configurable: true
47
- });
48
- ColumnRendererCP.prototype.render = function () {
49
- var _this = this;
50
- this.baseAttr = this.getAttribute();
51
- if (this.getButtonsToShow().indexOf("sorting") >= 0 && this.column.enabled) {
52
- this.sortingButton = this.renderSoringButton(this.column.sorting);
53
- if (this.column.sorting !== SortDirection.None) {
54
- this.sortingButton.style.display = 'block';
55
- }
56
- }
57
- var builder = domel('div');
58
- builder.data('id', this.column.id);
59
- if (this.element) {
60
- this.element.parentNode
61
- .replaceChild(builder.toDOM(), this.element);
62
- }
63
- this.element = builder.toDOM();
64
- if (this.panel.options.allowDragDrop && !browserUtils.isMobileMode()) {
65
- eqDragManager.registerDraggableItem({
66
- element: this.element,
67
- scope: "entityAttrSort",
68
- data: { column: this.column },
69
- beforeDragStart: function () {
70
- _this.hideButtons();
71
- },
72
- renderer: function (dragImage) {
73
- dragImage.innerHTML = '';
74
- var attrLabel = document.createElement('span');
75
- attrLabel.innerText = _this.column.caption;
76
- dragImage.classList.add('eqjs-sortable-helper');
77
- dragImage.appendChild(attrLabel);
78
- },
79
- onDragStart: function (ev) {
80
- _this.element.style.display = 'none';
81
- ev.dropEffect = DropEffect.Allow;
82
- },
83
- onDragEnd: function (ev) {
84
- if (!ev.data.finishedSuccessfully) {
85
- _this.element.style.removeProperty('display');
86
- }
87
- }
88
- });
89
- }
90
- if (this.isEditable()) {
91
- this.createFunctionMenu();
92
- this.createFormatsMenu();
93
- }
94
- this.createButtonMenu();
95
- builder
96
- .addClass(this.getClassesToAdd())
97
- .addClass(browserUtils.getMobileCssClass())
98
- .addChildElement(this.renderCheckbox())
99
- //start sort button
100
- .addChild('div', function (builder) { return builder
101
- .addClass(eqCssPrefix + "-button-placeholder", _this.cssPrefix + "-button-placeholder", _this.cssPrefix + "-colelement", _this.cssPrefix + "-sortbutton-placeholder")
102
- .addChildElement(_this.sortingButton); })
103
- // end sort button
104
- .addChildElement(this.renderExpressionBlock());
105
- if (this.panel.options.showColumnTitles !== false && !browserUtils.isMobileMode()) {
106
- builder
107
- .addChildElement(this.renderCaptionBlock());
108
- }
109
- builder
110
- //start buttons
111
- .addChild('div', function (builder) {
112
- builder
113
- .addClass(eqCssPrefix + "-column-buttonsBlock", _this.cssPrefix + "-buttonsBlock")
114
- .addClass(browserUtils.getMobileCssClass());
115
- //start enable button
116
- if (_this.getButtonsToShow().indexOf("enable") >= 0 && !_this.column.isReadOnly()) {
117
- builder.addChildElement(_this.renderEnabledButton());
118
- }
119
- //end enable button
120
- //start aggr func button
121
- if (_this.getButtonsToShow().indexOf("type") >= 0 && _this.column.enabled) {
122
- builder.addChildElement(_this.renderColumnTypeButton());
123
- }
124
- //end aggr func button
125
- //start format selector button
126
- if (_this.getButtonsToShow().indexOf("format") >= 0 && _this.column.enabled) {
127
- builder.addChildElement(_this.renderColumnFormatButton());
128
- }
129
- //end format selector button
130
- //start delete button
131
- if (_this.getButtonsToShow().indexOf("delete") >= 0 && !_this.column.isReadOnly()) {
132
- builder.addChildElement(_this.renderDeleteButton());
133
- }
134
- //end delete button
135
- //start menu button
136
- if (_this.getButtonsToShow().indexOf("menu") >= 0 && !_this.column.isReadOnly()) {
137
- builder.addChildElement(_this.renderMenuButton());
138
- }
139
- //end menu button
140
- });
141
- //end buttons
142
- if (!browserUtils.isMobileMode()) {
143
- //start event listeners
144
- builder
145
- .on('mouseenter', this.onMouseEnter.bind(this))
146
- .on('mouseleave', this.onMouseLeave.bind(this));
147
- //end event listeners
148
- }
149
- if (this.panel.options.accentActiveColumn || browserUtils.isMobileMode()) {
150
- builder
151
- .on('click', this.onMouseClick.bind(this)); //touchstart
152
- }
153
- if (this.panel.options.alwaysShowButtons) {
154
- this.showButtons();
155
- }
156
- return this.element;
157
- };
158
- ColumnRendererCP.prototype.onMouseClick = function (ev) {
159
- ev.stopPropagation();
160
- this.panel.toggleColumnPicked(this.column);
161
- this.adjustButtonsVisibility();
162
- if (!browserUtils.isMobileMode()) {
163
- this.element.dispatchEvent(createBrowserEvent("mouseenter"));
164
- }
165
- return false;
166
- };
167
- ColumnRendererCP.prototype.fireColumnChanged = function () {
168
- this.column.fireChangedEvent();
169
- };
170
- ColumnRendererCP.prototype.refresh = function () {
171
- this.render();
172
- };
173
- ColumnRendererCP.prototype.getAttribute = function () {
174
- var model = this.panel.getContext().getModel();
175
- return model.getAttributeByIdSafe(this.column.expr.value);
176
- };
177
- ColumnRendererCP.prototype.renderCaptionBlock = function () {
178
- var _this = this;
179
- if (!this.column.caption || this.column.caption == '') {
180
- this.column.caption = this.getDefaultColumnCaption();
181
- }
182
- var builder = domel('div')
183
- .addClass(this.cssPrefix + "-colelement", this.cssPrefix + "-captionelement")
184
- .addClass(browserUtils.getMobileCssClass());
185
- if (this.isEditable()) {
186
- builder
187
- .addChild('a', function (builder) { return builder
188
- .attr('href', 'javascript:void(0)')
189
- .title(_this.column.caption)
190
- .text(_this.column.caption)
191
- .on('click', function (ev) {
192
- ev.stopPropagation();
193
- var element = ev.target;
194
- var inputEl = element.parentElement.querySelector('input');
195
- if (inputEl) {
196
- element.style.display = 'none';
197
- inputEl.style.removeProperty('display');
198
- inputEl.style.minWidth = "" + element.clientWidth;
199
- inputEl.focus();
200
- _this.element.setAttribute(eqDragManager.DRAG_DISABLED_ATTR, '');
201
- }
202
- return false;
203
- }); } //TO DO:add localization and input field
204
- )
205
- .addChild('input', function (builder) { return builder
206
- .hide()
207
- .value(_this.column.caption)
208
- .on('blur keydown', function (ev) {
209
- var isEndEvent = false;
210
- var save = true;
211
- if (ev instanceof KeyboardEvent) {
212
- // Enter
213
- if (ev.keyCode === 13) {
214
- isEndEvent = true;
215
- //ESC
216
- }
217
- else if (ev.keyCode === 27) {
218
- isEndEvent = true;
219
- save = false;
220
- }
221
- }
222
- else if (ev instanceof FocusEvent) {
223
- isEndEvent = true;
224
- }
225
- if (isEndEvent) {
226
- var inputEl = ev.target;
227
- var aEl = inputEl.parentElement.querySelector('a');
228
- if (aEl) {
229
- aEl.style.removeProperty('display');
230
- inputEl.style.display = 'none';
231
- }
232
- if (save && _this.column.caption !== inputEl.value) {
233
- _this.column.caption = inputEl.value;
234
- _this.fireColumnChanged();
235
- }
236
- else {
237
- inputEl.value = _this.column.caption;
238
- safeFocus(aEl);
239
- }
240
- _this.element.removeAttribute(eqDragManager.DRAG_DISABLED_ATTR);
241
- }
242
- return true;
243
- }); });
244
- }
245
- else {
246
- builder.addChild('span', function (b) {
247
- b.text(_this.column.caption)
248
- .title(_this.column.caption);
249
- });
250
- }
251
- return builder.toDOM();
252
- };
253
- ColumnRendererCP.prototype.renderSoringButton = function (sorting) {
254
- var _this = this;
255
- var sortButtonCssClass = eqCssPrefix + "-column-sortbutton";
256
- var sortButtonDirectionCssClass;
257
- switch (sorting) {
258
- case SortDirection.Ascending:
259
- sortButtonDirectionCssClass = sortButtonCssClass + "-asc";
260
- break;
261
- case SortDirection.Descending:
262
- sortButtonDirectionCssClass = sortButtonCssClass + "-desc";
263
- break;
264
- default:
265
- sortButtonDirectionCssClass = sortButtonCssClass + "-none";
266
- break;
267
- }
268
- if (!this.isEditable()) {
269
- if (sorting === SortDirection.Ascending
270
- || sorting === SortDirection.Descending)
271
- return domel('div')
272
- .addClass(sortButtonCssClass, eqCssPrefix + "-button", sortButtonDirectionCssClass)
273
- .title(i18n.getText('ButtonSorting'))
274
- .toDOM();
275
- return null;
276
- }
277
- return domel('div')
278
- .addClass(sortButtonCssClass, eqCssPrefix + "-button", sortButtonDirectionCssClass)
279
- .data("btnplaceholder", "")
280
- .title(i18n.getText('ButtonSorting'))
281
- .attr('tabIndex', '0')
282
- .on('click', function (ev) {
283
- ev.stopPropagation();
284
- _this.keepShowingButtons = true;
285
- var menu = _this.getUIS() ? _this.panel.sortMenu || _this.panel.moveMenu : _this.panel.moveMenu;
286
- menu.showMenu({
287
- anchor: _this.sortingButton,
288
- selectedIds: _this.column.isHidden() ? ['IsHidden'] : null,
289
- itemSelectedCallback: function (data, items) {
290
- var action;
291
- switch (data.id) {
292
- case "IsHidden":
293
- action = ColumnAction.Hidden;
294
- break;
295
- case "MoveTop":
296
- action = ColumnAction.MoveTop;
297
- break;
298
- case "MoveDown":
299
- action = ColumnAction.MoveDown;
300
- break;
301
- case "MoveUp":
302
- action = ColumnAction.MoveUp;
303
- break;
304
- case "MoveBottom":
305
- action = ColumnAction.MoveBottom;
306
- break;
307
- case "None":
308
- action = ColumnAction.SortingNone;
309
- break;
310
- case "Ascending":
311
- action = ColumnAction.SortingAsc;
312
- break;
313
- case "Descending":
314
- action = ColumnAction.SortingDesc;
315
- break;
316
- }
317
- _this.buttonMenuHandler(action, null);
318
- },
319
- menuClosedCallback: function () {
320
- _this.keepShowingButtons = false;
321
- if (!_this.isMouseOverBlock) {
322
- _this.leaveButtonBlock();
323
- }
324
- }
325
- });
326
- })
327
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
328
- evt.target.click();
329
- } })
330
- .toDOM();
331
- };
332
- ColumnRendererCP.prototype.renderCheckbox = function () {
333
- var _this = this;
334
- if (this.panel.options.showCheckboxes && !this.column.isReadOnly()) {
335
- return domel("div")
336
- .title(i18n.getText('CmdToggleEnable'))
337
- .attr('tabIndex', '0')
338
- .addClass(this.cssPrefix + "-colelement " + this.cssPrefix + "-column-checkbox")
339
- .addClass("" + (this.column.enabled ? 'enabled' : ''))
340
- .on('click', function () {
341
- _this.column.enabled = !_this.column.enabled;
342
- _this.column.fireChangedEvent();
343
- return false;
344
- })
345
- .on('keypress', function (evt) { if ([13, 32].includes(evt.keyCode)) {
346
- evt.target.click();
347
- } })
348
- .toDOM();
349
- }
350
- else {
351
- return null;
352
- }
353
- };
354
- ColumnRendererCP.prototype.renderDeleteButton = function () {
355
- var _this = this;
356
- return domel('div')
357
- .addClass(eqCssPrefix + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-deletebutton-placeholder")
358
- .data("btnplaceholder", "")
359
- .addChild('div', function (b) { return b
360
- .addClass(eqCssPrefix + "-button", eqCssPrefix + "-column-button", eqCssPrefix + "-column-button-delete")
361
- .title(i18n.getText('CmdDelete'))
362
- .attr('tabIndex', '0')
363
- .on('click', function (ev) { return _this.buttonMenuHandler(ColumnAction.Delete, ev); }) //touchstart
364
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
365
- evt.target.click();
366
- } }); })
367
- .toDOM();
368
- };
369
- ColumnRendererCP.prototype.renderMenuButton = function () {
370
- var _this = this;
371
- return domel('div')
372
- .addClass(eqCssPrefix + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-menubutton-placeholder")
373
- .data("btnplaceholder", "")
374
- .addChild('div', function (b) { return b
375
- .addClass(eqCssPrefix + "-button", eqCssPrefix + "-column-button", eqCssPrefix + "-column-button-menu")
376
- .title(i18n.getText('ButtonMenu'))
377
- .attr('tabIndex', '0')
378
- .on('click', function (evt) { return _this.buttonMenuHandler(ColumnAction.Menu, evt); }) //touchstart
379
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
380
- evt.target.click();
381
- } }); })
382
- .toDOM();
383
- };
384
- ColumnRendererCP.prototype.getDefaultColumnCaption = function () {
385
- return this.getDefaultTitleText(this.baseAttr);
386
- };
387
- ColumnRendererCP.prototype.getDefaultTitleText = function (attr) {
388
- return this.getAttributeCaption(attr, this.panel.options.titleElementFormat);
389
- };
390
- ColumnRendererCP.prototype.getAttributeCaption = function (attr, format) {
391
- format = format || this.panel.options.attrElementFormat;
392
- var model = this.panel.getContext().getModel();
393
- return model.getAttributeText(attr, format);
394
- };
395
- ColumnRendererCP.prototype.getClassesToAdd = function () {
396
- var result = "";
397
- result += this.column.enabled ? '' : " " + this.cssPrefix + "-disabled";
398
- if (this.column.enabled) {
399
- result += this.column.isReadOnly() ? " " + this.cssPrefix + "-readonly" : '';
400
- }
401
- result += this.column.isHidden() ? " " + this.cssPrefix + "-hidden" : '';
402
- return result;
403
- };
404
- ColumnRendererCP.prototype.renderColumnTypeButton = function () {
405
- var _this = this;
406
- return (this.isEditable() && this.panel.options.allowAggrColumns !== false)
407
- ? domel('div')
408
- .addClass(eqCssPrefix + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-typebutton-placeholder", this.cssPrefix + "-button-active")
409
- .data("btnplaceholder", "")
410
- .addChild('div', function (b) { return b
411
- .addClass(eqCssPrefix + "-button", eqCssPrefix + "-column-button", eqCssPrefix + "-column-button-type")
412
- .title(i18n.getText('ButtonToAggr'))
413
- .attr('tabIndex', '0')
414
- .on('click', function (ev) {
415
- ev.stopPropagation();
416
- _this.keepShowingButtons = true;
417
- _this.changeTypeHandler(ev);
418
- })
419
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
420
- evt.target.click();
421
- } }); })
422
- .toDOM()
423
- : null;
424
- };
425
- ColumnRendererCP.prototype.renderColumnFormatButton = function () {
426
- var _this = this;
427
- var formatItems = this.getFormatsMenuItems();
428
- return (this.isEditable() && this.panel.options.allowDisplayFormatChange !== false && formatItems.length > 1)
429
- ? domel('div')
430
- .addClass(eqCssPrefix + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-formatbutton-placeholder", this.cssPrefix + "-button-active")
431
- .data("btnplaceholder", "")
432
- .addChild('div', function (b) { return b
433
- .addClass(eqCssPrefix + "-button", eqCssPrefix + "-column-button", eqCssPrefix + "-column-button-format")
434
- .title(i18n.getText('ButtonFormat'))
435
- .attr('tabIndex', '0')
436
- .on('click', function (ev) {
437
- ev.stopPropagation();
438
- _this.keepShowingButtons = true;
439
- _this.changeFormatHandler(ev);
440
- })
441
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
442
- evt.target.click();
443
- } }); })
444
- .toDOM()
445
- : null;
446
- };
447
- ColumnRendererCP.prototype.renderEnabledButton = function () {
448
- var _this = this;
449
- return domel('div')
450
- .addClass(eqCssPrefix + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-enablebutton-placeholder", this.cssPrefix + "-button-active")
451
- .data("btnplaceholder", "")
452
- .addChild('div', function (b) { return b
453
- .addClass(eqCssPrefix + "-button", eqCssPrefix + "-column-button", eqCssPrefix + "-column-button-enable")
454
- .title(i18n.getText('CmdToggleEnable'))
455
- .addClass(_this.column.enabled ? 'enabled' : '')
456
- .attr('tabIndex', '0')
457
- .on('click', function (evt) { return _this.buttonMenuHandler(ColumnAction.Enable, evt); }) //touchstart
458
- .on('keypress', function (evt) { if (evt.keyCode == 13) {
459
- evt.target.click();
460
- } }); }).toDOM();
461
- };
462
- ColumnRendererCP.prototype.isEditable = function () {
463
- return this.column.enabled && !this.column.isReadOnly();
464
- };
465
- ColumnRendererCP.prototype.changeFormatHandler = function (ev) {
466
- var _this = this;
467
- var formats = this.panel
468
- .getContext()
469
- .getModel()
470
- .getDisplayFormatsForType(this.column.getDataType());
471
- var itemId = '{0:__default}';
472
- if (formats.filter(function (f) { return f.format == _this.column.displayFormat; }).length > 0) {
473
- itemId = this.column.displayFormat;
474
- }
475
- this.formatsMenu.showMenu({
476
- anchor: ev.target,
477
- selectedIds: itemId,
478
- itemSelectedCallback: function (data, items) {
479
- if (data.id != itemId) {
480
- if (data.id == '{0:__default}') {
481
- _this.column.displayFormat = '';
482
- }
483
- else {
484
- _this.column.displayFormat = data.id;
485
- }
486
- _this.column.fireChangedEvent();
487
- }
488
- return false;
489
- },
490
- menuClosedCallback: function () {
491
- _this.keepShowingButtons = false;
492
- if (!_this.isMouseOverBlock) {
493
- _this.element.dispatchEvent(createBrowserEvent('mouseleave'));
494
- }
495
- }
496
- });
497
- };
498
- ColumnRendererCP.prototype.getUIS = function () {
499
- return this.panel
500
- .getContext().getModel()
501
- .checkAttrProperty(this.column.expr.value, "useInSorting");
502
- };
503
- ColumnRendererCP.prototype.onMouseEnter = function (e) {
504
- this.isMouseOverBlock = true;
505
- this.enterButtonBlock();
506
- e.stopPropagation();
507
- return false;
508
- };
509
- ColumnRendererCP.prototype.onMouseLeave = function (e) {
510
- this.isMouseOverBlock = false;
511
- this.leaveButtonBlock();
512
- e.stopPropagation();
513
- return false;
514
- };
515
- ColumnRendererCP.prototype.isColumnActive = function () {
516
- return this.element.classList.contains("active");
517
- };
518
- ColumnRendererCP.prototype.hideButtons = function () {
519
- domel(this.element).data("show-buttons", null);
520
- };
521
- ColumnRendererCP.prototype.showButtons = function () {
522
- domel(this.element).data("show-buttons", "");
523
- };
524
- ColumnRendererCP.prototype.adjustButtonsVisibility = function () {
525
- if (this.panel.options.alwaysShowButtons ||
526
- ((this.panel.options.accentActiveColumn || browserUtils.isMobileMode())
527
- && this.isColumnActive())) {
528
- this.showButtons();
529
- }
530
- };
531
- ColumnRendererCP.prototype.enterButtonBlock = function () {
532
- this.showButtons();
533
- };
534
- ColumnRendererCP.prototype.leaveButtonBlock = function () {
535
- if (!this.keepShowingButtons && this.panel.options.alwaysShowButtons !== true && (!this.isColumnActive() || this.panel.options.accentActiveColumn != true)) {
536
- this.hideButtons();
537
- }
538
- };
539
- ColumnRendererCP.prototype.createFunctionMenu = function () {
540
- var items = [];
541
- var funcs = this.panel.getContext().getModel().getAggrFunctions();
542
- var funcAllowed = true;
543
- var item = null;
544
- var colDataType = this.column.getDataType();
545
- var funcCaption;
546
- for (var _i = 0, funcs_1 = funcs; _i < funcs_1.length; _i++) {
547
- var func = funcs_1[_i];
548
- if (!func)
549
- continue;
550
- var toInclude = func.getAppliedTypesOrDefault().indexOf(colDataType) >= 0;
551
- if (this.column.expr.func === func.id && !toInclude) {
552
- funcAllowed = false;
553
- }
554
- if (toInclude) {
555
- funcCaption = this.panel.getContext().getModel()
556
- .getAggrFunctionCaption(func.id);
557
- item = {
558
- id: func.id,
559
- text: funcCaption
560
- };
561
- items.push(item);
562
- }
563
- }
564
- if (!funcAllowed) {
565
- this.column.expr.func = items[0].id;
566
- }
567
- //Add "Custom Expression" menu
568
- var columnsPanel = this.panel;
569
- if (columnsPanel.areCustomExpressionsAllowed()) {
570
- item = {
571
- id: 'CustomSqlDivider',
572
- text: '---'
573
- };
574
- items.push(item);
575
- funcCaption = i18n.getText('CustomExpression');
576
- item = {
577
- id: 'CUSTOMSQL',
578
- text: funcCaption
579
- };
580
- items.push(item);
581
- }
582
- var menuId = this.column.id;
583
- if (menuId) {
584
- menuId += '-FunctionsMenu';
585
- }
586
- var menuOptions = {
587
- items: items,
588
- id: menuId,
589
- searchBoxAlwaysShown: false,
590
- domWriteItemsId: true //this.panel.options.domWriteItemsId
591
- };
592
- this.functionMenu = new PopupMenu(menuOptions);
593
- };
594
- ColumnRendererCP.prototype.createFormatsMenu = function () {
595
- if (this.panel.options.allowDisplayFormatChange == false)
596
- return;
597
- var menuId = this.column.id;
598
- if (menuId) {
599
- menuId += '-FormatsMenu';
600
- }
601
- var items = this.getFormatsMenuItems();
602
- var menuOptions = {
603
- items: items,
604
- id: menuId,
605
- searchBoxAlwaysShown: false,
606
- showSelected: true,
607
- domWriteItemsId: true //this.panel.options.domWriteItemsId
608
- };
609
- this.formatsMenu = new PopupMenu(menuOptions);
610
- };
611
- ColumnRendererCP.prototype.getFormatsMenuItems = function () {
612
- var formats = this.panel.getContext().getModel()
613
- .getDisplayFormatsForType(this.column.getDataType());
614
- return [{ id: '{0:__default}', text: "Default" }]
615
- .concat(formats.map(function (format) { return ({ id: format.format, text: i18n.getText("DisplayFormats", format.name) || format.name }); }));
616
- };
617
- ColumnRendererCP.prototype.getButtonsToShow = function () {
618
- return this.panel.options.buttons && Array.isArray(this.panel.options.buttons) ? this.panel.options.buttons : ["enable", "delete", "type", "sorting", "format"];
619
- };
620
- ColumnRendererCP.prototype.buttonMenuHandler = function (action, evt) {
621
- var _this = this;
622
- switch (action) {
623
- case ColumnAction.Delete:
624
- var curQuery = this.column.getQuery();
625
- curQuery.removeColumn(this.column, this.panel);
626
- curQuery.fireColumnsChangedEvent(QueryChangeAction.Delete, this.column);
627
- break;
628
- case ColumnAction.Enable:
629
- this.column.enabled = !this.column.enabled;
630
- this.fireColumnChanged();
631
- break;
632
- case ColumnAction.Hidden:
633
- this.column.setHidden(!this.column.isHidden());
634
- this.fireColumnChanged();
635
- break;
636
- case ColumnAction.MoveTop:
637
- this.panel.moveColumn(this.column, "MoveTop");
638
- break;
639
- case ColumnAction.MoveBottom:
640
- this.panel.moveColumn(this.column, "MoveBottom");
641
- break;
642
- case ColumnAction.MoveUp:
643
- this.panel.moveColumn(this.column, "MoveUp");
644
- break;
645
- case ColumnAction.MoveDown:
646
- this.panel.moveColumn(this.column, "MoveDown");
647
- break;
648
- case ColumnAction.SortingAsc:
649
- this.column.sorting = SortDirection.Ascending;
650
- this.column.fireChangedEvent();
651
- break;
652
- case ColumnAction.SortingDesc:
653
- this.column.sorting = SortDirection.Descending;
654
- this.column.fireChangedEvent();
655
- break;
656
- case ColumnAction.SortingNone:
657
- this.column.sorting = SortDirection.None;
658
- this.column.fireChangedEvent();
659
- break;
660
- case ColumnAction.Menu:
661
- var colMenu = this.buttonMenu;
662
- this.keepShowingButtons = true;
663
- colMenu.showMenu({
664
- anchor: evt ? evt.target : null,
665
- selectedIds: this.getButtonMenuSelectedItems(),
666
- itemSelectedCallback: function (item) {
667
- var action = item.id;
668
- switch (item.id) {
669
- case "enable":
670
- action = ColumnAction.Enable;
671
- break;
672
- case "delete":
673
- action = ColumnAction.Delete;
674
- break;
675
- case "hidden":
676
- action = ColumnAction.Hidden;
677
- break;
678
- case "MoveTop":
679
- action = ColumnAction.MoveTop;
680
- break;
681
- case "MoveBottom":
682
- action = ColumnAction.MoveBottom;
683
- break;
684
- case "MoveUp":
685
- action = ColumnAction.MoveUp;
686
- break;
687
- case "MoveDown":
688
- action = ColumnAction.MoveDown;
689
- break;
690
- case "None":
691
- action = ColumnAction.SortingNone;
692
- break;
693
- case "Ascending":
694
- action = ColumnAction.SortingAsc;
695
- break;
696
- case "Descending":
697
- action = ColumnAction.SortingAsc;
698
- break;
699
- }
700
- _this.buttonMenuHandler(action, evt);
701
- },
702
- itemFilterCallback: function (item) {
703
- var result = _this.column.enabled || item.id === "__group" || item.id === "enable" || item.id === "delete";
704
- return result;
705
- },
706
- menuClosedCallback: function () {
707
- _this.keepShowingButtons = false;
708
- if (!_this.isMouseOverBlock)
709
- _this.leaveButtonBlock();
710
- }
711
- });
712
- break;
713
- default:
714
- if (!this.processFormatsButtonMenuItems(action, evt))
715
- this.processExtraButtonMenuItems(action, evt);
716
- break;
717
- }
718
- evt && evt.stopPropagation();
719
- return false;
720
- };
721
- ColumnRendererCP.prototype.createButtonMenu = function () {
722
- if (!this.buttonMenu) {
723
- var menuId = this.column.id;
724
- if (menuId) {
725
- menuId += '-ButtonMenu';
726
- }
727
- var common = [];
728
- common.push({
729
- id: "enable",
730
- text: i18n.getText('MenuEnable')
731
- });
732
- if (this.panel.options.allowHiddenColumns) {
733
- common.push({
734
- id: "hidden",
735
- text: i18n.getText('CmdHiddenColumn')
736
- });
737
- }
738
- common.push({
739
- id: "delete",
740
- text: i18n.getText('CmdDelete')
741
- });
742
- var items = [];
743
- items.push({
744
- id: '__group',
745
- text: ' ',
746
- items: common
747
- });
748
- var sortItems = this.panel.options.allowSorting ? __spreadArrays(this.panel.getSortMenuList(), this.panel.getMoveMenuList()) :
749
- this.panel.getMoveMenuList();
750
- items.push({
751
- id: '__group',
752
- text: i18n.getText('CmdGroupSort'),
753
- items: sortItems
754
- });
755
- var extra = this.getExtraButtonMenuItems();
756
- if (extra && Array.isArray(extra)) {
757
- items = __spreadArrays(items, extra);
758
- }
759
- var formatItems = this.getFormatsMenuItems();
760
- if (formatItems.length > 1) {
761
- items.push({
762
- id: '__group',
763
- text: i18n.getText('CmdGroupFormat'),
764
- items: formatItems
765
- });
766
- }
767
- var menuOptions = {
768
- items: items,
769
- id: menuId,
770
- searchBoxAlwaysShown: false,
771
- domWriteItemsId: true,
772
- showSelected: true
773
- };
774
- this.buttonMenu = new PopupMenu(menuOptions);
775
- }
776
- };
777
- ColumnRendererCP.prototype.processFormatsButtonMenuItems = function (action, evt) {
778
- var formats = this.panel
779
- .getContext().getModel()
780
- .getDisplayFormatsForType(this.column.getDataType());
781
- if (action == '{0:__default}') {
782
- this.column.displayFormat = '';
783
- }
784
- else if (formats.filter(function (f) { return f.format == action; }).length > 0) {
785
- this.column.displayFormat = action;
786
- }
787
- else {
788
- return false;
789
- }
790
- this.column.fireChangedEvent();
791
- return true;
792
- };
793
- ColumnRendererCP.prototype.getButtonMenuSelectedItems = function () {
794
- var _this = this;
795
- var arrSelected = [];
796
- if (this.column.enabled) {
797
- arrSelected.push("enable");
798
- }
799
- ;
800
- if (this.column.isHidden()) {
801
- arrSelected.push("hidden");
802
- }
803
- ;
804
- var formats = this.panel
805
- .getContext()
806
- .getModel()
807
- .getDisplayFormatsForType(this.column.getDataType());
808
- var formatId = '{0:__default}';
809
- if (formats.filter(function (f) { return f.format == _this.column.displayFormat; }).length > 0) {
810
- formatId = this.column.displayFormat;
811
- }
812
- arrSelected.push(formatId);
813
- return arrSelected;
814
- };
815
- return ColumnRendererCP;
816
- }());
817
- export { ColumnRendererCP };
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import { SortDirection, QueryChangeAction, i18n } from '@easyquery/core';
11
+ import { eqDragManager, DropEffect, createBrowserEvent, domel } from '@easydata/ui';
12
+ import { eqCssPrefix } from '../../../utils/utils';
13
+ import { PopupMenu } from '../../../utils/popup_menu';
14
+ import { browserUtils } from '../../../utils/browser_utils';
15
+ import { safeFocus } from '../../../utils/utils';
16
+ export var ColumnAction;
17
+ (function (ColumnAction) {
18
+ ColumnAction[ColumnAction["Enable"] = 0] = "Enable";
19
+ ColumnAction[ColumnAction["Delete"] = 1] = "Delete";
20
+ ColumnAction[ColumnAction["Hidden"] = 2] = "Hidden";
21
+ ColumnAction[ColumnAction["SortingNone"] = 3] = "SortingNone";
22
+ ColumnAction[ColumnAction["SortingAsc"] = 4] = "SortingAsc";
23
+ ColumnAction[ColumnAction["SortingDesc"] = 5] = "SortingDesc";
24
+ ColumnAction[ColumnAction["MoveTop"] = 6] = "MoveTop";
25
+ ColumnAction[ColumnAction["MoveUp"] = 7] = "MoveUp";
26
+ ColumnAction[ColumnAction["MoveDown"] = 8] = "MoveDown";
27
+ ColumnAction[ColumnAction["MoveBottom"] = 9] = "MoveBottom";
28
+ ColumnAction[ColumnAction["Menu"] = 10] = "Menu";
29
+ ColumnAction[ColumnAction["Type"] = 11] = "Type";
30
+ ColumnAction[ColumnAction["Format"] = 12] = "Format";
31
+ })(ColumnAction || (ColumnAction = {}));
32
+ var ColumnRendererCP = /** @class */ (function () {
33
+ function ColumnRendererCP(panel, column, slot) {
34
+ this.functionMenu = null;
35
+ this.formatsMenu = null;
36
+ this.buttonMenu = null;
37
+ this.isMouseOverBlock = false;
38
+ this.keepShowingButtons = false;
39
+ this.panel = panel;
40
+ this.column = column;
41
+ this.element = slot;
42
+ }
43
+ Object.defineProperty(ColumnRendererCP.prototype, "cssPrefix", {
44
+ get: function () {
45
+ return 'eqjs-qc';
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ ColumnRendererCP.prototype.render = function () {
51
+ var _this = this;
52
+ this.baseAttr = this.getAttribute();
53
+ if (this.getButtonsToShow().indexOf("sorting") >= 0 && this.column.enabled) {
54
+ this.sortingButton = this.renderSoringButton(this.column.sorting);
55
+ if (this.column.sorting !== SortDirection.None) {
56
+ this.sortingButton.style.display = 'block';
57
+ }
58
+ }
59
+ var builder = domel('div');
60
+ builder.data('id', this.column.id);
61
+ if (this.element) {
62
+ this.element.parentNode
63
+ .replaceChild(builder.toDOM(), this.element);
64
+ }
65
+ this.element = builder.toDOM();
66
+ if (this.panel.options.allowDragDrop && !browserUtils.isMobileMode()) {
67
+ eqDragManager.registerDraggableItem({
68
+ element: this.element,
69
+ scope: "entityAttrSort",
70
+ data: { column: this.column },
71
+ beforeDragStart: function () {
72
+ _this.hideButtons();
73
+ },
74
+ renderer: function (dragImage) {
75
+ dragImage.innerHTML = '';
76
+ var attrLabel = document.createElement('span');
77
+ attrLabel.innerText = _this.column.caption;
78
+ dragImage.classList.add('eqjs-sortable-helper');
79
+ dragImage.appendChild(attrLabel);
80
+ },
81
+ onDragStart: function (ev) {
82
+ _this.element.style.display = 'none';
83
+ ev.dropEffect = DropEffect.Allow;
84
+ },
85
+ onDragEnd: function (ev) {
86
+ if (!ev.data.finishedSuccessfully) {
87
+ _this.element.style.removeProperty('display');
88
+ }
89
+ }
90
+ });
91
+ }
92
+ if (this.isEditable()) {
93
+ this.createFunctionMenu();
94
+ this.createFormatsMenu();
95
+ }
96
+ this.createButtonMenu();
97
+ builder
98
+ .addClass(this.getClassesToAdd())
99
+ .addClass(browserUtils.getMobileCssClass())
100
+ .addChildElement(this.renderCheckbox())
101
+ //start sort button
102
+ .addChild('div', function (builder) { return builder
103
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(_this.cssPrefix, "-button-placeholder"), "".concat(_this.cssPrefix, "-colelement"), "".concat(_this.cssPrefix, "-sortbutton-placeholder"))
104
+ .addChildElement(_this.sortingButton); })
105
+ // end sort button
106
+ .addChildElement(this.renderExpressionBlock());
107
+ if (this.panel.options.showColumnTitles !== false && !browserUtils.isMobileMode()) {
108
+ builder
109
+ .addChildElement(this.renderCaptionBlock());
110
+ }
111
+ builder
112
+ //start buttons
113
+ .addChild('div', function (builder) {
114
+ builder
115
+ .addClass("".concat(eqCssPrefix, "-column-buttonsBlock"), "".concat(_this.cssPrefix, "-buttonsBlock"))
116
+ .addClass(browserUtils.getMobileCssClass());
117
+ //start enable button
118
+ if (_this.getButtonsToShow().indexOf("enable") >= 0 && !_this.column.isReadOnly()) {
119
+ builder.addChildElement(_this.renderEnabledButton());
120
+ }
121
+ //end enable button
122
+ //start aggr func button
123
+ if (_this.getButtonsToShow().indexOf("type") >= 0 && _this.column.enabled) {
124
+ builder.addChildElement(_this.renderColumnTypeButton());
125
+ }
126
+ //end aggr func button
127
+ //start format selector button
128
+ if (_this.getButtonsToShow().indexOf("format") >= 0 && _this.column.enabled) {
129
+ builder.addChildElement(_this.renderColumnFormatButton());
130
+ }
131
+ //end format selector button
132
+ //start delete button
133
+ if (_this.getButtonsToShow().indexOf("delete") >= 0 && !_this.column.isReadOnly()) {
134
+ builder.addChildElement(_this.renderDeleteButton());
135
+ }
136
+ //end delete button
137
+ //start menu button
138
+ if (_this.getButtonsToShow().indexOf("menu") >= 0 && !_this.column.isReadOnly()) {
139
+ builder.addChildElement(_this.renderMenuButton());
140
+ }
141
+ //end menu button
142
+ });
143
+ //end buttons
144
+ if (!browserUtils.isMobileMode()) {
145
+ //start event listeners
146
+ builder
147
+ .on('mouseenter', this.onMouseEnter.bind(this))
148
+ .on('mouseleave', this.onMouseLeave.bind(this));
149
+ //end event listeners
150
+ }
151
+ if (this.panel.options.accentActiveColumn || browserUtils.isMobileMode()) {
152
+ builder
153
+ .on('click', this.onMouseClick.bind(this)); //touchstart
154
+ }
155
+ if (this.panel.options.alwaysShowButtons) {
156
+ this.showButtons();
157
+ }
158
+ return this.element;
159
+ };
160
+ ColumnRendererCP.prototype.onMouseClick = function (ev) {
161
+ ev.stopPropagation();
162
+ this.panel.toggleColumnPicked(this.column);
163
+ this.adjustButtonsVisibility();
164
+ if (!browserUtils.isMobileMode()) {
165
+ this.element.dispatchEvent(createBrowserEvent("mouseenter"));
166
+ }
167
+ return false;
168
+ };
169
+ ColumnRendererCP.prototype.fireColumnChanged = function () {
170
+ this.column.fireChangedEvent();
171
+ };
172
+ ColumnRendererCP.prototype.refresh = function () {
173
+ this.render();
174
+ };
175
+ ColumnRendererCP.prototype.getAttribute = function () {
176
+ var model = this.panel.getContext().getModel();
177
+ return model.getAttributeByIdSafe(this.column.expr.value);
178
+ };
179
+ ColumnRendererCP.prototype.renderCaptionBlock = function () {
180
+ var _this = this;
181
+ if (!this.column.caption || this.column.caption == '') {
182
+ this.column.caption = this.getDefaultColumnCaption();
183
+ }
184
+ var builder = domel('div')
185
+ .addClass("".concat(this.cssPrefix, "-colelement"), "".concat(this.cssPrefix, "-captionelement"))
186
+ .addClass(browserUtils.getMobileCssClass());
187
+ if (this.isEditable()) {
188
+ builder
189
+ .addChild('a', function (builder) { return builder
190
+ .attr('href', 'javascript:void(0)')
191
+ .title(_this.column.caption)
192
+ .text(_this.column.caption)
193
+ .on('click', function (ev) {
194
+ ev.stopPropagation();
195
+ var element = ev.target;
196
+ var inputEl = element.parentElement.querySelector('input');
197
+ if (inputEl) {
198
+ element.style.display = 'none';
199
+ inputEl.style.removeProperty('display');
200
+ inputEl.style.minWidth = "".concat(element.clientWidth);
201
+ inputEl.focus();
202
+ _this.element.setAttribute(eqDragManager.DRAG_DISABLED_ATTR, '');
203
+ }
204
+ return false;
205
+ }); } //TO DO:add localization and input field
206
+ )
207
+ .addChild('input', function (builder) { return builder
208
+ .hide()
209
+ .value(_this.column.caption)
210
+ .on('blur keydown', function (ev) {
211
+ var isEndEvent = false;
212
+ var save = true;
213
+ if (ev instanceof KeyboardEvent) {
214
+ // Enter
215
+ if (ev.keyCode === 13) {
216
+ isEndEvent = true;
217
+ //ESC
218
+ }
219
+ else if (ev.keyCode === 27) {
220
+ isEndEvent = true;
221
+ save = false;
222
+ }
223
+ }
224
+ else if (ev instanceof FocusEvent) {
225
+ isEndEvent = true;
226
+ }
227
+ if (isEndEvent) {
228
+ var inputEl = ev.target;
229
+ var aEl = inputEl.parentElement.querySelector('a');
230
+ if (aEl) {
231
+ aEl.style.removeProperty('display');
232
+ inputEl.style.display = 'none';
233
+ }
234
+ if (save && _this.column.caption !== inputEl.value) {
235
+ _this.column.caption = inputEl.value;
236
+ _this.fireColumnChanged();
237
+ }
238
+ else {
239
+ inputEl.value = _this.column.caption;
240
+ safeFocus(aEl);
241
+ }
242
+ _this.element.removeAttribute(eqDragManager.DRAG_DISABLED_ATTR);
243
+ }
244
+ return true;
245
+ }); });
246
+ }
247
+ else {
248
+ builder.addChild('span', function (b) {
249
+ b.text(_this.column.caption)
250
+ .title(_this.column.caption);
251
+ });
252
+ }
253
+ return builder.toDOM();
254
+ };
255
+ ColumnRendererCP.prototype.renderSoringButton = function (sorting) {
256
+ var _this = this;
257
+ var sortButtonCssClass = "".concat(eqCssPrefix, "-column-sortbutton");
258
+ var sortButtonDirectionCssClass;
259
+ switch (sorting) {
260
+ case SortDirection.Ascending:
261
+ sortButtonDirectionCssClass = "".concat(sortButtonCssClass, "-asc");
262
+ break;
263
+ case SortDirection.Descending:
264
+ sortButtonDirectionCssClass = "".concat(sortButtonCssClass, "-desc");
265
+ break;
266
+ default:
267
+ sortButtonDirectionCssClass = "".concat(sortButtonCssClass, "-none");
268
+ break;
269
+ }
270
+ if (!this.isEditable()) {
271
+ if (sorting === SortDirection.Ascending
272
+ || sorting === SortDirection.Descending)
273
+ return domel('div')
274
+ .addClass(sortButtonCssClass, "".concat(eqCssPrefix, "-button"), sortButtonDirectionCssClass)
275
+ .title(i18n.getText('ButtonSorting'))
276
+ .toDOM();
277
+ return null;
278
+ }
279
+ return domel('div')
280
+ .addClass(sortButtonCssClass, "".concat(eqCssPrefix, "-button"), sortButtonDirectionCssClass)
281
+ .data("btnplaceholder", "")
282
+ .title(i18n.getText('ButtonSorting'))
283
+ .attr('tabIndex', '0')
284
+ .on('click', function (ev) {
285
+ ev.stopPropagation();
286
+ _this.keepShowingButtons = true;
287
+ var menu = _this.getUIS() ? _this.panel.sortMenu || _this.panel.moveMenu : _this.panel.moveMenu;
288
+ menu.showMenu({
289
+ anchor: _this.sortingButton,
290
+ selectedIds: _this.column.isHidden() ? ['IsHidden'] : null,
291
+ itemSelectedCallback: function (data, items) {
292
+ var action;
293
+ switch (data.id) {
294
+ case "IsHidden":
295
+ action = ColumnAction.Hidden;
296
+ break;
297
+ case "MoveTop":
298
+ action = ColumnAction.MoveTop;
299
+ break;
300
+ case "MoveDown":
301
+ action = ColumnAction.MoveDown;
302
+ break;
303
+ case "MoveUp":
304
+ action = ColumnAction.MoveUp;
305
+ break;
306
+ case "MoveBottom":
307
+ action = ColumnAction.MoveBottom;
308
+ break;
309
+ case "None":
310
+ action = ColumnAction.SortingNone;
311
+ break;
312
+ case "Ascending":
313
+ action = ColumnAction.SortingAsc;
314
+ break;
315
+ case "Descending":
316
+ action = ColumnAction.SortingDesc;
317
+ break;
318
+ }
319
+ _this.buttonMenuHandler(action, null);
320
+ },
321
+ menuClosedCallback: function () {
322
+ _this.keepShowingButtons = false;
323
+ if (!_this.isMouseOverBlock) {
324
+ _this.leaveButtonBlock();
325
+ }
326
+ }
327
+ });
328
+ })
329
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
330
+ evt.target.click();
331
+ } })
332
+ .toDOM();
333
+ };
334
+ ColumnRendererCP.prototype.renderCheckbox = function () {
335
+ var _this = this;
336
+ if (this.panel.options.showCheckboxes && !this.column.isReadOnly()) {
337
+ return domel("div")
338
+ .title(i18n.getText('CmdToggleEnable'))
339
+ .attr('tabIndex', '0')
340
+ .addClass("".concat(this.cssPrefix, "-colelement ").concat(this.cssPrefix, "-column-checkbox"))
341
+ .addClass("".concat(this.column.enabled ? 'enabled' : ''))
342
+ .on('click', function () {
343
+ _this.column.enabled = !_this.column.enabled;
344
+ _this.column.fireChangedEvent();
345
+ return false;
346
+ })
347
+ .on('keypress', function (evt) { if ([13, 32].includes(evt.keyCode)) {
348
+ evt.target.click();
349
+ } })
350
+ .toDOM();
351
+ }
352
+ else {
353
+ return null;
354
+ }
355
+ };
356
+ ColumnRendererCP.prototype.renderDeleteButton = function () {
357
+ var _this = this;
358
+ return domel('div')
359
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-deletebutton-placeholder"))
360
+ .data("btnplaceholder", "")
361
+ .addChild('div', function (b) { return b
362
+ .addClass("".concat(eqCssPrefix, "-button"), "".concat(eqCssPrefix, "-column-button"), "".concat(eqCssPrefix, "-column-button-delete"))
363
+ .title(i18n.getText('CmdDelete'))
364
+ .attr('tabIndex', '0')
365
+ .on('click', function (ev) { return _this.buttonMenuHandler(ColumnAction.Delete, ev); }) //touchstart
366
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
367
+ evt.target.click();
368
+ } }); })
369
+ .toDOM();
370
+ };
371
+ ColumnRendererCP.prototype.renderMenuButton = function () {
372
+ var _this = this;
373
+ return domel('div')
374
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-menubutton-placeholder"))
375
+ .data("btnplaceholder", "")
376
+ .addChild('div', function (b) { return b
377
+ .addClass("".concat(eqCssPrefix, "-button"), "".concat(eqCssPrefix, "-column-button"), "".concat(eqCssPrefix, "-column-button-menu"))
378
+ .title(i18n.getText('ButtonMenu'))
379
+ .attr('tabIndex', '0')
380
+ .on('click', function (evt) { return _this.buttonMenuHandler(ColumnAction.Menu, evt); }) //touchstart
381
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
382
+ evt.target.click();
383
+ } }); })
384
+ .toDOM();
385
+ };
386
+ ColumnRendererCP.prototype.getDefaultColumnCaption = function () {
387
+ return this.getDefaultTitleText(this.baseAttr);
388
+ };
389
+ ColumnRendererCP.prototype.getDefaultTitleText = function (attr) {
390
+ return this.getAttributeCaption(attr, this.panel.options.titleElementFormat);
391
+ };
392
+ ColumnRendererCP.prototype.getAttributeCaption = function (attr, format) {
393
+ format = format || this.panel.options.attrElementFormat;
394
+ var model = this.panel.getContext().getModel();
395
+ return model.getAttributeText(attr, format);
396
+ };
397
+ ColumnRendererCP.prototype.getClassesToAdd = function () {
398
+ var result = "";
399
+ result += this.column.enabled ? '' : " ".concat(this.cssPrefix, "-disabled");
400
+ if (this.column.enabled) {
401
+ result += this.column.isReadOnly() ? " ".concat(this.cssPrefix, "-readonly") : '';
402
+ }
403
+ result += this.column.isHidden() ? " ".concat(this.cssPrefix, "-hidden") : '';
404
+ return result;
405
+ };
406
+ ColumnRendererCP.prototype.renderColumnTypeButton = function () {
407
+ var _this = this;
408
+ return (this.isEditable() && this.panel.options.allowAggrColumns !== false)
409
+ ? domel('div')
410
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-typebutton-placeholder"), "".concat(this.cssPrefix, "-button-active"))
411
+ .data("btnplaceholder", "")
412
+ .addChild('div', function (b) { return b
413
+ .addClass("".concat(eqCssPrefix, "-button"), "".concat(eqCssPrefix, "-column-button"), "".concat(eqCssPrefix, "-column-button-type"))
414
+ .title(i18n.getText('ButtonToAggr'))
415
+ .attr('tabIndex', '0')
416
+ .on('click', function (ev) {
417
+ ev.stopPropagation();
418
+ _this.keepShowingButtons = true;
419
+ _this.changeTypeHandler(ev);
420
+ })
421
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
422
+ evt.target.click();
423
+ } }); })
424
+ .toDOM()
425
+ : null;
426
+ };
427
+ ColumnRendererCP.prototype.renderColumnFormatButton = function () {
428
+ var _this = this;
429
+ var formatItems = this.getFormatsMenuItems();
430
+ return (this.isEditable() && this.panel.options.allowDisplayFormatChange !== false && formatItems.length > 1)
431
+ ? domel('div')
432
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-formatbutton-placeholder"), "".concat(this.cssPrefix, "-button-active"))
433
+ .data("btnplaceholder", "")
434
+ .addChild('div', function (b) { return b
435
+ .addClass("".concat(eqCssPrefix, "-button"), "".concat(eqCssPrefix, "-column-button"), "".concat(eqCssPrefix, "-column-button-format"))
436
+ .title(i18n.getText('ButtonFormat'))
437
+ .attr('tabIndex', '0')
438
+ .on('click', function (ev) {
439
+ ev.stopPropagation();
440
+ _this.keepShowingButtons = true;
441
+ _this.changeFormatHandler(ev);
442
+ })
443
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
444
+ evt.target.click();
445
+ } }); })
446
+ .toDOM()
447
+ : null;
448
+ };
449
+ ColumnRendererCP.prototype.renderEnabledButton = function () {
450
+ var _this = this;
451
+ return domel('div')
452
+ .addClass("".concat(eqCssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-button-placeholder"), "".concat(this.cssPrefix, "-enablebutton-placeholder"), "".concat(this.cssPrefix, "-button-active"))
453
+ .data("btnplaceholder", "")
454
+ .addChild('div', function (b) { return b
455
+ .addClass("".concat(eqCssPrefix, "-button"), "".concat(eqCssPrefix, "-column-button"), "".concat(eqCssPrefix, "-column-button-enable"))
456
+ .title(i18n.getText('CmdToggleEnable'))
457
+ .addClass(_this.column.enabled ? 'enabled' : '')
458
+ .attr('tabIndex', '0')
459
+ .on('click', function (evt) { return _this.buttonMenuHandler(ColumnAction.Enable, evt); }) //touchstart
460
+ .on('keypress', function (evt) { if (evt.keyCode == 13) {
461
+ evt.target.click();
462
+ } }); }).toDOM();
463
+ };
464
+ ColumnRendererCP.prototype.isEditable = function () {
465
+ return this.column.enabled && !this.column.isReadOnly();
466
+ };
467
+ ColumnRendererCP.prototype.changeFormatHandler = function (ev) {
468
+ var _this = this;
469
+ var formats = this.panel
470
+ .getContext()
471
+ .getModel()
472
+ .getDisplayFormatsForType(this.column.getDataType());
473
+ var itemId = '{0:__default}';
474
+ if (formats.filter(function (f) { return f.format == _this.column.displayFormat; }).length > 0) {
475
+ itemId = this.column.displayFormat;
476
+ }
477
+ this.formatsMenu.showMenu({
478
+ anchor: ev.target,
479
+ selectedIds: itemId,
480
+ itemSelectedCallback: function (data, items) {
481
+ if (data.id != itemId) {
482
+ if (data.id == '{0:__default}') {
483
+ _this.column.displayFormat = '';
484
+ }
485
+ else {
486
+ _this.column.displayFormat = data.id;
487
+ }
488
+ _this.column.fireChangedEvent();
489
+ }
490
+ return false;
491
+ },
492
+ menuClosedCallback: function () {
493
+ _this.keepShowingButtons = false;
494
+ if (!_this.isMouseOverBlock) {
495
+ _this.element.dispatchEvent(createBrowserEvent('mouseleave'));
496
+ }
497
+ }
498
+ });
499
+ };
500
+ ColumnRendererCP.prototype.getUIS = function () {
501
+ return this.panel
502
+ .getContext().getModel()
503
+ .checkAttrProperty(this.column.expr.value, "useInSorting");
504
+ };
505
+ ColumnRendererCP.prototype.onMouseEnter = function (e) {
506
+ this.isMouseOverBlock = true;
507
+ this.enterButtonBlock();
508
+ e.stopPropagation();
509
+ return false;
510
+ };
511
+ ColumnRendererCP.prototype.onMouseLeave = function (e) {
512
+ this.isMouseOverBlock = false;
513
+ this.leaveButtonBlock();
514
+ e.stopPropagation();
515
+ return false;
516
+ };
517
+ ColumnRendererCP.prototype.isColumnActive = function () {
518
+ return this.element.classList.contains("active");
519
+ };
520
+ ColumnRendererCP.prototype.hideButtons = function () {
521
+ domel(this.element).data("show-buttons", null);
522
+ };
523
+ ColumnRendererCP.prototype.showButtons = function () {
524
+ domel(this.element).data("show-buttons", "");
525
+ };
526
+ ColumnRendererCP.prototype.adjustButtonsVisibility = function () {
527
+ if (this.panel.options.alwaysShowButtons ||
528
+ ((this.panel.options.accentActiveColumn || browserUtils.isMobileMode())
529
+ && this.isColumnActive())) {
530
+ this.showButtons();
531
+ }
532
+ };
533
+ ColumnRendererCP.prototype.enterButtonBlock = function () {
534
+ this.showButtons();
535
+ };
536
+ ColumnRendererCP.prototype.leaveButtonBlock = function () {
537
+ if (!this.keepShowingButtons && this.panel.options.alwaysShowButtons !== true && (!this.isColumnActive() || this.panel.options.accentActiveColumn != true)) {
538
+ this.hideButtons();
539
+ }
540
+ };
541
+ ColumnRendererCP.prototype.createFunctionMenu = function () {
542
+ var items = [];
543
+ var funcs = this.panel.getContext().getModel().getAggrFunctions();
544
+ var funcAllowed = true;
545
+ var item = null;
546
+ var colDataType = this.column.getDataType();
547
+ var funcCaption;
548
+ for (var _i = 0, funcs_1 = funcs; _i < funcs_1.length; _i++) {
549
+ var func = funcs_1[_i];
550
+ if (!func)
551
+ continue;
552
+ var toInclude = func.getAppliedTypesOrDefault().indexOf(colDataType) >= 0;
553
+ if (this.column.expr.func === func.id && !toInclude) {
554
+ funcAllowed = false;
555
+ }
556
+ if (toInclude) {
557
+ funcCaption = this.panel.getContext().getModel()
558
+ .getAggrFunctionCaption(func.id);
559
+ item = {
560
+ id: func.id,
561
+ text: funcCaption
562
+ };
563
+ items.push(item);
564
+ }
565
+ }
566
+ if (!funcAllowed) {
567
+ this.column.expr.func = items[0].id;
568
+ }
569
+ //Add "Custom Expression" menu
570
+ var columnsPanel = this.panel;
571
+ if (columnsPanel.areCustomExpressionsAllowed()) {
572
+ item = {
573
+ id: 'CustomSqlDivider',
574
+ text: '---'
575
+ };
576
+ items.push(item);
577
+ funcCaption = i18n.getText('CustomExpression');
578
+ item = {
579
+ id: 'CUSTOMSQL',
580
+ text: funcCaption
581
+ };
582
+ items.push(item);
583
+ }
584
+ var menuId = this.column.id;
585
+ if (menuId) {
586
+ menuId += '-FunctionsMenu';
587
+ }
588
+ var menuOptions = {
589
+ items: items,
590
+ id: menuId,
591
+ searchBoxAlwaysShown: false,
592
+ domWriteItemsId: true //this.panel.options.domWriteItemsId
593
+ };
594
+ this.functionMenu = new PopupMenu(menuOptions);
595
+ };
596
+ ColumnRendererCP.prototype.createFormatsMenu = function () {
597
+ if (this.panel.options.allowDisplayFormatChange == false)
598
+ return;
599
+ var menuId = this.column.id;
600
+ if (menuId) {
601
+ menuId += '-FormatsMenu';
602
+ }
603
+ var items = this.getFormatsMenuItems();
604
+ var menuOptions = {
605
+ items: items,
606
+ id: menuId,
607
+ searchBoxAlwaysShown: false,
608
+ showSelected: true,
609
+ domWriteItemsId: true //this.panel.options.domWriteItemsId
610
+ };
611
+ this.formatsMenu = new PopupMenu(menuOptions);
612
+ };
613
+ ColumnRendererCP.prototype.getFormatsMenuItems = function () {
614
+ var formats = this.panel.getContext().getModel()
615
+ .getDisplayFormatsForType(this.column.getDataType());
616
+ return [{ id: '{0:__default}', text: "Default" }]
617
+ .concat(formats.map(function (format) { return ({ id: format.format, text: i18n.getText("DisplayFormats", format.name) || format.name }); }));
618
+ };
619
+ ColumnRendererCP.prototype.getButtonsToShow = function () {
620
+ return this.panel.options.buttons && Array.isArray(this.panel.options.buttons) ? this.panel.options.buttons : ["enable", "delete", "type", "sorting", "format"];
621
+ };
622
+ ColumnRendererCP.prototype.buttonMenuHandler = function (action, evt) {
623
+ var _this = this;
624
+ switch (action) {
625
+ case ColumnAction.Delete:
626
+ var curQuery = this.column.getQuery();
627
+ curQuery.removeColumn(this.column, this.panel);
628
+ curQuery.fireColumnsChangedEvent(QueryChangeAction.Delete, this.column);
629
+ break;
630
+ case ColumnAction.Enable:
631
+ this.column.enabled = !this.column.enabled;
632
+ this.fireColumnChanged();
633
+ break;
634
+ case ColumnAction.Hidden:
635
+ this.column.setHidden(!this.column.isHidden());
636
+ this.fireColumnChanged();
637
+ break;
638
+ case ColumnAction.MoveTop:
639
+ this.panel.moveColumn(this.column, "MoveTop");
640
+ break;
641
+ case ColumnAction.MoveBottom:
642
+ this.panel.moveColumn(this.column, "MoveBottom");
643
+ break;
644
+ case ColumnAction.MoveUp:
645
+ this.panel.moveColumn(this.column, "MoveUp");
646
+ break;
647
+ case ColumnAction.MoveDown:
648
+ this.panel.moveColumn(this.column, "MoveDown");
649
+ break;
650
+ case ColumnAction.SortingAsc:
651
+ this.column.sorting = SortDirection.Ascending;
652
+ this.column.fireChangedEvent();
653
+ break;
654
+ case ColumnAction.SortingDesc:
655
+ this.column.sorting = SortDirection.Descending;
656
+ this.column.fireChangedEvent();
657
+ break;
658
+ case ColumnAction.SortingNone:
659
+ this.column.sorting = SortDirection.None;
660
+ this.column.fireChangedEvent();
661
+ break;
662
+ case ColumnAction.Menu:
663
+ var colMenu = this.buttonMenu;
664
+ this.keepShowingButtons = true;
665
+ colMenu.showMenu({
666
+ anchor: evt ? evt.target : null,
667
+ selectedIds: this.getButtonMenuSelectedItems(),
668
+ itemSelectedCallback: function (item) {
669
+ var action = item.id;
670
+ switch (item.id) {
671
+ case "enable":
672
+ action = ColumnAction.Enable;
673
+ break;
674
+ case "delete":
675
+ action = ColumnAction.Delete;
676
+ break;
677
+ case "hidden":
678
+ action = ColumnAction.Hidden;
679
+ break;
680
+ case "MoveTop":
681
+ action = ColumnAction.MoveTop;
682
+ break;
683
+ case "MoveBottom":
684
+ action = ColumnAction.MoveBottom;
685
+ break;
686
+ case "MoveUp":
687
+ action = ColumnAction.MoveUp;
688
+ break;
689
+ case "MoveDown":
690
+ action = ColumnAction.MoveDown;
691
+ break;
692
+ case "None":
693
+ action = ColumnAction.SortingNone;
694
+ break;
695
+ case "Ascending":
696
+ action = ColumnAction.SortingAsc;
697
+ break;
698
+ case "Descending":
699
+ action = ColumnAction.SortingAsc;
700
+ break;
701
+ }
702
+ _this.buttonMenuHandler(action, evt);
703
+ },
704
+ itemFilterCallback: function (item) {
705
+ var result = _this.column.enabled || item.id === "__group" || item.id === "enable" || item.id === "delete";
706
+ return result;
707
+ },
708
+ menuClosedCallback: function () {
709
+ _this.keepShowingButtons = false;
710
+ if (!_this.isMouseOverBlock)
711
+ _this.leaveButtonBlock();
712
+ }
713
+ });
714
+ break;
715
+ default:
716
+ if (!this.processFormatsButtonMenuItems(action, evt))
717
+ this.processExtraButtonMenuItems(action, evt);
718
+ break;
719
+ }
720
+ evt && evt.stopPropagation();
721
+ return false;
722
+ };
723
+ ColumnRendererCP.prototype.createButtonMenu = function () {
724
+ if (!this.buttonMenu) {
725
+ var menuId = this.column.id;
726
+ if (menuId) {
727
+ menuId += '-ButtonMenu';
728
+ }
729
+ var common = [];
730
+ common.push({
731
+ id: "enable",
732
+ text: i18n.getText('MenuEnable')
733
+ });
734
+ if (this.panel.options.allowHiddenColumns) {
735
+ common.push({
736
+ id: "hidden",
737
+ text: i18n.getText('CmdHiddenColumn')
738
+ });
739
+ }
740
+ common.push({
741
+ id: "delete",
742
+ text: i18n.getText('CmdDelete')
743
+ });
744
+ var items = [];
745
+ items.push({
746
+ id: '__group',
747
+ text: ' ',
748
+ items: common
749
+ });
750
+ var sortItems = this.panel.options.allowSorting ? __spreadArray(__spreadArray([], this.panel.getSortMenuList(), true), this.panel.getMoveMenuList(), true) :
751
+ this.panel.getMoveMenuList();
752
+ items.push({
753
+ id: '__group',
754
+ text: i18n.getText('CmdGroupSort'),
755
+ items: sortItems
756
+ });
757
+ var extra = this.getExtraButtonMenuItems();
758
+ if (extra && Array.isArray(extra)) {
759
+ items = __spreadArray(__spreadArray([], items, true), extra, true);
760
+ }
761
+ var formatItems = this.getFormatsMenuItems();
762
+ if (formatItems.length > 1) {
763
+ items.push({
764
+ id: '__group',
765
+ text: i18n.getText('CmdGroupFormat'),
766
+ items: formatItems
767
+ });
768
+ }
769
+ var menuOptions = {
770
+ items: items,
771
+ id: menuId,
772
+ searchBoxAlwaysShown: false,
773
+ domWriteItemsId: true,
774
+ showSelected: true
775
+ };
776
+ this.buttonMenu = new PopupMenu(menuOptions);
777
+ }
778
+ };
779
+ ColumnRendererCP.prototype.processFormatsButtonMenuItems = function (action, evt) {
780
+ var formats = this.panel
781
+ .getContext().getModel()
782
+ .getDisplayFormatsForType(this.column.getDataType());
783
+ if (action == '{0:__default}') {
784
+ this.column.displayFormat = '';
785
+ }
786
+ else if (formats.filter(function (f) { return f.format == action; }).length > 0) {
787
+ this.column.displayFormat = action;
788
+ }
789
+ else {
790
+ return false;
791
+ }
792
+ this.column.fireChangedEvent();
793
+ return true;
794
+ };
795
+ ColumnRendererCP.prototype.getButtonMenuSelectedItems = function () {
796
+ var _this = this;
797
+ var arrSelected = [];
798
+ if (this.column.enabled) {
799
+ arrSelected.push("enable");
800
+ }
801
+ ;
802
+ if (this.column.isHidden()) {
803
+ arrSelected.push("hidden");
804
+ }
805
+ ;
806
+ var formats = this.panel
807
+ .getContext()
808
+ .getModel()
809
+ .getDisplayFormatsForType(this.column.getDataType());
810
+ var formatId = '{0:__default}';
811
+ if (formats.filter(function (f) { return f.format == _this.column.displayFormat; }).length > 0) {
812
+ formatId = this.column.displayFormat;
813
+ }
814
+ arrSelected.push(formatId);
815
+ return arrSelected;
816
+ };
817
+ return ColumnRendererCP;
818
+ }());
819
+ export { ColumnRendererCP };
818
820
  //# sourceMappingURL=column_renderer_cp.js.map