@easyquery/ui 7.2.3 → 7.2.4-beta03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/browser/eq.community.css.map +1 -1
  2. package/dist/browser/eq.community.js +32587 -34147
  3. package/dist/browser/eq.community.js.map +1 -1
  4. package/dist/browser/eq.community.min.js +1 -9
  5. package/dist/browser/eq.community.min.js.map +1 -1
  6. package/dist/browser/eq.core.css +17 -112
  7. package/dist/browser/eq.core.min.css +3 -10
  8. package/dist/browser/eq.view.css +1 -1
  9. package/dist/browser/eq.view.css.map +1 -1
  10. package/dist/browser/eq.view.min.css +1 -10
  11. package/dist/bundles/easyquery.ui.js +23032 -22870
  12. package/dist/bundles/easyquery.ui.js.map +1 -1
  13. package/dist/bundles/easyquery.ui.min.js +1 -1
  14. package/dist/bundles/easyquery.ui.min.js.map +1 -1
  15. package/dist/lib/dialog/aggr_settings_dialog.d.ts +12 -12
  16. package/dist/lib/dialog/aggr_settings_dialog.js +106 -106
  17. package/dist/lib/dialog/export_dialog.d.ts +7 -7
  18. package/dist/lib/dialog/export_dialog.js +63 -63
  19. package/dist/lib/extensions.d.ts +7 -7
  20. package/dist/lib/extensions.js +13 -13
  21. package/dist/lib/facets/chart_facet.d.ts +21 -21
  22. package/dist/lib/facets/chart_facet.js +240 -238
  23. package/dist/lib/facets/chart_facet.js.map +1 -1
  24. package/dist/lib/facets/datatable_facet.d.ts +15 -15
  25. package/dist/lib/facets/datatable_facet.js +71 -69
  26. package/dist/lib/facets/datatable_facet.js.map +1 -1
  27. package/dist/lib/facets/pivot_table_facet.d.ts +51 -51
  28. package/dist/lib/facets/pivot_table_facet.js +698 -696
  29. package/dist/lib/facets/pivot_table_facet.js.map +1 -1
  30. package/dist/lib/facets/result_facet.d.ts +40 -40
  31. package/dist/lib/facets/result_facet.js +246 -246
  32. package/dist/lib/facets/result_facet.js.map +1 -1
  33. package/dist/lib/i18n/text_resources.d.ts +1 -1
  34. package/dist/lib/i18n/text_resources.js +260 -259
  35. package/dist/lib/i18n/text_resources.js.map +1 -1
  36. package/dist/lib/public_api.d.ts +61 -61
  37. package/dist/lib/public_api.js +92 -90
  38. package/dist/lib/public_api.js.map +1 -1
  39. package/dist/lib/types/facet_type.d.ts +5 -5
  40. package/dist/lib/types/facet_type.js +6 -6
  41. package/dist/lib/types/qp_editable_part.d.ts +15 -15
  42. package/dist/lib/types/qp_editable_part.js +16 -16
  43. package/dist/lib/utils/browser_utils.d.ts +8 -8
  44. package/dist/lib/utils/browser_utils.js +58 -58
  45. package/dist/lib/utils/display_format_parser.d.ts +11 -11
  46. package/dist/lib/utils/display_format_parser.js +61 -61
  47. package/dist/lib/utils/dropdown.d.ts +11 -11
  48. package/dist/lib/utils/dropdown.js +57 -55
  49. package/dist/lib/utils/dropdown.js.map +1 -1
  50. package/dist/lib/utils/popup_menu.d.ts +163 -163
  51. package/dist/lib/utils/popup_menu.js +1259 -1260
  52. package/dist/lib/utils/popup_menu.js.map +1 -1
  53. package/dist/lib/utils/utils.d.ts +9 -9
  54. package/dist/lib/utils/utils.js +46 -46
  55. package/dist/lib/utils/utils.js.map +1 -1
  56. package/dist/lib/views/adv_search_view.d.ts +95 -95
  57. package/dist/lib/views/adv_search_view.js +712 -710
  58. package/dist/lib/views/adv_search_view.js.map +1 -1
  59. package/dist/lib/views/data_filter_view.d.ts +17 -17
  60. package/dist/lib/views/data_filter_view.js +79 -77
  61. package/dist/lib/views/data_filter_view.js.map +1 -1
  62. package/dist/lib/views/html_data_filter_view.d.ts +19 -19
  63. package/dist/lib/views/html_data_filter_view.js +44 -42
  64. package/dist/lib/views/html_data_filter_view.js.map +1 -1
  65. package/dist/lib/views/report_view.d.ts +173 -173
  66. package/dist/lib/views/report_view.js +733 -731
  67. package/dist/lib/views/report_view.js.map +1 -1
  68. package/dist/lib/views/view.d.ts +149 -149
  69. package/dist/lib/views/view.js +538 -538
  70. package/dist/lib/views/view.js.map +1 -1
  71. package/dist/lib/views/view_options.d.ts +113 -113
  72. package/dist/lib/views/view_options.js +1 -0
  73. package/dist/lib/widgets/aggregation_bar.d.ts +30 -30
  74. package/dist/lib/widgets/aggregation_bar.js +145 -143
  75. package/dist/lib/widgets/aggregation_bar.js.map +1 -1
  76. package/dist/lib/widgets/charts/chart_type.d.ts +14 -14
  77. package/dist/lib/widgets/charts/chart_type.js +15 -15
  78. package/dist/lib/widgets/charts/chart_widget.d.ts +92 -92
  79. package/dist/lib/widgets/charts/chart_widget.js +384 -382
  80. package/dist/lib/widgets/charts/chart_widget.js.map +1 -1
  81. package/dist/lib/widgets/charts/chart_widget_chartjs.d.ts +23 -23
  82. package/dist/lib/widgets/charts/chart_widget_chartjs.js +186 -184
  83. package/dist/lib/widgets/charts/chart_widget_chartjs.js.map +1 -1
  84. package/dist/lib/widgets/charts/chart_widget_google.d.ts +23 -23
  85. package/dist/lib/widgets/charts/chart_widget_google.js +165 -163
  86. package/dist/lib/widgets/charts/chart_widget_google.js.map +1 -1
  87. package/dist/lib/widgets/columns_bar.d.ts +64 -64
  88. package/dist/lib/widgets/columns_bar.js +722 -721
  89. package/dist/lib/widgets/columns_bar.js.map +1 -1
  90. package/dist/lib/widgets/columns_panel.d.ts +64 -62
  91. package/dist/lib/widgets/columns_panel.js +739 -721
  92. package/dist/lib/widgets/columns_panel.js.map +1 -1
  93. package/dist/lib/widgets/easy_grid_widget.d.ts +38 -38
  94. package/dist/lib/widgets/easy_grid_widget.js +229 -227
  95. package/dist/lib/widgets/easy_grid_widget.js.map +1 -1
  96. package/dist/lib/widgets/entities_panel.d.ts +49 -49
  97. package/dist/lib/widgets/entities_panel.js +627 -625
  98. package/dist/lib/widgets/entities_panel.js.map +1 -1
  99. package/dist/lib/widgets/eq_result_html_grid.d.ts +32 -32
  100. package/dist/lib/widgets/eq_result_html_grid.js +185 -183
  101. package/dist/lib/widgets/eq_result_html_grid.js.map +1 -1
  102. package/dist/lib/widgets/export_widget.d.ts +10 -10
  103. package/dist/lib/widgets/export_widget.js +57 -55
  104. package/dist/lib/widgets/export_widget.js.map +1 -1
  105. package/dist/lib/widgets/facet_container.d.ts +12 -12
  106. package/dist/lib/widgets/facet_container.js +53 -51
  107. package/dist/lib/widgets/facet_container.js.map +1 -1
  108. package/dist/lib/widgets/filter_bar.d.ts +38 -38
  109. package/dist/lib/widgets/filter_bar.js +259 -257
  110. package/dist/lib/widgets/filter_bar.js.map +1 -1
  111. package/dist/lib/widgets/grid.d.ts +35 -35
  112. package/dist/lib/widgets/grid.js +79 -77
  113. package/dist/lib/widgets/grid.js.map +1 -1
  114. package/dist/lib/widgets/html_content_widget.d.ts +35 -35
  115. package/dist/lib/widgets/html_content_widget.js +71 -69
  116. package/dist/lib/widgets/html_content_widget.js.map +1 -1
  117. package/dist/lib/widgets/locale_widget.d.ts +16 -16
  118. package/dist/lib/widgets/locale_widget.js +79 -77
  119. package/dist/lib/widgets/locale_widget.js.map +1 -1
  120. package/dist/lib/widgets/manage_drilldown_widget.d.ts +18 -18
  121. package/dist/lib/widgets/manage_drilldown_widget.js +154 -152
  122. package/dist/lib/widgets/manage_drilldown_widget.js.map +1 -1
  123. package/dist/lib/widgets/process_widget.d.ts +21 -21
  124. package/dist/lib/widgets/process_widget.js +50 -48
  125. package/dist/lib/widgets/process_widget.js.map +1 -1
  126. package/dist/lib/widgets/query_panel.d.ts +62 -58
  127. package/dist/lib/widgets/query_panel.js +675 -653
  128. package/dist/lib/widgets/query_panel.js.map +1 -1
  129. package/dist/lib/widgets/queryname_widget.d.ts +27 -27
  130. package/dist/lib/widgets/queryname_widget.js +109 -107
  131. package/dist/lib/widgets/queryname_widget.js.map +1 -1
  132. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.d.ts +54 -54
  133. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js +429 -429
  134. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js.map +1 -1
  135. package/dist/lib/widgets/renderers/base_element_renderer.d.ts +15 -15
  136. package/dist/lib/widgets/renderers/base_element_renderer.js +63 -63
  137. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.d.ts +11 -11
  138. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js +62 -60
  139. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js.map +1 -1
  140. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.d.ts +53 -53
  141. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js +550 -550
  142. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js.map +1 -1
  143. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.d.ts +9 -9
  144. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js +79 -77
  145. package/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js.map +1 -1
  146. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.d.ts +17 -17
  147. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js +180 -178
  148. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js.map +1 -1
  149. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.d.ts +72 -72
  150. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js +819 -817
  151. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js.map +1 -1
  152. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.d.ts +22 -18
  153. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js +245 -214
  154. package/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js.map +1 -1
  155. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.d.ts +13 -13
  156. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js +180 -178
  157. package/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js.map +1 -1
  158. package/dist/lib/widgets/renderers/dropdown_renderer.d.ts +9 -9
  159. package/dist/lib/widgets/renderers/dropdown_renderer.js +42 -40
  160. package/dist/lib/widgets/renderers/dropdown_renderer.js.map +1 -1
  161. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.d.ts +16 -16
  162. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js +87 -85
  163. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js.map +1 -1
  164. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.d.ts +14 -14
  165. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js +71 -69
  166. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js.map +1 -1
  167. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.d.ts +7 -7
  168. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js +41 -39
  169. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js.map +1 -1
  170. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.d.ts +27 -27
  171. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js +231 -229
  172. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js.map +1 -1
  173. package/dist/lib/widgets/renderers/querypanel/condition_renderer.d.ts +48 -48
  174. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js +509 -507
  175. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js.map +1 -1
  176. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.d.ts +13 -13
  177. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js +108 -106
  178. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js.map +1 -1
  179. package/dist/lib/widgets/renderers/querypanel/expression_renderer.d.ts +28 -28
  180. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js +91 -89
  181. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js.map +1 -1
  182. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.d.ts +14 -14
  183. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js +165 -163
  184. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js.map +1 -1
  185. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.d.ts +35 -35
  186. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js +317 -315
  187. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js.map +1 -1
  188. package/dist/lib/widgets/renderers/querypanel/operator_renderer.d.ts +19 -19
  189. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js +95 -93
  190. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js.map +1 -1
  191. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.d.ts +27 -27
  192. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js +237 -235
  193. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js.map +1 -1
  194. package/dist/lib/widgets/renderers/querypanel/text_renderer.d.ts +11 -11
  195. package/dist/lib/widgets/renderers/querypanel/text_renderer.js +36 -36
  196. package/dist/lib/widgets/renderers/querypanel/text_renderer.js.map +1 -1
  197. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.d.ts +26 -26
  198. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js +163 -163
  199. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.js.map +1 -1
  200. package/dist/lib/widgets/result_facets_panel.d.ts +64 -64
  201. package/dist/lib/widgets/result_facets_panel.js +503 -501
  202. package/dist/lib/widgets/result_facets_panel.js.map +1 -1
  203. package/dist/lib/widgets/sorting_bar.d.ts +34 -34
  204. package/dist/lib/widgets/sorting_bar.js +330 -328
  205. package/dist/lib/widgets/sorting_bar.js.map +1 -1
  206. package/dist/lib/widgets/statement_panel.d.ts +21 -21
  207. package/dist/lib/widgets/statement_panel.js +60 -58
  208. package/dist/lib/widgets/statement_panel.js.map +1 -1
  209. package/dist/lib/widgets/widget_options.d.ts +433 -429
  210. package/dist/lib/widgets/widget_options.js +1 -0
  211. package/package.json +25 -25
  212. package/webpack.config.js +31 -24
  213. package/dist/browser/eq.community.min.css.map +0 -1
  214. package/dist/browser/eq.view.min.css.map +0 -1
@@ -1,626 +1,628 @@
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 { Widget, WidgetGroup, ExprTag, QueryChangePart, QueryChangeAction } from '@easyquery/core';
17
- import { eqDragManager } from '@easydata/ui';
18
- import { eqCssPrefix } from '../utils/utils';
19
- import { browserUtils } from '../utils/browser_utils';
20
- /**
21
- * The entities panel wiget, implemented without JQuery.
22
- */
23
- var EntitiesPanel = /** @class */ (function (_super) {
24
- __extends(EntitiesPanel, _super);
25
- /**
26
- * The default constructor.
27
- * @param slot The html element.
28
- */
29
- function EntitiesPanel(slot) {
30
- var _this = _super.call(this, slot) || this;
31
- _this.queryChangedCallbackId = null;
32
- _this.group = WidgetGroup.Model | WidgetGroup.Query;
33
- _this.panel = slot;
34
- return _this;
35
- }
36
- Object.defineProperty(EntitiesPanel.prototype, "cssPrefix", {
37
- get: function () {
38
- return 'eqjs-ep';
39
- },
40
- enumerable: true,
41
- configurable: true
42
- });
43
- EntitiesPanel.prototype.getWidgetType = function () {
44
- return 'entitiesPanel';
45
- };
46
- /**
47
- * Initialize widget.
48
- * @param context The context.
49
- * @param options The options.
50
- */
51
- EntitiesPanel.prototype.init = function (context, options) {
52
- _super.prototype.init.call(this, context, options);
53
- this.setOptions(options);
54
- this.renderProgressBlock();
55
- };
56
- /**
57
- * Refresh widget implementation
58
- */
59
- EntitiesPanel.prototype.refreshCore = function () {
60
- this.render();
61
- if (this.options.syncWithColumns) {
62
- this.refreshCheckedStateByColumns();
63
- }
64
- };
65
- EntitiesPanel.prototype.onProcessStartCore = function () {
66
- if (this.options.showIndicatorOnLoad) {
67
- if (!this.progressBlock.parentNode)
68
- this.panel.appendChild(this.progressBlock);
69
- }
70
- };
71
- EntitiesPanel.prototype.onProcessEndCore = function () {
72
- if (this.options.showIndicatorOnLoad) {
73
- if (this.progressBlock.parentNode)
74
- this.panel.removeChild(this.progressBlock);
75
- }
76
- };
77
- EntitiesPanel.prototype.destroyCore = function () {
78
- this.slot.innerHTML = '';
79
- };
80
- EntitiesPanel.prototype.setOptions = function (options) {
81
- var _this = this;
82
- this.options = {
83
- showToolbar: true,
84
- syncWithColumns: false,
85
- showSelectAllButton: false,
86
- showClearSelectionButton: true,
87
- showAddColumnButton: true,
88
- showAddConditionButton: true,
89
- showCheckboxes: true,
90
- showTooltips: true,
91
- draggableAttributes: true,
92
- showAttributes: { useInConditions: true, useInResult: true, useInSorting: false },
93
- showFilterBox: false,
94
- filterBoxMode: 0,
95
- showIndicatorOnLoad: true,
96
- attrPlacement: 0,
97
- sortEntities: false,
98
- autoClearSelection: true,
99
- entityRenderedCallback: null,
100
- attributeRenderedCallback: null,
101
- columnTitleFormat: '{attr}'
102
- };
103
- if (options) {
104
- dataUtils.assignDeep(this.options, options);
105
- }
106
- if (this.queryChangedCallbackId) {
107
- var query = this.context.getQuery();
108
- query.removeChangedCallback(this.queryChangedCallbackId);
109
- }
110
- if (this.options.syncWithColumns) {
111
- var query = this.context.getQuery();
112
- this.queryChangedCallbackId = query.addChangedCallback(function (ev) {
113
- var edata = ev.data;
114
- if (!edata || (edata.part != QueryChangePart.Columns && edata.part != QueryChangePart.All)) {
115
- return;
116
- }
117
- _this.refreshCheckedStateByColumns();
118
- });
119
- }
120
- };
121
- EntitiesPanel.prototype.render = function () {
122
- var model = this.context.getModel();
123
- ;
124
- this.clear();
125
- this.panel.classList.add(this.cssPrefix + "-panel");
126
- this.panel.classList.add(browserUtils.getMobileCssClass());
127
- this.rootEntityBlock = document.createElement('div');
128
- if (model != null && !model.isEmpty()) {
129
- var entTree = model.getEntitiesTree({
130
- addUIC: this.options.showAttributes.useInConditions,
131
- addUIR: this.options.showAttributes.useInResult,
132
- addUIS: this.options.showAttributes.useInSorting,
133
- attrPlacement: this.options.attrPlacement,
134
- sortEntities: this.options.sortEntities,
135
- includeRootData: true
136
- });
137
- this.entityTreeBlock = this.renderEntity(entTree, this.rootEntityBlock, 0);
138
- this.panel.appendChild(this.entityTreeBlock);
139
- }
140
- if (this.options.showFilterBox) {
141
- this.createFilterBox();
142
- }
143
- else {
144
- this.rootEntityBlock.style.top = '0';
145
- }
146
- if (this.options.showToolbar && !this.options.syncWithColumns) {
147
- this.createToolPanel();
148
- }
149
- else {
150
- this.rootEntityBlock.style.bottom = '0';
151
- }
152
- };
153
- EntitiesPanel.prototype.renderEntity = function (entity, block, offset) {
154
- var _this = this;
155
- var entityBlock;
156
- var entityNode = document.createElement('div');
157
- entityNode.classList.add(this.cssPrefix + "-entity-node");
158
- entityNode.classList.add(browserUtils.getMobileCssClass());
159
- var entityChildren = document.createElement('div');
160
- entityChildren.classList.add(this.cssPrefix + "-entity-children");
161
- entityChildren.classList.add(browserUtils.getMobileCssClass());
162
- var nodeLabel = document.createElement('label');
163
- nodeLabel.classList.add(this.cssPrefix + "-entity-node-label");
164
- var nodeInput = document.createElement('input');
165
- nodeInput.type = 'checkbox';
166
- nodeInput.title = entity.text;
167
- var nodeToggleButton = document.createElement('a');
168
- nodeToggleButton.href = 'javascript:void(0)';
169
- nodeToggleButton.title = i18n.getText("EntityToggle") + " " + entity.text;
170
- nodeToggleButton.classList.add(this.cssPrefix + "-entity-node-button");
171
- var attrNode, attrLabel, attrInput;
172
- var currentOffset = offset;
173
- var isAttributeInTree = function (attrId, entityBlock) {
174
- var res = entityBlock.querySelectorAll("." + _this.cssPrefix + "-entity-attr[data-id=\"" + attrId + "\"]");
175
- return res.length > 0;
176
- };
177
- if (block) {
178
- entityBlock = block;
179
- entityBlock.innerHTML = '';
180
- }
181
- else {
182
- entityBlock = document.createElement('div');
183
- }
184
- entityBlock.classList.add(this.cssPrefix + "-entity");
185
- entityBlock.classList.add(browserUtils.getMobileCssClass());
186
- if (entity.id && entity.id != "") {
187
- nodeLabel.innerText = entity.text;
188
- entityNode.appendChild(nodeLabel); //caption
189
- if (this.options.showCheckboxes) {
190
- nodeLabel.insertBefore(nodeInput, nodeLabel.firstChild);
191
- }
192
- entityNode.insertBefore(nodeToggleButton, entityNode.firstChild);
193
- if (this.options.showTooltips && entity.description) {
194
- nodeLabel.setAttribute('title', entity.description);
195
- }
196
- for (var i = 0; i < currentOffset; i++) {
197
- var divElem = document.createElement('div');
198
- divElem.classList.add(this.cssPrefix + "-entity-offset");
199
- entityNode.insertBefore(divElem, entityNode.firstChild);
200
- }
201
- entityBlock.appendChild(entityNode);
202
- entityChildren.hidden = true;
203
- currentOffset++;
204
- }
205
- var itemsLength = entity.items ? entity.items.length : 0;
206
- var _loop_1 = function (i) {
207
- var item = entity.items[i];
208
- if (item.isEntity) {
209
- entityChildren.appendChild(this_1.renderEntity(item, null, currentOffset));
210
- }
211
- else {
212
- if (!item.lookupAttr || !(isAttributeInTree(item.lookupAttr, entityChildren))) {
213
- attrLabel = document.createElement('label');
214
- attrLabel.innerText = item.text;
215
- attrLabel.classList.add(this_1.cssPrefix + "-entity-attr-label");
216
- if (this_1.options.showCheckboxes) {
217
- attrInput = document.createElement('input');
218
- attrInput.type = 'checkbox';
219
- attrInput.title = item.text;
220
- attrLabel.insertBefore(attrInput, attrLabel.firstChild);
221
- if (this_1.options.syncWithColumns) {
222
- attrInput.addEventListener('change', function (ev) {
223
- var model = _this.context.getModel();
224
- var query = _this.context.getQuery();
225
- var checkbox = ev.currentTarget;
226
- var attrId = checkbox.parentElement.parentElement.getAttribute('data-id');
227
- if (model.checkAttrProperty(attrId, "useInResult")) {
228
- if (checkbox.checked) {
229
- var attr = model.getAttributeById(attrId);
230
- var caption = model.getAttributeText(attr, _this.options.columnTitleFormat);
231
- var column = query.addColumn({
232
- attribute: attr,
233
- caption: caption
234
- });
235
- query.fireColumnsChangedEvent(QueryChangeAction.Add, column);
236
- }
237
- else {
238
- var columns = query.getColumns()
239
- .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute
240
- && col.expr.value === attrId; });
241
- if (columns.length > 0) {
242
- query.removeColumn(columns[0], null);
243
- query.fireColumnsChangedEvent(QueryChangeAction.Delete, columns[0]);
244
- }
245
- }
246
- }
247
- });
248
- }
249
- }
250
- if (this_1.options.showTooltips && item.description) {
251
- attrLabel.setAttribute('title', item.description);
252
- }
253
- for (var j = 0; j < currentOffset + 1; j++) {
254
- var divElem = document.createElement('div');
255
- divElem.classList.add(this_1.cssPrefix + "-entity-offset");
256
- attrLabel.insertBefore(divElem, attrLabel.firstChild);
257
- }
258
- attrNode = document.createElement('div');
259
- attrNode.classList.add(this_1.cssPrefix + "-entity-attr");
260
- if (entityNode.innerHTML.length == 0) {
261
- attrNode.classList.add(this_1.cssPrefix + "-entity-attr-root");
262
- }
263
- attrNode.innerHTML = "";
264
- attrNode.appendChild(attrLabel);
265
- attrNode.setAttribute('data-id', item.id);
266
- if (this_1.options.draggableAttributes) {
267
- eqDragManager.registerDraggableItem({
268
- element: attrNode,
269
- scope: "entityAttr",
270
- data: { attrId: item.id },
271
- renderer: function (dragImage) {
272
- dragImage.innerHTML = '';
273
- var attrLabel = document.createElement('span');
274
- attrLabel.innerText = item.text;
275
- dragImage.appendChild(attrLabel);
276
- }
277
- });
278
- }
279
- if (this_1.options.attributeRenderedCallback) {
280
- this_1.options.attributeRenderedCallback(attrNode);
281
- }
282
- entityChildren.appendChild(attrNode);
283
- }
284
- }
285
- };
286
- var this_1 = this;
287
- for (var i = 0; i < itemsLength; i++) {
288
- _loop_1(i);
289
- }
290
- if (entityChildren.innerHTML.length) {
291
- entityBlock.appendChild(entityChildren);
292
- nodeToggleButton.addEventListener('click', function (event) {
293
- entityChildren.hidden = !entityChildren.hidden;
294
- var element = event.target;
295
- var className = _this.cssPrefix + "-entity-node-button-open";
296
- if (element.classList.contains(className)) {
297
- element.classList.remove(className);
298
- }
299
- else {
300
- element.classList.add(className);
301
- }
302
- event.preventDefault();
303
- });
304
- }
305
- if (entityChildren) {
306
- var checkboxes = entityChildren.querySelectorAll("." + this.cssPrefix + "-entity-attr > label > input");
307
- for (var i = 0; i < checkboxes.length; i++) {
308
- var checkbox = checkboxes[i];
309
- checkbox.addEventListener('click', function (event) {
310
- var element = event.target;
311
- if (element.checked && !nodeInput.checked) {
312
- nodeInput.checked = true;
313
- }
314
- else if (entityChildren.querySelectorAll('input:checked').length === 0) {
315
- nodeInput.checked = false;
316
- }
317
- event.stopPropagation();
318
- });
319
- }
320
- }
321
- nodeInput.addEventListener('click', function (event) {
322
- var element = event.target;
323
- var entities = entityChildren.querySelectorAll('label input');
324
- for (var i = 0; i < entities.length; i++) {
325
- var entity_1 = entities[i];
326
- entity_1.checked = element.checked;
327
- }
328
- if (_this.options.syncWithColumns) {
329
- var query = _this.context.getQuery();
330
- var model = _this.context.getModel();
331
- var attrList_2 = [];
332
- var attrElems = Array.from(entityChildren.querySelectorAll("." + _this.cssPrefix + "-entity-attr"));
333
- for (var _i = 0, attrElems_1 = attrElems; _i < attrElems_1.length; _i++) {
334
- var elem = attrElems_1[_i];
335
- var attrId = elem.getAttribute('data-id');
336
- if (model.checkAttrProperty(attrId, 'useInResult')) {
337
- attrList_2.push(attrId);
338
- }
339
- }
340
- if (element.checked) {
341
- for (var _a = 0, attrList_1 = attrList_2; _a < attrList_1.length; _a++) {
342
- var attrId = attrList_1[_a];
343
- query.addColumn({ attributeId: attrId });
344
- }
345
- }
346
- else {
347
- var columns = query.getColumns()
348
- .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute
349
- && attrList_2.indexOf(col.expr.value) >= 0; });
350
- query.removeColumns(columns, null);
351
- }
352
- query.fireColumnsChangedEvent();
353
- }
354
- event.stopPropagation();
355
- });
356
- if (block != this.rootEntityBlock && this.options.entityRenderedCallback) {
357
- this.options.entityRenderedCallback(entityBlock);
358
- }
359
- return entityBlock;
360
- };
361
- EntitiesPanel.prototype.createFilterBox = function () {
362
- var _this = this;
363
- this.filterBoxBlock = document.createElement('div');
364
- this.filterBoxBlock.classList.add(this.cssPrefix + "-filter-box");
365
- this.filterBoxBlock.classList.add(browserUtils.getMobileCssClass());
366
- this.filterBoxInput = document.createElement('input');
367
- this.filterBoxInput.classList.add(this.cssPrefix + "-filter-box-input");
368
- this.filterBoxInput.addEventListener('input', function (e) {
369
- var attrs = _this.panel.querySelectorAll("." + _this.cssPrefix + "-entity-attr");
370
- for (var i = 0; i < attrs.length; i++) {
371
- var attr = attrs[i];
372
- attr.hidden = !_this.checkFilterAttribute(attr);
373
- }
374
- var entities = _this.panel.querySelectorAll(":scope > ." + _this.cssPrefix + "-entity");
375
- for (var i = 0; i < entities.length; i++) {
376
- var entity = entities[i];
377
- var attrs_1 = entity.querySelectorAll("." + _this.cssPrefix + "-entity-attr");
378
- var displayAttrCount = 0;
379
- for (var i_1 = 0; i_1 < attrs_1.length; i_1++) {
380
- if (attrs_1[i_1].style.display !== 'None') {
381
- displayAttrCount++;
382
- }
383
- }
384
- entity.hidden = displayAttrCount === 0;
385
- }
386
- if (_this.filterBoxInput.value === '')
387
- _this.collapseAll();
388
- else
389
- _this.expandAll();
390
- });
391
- this.filterBoxBlock.appendChild(this.filterBoxInput);
392
- this.panel.insertBefore(this.filterBoxBlock, this.panel.firstChild);
393
- };
394
- EntitiesPanel.prototype.createToolPanel = function () {
395
- var _this = this;
396
- var defClass = this.cssPrefix + "-tool-panel";
397
- var toolPanelBlock = document.createElement('div');
398
- toolPanelBlock.classList.add(defClass);
399
- toolPanelBlock.classList.add(browserUtils.getMobileCssClass());
400
- var toolSelectAll = document.createElement('div');
401
- toolSelectAll.classList.add(defClass + "-select-all");
402
- toolSelectAll.title = 'Select all';
403
- var toolDeselectAll = document.createElement('div');
404
- toolDeselectAll.classList.add(defClass + "-deselect-all");
405
- toolDeselectAll.title = 'Clear selection';
406
- var toolAddColumns = document.createElement('div');
407
- toolAddColumns.classList.add(defClass + "-add-columns");
408
- toolAddColumns.title = 'Add column';
409
- var toolAddCond = document.createElement('div');
410
- toolAddCond.classList.add(defClass + "-add-cond");
411
- toolAddCond.title = 'Add condition';
412
- var toolLeftBlock = document.createElement('div');
413
- toolLeftBlock.classList.add(defClass + "-left-side");
414
- var toolRightBlock = document.createElement('div');
415
- toolRightBlock.classList.add(defClass + "-right-side");
416
- var model = this.context.getModel();
417
- if (this.options.showSelectAllButton) {
418
- toolSelectAll.title = i18n.getText("ButtonSelectAll");
419
- toolLeftBlock.appendChild(toolSelectAll);
420
- toolSelectAll.addEventListener('click', function () {
421
- _this.selectAll();
422
- });
423
- }
424
- if (this.options.showClearSelectionButton) {
425
- toolDeselectAll.title = i18n.getText("ButtonDeselectAll");
426
- toolLeftBlock.appendChild(toolDeselectAll);
427
- toolDeselectAll.addEventListener('click', function () {
428
- _this.deselectAll();
429
- });
430
- }
431
- if (this.options.showAddColumnButton) {
432
- toolAddColumns.title = i18n.getText("ButtonAddColumns");
433
- toolRightBlock.appendChild(toolAddColumns);
434
- toolAddColumns.addEventListener('click', function () {
435
- var attrElements = _this.panel.querySelectorAll("." + _this.cssPrefix + "-entity-attr");
436
- var attrList = [];
437
- var attrId;
438
- var query = _this.context.getQuery();
439
- query.fireProcessEvent({
440
- source: self,
441
- status: "start"
442
- });
443
- for (var i = 0; i < attrElements.length; i++) {
444
- var attrElement = attrElements[i];
445
- var input = attrElement.getElementsByTagName('input')[0];
446
- if (input.checked) {
447
- attrId = attrElement.getAttribute('data-id');
448
- if (model.checkAttrProperty(attrId, "useInResult")) {
449
- attrList.push(attrId);
450
- }
451
- }
452
- }
453
- for (var _i = 0, attrList_3 = attrList; _i < attrList_3.length; _i++) {
454
- var attrId_1 = attrList_3[_i];
455
- var attr = model.getAttributeById(attrId_1);
456
- var caption = model.getAttributeText(attr, _this.options.columnTitleFormat);
457
- query.addColumn({
458
- attribute: attr,
459
- caption: caption
460
- });
461
- }
462
- query.fireChangedEvent();
463
- if (_this.options.autoClearSelection) {
464
- _this.deselectAll();
465
- }
466
- query.fireProcessEvent({
467
- source: self,
468
- status: "finish"
469
- });
470
- });
471
- }
472
- if (this.options.showAddConditionButton) {
473
- toolAddCond.title = i18n.getText("ButtonAddConditions");
474
- toolRightBlock.appendChild(toolAddCond);
475
- toolAddCond.addEventListener('click', function () {
476
- var attrElements = _this.panel.querySelectorAll("." + _this.cssPrefix + "-entity-attr");
477
- var attrList = [];
478
- var attrId;
479
- var query = _this.context.getQuery();
480
- query.fireProcessEvent({
481
- source: self,
482
- status: "start"
483
- });
484
- for (var i = 0; i < attrElements.length; i++) {
485
- var attrElement = attrElements[i];
486
- var input = attrElement.getElementsByTagName('input')[0];
487
- if (input.checked) {
488
- attrId = attrElement.getAttribute('data-id');
489
- if (model.checkAttrProperty(attrId, "useInConditions")) {
490
- attrList.push(attrId);
491
- }
492
- }
493
- }
494
- for (var _i = 0, attrList_4 = attrList; _i < attrList_4.length; _i++) {
495
- var attrId_2 = attrList_4[_i];
496
- query.addSimpleCondition({
497
- attributeId: attrId_2
498
- });
499
- }
500
- query.fireChangedEvent();
501
- if (_this.options.autoClearSelection) {
502
- _this.deselectAll();
503
- }
504
- query.fireProcessEvent({
505
- source: self,
506
- status: "finish"
507
- });
508
- });
509
- }
510
- toolPanelBlock.appendChild(toolLeftBlock);
511
- toolPanelBlock.appendChild(toolRightBlock);
512
- this.panel.appendChild(toolPanelBlock);
513
- };
514
- EntitiesPanel.prototype.checkFilterAttribute = function (attr) {
515
- var inputElem = attr.querySelector('label input');
516
- if (inputElem.checked) {
517
- return true;
518
- }
519
- var labelElem = attr.querySelector('label');
520
- var attrCaption = labelElem.textContent;
521
- if (this.checkFilterText(attrCaption)) {
522
- return true;
523
- }
524
- var entityNode = attr.parentElement.parentElement.querySelector("." + this.cssPrefix + "-entity-node");
525
- var entityCaption = entityNode.querySelector('label').textContent;
526
- if (this.checkFilterText(entityCaption)) {
527
- return true;
528
- }
529
- return false;
530
- };
531
- EntitiesPanel.prototype.checkFilterText = function (value) {
532
- var filterText = this.filterBoxInput.value;
533
- if (filterText == "")
534
- return true;
535
- if (this.options.filterBoxMode == 0 && value.toLowerCase().indexOf(filterText.toLowerCase()) >= 0)
536
- return true;
537
- if (this.options.filterBoxMode == 1 && value.toLowerCase().indexOf(filterText.toLowerCase()) == 0)
538
- return true;
539
- return false;
540
- };
541
- EntitiesPanel.prototype.refreshCheckedStateByColumns = function () {
542
- this.deselectAll();
543
- var query = this.context.getQuery();
544
- var exprColumns = query.getColumns()
545
- .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute; });
546
- for (var _i = 0, exprColumns_1 = exprColumns; _i < exprColumns_1.length; _i++) {
547
- var column = exprColumns_1[_i];
548
- var attrNode = this.rootEntityBlock
549
- .querySelector("." + this.cssPrefix + "-entity-attr[data-id=\"" + column.expr.value + "\"]");
550
- var checkbox = attrNode.querySelector("label > input");
551
- checkbox.checked = true;
552
- var entChildren = attrNode.parentElement;
553
- while (entChildren
554
- && entChildren.classList
555
- .contains(this.cssPrefix + "-entity-children")) {
556
- entChildren.hidden = false;
557
- var entElem = entChildren.parentElement;
558
- if (entElem && entChildren !== entElem.firstElementChild) {
559
- checkbox = entElem.firstElementChild
560
- .querySelector("label > input");
561
- checkbox.checked = true;
562
- entChildren = entElem.parentElement;
563
- }
564
- else {
565
- break;
566
- }
567
- }
568
- }
569
- };
570
- EntitiesPanel.prototype.expandAll = function () {
571
- for (var i = 0; i < this.rootEntityBlock.childNodes.length; i++) {
572
- var child = this.rootEntityBlock.childNodes[0];
573
- var childs = child.querySelectorAll("." + this.cssPrefix + "-entity-children");
574
- for (var j = 0; j < childs.length; j++) {
575
- var elem = childs[j];
576
- elem.hidden = false;
577
- }
578
- }
579
- var nodeButtons = this.rootEntityBlock.querySelectorAll("." + this.cssPrefix + "-entity-node-button");
580
- for (var i = 0; i < nodeButtons.length; i++) {
581
- var elem = nodeButtons[i];
582
- elem.classList.add(this.cssPrefix + "-entity-node-button-open");
583
- }
584
- };
585
- EntitiesPanel.prototype.collapseAll = function () {
586
- for (var i = 0; i < this.rootEntityBlock.childNodes.length; i++) {
587
- var child = this.rootEntityBlock.childNodes[0];
588
- var childs = child.querySelectorAll("." + this.cssPrefix + "-entity-children");
589
- for (var j = 0; j < childs.length; j++) {
590
- var elem = childs[j];
591
- elem.hidden = true;
592
- }
593
- }
594
- var nodeButtons = this.rootEntityBlock.querySelectorAll("." + this.cssPrefix + "-entity-node-button");
595
- for (var i = 0; i < nodeButtons.length; i++) {
596
- var elem = nodeButtons[i];
597
- elem.classList.remove(this.cssPrefix + "-entity-node-button-open");
598
- }
599
- };
600
- EntitiesPanel.prototype.selectAll = function () {
601
- var inputs = this.entityTreeBlock.querySelectorAll('input');
602
- for (var i = 0; i < inputs.length; i++) {
603
- var input = inputs[i];
604
- input.checked = true;
605
- }
606
- };
607
- EntitiesPanel.prototype.deselectAll = function () {
608
- var inputs = this.entityTreeBlock.querySelectorAll('input');
609
- for (var i = 0; i < inputs.length; i++) {
610
- var input = inputs[i];
611
- input.checked = false;
612
- }
613
- };
614
- EntitiesPanel.prototype.renderProgressBlock = function () {
615
- this.progressBlock = document.createElement('div');
616
- this.progressBlock.classList.add(eqCssPrefix + "-progress-win8");
617
- this.progressBlock.classList.add(browserUtils.getMobileCssClass());
618
- 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>';
619
- };
620
- EntitiesPanel.prototype.clear = function () {
621
- this.panel.innerHTML = "";
622
- };
623
- return EntitiesPanel;
624
- }(Widget));
625
- export { EntitiesPanel };
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 { Widget, WidgetGroup, ExprTag, QueryChangePart, QueryChangeAction } from '@easyquery/core';
19
+ import { eqDragManager } from '@easydata/ui';
20
+ import { eqCssPrefix } from '../utils/utils';
21
+ import { browserUtils } from '../utils/browser_utils';
22
+ /**
23
+ * The entities panel wiget, implemented without JQuery.
24
+ */
25
+ var EntitiesPanel = /** @class */ (function (_super) {
26
+ __extends(EntitiesPanel, _super);
27
+ /**
28
+ * The default constructor.
29
+ * @param slot The html element.
30
+ */
31
+ function EntitiesPanel(slot) {
32
+ var _this = _super.call(this, slot) || this;
33
+ _this.queryChangedCallbackId = null;
34
+ _this.group = WidgetGroup.Model | WidgetGroup.Query;
35
+ _this.panel = slot;
36
+ return _this;
37
+ }
38
+ Object.defineProperty(EntitiesPanel.prototype, "cssPrefix", {
39
+ get: function () {
40
+ return 'eqjs-ep';
41
+ },
42
+ enumerable: false,
43
+ configurable: true
44
+ });
45
+ EntitiesPanel.prototype.getWidgetType = function () {
46
+ return 'entitiesPanel';
47
+ };
48
+ /**
49
+ * Initialize widget.
50
+ * @param context The context.
51
+ * @param options The options.
52
+ */
53
+ EntitiesPanel.prototype.init = function (context, options) {
54
+ _super.prototype.init.call(this, context, options);
55
+ this.setOptions(options);
56
+ this.renderProgressBlock();
57
+ };
58
+ /**
59
+ * Refresh widget implementation
60
+ */
61
+ EntitiesPanel.prototype.refreshCore = function () {
62
+ this.render();
63
+ if (this.options.syncWithColumns) {
64
+ this.refreshCheckedStateByColumns();
65
+ }
66
+ };
67
+ EntitiesPanel.prototype.onProcessStartCore = function () {
68
+ if (this.options.showIndicatorOnLoad) {
69
+ if (!this.progressBlock.parentNode)
70
+ this.panel.appendChild(this.progressBlock);
71
+ }
72
+ };
73
+ EntitiesPanel.prototype.onProcessEndCore = function () {
74
+ if (this.options.showIndicatorOnLoad) {
75
+ if (this.progressBlock.parentNode)
76
+ this.panel.removeChild(this.progressBlock);
77
+ }
78
+ };
79
+ EntitiesPanel.prototype.destroyCore = function () {
80
+ this.slot.innerHTML = '';
81
+ };
82
+ EntitiesPanel.prototype.setOptions = function (options) {
83
+ var _this = this;
84
+ this.options = {
85
+ showToolbar: true,
86
+ syncWithColumns: false,
87
+ showSelectAllButton: false,
88
+ showClearSelectionButton: true,
89
+ showAddColumnButton: true,
90
+ showAddConditionButton: true,
91
+ showCheckboxes: true,
92
+ showTooltips: true,
93
+ draggableAttributes: true,
94
+ showAttributes: { useInConditions: true, useInResult: true, useInSorting: false },
95
+ showFilterBox: false,
96
+ filterBoxMode: 0,
97
+ showIndicatorOnLoad: true,
98
+ attrPlacement: 0,
99
+ sortEntities: false,
100
+ autoClearSelection: true,
101
+ entityRenderedCallback: null,
102
+ attributeRenderedCallback: null,
103
+ columnTitleFormat: '{attr}'
104
+ };
105
+ if (options) {
106
+ dataUtils.assignDeep(this.options, options);
107
+ }
108
+ if (this.queryChangedCallbackId) {
109
+ var query = this.context.getQuery();
110
+ query.removeChangedCallback(this.queryChangedCallbackId);
111
+ }
112
+ if (this.options.syncWithColumns) {
113
+ var query = this.context.getQuery();
114
+ this.queryChangedCallbackId = query.addChangedCallback(function (ev) {
115
+ var edata = ev.data;
116
+ if (!edata || (edata.part != QueryChangePart.Columns && edata.part != QueryChangePart.All)) {
117
+ return;
118
+ }
119
+ _this.refreshCheckedStateByColumns();
120
+ });
121
+ }
122
+ };
123
+ EntitiesPanel.prototype.render = function () {
124
+ var model = this.context.getModel();
125
+ ;
126
+ this.clear();
127
+ this.panel.classList.add("".concat(this.cssPrefix, "-panel"));
128
+ this.panel.classList.add(browserUtils.getMobileCssClass());
129
+ this.rootEntityBlock = document.createElement('div');
130
+ if (model != null && !model.isEmpty()) {
131
+ var entTree = model.getEntitiesTree({
132
+ addUIC: this.options.showAttributes.useInConditions,
133
+ addUIR: this.options.showAttributes.useInResult,
134
+ addUIS: this.options.showAttributes.useInSorting,
135
+ attrPlacement: this.options.attrPlacement,
136
+ sortEntities: this.options.sortEntities,
137
+ includeRootData: true
138
+ });
139
+ this.entityTreeBlock = this.renderEntity(entTree, this.rootEntityBlock, 0);
140
+ this.panel.appendChild(this.entityTreeBlock);
141
+ }
142
+ if (this.options.showFilterBox) {
143
+ this.createFilterBox();
144
+ }
145
+ else {
146
+ this.rootEntityBlock.style.top = '0';
147
+ }
148
+ if (this.options.showToolbar && !this.options.syncWithColumns) {
149
+ this.createToolPanel();
150
+ }
151
+ else {
152
+ this.rootEntityBlock.style.bottom = '0';
153
+ }
154
+ };
155
+ EntitiesPanel.prototype.renderEntity = function (entity, block, offset) {
156
+ var _this = this;
157
+ var entityBlock;
158
+ var entityNode = document.createElement('div');
159
+ entityNode.classList.add("".concat(this.cssPrefix, "-entity-node"));
160
+ entityNode.classList.add(browserUtils.getMobileCssClass());
161
+ var entityChildren = document.createElement('div');
162
+ entityChildren.classList.add("".concat(this.cssPrefix, "-entity-children"));
163
+ entityChildren.classList.add(browserUtils.getMobileCssClass());
164
+ var nodeLabel = document.createElement('label');
165
+ nodeLabel.classList.add("".concat(this.cssPrefix, "-entity-node-label"));
166
+ var nodeInput = document.createElement('input');
167
+ nodeInput.type = 'checkbox';
168
+ nodeInput.title = entity.text;
169
+ var nodeToggleButton = document.createElement('a');
170
+ nodeToggleButton.href = 'javascript:void(0)';
171
+ nodeToggleButton.title = "".concat(i18n.getText("EntityToggle"), " ").concat(entity.text);
172
+ nodeToggleButton.classList.add("".concat(this.cssPrefix, "-entity-node-button"));
173
+ var attrNode, attrLabel, attrInput;
174
+ var currentOffset = offset;
175
+ var isAttributeInTree = function (attrId, entityBlock) {
176
+ var res = entityBlock.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr[data-id=\"").concat(attrId, "\"]"));
177
+ return res.length > 0;
178
+ };
179
+ if (block) {
180
+ entityBlock = block;
181
+ entityBlock.innerHTML = '';
182
+ }
183
+ else {
184
+ entityBlock = document.createElement('div');
185
+ }
186
+ entityBlock.classList.add("".concat(this.cssPrefix, "-entity"));
187
+ entityBlock.classList.add(browserUtils.getMobileCssClass());
188
+ if (entity.id && entity.id != "") {
189
+ nodeLabel.innerText = entity.text;
190
+ entityNode.appendChild(nodeLabel); //caption
191
+ if (this.options.showCheckboxes) {
192
+ nodeLabel.insertBefore(nodeInput, nodeLabel.firstChild);
193
+ }
194
+ entityNode.insertBefore(nodeToggleButton, entityNode.firstChild);
195
+ if (this.options.showTooltips && entity.description) {
196
+ nodeLabel.setAttribute('title', entity.description);
197
+ }
198
+ for (var i = 0; i < currentOffset; i++) {
199
+ var divElem = document.createElement('div');
200
+ divElem.classList.add("".concat(this.cssPrefix, "-entity-offset"));
201
+ entityNode.insertBefore(divElem, entityNode.firstChild);
202
+ }
203
+ entityBlock.appendChild(entityNode);
204
+ entityChildren.hidden = true;
205
+ currentOffset++;
206
+ }
207
+ var itemsLength = entity.items ? entity.items.length : 0;
208
+ var _loop_1 = function (i) {
209
+ var item = entity.items[i];
210
+ if (item.isEntity) {
211
+ entityChildren.appendChild(this_1.renderEntity(item, null, currentOffset));
212
+ }
213
+ else {
214
+ if (!item.lookupAttr || !(isAttributeInTree(item.lookupAttr, entityChildren))) {
215
+ attrLabel = document.createElement('label');
216
+ attrLabel.innerText = item.text;
217
+ attrLabel.classList.add("".concat(this_1.cssPrefix, "-entity-attr-label"));
218
+ if (this_1.options.showCheckboxes) {
219
+ attrInput = document.createElement('input');
220
+ attrInput.type = 'checkbox';
221
+ attrInput.title = item.text;
222
+ attrLabel.insertBefore(attrInput, attrLabel.firstChild);
223
+ if (this_1.options.syncWithColumns) {
224
+ attrInput.addEventListener('change', function (ev) {
225
+ var model = _this.context.getModel();
226
+ var query = _this.context.getQuery();
227
+ var checkbox = ev.currentTarget;
228
+ var attrId = checkbox.parentElement.parentElement.getAttribute('data-id');
229
+ if (model.checkAttrProperty(attrId, "useInResult")) {
230
+ if (checkbox.checked) {
231
+ var attr = model.getAttributeById(attrId);
232
+ var caption = model.getAttributeText(attr, _this.options.columnTitleFormat);
233
+ var column = query.addColumn({
234
+ attribute: attr,
235
+ caption: caption
236
+ });
237
+ query.fireColumnsChangedEvent(QueryChangeAction.Add, column);
238
+ }
239
+ else {
240
+ var columns = query.getColumns()
241
+ .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute
242
+ && col.expr.value === attrId; });
243
+ if (columns.length > 0) {
244
+ query.removeColumn(columns[0], null);
245
+ query.fireColumnsChangedEvent(QueryChangeAction.Delete, columns[0]);
246
+ }
247
+ }
248
+ }
249
+ });
250
+ }
251
+ }
252
+ if (this_1.options.showTooltips && item.description) {
253
+ attrLabel.setAttribute('title', item.description);
254
+ }
255
+ for (var j = 0; j < currentOffset + 1; j++) {
256
+ var divElem = document.createElement('div');
257
+ divElem.classList.add("".concat(this_1.cssPrefix, "-entity-offset"));
258
+ attrLabel.insertBefore(divElem, attrLabel.firstChild);
259
+ }
260
+ attrNode = document.createElement('div');
261
+ attrNode.classList.add("".concat(this_1.cssPrefix, "-entity-attr"));
262
+ if (entityNode.innerHTML.length == 0) {
263
+ attrNode.classList.add("".concat(this_1.cssPrefix, "-entity-attr-root"));
264
+ }
265
+ attrNode.innerHTML = "";
266
+ attrNode.appendChild(attrLabel);
267
+ attrNode.setAttribute('data-id', item.id);
268
+ if (this_1.options.draggableAttributes) {
269
+ eqDragManager.registerDraggableItem({
270
+ element: attrNode,
271
+ scope: "entityAttr",
272
+ data: { attrId: item.id },
273
+ renderer: function (dragImage) {
274
+ dragImage.innerHTML = '';
275
+ var attrLabel = document.createElement('span');
276
+ attrLabel.innerText = item.text;
277
+ dragImage.appendChild(attrLabel);
278
+ }
279
+ });
280
+ }
281
+ if (this_1.options.attributeRenderedCallback) {
282
+ this_1.options.attributeRenderedCallback(attrNode);
283
+ }
284
+ entityChildren.appendChild(attrNode);
285
+ }
286
+ }
287
+ };
288
+ var this_1 = this;
289
+ for (var i = 0; i < itemsLength; i++) {
290
+ _loop_1(i);
291
+ }
292
+ if (entityChildren.innerHTML.length) {
293
+ entityBlock.appendChild(entityChildren);
294
+ nodeToggleButton.addEventListener('click', function (event) {
295
+ entityChildren.hidden = !entityChildren.hidden;
296
+ var element = event.target;
297
+ var className = "".concat(_this.cssPrefix, "-entity-node-button-open");
298
+ if (element.classList.contains(className)) {
299
+ element.classList.remove(className);
300
+ }
301
+ else {
302
+ element.classList.add(className);
303
+ }
304
+ event.preventDefault();
305
+ });
306
+ }
307
+ if (entityChildren) {
308
+ var checkboxes = entityChildren.querySelectorAll(".".concat(this.cssPrefix, "-entity-attr > label > input"));
309
+ for (var i = 0; i < checkboxes.length; i++) {
310
+ var checkbox = checkboxes[i];
311
+ checkbox.addEventListener('click', function (event) {
312
+ var element = event.target;
313
+ if (element.checked && !nodeInput.checked) {
314
+ nodeInput.checked = true;
315
+ }
316
+ else if (entityChildren.querySelectorAll('input:checked').length === 0) {
317
+ nodeInput.checked = false;
318
+ }
319
+ event.stopPropagation();
320
+ });
321
+ }
322
+ }
323
+ nodeInput.addEventListener('click', function (event) {
324
+ var element = event.target;
325
+ var entities = entityChildren.querySelectorAll('label input');
326
+ for (var i = 0; i < entities.length; i++) {
327
+ var entity_1 = entities[i];
328
+ entity_1.checked = element.checked;
329
+ }
330
+ if (_this.options.syncWithColumns) {
331
+ var query = _this.context.getQuery();
332
+ var model = _this.context.getModel();
333
+ var attrList_2 = [];
334
+ var attrElems = Array.from(entityChildren.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr")));
335
+ for (var _i = 0, attrElems_1 = attrElems; _i < attrElems_1.length; _i++) {
336
+ var elem = attrElems_1[_i];
337
+ var attrId = elem.getAttribute('data-id');
338
+ if (model.checkAttrProperty(attrId, 'useInResult')) {
339
+ attrList_2.push(attrId);
340
+ }
341
+ }
342
+ if (element.checked) {
343
+ for (var _a = 0, attrList_1 = attrList_2; _a < attrList_1.length; _a++) {
344
+ var attrId = attrList_1[_a];
345
+ query.addColumn({ attributeId: attrId });
346
+ }
347
+ }
348
+ else {
349
+ var columns = query.getColumns()
350
+ .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute
351
+ && attrList_2.indexOf(col.expr.value) >= 0; });
352
+ query.removeColumns(columns, null);
353
+ }
354
+ query.fireColumnsChangedEvent();
355
+ }
356
+ event.stopPropagation();
357
+ });
358
+ if (block != this.rootEntityBlock && this.options.entityRenderedCallback) {
359
+ this.options.entityRenderedCallback(entityBlock);
360
+ }
361
+ return entityBlock;
362
+ };
363
+ EntitiesPanel.prototype.createFilterBox = function () {
364
+ var _this = this;
365
+ this.filterBoxBlock = document.createElement('div');
366
+ this.filterBoxBlock.classList.add("".concat(this.cssPrefix, "-filter-box"));
367
+ this.filterBoxBlock.classList.add(browserUtils.getMobileCssClass());
368
+ this.filterBoxInput = document.createElement('input');
369
+ this.filterBoxInput.classList.add("".concat(this.cssPrefix, "-filter-box-input"));
370
+ this.filterBoxInput.addEventListener('input', function (e) {
371
+ var attrs = _this.panel.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr"));
372
+ for (var i = 0; i < attrs.length; i++) {
373
+ var attr = attrs[i];
374
+ attr.hidden = !_this.checkFilterAttribute(attr);
375
+ }
376
+ var entities = _this.panel.querySelectorAll(":scope > .".concat(_this.cssPrefix, "-entity"));
377
+ for (var i = 0; i < entities.length; i++) {
378
+ var entity = entities[i];
379
+ var attrs_1 = entity.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr"));
380
+ var displayAttrCount = 0;
381
+ for (var i_1 = 0; i_1 < attrs_1.length; i_1++) {
382
+ if (attrs_1[i_1].style.display !== 'None') {
383
+ displayAttrCount++;
384
+ }
385
+ }
386
+ entity.hidden = displayAttrCount === 0;
387
+ }
388
+ if (_this.filterBoxInput.value === '')
389
+ _this.collapseAll();
390
+ else
391
+ _this.expandAll();
392
+ });
393
+ this.filterBoxBlock.appendChild(this.filterBoxInput);
394
+ this.panel.insertBefore(this.filterBoxBlock, this.panel.firstChild);
395
+ };
396
+ EntitiesPanel.prototype.createToolPanel = function () {
397
+ var _this = this;
398
+ var defClass = "".concat(this.cssPrefix, "-tool-panel");
399
+ var toolPanelBlock = document.createElement('div');
400
+ toolPanelBlock.classList.add(defClass);
401
+ toolPanelBlock.classList.add(browserUtils.getMobileCssClass());
402
+ var toolSelectAll = document.createElement('div');
403
+ toolSelectAll.classList.add("".concat(defClass, "-select-all"));
404
+ toolSelectAll.title = 'Select all';
405
+ var toolDeselectAll = document.createElement('div');
406
+ toolDeselectAll.classList.add("".concat(defClass, "-deselect-all"));
407
+ toolDeselectAll.title = 'Clear selection';
408
+ var toolAddColumns = document.createElement('div');
409
+ toolAddColumns.classList.add("".concat(defClass, "-add-columns"));
410
+ toolAddColumns.title = 'Add column';
411
+ var toolAddCond = document.createElement('div');
412
+ toolAddCond.classList.add("".concat(defClass, "-add-cond"));
413
+ toolAddCond.title = 'Add condition';
414
+ var toolLeftBlock = document.createElement('div');
415
+ toolLeftBlock.classList.add("".concat(defClass, "-left-side"));
416
+ var toolRightBlock = document.createElement('div');
417
+ toolRightBlock.classList.add("".concat(defClass, "-right-side"));
418
+ var model = this.context.getModel();
419
+ if (this.options.showSelectAllButton) {
420
+ toolSelectAll.title = i18n.getText("ButtonSelectAll");
421
+ toolLeftBlock.appendChild(toolSelectAll);
422
+ toolSelectAll.addEventListener('click', function () {
423
+ _this.selectAll();
424
+ });
425
+ }
426
+ if (this.options.showClearSelectionButton) {
427
+ toolDeselectAll.title = i18n.getText("ButtonDeselectAll");
428
+ toolLeftBlock.appendChild(toolDeselectAll);
429
+ toolDeselectAll.addEventListener('click', function () {
430
+ _this.deselectAll();
431
+ });
432
+ }
433
+ if (this.options.showAddColumnButton) {
434
+ toolAddColumns.title = i18n.getText("ButtonAddColumns");
435
+ toolRightBlock.appendChild(toolAddColumns);
436
+ toolAddColumns.addEventListener('click', function () {
437
+ var attrElements = _this.panel.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr"));
438
+ var attrList = [];
439
+ var attrId;
440
+ var query = _this.context.getQuery();
441
+ query.fireProcessEvent({
442
+ source: self,
443
+ status: "start"
444
+ });
445
+ for (var i = 0; i < attrElements.length; i++) {
446
+ var attrElement = attrElements[i];
447
+ var input = attrElement.getElementsByTagName('input')[0];
448
+ if (input.checked) {
449
+ attrId = attrElement.getAttribute('data-id');
450
+ if (model.checkAttrProperty(attrId, "useInResult")) {
451
+ attrList.push(attrId);
452
+ }
453
+ }
454
+ }
455
+ for (var _i = 0, attrList_3 = attrList; _i < attrList_3.length; _i++) {
456
+ var attrId_1 = attrList_3[_i];
457
+ var attr = model.getAttributeById(attrId_1);
458
+ var caption = model.getAttributeText(attr, _this.options.columnTitleFormat);
459
+ query.addColumn({
460
+ attribute: attr,
461
+ caption: caption
462
+ });
463
+ }
464
+ query.fireChangedEvent();
465
+ if (_this.options.autoClearSelection) {
466
+ _this.deselectAll();
467
+ }
468
+ query.fireProcessEvent({
469
+ source: self,
470
+ status: "finish"
471
+ });
472
+ });
473
+ }
474
+ if (this.options.showAddConditionButton) {
475
+ toolAddCond.title = i18n.getText("ButtonAddConditions");
476
+ toolRightBlock.appendChild(toolAddCond);
477
+ toolAddCond.addEventListener('click', function () {
478
+ var attrElements = _this.panel.querySelectorAll(".".concat(_this.cssPrefix, "-entity-attr"));
479
+ var attrList = [];
480
+ var attrId;
481
+ var query = _this.context.getQuery();
482
+ query.fireProcessEvent({
483
+ source: self,
484
+ status: "start"
485
+ });
486
+ for (var i = 0; i < attrElements.length; i++) {
487
+ var attrElement = attrElements[i];
488
+ var input = attrElement.getElementsByTagName('input')[0];
489
+ if (input.checked) {
490
+ attrId = attrElement.getAttribute('data-id');
491
+ if (model.checkAttrProperty(attrId, "useInConditions")) {
492
+ attrList.push(attrId);
493
+ }
494
+ }
495
+ }
496
+ for (var _i = 0, attrList_4 = attrList; _i < attrList_4.length; _i++) {
497
+ var attrId_2 = attrList_4[_i];
498
+ query.addSimpleCondition({
499
+ attributeId: attrId_2
500
+ });
501
+ }
502
+ query.fireChangedEvent();
503
+ if (_this.options.autoClearSelection) {
504
+ _this.deselectAll();
505
+ }
506
+ query.fireProcessEvent({
507
+ source: self,
508
+ status: "finish"
509
+ });
510
+ });
511
+ }
512
+ toolPanelBlock.appendChild(toolLeftBlock);
513
+ toolPanelBlock.appendChild(toolRightBlock);
514
+ this.panel.appendChild(toolPanelBlock);
515
+ };
516
+ EntitiesPanel.prototype.checkFilterAttribute = function (attr) {
517
+ var inputElem = attr.querySelector('label input');
518
+ if (inputElem.checked) {
519
+ return true;
520
+ }
521
+ var labelElem = attr.querySelector('label');
522
+ var attrCaption = labelElem.textContent;
523
+ if (this.checkFilterText(attrCaption)) {
524
+ return true;
525
+ }
526
+ var entityNode = attr.parentElement.parentElement.querySelector(".".concat(this.cssPrefix, "-entity-node"));
527
+ var entityCaption = entityNode.querySelector('label').textContent;
528
+ if (this.checkFilterText(entityCaption)) {
529
+ return true;
530
+ }
531
+ return false;
532
+ };
533
+ EntitiesPanel.prototype.checkFilterText = function (value) {
534
+ var filterText = this.filterBoxInput.value;
535
+ if (filterText == "")
536
+ return true;
537
+ if (this.options.filterBoxMode == 0 && value.toLowerCase().indexOf(filterText.toLowerCase()) >= 0)
538
+ return true;
539
+ if (this.options.filterBoxMode == 1 && value.toLowerCase().indexOf(filterText.toLowerCase()) == 0)
540
+ return true;
541
+ return false;
542
+ };
543
+ EntitiesPanel.prototype.refreshCheckedStateByColumns = function () {
544
+ this.deselectAll();
545
+ var query = this.context.getQuery();
546
+ var exprColumns = query.getColumns()
547
+ .filter(function (col) { return col.expr.tag === ExprTag.EntityAttribute; });
548
+ for (var _i = 0, exprColumns_1 = exprColumns; _i < exprColumns_1.length; _i++) {
549
+ var column = exprColumns_1[_i];
550
+ var attrNode = this.rootEntityBlock
551
+ .querySelector(".".concat(this.cssPrefix, "-entity-attr[data-id=\"").concat(column.expr.value, "\"]"));
552
+ var checkbox = attrNode.querySelector("label > input");
553
+ checkbox.checked = true;
554
+ var entChildren = attrNode.parentElement;
555
+ while (entChildren
556
+ && entChildren.classList
557
+ .contains("".concat(this.cssPrefix, "-entity-children"))) {
558
+ entChildren.hidden = false;
559
+ var entElem = entChildren.parentElement;
560
+ if (entElem && entChildren !== entElem.firstElementChild) {
561
+ checkbox = entElem.firstElementChild
562
+ .querySelector("label > input");
563
+ checkbox.checked = true;
564
+ entChildren = entElem.parentElement;
565
+ }
566
+ else {
567
+ break;
568
+ }
569
+ }
570
+ }
571
+ };
572
+ EntitiesPanel.prototype.expandAll = function () {
573
+ for (var i = 0; i < this.rootEntityBlock.childNodes.length; i++) {
574
+ var child = this.rootEntityBlock.childNodes[0];
575
+ var childs = child.querySelectorAll(".".concat(this.cssPrefix, "-entity-children"));
576
+ for (var j = 0; j < childs.length; j++) {
577
+ var elem = childs[j];
578
+ elem.hidden = false;
579
+ }
580
+ }
581
+ var nodeButtons = this.rootEntityBlock.querySelectorAll(".".concat(this.cssPrefix, "-entity-node-button"));
582
+ for (var i = 0; i < nodeButtons.length; i++) {
583
+ var elem = nodeButtons[i];
584
+ elem.classList.add("".concat(this.cssPrefix, "-entity-node-button-open"));
585
+ }
586
+ };
587
+ EntitiesPanel.prototype.collapseAll = function () {
588
+ for (var i = 0; i < this.rootEntityBlock.childNodes.length; i++) {
589
+ var child = this.rootEntityBlock.childNodes[0];
590
+ var childs = child.querySelectorAll(".".concat(this.cssPrefix, "-entity-children"));
591
+ for (var j = 0; j < childs.length; j++) {
592
+ var elem = childs[j];
593
+ elem.hidden = true;
594
+ }
595
+ }
596
+ var nodeButtons = this.rootEntityBlock.querySelectorAll(".".concat(this.cssPrefix, "-entity-node-button"));
597
+ for (var i = 0; i < nodeButtons.length; i++) {
598
+ var elem = nodeButtons[i];
599
+ elem.classList.remove("".concat(this.cssPrefix, "-entity-node-button-open"));
600
+ }
601
+ };
602
+ EntitiesPanel.prototype.selectAll = function () {
603
+ var inputs = this.entityTreeBlock.querySelectorAll('input');
604
+ for (var i = 0; i < inputs.length; i++) {
605
+ var input = inputs[i];
606
+ input.checked = true;
607
+ }
608
+ };
609
+ EntitiesPanel.prototype.deselectAll = function () {
610
+ var inputs = this.entityTreeBlock.querySelectorAll('input');
611
+ for (var i = 0; i < inputs.length; i++) {
612
+ var input = inputs[i];
613
+ input.checked = false;
614
+ }
615
+ };
616
+ EntitiesPanel.prototype.renderProgressBlock = function () {
617
+ this.progressBlock = document.createElement('div');
618
+ this.progressBlock.classList.add("".concat(eqCssPrefix, "-progress-win8"));
619
+ this.progressBlock.classList.add(browserUtils.getMobileCssClass());
620
+ 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>';
621
+ };
622
+ EntitiesPanel.prototype.clear = function () {
623
+ this.panel.innerHTML = "";
624
+ };
625
+ return EntitiesPanel;
626
+ }(Widget));
627
+ export { EntitiesPanel };
626
628
  //# sourceMappingURL=entities_panel.js.map