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