@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,722 +1,741 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- extendStatics(d, b);
10
- function __() { this.constructor = d; }
11
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
- };
13
- })();
14
- import { i18n } from '@easydata/core';
15
- import { utils as dataUtils } from '@easydata/core';
16
- import { DataKind, SortDirection, ExprTag, Widget, WidgetGroup, QueryChangePart, QueryChangeAction } from '@easyquery/core';
17
- import { eqDragManager, DropEffect, getElementAbsolutePos, domel } from '@easydata/ui';
18
- import { PopupMenu } from '../utils/popup_menu';
19
- import { eqCssPrefix, eqCssMobile } from '../utils/utils';
20
- import { browserUtils } from '../utils/browser_utils';
21
- import { AggrFuncColumnRendererCP } from './renderers/columnspanel/aggrfunc_column_renderer';
22
- import { CustomSqlColumnRendererCP } from './renderers/columnspanel/customsql_column_renderer';
23
- import { SimpleColumnRendererCP } from './renderers/columnspanel/simple_column_renderer';
24
- var ColumnsPanel = /** @class */ (function (_super) {
25
- __extends(ColumnsPanel, _super);
26
- function ColumnsPanel(slot) {
27
- var _this = _super.call(this, slot) || this;
28
- _this.options = {
29
- isSubQuery: false,
30
- activeColumn: null,
31
- showAddRow: true,
32
- showHeader: true,
33
- showColumnTitles: true,
34
- allowAggrColumns: true,
35
- allowDuplicates: true,
36
- allowCustomExpressions: false,
37
- allowSorting: true,
38
- attrElementFormat: '{entity} {attr}',
39
- titleElementFormat: null,
40
- buttons: null,
41
- alwaysShowButtons: false,
42
- accentActiveColumn: true,
43
- allowDragDrop: true,
44
- menuOptions: {
45
- showSearchBoxAfter: 30,
46
- searchBoxAutoFocus: true,
47
- activateOnMouseOver: true,
48
- adjustHeight: true,
49
- itemRenderedCallback: null
50
- },
51
- attrPlacement: 0,
52
- sortEntities: false,
53
- columnRenderedCallback: null,
54
- customExpressionText: 0,
55
- allowHiddenColumns: false,
56
- showAddAllForEntity: false
57
- };
58
- _this.landingSlot = domel('div')
59
- .addClass(_this.cssPrefix + "-col-landing-slot")
60
- .addChildElement(domel('div')
61
- .toDOM())
62
- .toDOM();
63
- _this.landingIndex = -1;
64
- _this.slot.classList.add(_this.cssPrefix + "-panel");
65
- _this.group = WidgetGroup.Query;
66
- return _this;
67
- }
68
- Object.defineProperty(ColumnsPanel.prototype, "cssPrefix", {
69
- get: function () {
70
- return 'eqjs-qc';
71
- },
72
- enumerable: true,
73
- configurable: true
74
- });
75
- ColumnsPanel.prototype.getWidgetType = function () {
76
- return 'columnsPanel';
77
- };
78
- ColumnsPanel.prototype.init = function (context, options) {
79
- var _this = this;
80
- _super.prototype.init.call(this, context, options);
81
- this.setOptions(options);
82
- var model = context.getModel();
83
- this.detachQueryObserver();
84
- this.attachQueryObserver();
85
- eqDragManager.removeDropContainer(this.slot);
86
- if (this.options.allowDragDrop) {
87
- eqDragManager.registerDropContainer({
88
- element: this.slot,
89
- scopes: ["entityAttr", "entityAttrSort"],
90
- onDragEnter: function (container, ev) {
91
- _this.slot.classList.add(eqCssPrefix + "-drophover");
92
- if (ev.item.scope === "entityAttrSort") {
93
- _this.showLandingSlot(ev.pageX, ev.pageY);
94
- }
95
- else {
96
- var attrId = ev.data.attrId;
97
- if (!model.checkAttrProperty(attrId, "useInResult")) {
98
- ev.dropEffect = DropEffect.Forbid;
99
- }
100
- ev.dragImage.classList.add('eqjs-sortable-helper');
101
- }
102
- },
103
- onDragOver: function (container, ev) {
104
- var attrId = ev.data.attrId;
105
- if (ev.item.scope === "entityAttrSort" ||
106
- model.checkAttrProperty(attrId, "useInResult")) {
107
- _this.showLandingSlot(ev.pageX, ev.pageY);
108
- }
109
- },
110
- onDragLeave: function (container, ev) {
111
- if (ev.item.scope === "entityAttrSort") {
112
- ev.dropEffect = DropEffect.Forbid;
113
- }
114
- else {
115
- ev.dragImage.classList.remove('eqjs-sortable-helper');
116
- ev.dragImage.style.removeProperty('width');
117
- }
118
- _this.slot.classList.remove(eqCssPrefix + "-drophover");
119
- _this.hideLandingSlot();
120
- },
121
- onDrop: function (container, ev) {
122
- if (ev.item.scope == "entityAttrSort") {
123
- var query = _this.getQuery();
124
- var columns = query.getColumns();
125
- var index = columns.indexOf(ev.data.column);
126
- _this.moveColumnCore(index, _this.landingIndex);
127
- }
128
- else {
129
- var attrId = ev.data.attrId;
130
- _this.addNewColumn(attrId, _this.landingIndex);
131
- }
132
- }
133
- });
134
- }
135
- };
136
- ColumnsPanel.prototype.renderBaseElements = function () {
137
- var _this = this;
138
- var minusHeight = 0;
139
- if (this.options.showHeader) {
140
- var headerBuilder = domel('div', this.slot)
141
- .hide()
142
- .addClass(this.cssPrefix + "-header")
143
- .addClass(browserUtils.getMobileCssClass())
144
- .addChild('div', function (builder) { return builder
145
- .addClass(_this.cssPrefix + "-header-expression")
146
- .text(i18n.getText('HeaderExpression')); });
147
- if (this.options.showColumnTitles !== false) {
148
- headerBuilder
149
- .addChild('div', function (builder) { return builder
150
- .addClass(_this.cssPrefix + "-header-title")
151
- .text(i18n.getText('HeaderTitle')); });
152
- }
153
- this.headerElement = headerBuilder.toDOM();
154
- minusHeight += this.headerElement.offsetHeight;
155
- }
156
- this.columnsBlock =
157
- domel('div', this.slot)
158
- .addClass(this.cssPrefix + "-columns")
159
- .addClass(browserUtils.getMobileCssClass())
160
- .toDOM();
161
- if (this.options.showAddRow) {
162
- this.addRowElement =
163
- domel('div', this.slot)
164
- .addClass(eqCssPrefix + "-addrow", this.cssPrefix + "-addrow", eqCssPrefix + "-addrow-empty")
165
- .addClass(browserUtils.getMobileCssClass())
166
- .addChild('a', function (builder) { return builder
167
- .attr('href', 'javascript:void(0)')
168
- .text(i18n.getText('CmdClickToAddColumn'))
169
- .on('click', function (e) {
170
- e.preventDefault();
171
- _this.showEntitiesMenu({
172
- anchor: e.target,
173
- selectedIds: null,
174
- itemSelectedCallback: function (data, items) {
175
- if (data.id === '__AddAll__' && data.extra && Array.isArray(data.extra.ids)) {
176
- data.extra.ids.forEach(function (attrId) { return _this.addNewColumn(attrId); });
177
- }
178
- else {
179
- var attrid = data.id;
180
- _this.addNewColumn(attrid);
181
- }
182
- return false;
183
- }
184
- });
185
- }); })
186
- .toDOM();
187
- minusHeight += this.addRowElement.offsetHeight;
188
- }
189
- this.columnsBlock.style.maxHeight = this.slot.offsetHeight - minusHeight - 25 + "px";
190
- };
191
- ColumnsPanel.prototype.destroyCore = function () {
192
- eqDragManager.removeDropContainer(this.slot);
193
- this.detachQueryObserver();
194
- this.slot.innerHTML = '';
195
- };
196
- ColumnsPanel.prototype.attachQueryObserver = function () {
197
- var _this = this;
198
- var query = this.getQuery();
199
- this.queryEventCallbackId = query.addChangedCallback(function (event) {
200
- //if something has changed, and that change is related to columns
201
- var edata = event.data;
202
- if (!edata || (edata.part != QueryChangePart.Columns
203
- && edata.part != QueryChangePart.Aggregation
204
- && edata.part != QueryChangePart.All)) {
205
- return;
206
- }
207
- var focusedBefore = document.activeElement;
208
- var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;
209
- switch (edata.action) {
210
- case QueryChangeAction.Modify: {
211
- var columns = edata.changee;
212
- var modifyColumn_1 = function (column) {
213
- var colEl = _this.columnsBlock.querySelector("div[data-id='" + column.id + "']");
214
- if (colEl) {
215
- var renderer = _this.getColumnRenderer(column, colEl);
216
- if (renderer) {
217
- var newEl = renderer.render();
218
- if (isFocusInside) {
219
- var focusElem = newEl.querySelector('a') || newEl.querySelector('.eqjs-column-button');
220
- if (focusElem) {
221
- focusElem.focus();
222
- }
223
- }
224
- }
225
- }
226
- };
227
- if (Array.isArray(columns)) {
228
- columns.forEach(function (col) { return modifyColumn_1(col); });
229
- }
230
- else {
231
- modifyColumn_1(columns);
232
- }
233
- _this.agjustHeaderVisibility();
234
- break;
235
- }
236
- case QueryChangeAction.Add: {
237
- var columns = edata.changee;
238
- var addColumn_1 = function (column) {
239
- var index = query.getColumns().indexOf(column);
240
- var newEl = _this.addColumnElement(column, index);
241
- if (isFocusInside) {
242
- newEl.querySelector("a").focus();
243
- }
244
- };
245
- if (Array.isArray(columns)) {
246
- columns.forEach(function (col) { return addColumn_1(col); });
247
- }
248
- else {
249
- addColumn_1(columns);
250
- }
251
- _this.agjustHeaderVisibility();
252
- break;
253
- }
254
- case QueryChangeAction.Delete: {
255
- var columns = edata.changee;
256
- var deleteColumn_1 = function (column) {
257
- var colEl = _this.columnsBlock.querySelector("div[data-id='" + column.id + "']");
258
- if (colEl) {
259
- var next = colEl.nextSibling;
260
- var prev = colEl.previousSibling;
261
- _this.columnsBlock.removeChild(colEl);
262
- if (isFocusInside) {
263
- var focusCond = next || prev || _this.addRowElement;
264
- var focusElem = focusCond.querySelector('a') || focusCond.querySelector('.eqjs-column-button');
265
- if (focusElem) {
266
- focusElem.focus();
267
- }
268
- }
269
- }
270
- };
271
- _this.agjustHeaderVisibility();
272
- if (Array.isArray(columns)) {
273
- columns.forEach(function (col) { return deleteColumn_1(col); });
274
- }
275
- else {
276
- deleteColumn_1(columns);
277
- }
278
- break;
279
- }
280
- default:
281
- _this.refresh();
282
- break;
283
- }
284
- });
285
- };
286
- ColumnsPanel.prototype.detachQueryObserver = function () {
287
- if (this.queryEventCallbackId) {
288
- var query = this.getQuery();
289
- query.removeChangedCallback(this.queryEventCallbackId);
290
- }
291
- };
292
- ColumnsPanel.prototype.getQuery = function () {
293
- return this.getContext().getQuery();
294
- };
295
- ColumnsPanel.prototype.showLandingSlot = function (pageX, pageY) {
296
- var rowElems = this.columnsBlock.querySelectorAll("[class*=" + this.cssPrefix + "-row]");
297
- var rows = [];
298
- for (var i = 0; i < rowElems.length; i++) {
299
- var rowElem = rowElems[i];
300
- if (rowElem.style.display === 'none')
301
- continue;
302
- rows.push(rowElem);
303
- }
304
- if (rows.length === 0) {
305
- this.landingIndex = 0;
306
- this.columnsBlock.appendChild(this.landingSlot);
307
- return;
308
- }
309
- var landingPos = getElementAbsolutePos(this.landingSlot);
310
- if (pageY >= landingPos.y && pageY <= landingPos.y + this.landingSlot.offsetHeight) {
311
- return;
312
- }
313
- var firstRow = rows[0];
314
- var rowHeight = firstRow.offsetHeight;
315
- var absPos = getElementAbsolutePos(firstRow);
316
- var newLandingIndex = (pageY > absPos.y + rowHeight / 2) ? Math.round((pageY - absPos.y + rowHeight / 2) / rowHeight) : 0;
317
- if (newLandingIndex > rows.length) {
318
- newLandingIndex = rows.length;
319
- }
320
- if (newLandingIndex != this.landingIndex) {
321
- this.landingIndex = newLandingIndex;
322
- if (this.landingIndex < rows.length) {
323
- this.columnsBlock.insertBefore(this.landingSlot, rows[this.landingIndex]);
324
- }
325
- else {
326
- this.columnsBlock.appendChild(this.landingSlot);
327
- }
328
- this.landingSlot.scrollIntoView({ block: "center", behavior: "smooth" });
329
- }
330
- };
331
- ColumnsPanel.prototype.hideLandingSlot = function () {
332
- var _this = this;
333
- this.landingIndex = -1;
334
- setTimeout(function () {
335
- if (_this.landingSlot.parentElement) {
336
- _this.landingSlot.parentElement.removeChild(_this.landingSlot);
337
- }
338
- }, 10);
339
- };
340
- ColumnsPanel.prototype.setOptions = function (options) {
341
- dataUtils.assignDeep(this.options, options);
342
- if (browserUtils.isMobileMode()) {
343
- this.options.buttons = ["menu"];
344
- this.options.showHeader = false;
345
- }
346
- };
347
- ColumnsPanel.prototype.onProcessStartCore = function () {
348
- };
349
- ColumnsPanel.prototype.onProcessEndCore = function () {
350
- };
351
- ColumnsPanel.prototype.refreshCore = function () {
352
- this.clear();
353
- this.render();
354
- };
355
- ColumnsPanel.prototype.clear = function () {
356
- this.slot.innerHTML = "";
357
- };
358
- ColumnsPanel.prototype.render = function () {
359
- try {
360
- this.renderBaseElements();
361
- this.createEntitiesMenu();
362
- this.createColumnMenus();
363
- this.agjustHeaderVisibility();
364
- domel(this.slot)
365
- .removeClass(eqCssMobile)
366
- .addClass(browserUtils.getMobileCssClass());
367
- var query = this.context.getQuery();
368
- var columns = query.getColumns();
369
- for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
370
- var column = columns_1[_i];
371
- this.columnsBlock.appendChild(this.renderColumn(column));
372
- }
373
- }
374
- catch (err) {
375
- var error = err;
376
- this.context.throwError({
377
- action: "ColumnsPanel rendering",
378
- text: error.message,
379
- sourceError: error
380
- });
381
- }
382
- };
383
- ColumnsPanel.prototype.agjustHeaderVisibility = function () {
384
- if (this.headerElement) {
385
- var query = this.context.getQuery();
386
- var columns = query.getColumns();
387
- this.headerElement.style.display = (columns.length) ? '' : 'none';
388
- }
389
- };
390
- ColumnsPanel.prototype.renderColumn = function (column) {
391
- var renderer = this.getColumnRenderer(column);
392
- if (renderer)
393
- return renderer.render();
394
- return null;
395
- };
396
- ColumnsPanel.prototype.toggleColumnPicked = function (column) {
397
- var el;
398
- var isActive;
399
- if (column) {
400
- el = this.columnsBlock.querySelector("div[data-id=" + column.id + "]");
401
- if (el) {
402
- isActive = el.classList.contains('active');
403
- }
404
- }
405
- //clear 'active' in all rows
406
- var rows = this.columnsBlock.querySelectorAll("." + this.cssPrefix + "-row");
407
- for (var i = 0; i < rows.length; i++) {
408
- var row = rows[i];
409
- domel(row)
410
- .removeClass('active');
411
- if (!this.options.alwaysShowButtons) {
412
- domel(row)
413
- .data("show-buttons", null);
414
- }
415
- }
416
- if (el && !isActive) {
417
- domel(el)
418
- .addClass('active')
419
- .data("show-buttons", "");
420
- }
421
- };
422
- ColumnsPanel.prototype.addNewColumn = function (attrId, index) {
423
- var _this = this;
424
- var model = this.getContext().getModel();
425
- var query = this.getQuery();
426
- var getColumnByAttrId = function (attrid) {
427
- var attribute = model.getAttributeById(attrid);
428
- if (!attribute) {
429
- return null;
430
- }
431
- if (!attribute.useInResult) {
432
- if (attribute.lookupAttr) {
433
- attrid = attribute.lookupAttr;
434
- attribute = model.getAttributeById(attrid);
435
- if (!attribute || !attribute.useInResult) {
436
- return null;
437
- }
438
- }
439
- else
440
- return null;
441
- }
442
- var column = query.createColumn();
443
- column.caption = _this.getDefaultColumnCaption(attribute);
444
- column.sorting = SortDirection.None;
445
- column.sortIndex = -1;
446
- column.expr.tag = ExprTag.EntityAttribute;
447
- column.expr.kind = DataKind.Attribute;
448
- column.expr.dataType = attribute.dataType;
449
- column.expr.setValue(attrid, true);
450
- column.params.concat(attribute.params);
451
- return column;
452
- };
453
- var colToAdd, col;
454
- if (Array.isArray(attrId)) {
455
- colToAdd = [];
456
- for (var i = 0; i < attrId.length; i++) {
457
- col = getColumnByAttrId(attrId[i]);
458
- if (col) {
459
- colToAdd.push(col);
460
- }
461
- }
462
- }
463
- else
464
- colToAdd = getColumnByAttrId(attrId);
465
- this.addColumn(colToAdd, index);
466
- return colToAdd;
467
- };
468
- ColumnsPanel.prototype.addColumn = function (column, index) {
469
- var query = this.getQuery();
470
- if (!query) {
471
- return;
472
- }
473
- if (Array.isArray(column))
474
- column = this.checkColumnsArray(column);
475
- else
476
- column = this.checkColumn(column);
477
- if (!column || (Array.isArray(column) && column.length == 0)) {
478
- return;
479
- }
480
- query.addColumnObj(column, index, self);
481
- query.fireColumnsChangedEvent(QueryChangeAction.Add, column);
482
- };
483
- //adds one column to the panel on the specified position
484
- ColumnsPanel.prototype.addColumnElement = function (column, index) {
485
- var rows = this.columnsBlock.querySelectorAll("[class*=" + this.cssPrefix + "-row]");
486
- var newColBlock = this.renderColumn(column);
487
- if (rows.length > 0) {
488
- if (index < rows.length) {
489
- this.columnsBlock.insertBefore(newColBlock, rows[index]);
490
- }
491
- else {
492
- this.columnsBlock.appendChild(newColBlock);
493
- this.scrollToBottom();
494
- }
495
- }
496
- else {
497
- this.columnsBlock.appendChild(newColBlock);
498
- this.scrollToBottom();
499
- }
500
- if (this.options.columnRenderedCallback) {
501
- this.options.columnRenderedCallback(newColBlock);
502
- }
503
- return newColBlock;
504
- };
505
- ColumnsPanel.prototype.scrollToBottom = function () {
506
- this.columnsBlock.scrollTop = this.columnsBlock.scrollHeight - this.columnsBlock.clientHeight;
507
- };
508
- ColumnsPanel.prototype.checkColumnsArray = function (cols) {
509
- var i = 0, len = cols.length;
510
- var result = [];
511
- for (var i_1 = 0; i_1 < len; i_1++) {
512
- if (this.checkColumn(cols[i_1]))
513
- result.push(cols[i_1]);
514
- }
515
- return result;
516
- };
517
- ColumnsPanel.prototype.checkColumn = function (col) {
518
- if (!this.options.allowDuplicates) {
519
- var query = this.getQuery();
520
- var columns = query.getColumns();
521
- for (var i = 0; i < columns.length; i++) {
522
- if ((col.expr.tag === ExprTag.EntityAttribute && columns[i].expr.tag === ExprTag.EntityAttribute
523
- || col.expr.tag === ExprTag.ParentEntityAttribute && columns[i].expr.tag === ExprTag.ParentEntityAttribute)
524
- && col.expr.value === columns[i].expr.value) {
525
- return null;
526
- }
527
- }
528
- }
529
- return col;
530
- };
531
- ColumnsPanel.prototype.getDefaultColumnCaption = function (attr) {
532
- var format = this.options.titleElementFormat || this.options.attrElementFormat;
533
- var model = this.getContext().getModel();
534
- return model.getAttributeText(attr, format);
535
- };
536
- ColumnsPanel.prototype.getColumnsBlock = function () {
537
- return this.columnsBlock;
538
- };
539
- ColumnsPanel.prototype.getColumnRenderer = function (column, slot) {
540
- switch (column.expr.tag) {
541
- case ExprTag.AggregateFunction:
542
- return new AggrFuncColumnRendererCP(this, column, slot);
543
- case ExprTag.CustomSql:
544
- return new CustomSqlColumnRendererCP(this, column, slot);
545
- case ExprTag.EntityAttribute:
546
- case ExprTag.ParentEntityAttribute:
547
- return new SimpleColumnRendererCP(this, column, slot);
548
- }
549
- return null;
550
- };
551
- ColumnsPanel.prototype.areCustomExpressionsAllowed = function () {
552
- var query = this.getQuery();
553
- return query.isEx() && this.options.allowCustomExpressions;
554
- };
555
- ColumnsPanel.prototype.addAllColumnsToEntitiesList = function (list) {
556
- var _this = this;
557
- var attrIds = list.filter(function (item) { return !item.isEntity; }).map(function (item) { return item.id; });
558
- if (attrIds.length > 0) {
559
- list.unshift({
560
- id: '__AddAll__',
561
- text: i18n.getText('AddAllForEntityText'),
562
- extra: {
563
- ids: attrIds
564
- }
565
- });
566
- }
567
- list.forEach(function (item) {
568
- if (item.items) {
569
- _this.addAllColumnsToEntitiesList(item.items);
570
- }
571
- });
572
- };
573
- ColumnsPanel.prototype.createEntitiesMenu = function () {
574
- var model = this.getContext().getModel();
575
- if (!model || model.isEmpty())
576
- return null;
577
- var menuId = this.slot.id;
578
- if (menuId) {
579
- menuId += '-EntitiesMenu';
580
- }
581
- var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });
582
- // add [Add all columns] items
583
- if (this.options.showAddAllForEntity) {
584
- this.addAllColumnsToEntitiesList(entitiesList);
585
- }
586
- var options = {
587
- id: menuId,
588
- items: entitiesList,
589
- adjustHeight: this.options.adjustEntitiesMenuHeight,
590
- domWriteItemsId: this.options.domWriteItemsId
591
- };
592
- dataUtils.assign(options, this.options.menuOptions);
593
- this.entitiesMenu = new PopupMenu(options);
594
- };
595
- ColumnsPanel.prototype.getSortMenuList = function () {
596
- return [
597
- { id: 'None', text: i18n.getText('CmdNotSorted') },
598
- { id: 'Ascending', text: i18n.getText('CmdAscending') },
599
- { id: 'Descending', text: i18n.getText('CmdDescending') },
600
- { id: '---', text: '---' }
601
- ];
602
- };
603
- ColumnsPanel.prototype.getMoveMenuList = function () {
604
- return [
605
- { id: 'MoveTop', text: i18n.getText('CmdMoveToFirst') },
606
- { id: 'MoveUp', text: i18n.getText('CmdMoveToPrev') },
607
- { id: 'MoveDown', text: i18n.getText('CmdMoveToNext') },
608
- { id: 'MoveBottom', text: i18n.getText('CmdMoveToLast') }
609
- ];
610
- };
611
- ColumnsPanel.prototype.createSortMenu = function () {
612
- var model = this.getContext().getModel();
613
- if (!model || model.isEmpty())
614
- return null;
615
- var menuId = this.slot.id;
616
- if (menuId) {
617
- menuId += '-SortMenu';
618
- }
619
- var items = this.getSortMenuList().concat(this.moveMenu.getItems());
620
- var menuOptions = {
621
- id: menuId,
622
- "items": items,
623
- domWriteItemsId: this.options.domWriteItemsId,
624
- showSelected: true
625
- };
626
- dataUtils.assign(menuOptions, this.options.menuOptions);
627
- menuOptions.searchBoxAlwaysShown = false;
628
- this.sortMenu = new PopupMenu(menuOptions);
629
- };
630
- ColumnsPanel.prototype.createMoveMenu = function () {
631
- var model = this.getContext().getModel();
632
- if (!model || model.isEmpty())
633
- return null;
634
- var menuId = this.slot.id;
635
- if (menuId) {
636
- menuId += '-MoveMenu';
637
- }
638
- var items = dataUtils.createArrayFrom(this.getMoveMenuList());
639
- if (this.options.allowHiddenColumns) {
640
- items.push({ id: '---', text: '---' });
641
- items.push({ id: 'IsHidden', text: i18n.getText('CmdHiddenColumn') });
642
- }
643
- var menuOptions = {
644
- "items": items,
645
- id: menuId,
646
- domWriteItemsId: this.options.domWriteItemsId,
647
- showSelected: true
648
- };
649
- dataUtils.assign(menuOptions, this.options.menuOptions);
650
- this.moveMenu = new PopupMenu(menuOptions);
651
- menuOptions.searchBoxAlwaysShown = false;
652
- };
653
- ColumnsPanel.prototype.showEntitiesMenu = function (menuOptions) {
654
- this.entitiesMenu.showMenu(menuOptions);
655
- };
656
- ColumnsPanel.prototype.moveColumn = function (column, direction) {
657
- var query = this.getQuery();
658
- var columns = query.getColumns();
659
- var index = columns.indexOf(column);
660
- if (index >= 0) {
661
- switch (direction) {
662
- case 'MoveTop':
663
- if (index == 0) {
664
- return;
665
- }
666
- this.moveColumnCore(index, 0);
667
- break;
668
- case 'MoveUp':
669
- if (index == 0) {
670
- return;
671
- }
672
- this.moveColumnCore(index, index - 1);
673
- break;
674
- case 'MoveDown':
675
- if (index == columns.length - 1) {
676
- return;
677
- }
678
- this.moveColumnCore(index, index + 1);
679
- break;
680
- case 'MoveBottom':
681
- if (index == columns.length - 1) {
682
- return;
683
- }
684
- this.moveColumnCore(index, columns.length - 1);
685
- break;
686
- }
687
- ;
688
- }
689
- };
690
- ColumnsPanel.prototype.moveColumnCore = function (index1, index2) {
691
- var query = this.getQuery();
692
- if (!query)
693
- return;
694
- var rows = this.columnsBlock.querySelectorAll("[class*=" + this.cssPrefix + "-row]");
695
- var colToMove = rows[index1];
696
- if (index2 == 0) {
697
- this.columnsBlock.insertBefore(colToMove, this.columnsBlock[0]);
698
- }
699
- else if (index2 > 0 && index2 < rows.length - 1) {
700
- if (index1 < index2) {
701
- this.columnsBlock.insertBefore(colToMove, rows[index2 + 1]);
702
- }
703
- else {
704
- this.columnsBlock.insertBefore(colToMove, rows[index2]);
705
- }
706
- }
707
- else {
708
- this.columnsBlock.appendChild(colToMove);
709
- }
710
- query.moveColumn(index1, index2);
711
- query.fireColumnsChangedEvent();
712
- };
713
- ColumnsPanel.prototype.createColumnMenus = function () {
714
- this.createMoveMenu();
715
- if (this.options.allowSorting) {
716
- this.createSortMenu();
717
- }
718
- };
719
- return ColumnsPanel;
720
- }(Widget));
721
- export { ColumnsPanel };
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { i18n } from '@easydata/core';
17
+ import { utils as dataUtils } from '@easydata/core';
18
+ import { DataKind, SortDirection, ExprTag, Widget, WidgetGroup, QueryChangePart, QueryChangeAction } from '@easyquery/core';
19
+ import { eqDragManager, DropEffect, getElementAbsolutePos, domel } from '@easydata/ui';
20
+ import { PopupMenu } from '../utils/popup_menu';
21
+ import { eqCssPrefix, eqCssMobile } from '../utils/utils';
22
+ import { browserUtils } from '../utils/browser_utils';
23
+ import { AggrFuncColumnRendererCP } from './renderers/columnspanel/aggrfunc_column_renderer';
24
+ import { CustomSqlColumnRendererCP } from './renderers/columnspanel/customsql_column_renderer';
25
+ import { SimpleColumnRendererCP } from './renderers/columnspanel/simple_column_renderer';
26
+ var ColumnsPanel = /** @class */ (function (_super) {
27
+ __extends(ColumnsPanel, _super);
28
+ function ColumnsPanel(slot) {
29
+ var _this = _super.call(this, slot) || this;
30
+ _this.options = {
31
+ isSubQuery: false,
32
+ activeColumn: null,
33
+ showAddRow: true,
34
+ showHeader: true,
35
+ showColumnTitles: true,
36
+ allowAggrColumns: true,
37
+ allowDuplicates: true,
38
+ allowCustomExpressions: false,
39
+ allowSorting: true,
40
+ attrElementFormat: '{entity} {attr}',
41
+ titleElementFormat: null,
42
+ buttons: null,
43
+ alwaysShowButtons: false,
44
+ accentActiveColumn: true,
45
+ allowDragDrop: true,
46
+ menuOptions: {
47
+ showSearchBoxAfter: 30,
48
+ searchBoxAutoFocus: true,
49
+ activateOnMouseOver: true,
50
+ adjustHeight: true,
51
+ itemRenderedCallback: null
52
+ },
53
+ attrPlacement: 0,
54
+ sortEntities: false,
55
+ columnRenderedCallback: null,
56
+ customExpressionText: 0,
57
+ allowHiddenColumns: false,
58
+ showAddAllForEntity: false,
59
+ showIndicatorOnLoad: true
60
+ };
61
+ _this.landingSlot = domel('div')
62
+ .addClass("".concat(_this.cssPrefix, "-col-landing-slot"))
63
+ .addChildElement(domel('div')
64
+ .toDOM())
65
+ .toDOM();
66
+ _this.landingIndex = -1;
67
+ _this.slot.classList.add("".concat(_this.cssPrefix, "-panel"));
68
+ _this.group = WidgetGroup.Query;
69
+ return _this;
70
+ }
71
+ Object.defineProperty(ColumnsPanel.prototype, "cssPrefix", {
72
+ get: function () {
73
+ return 'eqjs-qc';
74
+ },
75
+ enumerable: false,
76
+ configurable: true
77
+ });
78
+ ColumnsPanel.prototype.getWidgetType = function () {
79
+ return 'columnsPanel';
80
+ };
81
+ ColumnsPanel.prototype.init = function (context, options) {
82
+ var _this = this;
83
+ _super.prototype.init.call(this, context, options);
84
+ this.setOptions(options);
85
+ this.renderProgressBlock();
86
+ var model = context.getModel();
87
+ this.detachQueryObserver();
88
+ this.attachQueryObserver();
89
+ eqDragManager.removeDropContainer(this.slot);
90
+ if (this.options.allowDragDrop) {
91
+ eqDragManager.registerDropContainer({
92
+ element: this.slot,
93
+ scopes: ["entityAttr", "entityAttrSort"],
94
+ onDragEnter: function (container, ev) {
95
+ _this.slot.classList.add("".concat(eqCssPrefix, "-drophover"));
96
+ if (ev.item.scope === "entityAttrSort") {
97
+ _this.showLandingSlot(ev.pageX, ev.pageY);
98
+ }
99
+ else {
100
+ var attrId = ev.data.attrId;
101
+ if (!model.checkAttrProperty(attrId, "useInResult")) {
102
+ ev.dropEffect = DropEffect.Forbid;
103
+ }
104
+ ev.dragImage.classList.add('eqjs-sortable-helper');
105
+ }
106
+ },
107
+ onDragOver: function (container, ev) {
108
+ var attrId = ev.data.attrId;
109
+ if (ev.item.scope === "entityAttrSort" ||
110
+ model.checkAttrProperty(attrId, "useInResult")) {
111
+ _this.showLandingSlot(ev.pageX, ev.pageY);
112
+ }
113
+ },
114
+ onDragLeave: function (container, ev) {
115
+ if (ev.item.scope === "entityAttrSort") {
116
+ ev.dropEffect = DropEffect.Forbid;
117
+ }
118
+ else {
119
+ ev.dragImage.classList.remove('eqjs-sortable-helper');
120
+ ev.dragImage.style.removeProperty('width');
121
+ }
122
+ _this.slot.classList.remove("".concat(eqCssPrefix, "-drophover"));
123
+ _this.hideLandingSlot();
124
+ },
125
+ onDrop: function (container, ev) {
126
+ if (ev.item.scope == "entityAttrSort") {
127
+ var query = _this.getQuery();
128
+ var columns = query.getColumns();
129
+ var index = columns.indexOf(ev.data.column);
130
+ _this.moveColumnCore(index, _this.landingIndex);
131
+ }
132
+ else {
133
+ var attrId = ev.data.attrId;
134
+ _this.addNewColumn(attrId, _this.landingIndex);
135
+ }
136
+ }
137
+ });
138
+ }
139
+ };
140
+ ColumnsPanel.prototype.renderBaseElements = function () {
141
+ var _this = this;
142
+ var minusHeight = 0;
143
+ if (this.options.showHeader) {
144
+ var headerBuilder = domel('div', this.slot)
145
+ .hide()
146
+ .addClass("".concat(this.cssPrefix, "-header"))
147
+ .addClass(browserUtils.getMobileCssClass())
148
+ .addChild('div', function (builder) { return builder
149
+ .addClass("".concat(_this.cssPrefix, "-header-expression"))
150
+ .text(i18n.getText('HeaderExpression')); });
151
+ if (this.options.showColumnTitles !== false) {
152
+ headerBuilder
153
+ .addChild('div', function (builder) { return builder
154
+ .addClass("".concat(_this.cssPrefix, "-header-title"))
155
+ .text(i18n.getText('HeaderTitle')); });
156
+ }
157
+ this.headerElement = headerBuilder.toDOM();
158
+ minusHeight += this.headerElement.offsetHeight;
159
+ }
160
+ this.columnsBlock =
161
+ domel('div', this.slot)
162
+ .addClass("".concat(this.cssPrefix, "-columns"))
163
+ .addClass(browserUtils.getMobileCssClass())
164
+ .toDOM();
165
+ if (this.options.showAddRow) {
166
+ this.addRowElement =
167
+ domel('div', this.slot)
168
+ .addClass("".concat(eqCssPrefix, "-addrow"), "".concat(this.cssPrefix, "-addrow"), "".concat(eqCssPrefix, "-addrow-empty"))
169
+ .addClass(browserUtils.getMobileCssClass())
170
+ .addChild('a', function (builder) { return builder
171
+ .attr('href', 'javascript:void(0)')
172
+ .text(i18n.getText('CmdClickToAddColumn'))
173
+ .on('click', function (e) {
174
+ e.preventDefault();
175
+ _this.showEntitiesMenu({
176
+ anchor: e.target,
177
+ selectedIds: null,
178
+ itemSelectedCallback: function (data, items) {
179
+ if (data.id === '__AddAll__' && data.extra && Array.isArray(data.extra.ids)) {
180
+ data.extra.ids.forEach(function (attrId) { return _this.addNewColumn(attrId); });
181
+ }
182
+ else {
183
+ var attrid = data.id;
184
+ _this.addNewColumn(attrid);
185
+ }
186
+ return false;
187
+ }
188
+ });
189
+ }); })
190
+ .toDOM();
191
+ minusHeight += this.addRowElement.offsetHeight;
192
+ }
193
+ this.columnsBlock.style.maxHeight = "".concat(this.slot.offsetHeight - minusHeight - 25, "px");
194
+ };
195
+ ColumnsPanel.prototype.destroyCore = function () {
196
+ eqDragManager.removeDropContainer(this.slot);
197
+ this.detachQueryObserver();
198
+ this.slot.innerHTML = '';
199
+ };
200
+ ColumnsPanel.prototype.attachQueryObserver = function () {
201
+ var _this = this;
202
+ var query = this.getQuery();
203
+ this.queryEventCallbackId = query.addChangedCallback(function (event) {
204
+ //if something has changed, and that change is related to columns
205
+ var edata = event.data;
206
+ if (!edata || (edata.part != QueryChangePart.Columns
207
+ && edata.part != QueryChangePart.Aggregation
208
+ && edata.part != QueryChangePart.All)) {
209
+ return;
210
+ }
211
+ var focusedBefore = document.activeElement;
212
+ var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;
213
+ switch (edata.action) {
214
+ case QueryChangeAction.Modify: {
215
+ var columns = edata.changee;
216
+ var modifyColumn_1 = function (column) {
217
+ var colEl = _this.columnsBlock.querySelector("div[data-id='".concat(column.id, "']"));
218
+ if (colEl) {
219
+ var renderer = _this.getColumnRenderer(column, colEl);
220
+ if (renderer) {
221
+ var newEl = renderer.render();
222
+ if (isFocusInside) {
223
+ var focusElem = newEl.querySelector('a') || newEl.querySelector('.eqjs-column-button');
224
+ if (focusElem) {
225
+ focusElem.focus();
226
+ }
227
+ }
228
+ }
229
+ }
230
+ };
231
+ if (Array.isArray(columns)) {
232
+ columns.forEach(function (col) { return modifyColumn_1(col); });
233
+ }
234
+ else {
235
+ modifyColumn_1(columns);
236
+ }
237
+ _this.agjustHeaderVisibility();
238
+ break;
239
+ }
240
+ case QueryChangeAction.Add: {
241
+ var columns = edata.changee;
242
+ var addColumn_1 = function (column) {
243
+ var index = query.getColumns().indexOf(column);
244
+ var newEl = _this.addColumnElement(column, index);
245
+ if (isFocusInside) {
246
+ newEl.querySelector("a").focus();
247
+ }
248
+ };
249
+ if (Array.isArray(columns)) {
250
+ columns.forEach(function (col) { return addColumn_1(col); });
251
+ }
252
+ else {
253
+ addColumn_1(columns);
254
+ }
255
+ _this.agjustHeaderVisibility();
256
+ break;
257
+ }
258
+ case QueryChangeAction.Delete: {
259
+ var columns = edata.changee;
260
+ var deleteColumn_1 = function (column) {
261
+ var colEl = _this.columnsBlock.querySelector("div[data-id='".concat(column.id, "']"));
262
+ if (colEl) {
263
+ var next = colEl.nextSibling;
264
+ var prev = colEl.previousSibling;
265
+ _this.columnsBlock.removeChild(colEl);
266
+ if (isFocusInside) {
267
+ var focusCond = next || prev || _this.addRowElement;
268
+ var focusElem = focusCond.querySelector('a') || focusCond.querySelector('.eqjs-column-button');
269
+ if (focusElem) {
270
+ focusElem.focus();
271
+ }
272
+ }
273
+ }
274
+ };
275
+ _this.agjustHeaderVisibility();
276
+ if (Array.isArray(columns)) {
277
+ columns.forEach(function (col) { return deleteColumn_1(col); });
278
+ }
279
+ else {
280
+ deleteColumn_1(columns);
281
+ }
282
+ break;
283
+ }
284
+ default:
285
+ _this.refresh();
286
+ break;
287
+ }
288
+ });
289
+ };
290
+ ColumnsPanel.prototype.detachQueryObserver = function () {
291
+ if (this.queryEventCallbackId) {
292
+ var query = this.getQuery();
293
+ query.removeChangedCallback(this.queryEventCallbackId);
294
+ }
295
+ };
296
+ ColumnsPanel.prototype.getQuery = function () {
297
+ return this.getContext().getQuery();
298
+ };
299
+ ColumnsPanel.prototype.showLandingSlot = function (pageX, pageY) {
300
+ var rowElems = this.columnsBlock.querySelectorAll("[class*=".concat(this.cssPrefix, "-row]"));
301
+ var rows = [];
302
+ for (var i = 0; i < rowElems.length; i++) {
303
+ var rowElem = rowElems[i];
304
+ if (rowElem.style.display === 'none')
305
+ continue;
306
+ rows.push(rowElem);
307
+ }
308
+ if (rows.length === 0) {
309
+ this.landingIndex = 0;
310
+ this.columnsBlock.appendChild(this.landingSlot);
311
+ return;
312
+ }
313
+ var landingPos = getElementAbsolutePos(this.landingSlot);
314
+ if (pageY >= landingPos.y && pageY <= landingPos.y + this.landingSlot.offsetHeight) {
315
+ return;
316
+ }
317
+ var firstRow = rows[0];
318
+ var rowHeight = firstRow.offsetHeight;
319
+ var absPos = getElementAbsolutePos(firstRow);
320
+ var newLandingIndex = (pageY > absPos.y + rowHeight / 2) ? Math.round((pageY - absPos.y + rowHeight / 2) / rowHeight) : 0;
321
+ if (newLandingIndex > rows.length) {
322
+ newLandingIndex = rows.length;
323
+ }
324
+ if (newLandingIndex != this.landingIndex) {
325
+ this.landingIndex = newLandingIndex;
326
+ if (this.landingIndex < rows.length) {
327
+ this.columnsBlock.insertBefore(this.landingSlot, rows[this.landingIndex]);
328
+ }
329
+ else {
330
+ this.columnsBlock.appendChild(this.landingSlot);
331
+ }
332
+ this.landingSlot.scrollIntoView({ block: "center", behavior: "smooth" });
333
+ }
334
+ };
335
+ ColumnsPanel.prototype.hideLandingSlot = function () {
336
+ var _this = this;
337
+ this.landingIndex = -1;
338
+ setTimeout(function () {
339
+ if (_this.landingSlot.parentElement) {
340
+ _this.landingSlot.parentElement.removeChild(_this.landingSlot);
341
+ }
342
+ }, 10);
343
+ };
344
+ ColumnsPanel.prototype.setOptions = function (options) {
345
+ dataUtils.assignDeep(this.options, options);
346
+ this.getContext().options.allowCustomExpressions = options.allowCustomExpressions;
347
+ if (browserUtils.isMobileMode()) {
348
+ this.options.buttons = ["menu"];
349
+ this.options.showHeader = false;
350
+ }
351
+ };
352
+ ColumnsPanel.prototype.onProcessStartCore = function () {
353
+ if (this.options.showIndicatorOnLoad) {
354
+ if (!this.progressBlock.parentNode)
355
+ this.slot.appendChild(this.progressBlock);
356
+ }
357
+ };
358
+ ColumnsPanel.prototype.onProcessEndCore = function () {
359
+ if (this.options.showIndicatorOnLoad) {
360
+ if (this.progressBlock.parentNode)
361
+ this.slot.removeChild(this.progressBlock);
362
+ }
363
+ };
364
+ ColumnsPanel.prototype.refreshCore = function () {
365
+ this.clear();
366
+ this.render();
367
+ };
368
+ ColumnsPanel.prototype.clear = function () {
369
+ this.slot.innerHTML = "";
370
+ };
371
+ ColumnsPanel.prototype.render = function () {
372
+ try {
373
+ this.renderBaseElements();
374
+ this.createEntitiesMenu();
375
+ this.createColumnMenus();
376
+ this.agjustHeaderVisibility();
377
+ domel(this.slot)
378
+ .removeClass(eqCssMobile)
379
+ .addClass(browserUtils.getMobileCssClass());
380
+ var query = this.context.getQuery();
381
+ var columns = query.getColumns();
382
+ for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
383
+ var column = columns_1[_i];
384
+ this.columnsBlock.appendChild(this.renderColumn(column));
385
+ }
386
+ }
387
+ catch (err) {
388
+ var error = err;
389
+ this.context.throwError({
390
+ action: "ColumnsPanel rendering",
391
+ text: error.message,
392
+ sourceError: error
393
+ });
394
+ }
395
+ };
396
+ ColumnsPanel.prototype.agjustHeaderVisibility = function () {
397
+ if (this.headerElement) {
398
+ var query = this.context.getQuery();
399
+ var columns = query.getColumns();
400
+ this.headerElement.style.display = (columns.length) ? '' : 'none';
401
+ }
402
+ };
403
+ ColumnsPanel.prototype.renderColumn = function (column) {
404
+ var renderer = this.getColumnRenderer(column);
405
+ if (renderer)
406
+ return renderer.render();
407
+ return null;
408
+ };
409
+ ColumnsPanel.prototype.toggleColumnPicked = function (column) {
410
+ var el;
411
+ var isActive;
412
+ if (column) {
413
+ el = this.columnsBlock.querySelector("div[data-id=".concat(column.id, "]"));
414
+ if (el) {
415
+ isActive = el.classList.contains('active');
416
+ }
417
+ }
418
+ //clear 'active' in all rows
419
+ var rows = this.columnsBlock.querySelectorAll(".".concat(this.cssPrefix, "-row"));
420
+ for (var i = 0; i < rows.length; i++) {
421
+ var row = rows[i];
422
+ domel(row)
423
+ .removeClass('active');
424
+ if (!this.options.alwaysShowButtons) {
425
+ domel(row)
426
+ .data("show-buttons", null);
427
+ }
428
+ }
429
+ if (el && !isActive) {
430
+ domel(el)
431
+ .addClass('active')
432
+ .data("show-buttons", "");
433
+ }
434
+ };
435
+ ColumnsPanel.prototype.addNewColumn = function (attrId, index) {
436
+ var _this = this;
437
+ var model = this.getContext().getModel();
438
+ var query = this.getQuery();
439
+ var getColumnByAttrId = function (attrid) {
440
+ var attribute = model.getAttributeById(attrid);
441
+ if (!attribute) {
442
+ return null;
443
+ }
444
+ if (!attribute.useInResult) {
445
+ if (attribute.lookupAttr) {
446
+ attrid = attribute.lookupAttr;
447
+ attribute = model.getAttributeById(attrid);
448
+ if (!attribute || !attribute.useInResult) {
449
+ return null;
450
+ }
451
+ }
452
+ else
453
+ return null;
454
+ }
455
+ var column = query.createColumn();
456
+ column.caption = _this.getDefaultColumnCaption(attribute);
457
+ column.sorting = SortDirection.None;
458
+ column.sortIndex = -1;
459
+ column.expr.tag = ExprTag.EntityAttribute;
460
+ column.expr.kind = DataKind.Attribute;
461
+ column.expr.dataType = attribute.dataType;
462
+ column.expr.setValue(attrid, true);
463
+ column.params.concat(attribute.params);
464
+ return column;
465
+ };
466
+ var colToAdd, col;
467
+ if (Array.isArray(attrId)) {
468
+ colToAdd = [];
469
+ for (var i = 0; i < attrId.length; i++) {
470
+ col = getColumnByAttrId(attrId[i]);
471
+ if (col) {
472
+ colToAdd.push(col);
473
+ }
474
+ }
475
+ }
476
+ else
477
+ colToAdd = getColumnByAttrId(attrId);
478
+ this.addColumn(colToAdd, index);
479
+ return colToAdd;
480
+ };
481
+ ColumnsPanel.prototype.addColumn = function (column, index) {
482
+ var query = this.getQuery();
483
+ if (!query) {
484
+ return;
485
+ }
486
+ if (Array.isArray(column))
487
+ column = this.checkColumnsArray(column);
488
+ else
489
+ column = this.checkColumn(column);
490
+ if (!column || (Array.isArray(column) && column.length == 0)) {
491
+ return;
492
+ }
493
+ query.addColumnObj(column, index, self);
494
+ query.fireColumnsChangedEvent(QueryChangeAction.Add, column);
495
+ };
496
+ //adds one column to the panel on the specified position
497
+ ColumnsPanel.prototype.addColumnElement = function (column, index) {
498
+ var rows = this.columnsBlock.querySelectorAll("[class*=".concat(this.cssPrefix, "-row]"));
499
+ var newColBlock = this.renderColumn(column);
500
+ if (rows.length > 0) {
501
+ if (index < rows.length) {
502
+ this.columnsBlock.insertBefore(newColBlock, rows[index]);
503
+ }
504
+ else {
505
+ this.columnsBlock.appendChild(newColBlock);
506
+ this.scrollToBottom();
507
+ }
508
+ }
509
+ else {
510
+ this.columnsBlock.appendChild(newColBlock);
511
+ this.scrollToBottom();
512
+ }
513
+ if (this.options.columnRenderedCallback) {
514
+ this.options.columnRenderedCallback(newColBlock);
515
+ }
516
+ return newColBlock;
517
+ };
518
+ ColumnsPanel.prototype.scrollToBottom = function () {
519
+ this.columnsBlock.scrollTop = this.columnsBlock.scrollHeight - this.columnsBlock.clientHeight;
520
+ };
521
+ ColumnsPanel.prototype.checkColumnsArray = function (cols) {
522
+ var i = 0, len = cols.length;
523
+ var result = [];
524
+ for (var i_1 = 0; i_1 < len; i_1++) {
525
+ if (this.checkColumn(cols[i_1]))
526
+ result.push(cols[i_1]);
527
+ }
528
+ return result;
529
+ };
530
+ ColumnsPanel.prototype.checkColumn = function (col) {
531
+ if (!this.options.allowDuplicates) {
532
+ var query = this.getQuery();
533
+ var columns = query.getColumns();
534
+ for (var i = 0; i < columns.length; i++) {
535
+ if ((col.expr.tag === ExprTag.EntityAttribute && columns[i].expr.tag === ExprTag.EntityAttribute
536
+ || col.expr.tag === ExprTag.ParentEntityAttribute && columns[i].expr.tag === ExprTag.ParentEntityAttribute)
537
+ && col.expr.value === columns[i].expr.value) {
538
+ return null;
539
+ }
540
+ }
541
+ }
542
+ return col;
543
+ };
544
+ ColumnsPanel.prototype.getDefaultColumnCaption = function (attr) {
545
+ var format = this.options.titleElementFormat || this.options.attrElementFormat;
546
+ var model = this.getContext().getModel();
547
+ return model.getAttributeText(attr, format);
548
+ };
549
+ ColumnsPanel.prototype.getColumnsBlock = function () {
550
+ return this.columnsBlock;
551
+ };
552
+ ColumnsPanel.prototype.getColumnRenderer = function (column, slot) {
553
+ switch (column.expr.tag) {
554
+ case ExprTag.AggregateFunction:
555
+ return new AggrFuncColumnRendererCP(this, column, slot);
556
+ case ExprTag.CustomSql:
557
+ return new CustomSqlColumnRendererCP(this, column, slot);
558
+ case ExprTag.EntityAttribute:
559
+ case ExprTag.ParentEntityAttribute:
560
+ return new SimpleColumnRendererCP(this, column, slot);
561
+ }
562
+ return null;
563
+ };
564
+ ColumnsPanel.prototype.areCustomExpressionsAllowed = function () {
565
+ var query = this.getQuery();
566
+ return query.isEx() && this.getContext().options.allowCustomExpressions;
567
+ };
568
+ ColumnsPanel.prototype.addAllColumnsToEntitiesList = function (list) {
569
+ var _this = this;
570
+ var attrIds = list.filter(function (item) { return !item.isEntity; }).map(function (item) { return item.id; });
571
+ if (attrIds.length > 0) {
572
+ list.unshift({
573
+ id: '__AddAll__',
574
+ text: i18n.getText('AddAllForEntityText'),
575
+ extra: {
576
+ ids: attrIds
577
+ }
578
+ });
579
+ }
580
+ list.forEach(function (item) {
581
+ if (item.items) {
582
+ _this.addAllColumnsToEntitiesList(item.items);
583
+ }
584
+ });
585
+ };
586
+ ColumnsPanel.prototype.createEntitiesMenu = function () {
587
+ var model = this.getContext().getModel();
588
+ if (!model || model.isEmpty())
589
+ return null;
590
+ var menuId = this.slot.id;
591
+ if (menuId) {
592
+ menuId += '-EntitiesMenu';
593
+ }
594
+ var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });
595
+ // add [Add all columns] items
596
+ if (this.options.showAddAllForEntity) {
597
+ this.addAllColumnsToEntitiesList(entitiesList);
598
+ }
599
+ var options = {
600
+ id: menuId,
601
+ items: entitiesList,
602
+ adjustHeight: this.options.adjustEntitiesMenuHeight,
603
+ domWriteItemsId: this.options.domWriteItemsId
604
+ };
605
+ dataUtils.assign(options, this.options.menuOptions);
606
+ this.entitiesMenu = new PopupMenu(options);
607
+ };
608
+ ColumnsPanel.prototype.getSortMenuList = function () {
609
+ return [
610
+ { id: 'None', text: i18n.getText('CmdNotSorted') },
611
+ { id: 'Ascending', text: i18n.getText('CmdAscending') },
612
+ { id: 'Descending', text: i18n.getText('CmdDescending') },
613
+ { id: '---', text: '---' }
614
+ ];
615
+ };
616
+ ColumnsPanel.prototype.getMoveMenuList = function () {
617
+ return [
618
+ { id: 'MoveTop', text: i18n.getText('CmdMoveToFirst') },
619
+ { id: 'MoveUp', text: i18n.getText('CmdMoveToPrev') },
620
+ { id: 'MoveDown', text: i18n.getText('CmdMoveToNext') },
621
+ { id: 'MoveBottom', text: i18n.getText('CmdMoveToLast') }
622
+ ];
623
+ };
624
+ ColumnsPanel.prototype.createSortMenu = function () {
625
+ var model = this.getContext().getModel();
626
+ if (!model || model.isEmpty())
627
+ return null;
628
+ var menuId = this.slot.id;
629
+ if (menuId) {
630
+ menuId += '-SortMenu';
631
+ }
632
+ var items = this.getSortMenuList().concat(this.moveMenu.getItems());
633
+ var menuOptions = {
634
+ id: menuId,
635
+ "items": items,
636
+ domWriteItemsId: this.options.domWriteItemsId,
637
+ showSelected: true
638
+ };
639
+ dataUtils.assign(menuOptions, this.options.menuOptions);
640
+ menuOptions.searchBoxAlwaysShown = false;
641
+ this.sortMenu = new PopupMenu(menuOptions);
642
+ };
643
+ ColumnsPanel.prototype.createMoveMenu = function () {
644
+ var model = this.getContext().getModel();
645
+ if (!model || model.isEmpty())
646
+ return null;
647
+ var menuId = this.slot.id;
648
+ if (menuId) {
649
+ menuId += '-MoveMenu';
650
+ }
651
+ var items = dataUtils.createArrayFrom(this.getMoveMenuList());
652
+ if (this.options.allowHiddenColumns) {
653
+ items.push({ id: '---', text: '---' });
654
+ items.push({ id: 'IsHidden', text: i18n.getText('CmdHiddenColumn') });
655
+ }
656
+ var menuOptions = {
657
+ "items": items,
658
+ id: menuId,
659
+ domWriteItemsId: this.options.domWriteItemsId,
660
+ showSelected: true
661
+ };
662
+ dataUtils.assign(menuOptions, this.options.menuOptions);
663
+ this.moveMenu = new PopupMenu(menuOptions);
664
+ menuOptions.searchBoxAlwaysShown = false;
665
+ };
666
+ ColumnsPanel.prototype.showEntitiesMenu = function (menuOptions) {
667
+ this.entitiesMenu.showMenu(menuOptions);
668
+ };
669
+ ColumnsPanel.prototype.moveColumn = function (column, direction) {
670
+ var query = this.getQuery();
671
+ var columns = query.getColumns();
672
+ var index = columns.indexOf(column);
673
+ if (index >= 0) {
674
+ switch (direction) {
675
+ case 'MoveTop':
676
+ if (index == 0) {
677
+ return;
678
+ }
679
+ this.moveColumnCore(index, 0);
680
+ break;
681
+ case 'MoveUp':
682
+ if (index == 0) {
683
+ return;
684
+ }
685
+ this.moveColumnCore(index, index - 1);
686
+ break;
687
+ case 'MoveDown':
688
+ if (index == columns.length - 1) {
689
+ return;
690
+ }
691
+ this.moveColumnCore(index, index + 1);
692
+ break;
693
+ case 'MoveBottom':
694
+ if (index == columns.length - 1) {
695
+ return;
696
+ }
697
+ this.moveColumnCore(index, columns.length - 1);
698
+ break;
699
+ }
700
+ ;
701
+ }
702
+ };
703
+ ColumnsPanel.prototype.moveColumnCore = function (index1, index2) {
704
+ var query = this.getQuery();
705
+ if (!query)
706
+ return;
707
+ var rows = this.columnsBlock.querySelectorAll("[class*=".concat(this.cssPrefix, "-row]"));
708
+ var colToMove = rows[index1];
709
+ if (index2 == 0) {
710
+ this.columnsBlock.insertBefore(colToMove, this.columnsBlock[0]);
711
+ }
712
+ else if (index2 > 0 && index2 < rows.length - 1) {
713
+ if (index1 < index2) {
714
+ this.columnsBlock.insertBefore(colToMove, rows[index2 + 1]);
715
+ }
716
+ else {
717
+ this.columnsBlock.insertBefore(colToMove, rows[index2]);
718
+ }
719
+ }
720
+ else {
721
+ this.columnsBlock.appendChild(colToMove);
722
+ }
723
+ query.moveColumn(index1, index2);
724
+ query.fireColumnsChangedEvent();
725
+ };
726
+ ColumnsPanel.prototype.createColumnMenus = function () {
727
+ this.createMoveMenu();
728
+ if (this.options.allowSorting) {
729
+ this.createSortMenu();
730
+ }
731
+ };
732
+ ColumnsPanel.prototype.renderProgressBlock = function () {
733
+ this.progressBlock = document.createElement('div');
734
+ this.progressBlock.classList.add("".concat(eqCssPrefix, "-progress-win8"));
735
+ this.progressBlock.classList.add(browserUtils.getMobileCssClass());
736
+ this.progressBlock.innerHTML = '<div class="wBall" id="wBall_1"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_2"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_3"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_4"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_5"><div class="wInnerBall"></div></div>';
737
+ };
738
+ return ColumnsPanel;
739
+ }(Widget));
740
+ export { ColumnsPanel };
722
741
  //# sourceMappingURL=columns_panel.js.map