@easyquery/ui 7.2.4 → 7.2.5-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 (280) hide show
  1. package/dist/easyquery.ui.cjs.js +14443 -0
  2. package/dist/easyquery.ui.esm.js +14383 -0
  3. package/dist/types/i18n/text_resources.d.ts +1 -0
  4. package/dist/{lib → types}/views/view.d.ts +3 -1
  5. package/dist/{lib → types}/widgets/query_panel.d.ts +2 -1
  6. package/dist/{lib → types}/widgets/queryname_widget.d.ts +1 -0
  7. package/dist/{lib → types}/widgets/renderers/querypanel/subquery_expression_renderer.d.ts +2 -4
  8. package/package.json +16 -54
  9. package/api-eq-community.js +0 -15
  10. package/dist/assets/css/aggr-settings.css +0 -242
  11. package/dist/assets/css/easychart.css +0 -73
  12. package/dist/assets/css/easyfacets.css +0 -280
  13. package/dist/assets/css/easyquery-mobile.css +0 -267
  14. package/dist/assets/css/easyquery.css +0 -1712
  15. package/dist/assets/css/eq-icons-default.css +0 -140
  16. package/dist/assets/css/eq-icons-files.css +0 -138
  17. package/dist/assets/css/eqview.css +0 -596
  18. package/dist/assets/css/images/ExportCSV.png +0 -0
  19. package/dist/assets/css/images/ExportExel.png +0 -0
  20. package/dist/assets/css/images/aggr_settings_cancel.png +0 -0
  21. package/dist/assets/css/images/aggr_settings_func.png +0 -0
  22. package/dist/assets/css/images/aggr_settings_group.png +0 -0
  23. package/dist/assets/css/images/ajax-loader.gif +0 -0
  24. package/dist/assets/css/images/chart-settings.png +0 -0
  25. package/dist/assets/css/images/checkbox_checked.png +0 -0
  26. package/dist/assets/css/images/checkbox_unchecked.png +0 -0
  27. package/dist/assets/css/images/clearButton.png +0 -0
  28. package/dist/assets/css/images/colbtn-aggrfunc.png +0 -0
  29. package/dist/assets/css/images/condbtn-addcondition.png +0 -0
  30. package/dist/assets/css/images/condbtn-addpredicate.png +0 -0
  31. package/dist/assets/css/images/condbtn-delete.png +0 -0
  32. package/dist/assets/css/images/condbtn-disabled.png +0 -0
  33. package/dist/assets/css/images/condbtn-enabled.png +0 -0
  34. package/dist/assets/css/images/condbtn-menu.png +0 -0
  35. package/dist/assets/css/images/condbtn-param.png +0 -0
  36. package/dist/assets/css/images/eqjs-ep-add-columns-hover.png +0 -0
  37. package/dist/assets/css/images/eqjs-ep-add-columns.png +0 -0
  38. package/dist/assets/css/images/eqjs-ep-add-cond-hover.png +0 -0
  39. package/dist/assets/css/images/eqjs-ep-add-cond.png +0 -0
  40. package/dist/assets/css/images/eqjs-ep-deselect-all-hover.png +0 -0
  41. package/dist/assets/css/images/eqjs-ep-deselect-all.png +0 -0
  42. package/dist/assets/css/images/eqjs-ep-select-all-hover.png +0 -0
  43. package/dist/assets/css/images/eqjs-ep-select-all.png +0 -0
  44. package/dist/assets/css/images/eqjs-fb-header-icon.png +0 -0
  45. package/dist/assets/css/images/execute.png +0 -0
  46. package/dist/assets/css/images/loadButton.png +0 -0
  47. package/dist/assets/css/images/logo.png +0 -0
  48. package/dist/assets/css/images/node-close.png +0 -0
  49. package/dist/assets/css/images/node-open.png +0 -0
  50. package/dist/assets/css/images/saveButton.png +0 -0
  51. package/dist/assets/css/images/sorting_asc.png +0 -0
  52. package/dist/assets/css/images/sorting_desc.png +0 -0
  53. package/dist/assets/css/images/sorting_none.png +0 -0
  54. package/dist/assets/css/images/ve-loader.gif +0 -0
  55. package/dist/browser/eq.community.css.map +0 -1
  56. package/dist/browser/eq.community.js +0 -34645
  57. package/dist/browser/eq.community.js.map +0 -1
  58. package/dist/browser/eq.community.min.js +0 -2
  59. package/dist/browser/eq.community.min.js.LICENSE.txt +0 -11
  60. package/dist/browser/eq.community.min.js.map +0 -1
  61. package/dist/browser/eq.core.css +0 -4564
  62. package/dist/browser/eq.core.min.css +0 -3
  63. package/dist/browser/eq.view.css +0 -607
  64. package/dist/browser/eq.view.css.map +0 -1
  65. package/dist/browser/eq.view.min.css +0 -1
  66. package/dist/bundles/easyquery.ui.js +0 -23068
  67. package/dist/bundles/easyquery.ui.js.map +0 -1
  68. package/dist/bundles/easyquery.ui.min.js +0 -3
  69. package/dist/bundles/easyquery.ui.min.js.LICENSE.txt +0 -3
  70. package/dist/bundles/easyquery.ui.min.js.map +0 -1
  71. package/dist/lib/dialog/aggr_settings_dialog.js +0 -107
  72. package/dist/lib/dialog/aggr_settings_dialog.js.map +0 -1
  73. package/dist/lib/dialog/export_dialog.js +0 -64
  74. package/dist/lib/dialog/export_dialog.js.map +0 -1
  75. package/dist/lib/extensions.d.ts +0 -7
  76. package/dist/lib/extensions.js +0 -14
  77. package/dist/lib/extensions.js.map +0 -1
  78. package/dist/lib/facets/chart_facet.js +0 -241
  79. package/dist/lib/facets/chart_facet.js.map +0 -1
  80. package/dist/lib/facets/datatable_facet.js +0 -72
  81. package/dist/lib/facets/datatable_facet.js.map +0 -1
  82. package/dist/lib/facets/pivot_table_facet.js +0 -699
  83. package/dist/lib/facets/pivot_table_facet.js.map +0 -1
  84. package/dist/lib/facets/result_facet.js +0 -247
  85. package/dist/lib/facets/result_facet.js.map +0 -1
  86. package/dist/lib/i18n/text_resources.js +0 -261
  87. package/dist/lib/i18n/text_resources.js.map +0 -1
  88. package/dist/lib/public_api.js +0 -93
  89. package/dist/lib/public_api.js.map +0 -1
  90. package/dist/lib/types/facet_type.js +0 -7
  91. package/dist/lib/types/facet_type.js.map +0 -1
  92. package/dist/lib/types/qp_editable_part.js +0 -17
  93. package/dist/lib/types/qp_editable_part.js.map +0 -1
  94. package/dist/lib/utils/browser_utils.js +0 -59
  95. package/dist/lib/utils/browser_utils.js.map +0 -1
  96. package/dist/lib/utils/display_format_parser.js +0 -62
  97. package/dist/lib/utils/display_format_parser.js.map +0 -1
  98. package/dist/lib/utils/dropdown.js +0 -58
  99. package/dist/lib/utils/dropdown.js.map +0 -1
  100. package/dist/lib/utils/popup_menu.js +0 -1260
  101. package/dist/lib/utils/popup_menu.js.map +0 -1
  102. package/dist/lib/utils/utils.js +0 -47
  103. package/dist/lib/utils/utils.js.map +0 -1
  104. package/dist/lib/views/adv_search_view.js +0 -713
  105. package/dist/lib/views/adv_search_view.js.map +0 -1
  106. package/dist/lib/views/data_filter_view.js +0 -80
  107. package/dist/lib/views/data_filter_view.js.map +0 -1
  108. package/dist/lib/views/html_data_filter_view.js +0 -45
  109. package/dist/lib/views/html_data_filter_view.js.map +0 -1
  110. package/dist/lib/views/report_view.js +0 -733
  111. package/dist/lib/views/report_view.js.map +0 -1
  112. package/dist/lib/views/view.js +0 -534
  113. package/dist/lib/views/view.js.map +0 -1
  114. package/dist/lib/views/view_options.js +0 -2
  115. package/dist/lib/views/view_options.js.map +0 -1
  116. package/dist/lib/widgets/aggregation_bar.js +0 -146
  117. package/dist/lib/widgets/aggregation_bar.js.map +0 -1
  118. package/dist/lib/widgets/charts/chart_type.js +0 -16
  119. package/dist/lib/widgets/charts/chart_type.js.map +0 -1
  120. package/dist/lib/widgets/charts/chart_widget.js +0 -385
  121. package/dist/lib/widgets/charts/chart_widget.js.map +0 -1
  122. package/dist/lib/widgets/charts/chart_widget_chartjs.js +0 -187
  123. package/dist/lib/widgets/charts/chart_widget_chartjs.js.map +0 -1
  124. package/dist/lib/widgets/charts/chart_widget_google.js +0 -166
  125. package/dist/lib/widgets/charts/chart_widget_google.js.map +0 -1
  126. package/dist/lib/widgets/columns_bar.js +0 -687
  127. package/dist/lib/widgets/columns_bar.js.map +0 -1
  128. package/dist/lib/widgets/columns_panel.js +0 -721
  129. package/dist/lib/widgets/columns_panel.js.map +0 -1
  130. package/dist/lib/widgets/easy_grid_widget.js +0 -169
  131. package/dist/lib/widgets/easy_grid_widget.js.map +0 -1
  132. package/dist/lib/widgets/entities_panel.js +0 -623
  133. package/dist/lib/widgets/entities_panel.js.map +0 -1
  134. package/dist/lib/widgets/eq_result_html_grid.js +0 -186
  135. package/dist/lib/widgets/eq_result_html_grid.js.map +0 -1
  136. package/dist/lib/widgets/export_widget.js +0 -58
  137. package/dist/lib/widgets/export_widget.js.map +0 -1
  138. package/dist/lib/widgets/facet_container.js +0 -54
  139. package/dist/lib/widgets/facet_container.js.map +0 -1
  140. package/dist/lib/widgets/filter_bar.js +0 -260
  141. package/dist/lib/widgets/filter_bar.js.map +0 -1
  142. package/dist/lib/widgets/grid.js +0 -80
  143. package/dist/lib/widgets/grid.js.map +0 -1
  144. package/dist/lib/widgets/html_content_widget.js +0 -72
  145. package/dist/lib/widgets/html_content_widget.js.map +0 -1
  146. package/dist/lib/widgets/locale_widget.js +0 -80
  147. package/dist/lib/widgets/locale_widget.js.map +0 -1
  148. package/dist/lib/widgets/manage_drilldown_widget.js +0 -156
  149. package/dist/lib/widgets/manage_drilldown_widget.js.map +0 -1
  150. package/dist/lib/widgets/process_widget.js +0 -51
  151. package/dist/lib/widgets/process_widget.js.map +0 -1
  152. package/dist/lib/widgets/query_panel.js +0 -676
  153. package/dist/lib/widgets/query_panel.js.map +0 -1
  154. package/dist/lib/widgets/queryname_widget.js +0 -110
  155. package/dist/lib/widgets/queryname_widget.js.map +0 -1
  156. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js +0 -430
  157. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js.map +0 -1
  158. package/dist/lib/widgets/renderers/base_element_renderer.js +0 -64
  159. package/dist/lib/widgets/renderers/base_element_renderer.js.map +0 -1
  160. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer_cb.js +0 -50
  161. package/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer_cb.js.map +0 -1
  162. package/dist/lib/widgets/renderers/columnsbar/attr_column_renderer_cb.js +0 -86
  163. package/dist/lib/widgets/renderers/columnsbar/attr_column_renderer_cb.js.map +0 -1
  164. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js +0 -532
  165. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js.map +0 -1
  166. package/dist/lib/widgets/renderers/columnsbar/editable_column_renderer_cb.js +0 -102
  167. package/dist/lib/widgets/renderers/columnsbar/editable_column_renderer_cb.js.map +0 -1
  168. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer_cp.js +0 -173
  169. package/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer_cp.js.map +0 -1
  170. package/dist/lib/widgets/renderers/columnspanel/attr_column_renderer_cp.js +0 -193
  171. package/dist/lib/widgets/renderers/columnspanel/attr_column_renderer_cp.js.map +0 -1
  172. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js +0 -811
  173. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js.map +0 -1
  174. package/dist/lib/widgets/renderers/columnspanel/editable_column_renderer_cp.js +0 -277
  175. package/dist/lib/widgets/renderers/columnspanel/editable_column_renderer_cp.js.map +0 -1
  176. package/dist/lib/widgets/renderers/dropdown_renderer.js +0 -43
  177. package/dist/lib/widgets/renderers/dropdown_renderer.js.map +0 -1
  178. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js +0 -88
  179. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.js.map +0 -1
  180. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js +0 -72
  181. package/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js.map +0 -1
  182. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js +0 -42
  183. package/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js.map +0 -1
  184. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js +0 -232
  185. package/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js.map +0 -1
  186. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js +0 -510
  187. package/dist/lib/widgets/renderers/querypanel/condition_renderer.js.map +0 -1
  188. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js +0 -109
  189. package/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js.map +0 -1
  190. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js +0 -92
  191. package/dist/lib/widgets/renderers/querypanel/expression_renderer.js.map +0 -1
  192. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js +0 -166
  193. package/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js.map +0 -1
  194. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js +0 -318
  195. package/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js.map +0 -1
  196. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js +0 -96
  197. package/dist/lib/widgets/renderers/querypanel/operator_renderer.js.map +0 -1
  198. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js +0 -238
  199. package/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js.map +0 -1
  200. package/dist/lib/widgets/renderers/querypanel/text_renderer.js +0 -37
  201. package/dist/lib/widgets/renderers/querypanel/text_renderer.js.map +0 -1
  202. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sb.js +0 -173
  203. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sb.js.map +0 -1
  204. package/dist/lib/widgets/result_facets_panel.js +0 -504
  205. package/dist/lib/widgets/result_facets_panel.js.map +0 -1
  206. package/dist/lib/widgets/sorting_bar.js +0 -334
  207. package/dist/lib/widgets/sorting_bar.js.map +0 -1
  208. package/dist/lib/widgets/statement_panel.js +0 -61
  209. package/dist/lib/widgets/statement_panel.js.map +0 -1
  210. package/dist/lib/widgets/widget_options.js +0 -2
  211. package/dist/lib/widgets/widget_options.js.map +0 -1
  212. package/styles-eq-core.js +0 -10
  213. package/styles-eq-view.js +0 -1
  214. package/tsconfig.json +0 -23
  215. package/webpack.config.js +0 -181
  216. /package/dist/{lib → types}/dialog/aggr_settings_dialog.d.ts +0 -0
  217. /package/dist/{lib → types}/dialog/export_dialog.d.ts +0 -0
  218. /package/dist/{lib/i18n/text_resources.d.ts → types/extensions.d.ts} +0 -0
  219. /package/dist/{lib → types}/facets/chart_facet.d.ts +0 -0
  220. /package/dist/{lib → types}/facets/datatable_facet.d.ts +0 -0
  221. /package/dist/{lib → types}/facets/pivot_table_facet.d.ts +0 -0
  222. /package/dist/{lib → types}/facets/result_facet.d.ts +0 -0
  223. /package/dist/{lib → types}/public_api.d.ts +0 -0
  224. /package/dist/{lib → types}/types/facet_type.d.ts +0 -0
  225. /package/dist/{lib → types}/types/qp_editable_part.d.ts +0 -0
  226. /package/dist/{lib → types}/utils/browser_utils.d.ts +0 -0
  227. /package/dist/{lib → types}/utils/display_format_parser.d.ts +0 -0
  228. /package/dist/{lib → types}/utils/dropdown.d.ts +0 -0
  229. /package/dist/{lib → types}/utils/popup_menu.d.ts +0 -0
  230. /package/dist/{lib → types}/utils/utils.d.ts +0 -0
  231. /package/dist/{lib → types}/views/adv_search_view.d.ts +0 -0
  232. /package/dist/{lib → types}/views/data_filter_view.d.ts +0 -0
  233. /package/dist/{lib → types}/views/html_data_filter_view.d.ts +0 -0
  234. /package/dist/{lib → types}/views/report_view.d.ts +0 -0
  235. /package/dist/{lib → types}/views/view_options.d.ts +0 -0
  236. /package/dist/{lib → types}/widgets/aggregation_bar.d.ts +0 -0
  237. /package/dist/{lib → types}/widgets/charts/chart_type.d.ts +0 -0
  238. /package/dist/{lib → types}/widgets/charts/chart_widget.d.ts +0 -0
  239. /package/dist/{lib → types}/widgets/charts/chart_widget_chartjs.d.ts +0 -0
  240. /package/dist/{lib → types}/widgets/charts/chart_widget_google.d.ts +0 -0
  241. /package/dist/{lib → types}/widgets/columns_bar.d.ts +0 -0
  242. /package/dist/{lib → types}/widgets/columns_panel.d.ts +0 -0
  243. /package/dist/{lib → types}/widgets/easy_grid_widget.d.ts +0 -0
  244. /package/dist/{lib → types}/widgets/entities_panel.d.ts +0 -0
  245. /package/dist/{lib → types}/widgets/eq_result_html_grid.d.ts +0 -0
  246. /package/dist/{lib → types}/widgets/export_widget.d.ts +0 -0
  247. /package/dist/{lib → types}/widgets/facet_container.d.ts +0 -0
  248. /package/dist/{lib → types}/widgets/filter_bar.d.ts +0 -0
  249. /package/dist/{lib → types}/widgets/grid.d.ts +0 -0
  250. /package/dist/{lib → types}/widgets/html_content_widget.d.ts +0 -0
  251. /package/dist/{lib → types}/widgets/locale_widget.d.ts +0 -0
  252. /package/dist/{lib → types}/widgets/manage_drilldown_widget.d.ts +0 -0
  253. /package/dist/{lib → types}/widgets/process_widget.d.ts +0 -0
  254. /package/dist/{lib → types}/widgets/renderers/aggr_settings/aggr_settings_renderer.d.ts +0 -0
  255. /package/dist/{lib → types}/widgets/renderers/base_element_renderer.d.ts +0 -0
  256. /package/dist/{lib → types}/widgets/renderers/columnsbar/aggrfunc_column_renderer_cb.d.ts +0 -0
  257. /package/dist/{lib → types}/widgets/renderers/columnsbar/attr_column_renderer_cb.d.ts +0 -0
  258. /package/dist/{lib → types}/widgets/renderers/columnsbar/column_renderer_cb.d.ts +0 -0
  259. /package/dist/{lib → types}/widgets/renderers/columnsbar/editable_column_renderer_cb.d.ts +0 -0
  260. /package/dist/{lib → types}/widgets/renderers/columnspanel/aggrfunc_column_renderer_cp.d.ts +0 -0
  261. /package/dist/{lib → types}/widgets/renderers/columnspanel/attr_column_renderer_cp.d.ts +0 -0
  262. /package/dist/{lib → types}/widgets/renderers/columnspanel/column_renderer_cp.d.ts +0 -0
  263. /package/dist/{lib → types}/widgets/renderers/columnspanel/editable_column_renderer_cp.d.ts +0 -0
  264. /package/dist/{lib → types}/widgets/renderers/dropdown_renderer.d.ts +0 -0
  265. /package/dist/{lib → types}/widgets/renderers/querypanel/addrow_renderer.d.ts +0 -0
  266. /package/dist/{lib → types}/widgets/renderers/querypanel/attribute_expression_renderer.d.ts +0 -0
  267. /package/dist/{lib → types}/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.d.ts +0 -0
  268. /package/dist/{lib → types}/widgets/renderers/querypanel/condition_group_renderer.d.ts +0 -0
  269. /package/dist/{lib → types}/widgets/renderers/querypanel/condition_renderer.d.ts +0 -0
  270. /package/dist/{lib → types}/widgets/renderers/querypanel/datetime_expression_render.d.ts +0 -0
  271. /package/dist/{lib → types}/widgets/renderers/querypanel/expression_renderer.d.ts +0 -0
  272. /package/dist/{lib → types}/widgets/renderers/querypanel/input_expression_renderer.d.ts +0 -0
  273. /package/dist/{lib → types}/widgets/renderers/querypanel/list_expression_renderer.d.ts +0 -0
  274. /package/dist/{lib → types}/widgets/renderers/querypanel/operator_renderer.d.ts +0 -0
  275. /package/dist/{lib → types}/widgets/renderers/querypanel/text_renderer.d.ts +0 -0
  276. /package/dist/{lib → types}/widgets/renderers/sortingbar/column_renderer_sb.d.ts +0 -0
  277. /package/dist/{lib → types}/widgets/result_facets_panel.d.ts +0 -0
  278. /package/dist/{lib → types}/widgets/sorting_bar.d.ts +0 -0
  279. /package/dist/{lib → types}/widgets/statement_panel.d.ts +0 -0
  280. /package/dist/{lib → types}/widgets/widget_options.d.ts +0 -0
@@ -1,1260 +0,0 @@
1
- import { i18n } from '@easydata/core';
2
- import { utils as dataUtils } from '@easydata/core';
3
- import { domel } from '@easydata/ui';
4
- import { getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize } from '@easydata/ui';
5
- import { browserUtils } from './browser_utils';
6
- import { findHighestZIndex } from './utils';
7
- var MenuLevel = /** @class */ (function () {
8
- function MenuLevel(options) {
9
- this.isFilteringMode = false;
10
- this.showSelected = false;
11
- //menu, items, levelIndex
12
- this.parentMenu = options.menu || null;
13
- this.parentLevel = options.parent || null;
14
- this.parentElement = options.container || document.body;
15
- this.levelIndex = options.levelIndex || 0;
16
- this.levelDiv = null;
17
- this.domWriteItemsId = options.domWriteItemsId || false;
18
- this.menuId = options.menuId || '';
19
- this.itemRenderedCallback = options.itemRenderedCallback || null;
20
- //we need to define special "apply" item for this level
21
- this._applyItem = { id: null, text: null, itemDiv: null };
22
- this.items = options.items || [];
23
- this.activeItem = null;
24
- this.selectedItem = null;
25
- this.initialized = false;
26
- this.showSelected = options.showSelected;
27
- this.updated = 0;
28
- this.renderContent();
29
- }
30
- Object.defineProperty(MenuLevel.prototype, "applyItem", {
31
- get: function () {
32
- return this._applyItem;
33
- },
34
- enumerable: false,
35
- configurable: true
36
- });
37
- Object.defineProperty(MenuLevel.prototype, "cssPrefix", {
38
- get: function () {
39
- return 'eqjs-menu';
40
- },
41
- enumerable: false,
42
- configurable: true
43
- });
44
- MenuLevel.prototype.getItems = function () {
45
- return this.items;
46
- };
47
- MenuLevel.prototype.setItems = function (items) {
48
- this.items = items;
49
- };
50
- MenuLevel.prototype.renderContent = function () {
51
- var _this = this;
52
- if (!this.items) {
53
- return;
54
- }
55
- var self = this;
56
- //define internal variables used in this function
57
- var itemBgColor = this.parentMenu.style.colors.bgON || "white";
58
- var itemFgColor = this.parentMenu.style.colors.fgON || "black";
59
- var itemOverBgColor = this.parentMenu.style.colors.bgOVER || "LightSteelBlue";
60
- var itemFontFamily = this.parentMenu.style.itemStyle.fontFamily || "";
61
- var itemFontSize = this.parentMenu.style.itemStyle.fontSize || "14px";
62
- var multiselect = this.parentMenu.options.multiselect;
63
- var isSubQuery = this.parentMenu.options.isSubQuery;
64
- //add base DIV element which is also used to show the shadow
65
- var baseDivBuilder = domel('div')
66
- .addClass(browserUtils.getMobileCssClass());
67
- if (this.parentMenu.options.useDefaultStyles) {
68
- baseDivBuilder
69
- .setStyle('backgroundColor', itemBgColor)
70
- .setStyle('border', '1px solid')
71
- .setStyle('borderColor', itemBgColor)
72
- .setStyle('backgroundColor', this.parentMenu.style.colors.border)
73
- .setStyle('margin', '-2px 2px 2px -2px')
74
- .setStyle('width', 'auto')
75
- .setStyle('height', 'auto');
76
- }
77
- baseDivBuilder
78
- .setStyle('z-index', this.parentMenu.zIndex)
79
- .setStyle('position', 'absolute')
80
- .setStyle('display', 'none');
81
- var baseDiv = baseDivBuilder.toDOM();
82
- baseDiv['menuLevel'] = this;
83
- var applyItem = this._applyItem;
84
- //if multiselect option is on - then we should add special "apply" item
85
- if (multiselect && this.levelIndex === 0 && this.parentMenu.options.hideButtons !== true) {
86
- var applyDiv = document.createElement("div");
87
- applyDiv.classList.add("".concat(this.cssPrefix, "-applyDiv"));
88
- applyDiv['menuItem'] = applyItem;
89
- this.applyBtn = document.createElement('button');
90
- if (this.parentMenu.options.useDefaultStyles) {
91
- applyDiv.style.borderBottom = '1px solid';
92
- applyDiv.style.padding = '5px';
93
- applyDiv.style.marginBottom = '5px';
94
- this.applyBtn.style.padding = '0 5px';
95
- this.applyBtn.style.cursor = "pointer";
96
- }
97
- var applyTextNode = document.createTextNode(this.parentMenu.options.buttons.submit);
98
- this.applyBtn.appendChild(applyTextNode);
99
- applyDiv.appendChild(this.applyBtn);
100
- //cancel btn
101
- var cancelBtn = document.createElement('button');
102
- cancelBtn.classList.add("".concat(this.cssPrefix, "-cancel"));
103
- if (this.parentMenu.options.useDefaultStyles) {
104
- cancelBtn.style.padding = '0 5px';
105
- cancelBtn.style.cursor = 'pointer';
106
- cancelBtn.style.marginLeft = '15px';
107
- }
108
- var cancelText = document.createTextNode(this.parentMenu.options.buttons.cancel);
109
- cancelBtn.appendChild(cancelText);
110
- applyDiv.appendChild(cancelBtn);
111
- baseDiv.appendChild(applyDiv);
112
- applyItem.itemDiv = applyDiv;
113
- this.applyBtn.addEventListener('click', function () {
114
- _this.submit(_this._applyItem);
115
- });
116
- cancelBtn.addEventListener('click', function () {
117
- _this.parentMenu.hideMenu();
118
- });
119
- }
120
- // if too many items - then we add a special "search" item
121
- // or there is an options to show always
122
- if (this.parentLevel == null
123
- && (this.parentMenu.options.searchBoxAlwaysShown || this.items.length >= this.parentMenu.options.showSearchBoxAfter)) {
124
- var searchDivBuilder = domel('div')
125
- .addClass("".concat(this.cssPrefix, "-searchDiv"));
126
- if (this.parentMenu.options.useDefaultStyles) {
127
- searchDivBuilder
128
- .setStyle('border-bottom', '1px solid #666')
129
- .setStyle('background-color', itemBgColor)
130
- .setStyle('border-color', this.parentMenu.style.colors.border);
131
- if (itemFontFamily != "") {
132
- searchDivBuilder.setStyle('font-family', itemFontFamily);
133
- }
134
- searchDivBuilder
135
- .setStyle('font-size', itemFontSize)
136
- .setStyle('color', itemFgColor)
137
- .setStyle('cursor', 'pointer')
138
- .setStyle('text-align', 'left')
139
- .setStyle('padding', '5px');
140
- }
141
- var searchEditBoxBuilder = domel('input')
142
- .id('searchBox')
143
- .name('searchBox')
144
- .type('text')
145
- .size(16)
146
- .addClass("".concat(this.cssPrefix, "-searchBox"))
147
- .on('input', function (ev) {
148
- _this.deactivateItem(_this.activeItem);
149
- _this.renderItems(_this.searchBox.value);
150
- })
151
- .on('keydown', function (ev) {
152
- var keyCode = ev.keyCode;
153
- switch (keyCode) {
154
- case 13: //enter
155
- if (_this.activeItem) {
156
- _this.activeItem.itemDiv.click();
157
- }
158
- break;
159
- case 38: // up
160
- _this.moveActiveItemUp();
161
- break;
162
- case 40: // down
163
- _this.moveActiveItemDown();
164
- break;
165
- case 39: // right
166
- if (!_this.searchBox.value) {
167
- _this.openSubLevel(_this.activeItem);
168
- }
169
- break;
170
- }
171
- });
172
- if (this.parentMenu.options.useDefaultStyles) {
173
- searchEditBoxBuilder
174
- .setStyle('font-family', 'monospace')
175
- .setStyle('font-size', '8pt')
176
- .setStyle('width', '100%');
177
- }
178
- if (isSubQuery) {
179
- searchEditBoxBuilder.addClass('eqjs-dialog');
180
- }
181
- this.searchBox = searchEditBoxBuilder.toDOM();
182
- this.searchDiv = searchDivBuilder.toDOM();
183
- this.searchDiv.appendChild(this.searchBox);
184
- baseDiv.appendChild(this.searchDiv);
185
- }
186
- var scrollDiv = document.createElement("div");
187
- scrollDiv.tabIndex = 1;
188
- domel(scrollDiv)
189
- .addClass("".concat(this.cssPrefix, "-scrollDiv"))
190
- .addClass(browserUtils.getMobileCssClass());
191
- scrollDiv.style.overflowX = "hidden";
192
- scrollDiv.style.overflowY = "auto";
193
- scrollDiv.style.position = "relative";
194
- baseDiv.appendChild(scrollDiv);
195
- this.levelDiv = baseDiv;
196
- this.scrollDiv = scrollDiv;
197
- if (this.menuId) {
198
- this.levelDiv.id = this.menuId;
199
- }
200
- if (this.parentLevel) {
201
- this.levelDiv.style.zIndex
202
- = this.parentLevel.levelDiv.style.zIndex;
203
- }
204
- this.renderItems();
205
- var scrollDivKeyDownHandler = function (event) {
206
- switch (event.which) {
207
- case 13: // enter
208
- if (_this.parentMenu.options.multiselect) {
209
- _this.parentMenu.getRootLevel().applyBtn.click();
210
- }
211
- else {
212
- if (_this.activeItem) {
213
- _this.activeItem.itemDiv.click();
214
- }
215
- }
216
- break;
217
- case 32: // space
218
- if (_this.activeItem) {
219
- _this.activeItem.itemDiv.click();
220
- }
221
- break;
222
- case 37: // left
223
- if (_this.parentLevel && !_this.isFilteringMode) {
224
- _this.deactivateItem(_this.activeItem);
225
- _this.parentLevel.focus();
226
- }
227
- break;
228
- case 39: // right
229
- _this.openSubLevel(_this.activeItem);
230
- break;
231
- case 38: // up
232
- _this.moveActiveItemUp();
233
- break;
234
- case 40: // down
235
- _this.moveActiveItemDown();
236
- break;
237
- default: return; // exit this handler for other keys
238
- }
239
- event.preventDefault(); // prevent the default action (scroll / move caret)
240
- };
241
- scrollDiv.addEventListener("keydown", scrollDivKeyDownHandler);
242
- if (browserUtils.isMobileMode()) {
243
- this.closeDiv =
244
- domel('div', baseDiv)
245
- .addClass('eqjs-menu-close-btn')
246
- .addText(i18n.getText('ButtonClose'))
247
- .on('click', function () {
248
- _this.parentMenu.hideMenu();
249
- })
250
- .toDOM();
251
- }
252
- };
253
- MenuLevel.prototype.moveActiveItemDown = function () {
254
- var items = this.isFilteringMode ? this.filteredItems : this.items;
255
- if (this.activeItem) {
256
- var idx = items.indexOf(this.activeItem);
257
- if (idx < items.length - 1) {
258
- this.activateItem(items[idx + 1], false);
259
- }
260
- }
261
- else {
262
- this.activateItem(items[0], false);
263
- }
264
- };
265
- MenuLevel.prototype.moveActiveItemUp = function () {
266
- var items = this.isFilteringMode ? this.filteredItems : this.items;
267
- if (this.activeItem) {
268
- var idx = items.indexOf(this.activeItem);
269
- if (idx > 0) {
270
- this.activateItem(items[idx - 1], false);
271
- }
272
- }
273
- else {
274
- this.activateItem(items[items.length - 1], false);
275
- }
276
- };
277
- MenuLevel.prototype.openSubLevel = function (menuItem) {
278
- if (menuItem && menuItem.items && !this.isFilteringMode) {
279
- this.showSubLevel(menuItem);
280
- menuItem.subLevel.activateItem(menuItem.subLevel.items[0]);
281
- }
282
- };
283
- MenuLevel.prototype.focusScrollDiv = function () {
284
- this.scrollDiv.focus();
285
- };
286
- MenuLevel.prototype.turnCheckboxes = function (items) {
287
- //turn checkboxes on for selected items
288
- for (var i = 0; i < items.length; i++) {
289
- var item = items[i];
290
- if (item.itemCheckbox)
291
- item.itemCheckbox.checked = this.isItemSelected(item);
292
- if (item.items) {
293
- this.turnCheckboxes(item.items);
294
- }
295
- }
296
- };
297
- MenuLevel.prototype.isItemSelected = function (item) {
298
- if (item.items) {
299
- for (var i = 0; i < item.items.length; i++) {
300
- if (this.isItemSelected(item.items[i])) {
301
- return true;
302
- }
303
- }
304
- return false;
305
- }
306
- else {
307
- return item.selected;
308
- }
309
- };
310
- MenuLevel.prototype.setItemSelected = function (item, value) {
311
- if (item.items) {
312
- for (var i = 0; i < item.items.length; i++) {
313
- this.setItemSelected(item.items[i], value);
314
- }
315
- }
316
- else {
317
- item.selected = value;
318
- }
319
- };
320
- MenuLevel.prototype.submitItems = function (items, selectedItems) {
321
- for (var j = 0; j < items.length; j++) {
322
- if (items[j].items) {
323
- this.submitItems(items[j].items, selectedItems);
324
- }
325
- else {
326
- if (items[j].selected) {
327
- selectedItems.push(items[j]);
328
- }
329
- }
330
- }
331
- };
332
- MenuLevel.prototype.allSubitemsAreFiltered = function (items, filterCallback) {
333
- for (var i = 0; i < items.length; i++) {
334
- if (filterCallback(items[i]))
335
- return false;
336
- }
337
- return true;
338
- };
339
- MenuLevel.prototype.isItemDiv = function (element) {
340
- return element['menuItem'] ? true : false;
341
- };
342
- MenuLevel.prototype.isLevelDiv = function (element) {
343
- return element['menuLevel'] ? true : false;
344
- };
345
- MenuLevel.prototype.getMenuItem = function (element) {
346
- var el = element;
347
- while (!this.isItemDiv(el)) {
348
- if (this.isLevelDiv(el)) {
349
- throw "Can't get menu item";
350
- }
351
- el = el.parentElement;
352
- }
353
- return el['menuItem'];
354
- };
355
- MenuLevel.prototype.renderItemsWithoutFilter = function () {
356
- var _this = this;
357
- this.isFilteringMode = false;
358
- var scrollDiv = this.scrollDiv;
359
- var multiselect = this.parentMenu.options.multiselect;
360
- var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;
361
- var itemFgColor = this.parentMenu.style.colors.fgON || 'black';
362
- var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';
363
- var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';
364
- var itemFilterCallback = this.parentMenu.getItemFilterCallback();
365
- scrollDiv.innerHTML = "";
366
- for (var i = 0; i < this.items.length; i++) {
367
- var item = this.items[i];
368
- if (!item || !item.text)
369
- continue;
370
- if (itemFilterCallback) {
371
- if (!itemFilterCallback(item))
372
- continue;
373
- if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))
374
- continue;
375
- }
376
- item.data = function (propName) {
377
- return _this[propName];
378
- };
379
- if (typeof (item.selected) == "undefined") {
380
- item.selected = false;
381
- }
382
- if (item.selected && this.selectedItem == null) {
383
- this.selectedItem = item;
384
- }
385
- var itemDiv = document.createElement("div");
386
- domel(itemDiv)
387
- .addClass("".concat(this.cssPrefix, "-itemDiv"))
388
- .addClass(browserUtils.getMobileCssClass());
389
- if (item.selected && this.showSelected && !multiselect) {
390
- itemDiv.classList.add("".concat(this.cssPrefix, "-selected"));
391
- }
392
- ;
393
- if (this.domWriteItemsId && this.menuId) {
394
- itemDiv.id = 'item-' + this.menuId + '-' + item.id;
395
- }
396
- scrollDiv.appendChild(itemDiv);
397
- itemDiv['menuItem'] = item;
398
- itemDiv['menuLevel'] = this;
399
- item.itemDiv = itemDiv;
400
- if (this.parentMenu.options.useDefaultStyles) {
401
- itemDiv.style.fontSize = itemFontSize;
402
- itemDiv.style.color = itemFgColor;
403
- itemDiv.style.paddingLeft = "15px";
404
- itemDiv.style.paddingRight = "6px";
405
- itemDiv.style.cursor = "pointer";
406
- }
407
- if (item.text == '---') {
408
- itemDiv.appendChild(document.createElement('hr'));
409
- }
410
- else {
411
- if (multiselect) {
412
- var cb = document.createElement("input");
413
- cb.type = "checkbox";
414
- cb.id = "cb" + item.id;
415
- cb.checked = this.isItemSelected(item);
416
- cb.defaultChecked = this.isItemSelected(item);
417
- itemDiv.appendChild(cb);
418
- item.itemCheckbox = cb;
419
- if (this.parentMenu.options.useDefaultStyles) {
420
- cb.style.margin = "4px 10px 0 0";
421
- cb.style.verticalAlign = "top";
422
- }
423
- }
424
- var itemText = item.text;
425
- if (this.parentMenu.options.showItemIds) {
426
- itemText = item.id + ':' + itemText;
427
- }
428
- var itemTextNode = document.createTextNode(itemText);
429
- itemDiv.appendChild(itemTextNode);
430
- if (item.items && item.items.length > 0) {
431
- itemDiv.classList.add("".concat(this.cssPrefix, "-itemDiv-hasChildren"));
432
- var arrowSpan = document.createElement('span');
433
- arrowSpan.classList.add("".concat(this.cssPrefix, "-itemDiv-arrow"));
434
- itemDiv.appendChild(arrowSpan);
435
- var arrowText = document.createTextNode('>');
436
- arrowSpan.appendChild(arrowText);
437
- }
438
- var itemClickHandler = function (ev) {
439
- var menuItem = _this.getMenuItem(ev.target);
440
- if (multiselect) {
441
- if (!menuItem.items || ev.target == menuItem.itemCheckbox) {
442
- var itemSelected = _this.isItemSelected(menuItem);
443
- _this.setItemSelected(menuItem, !itemSelected);
444
- menuItem.itemCheckbox.checked = !itemSelected;
445
- _this.parentMenu.refreshCheckboxes();
446
- }
447
- else {
448
- _this.activateItem(menuItem);
449
- }
450
- }
451
- else {
452
- _this.activateItem(menuItem);
453
- _this.submit(menuItem);
454
- }
455
- return false;
456
- };
457
- itemDiv.removeEventListener("click", itemClickHandler);
458
- itemDiv.addEventListener('click', itemClickHandler);
459
- itemDiv.addEventListener('mouseenter', function (ev) {
460
- var item = _this.getMenuItem(ev.target);
461
- _this.parentMenu.isCursorInside = true;
462
- if (activateOnMouseOver) {
463
- _this.activateItem(item);
464
- }
465
- });
466
- itemDiv.addEventListener('mouseleave', function (ev) {
467
- var item = _this.getMenuItem(ev.target);
468
- _this.parentMenu.isCursorInside = false;
469
- setTimeout(function () {
470
- if (!_this.parentMenu.isCursorInside) {
471
- if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {
472
- _this.deactivateItem(item);
473
- }
474
- }
475
- }, 200);
476
- });
477
- }
478
- if (this.itemRenderedCallback) {
479
- this.itemRenderedCallback(this.menuId, itemDiv);
480
- }
481
- }
482
- };
483
- MenuLevel.prototype.renderItemsWithFilter = function (filter) {
484
- this.isFilteringMode = true;
485
- var scrollDiv = this.scrollDiv;
486
- scrollDiv.innerHTML = "";
487
- var filterSections = filter.split('>');
488
- var pureFilterTexts = filterSections.map(function (section) { return section.replace(/\*/g, ''); });
489
- var items = this.filterItems(this.items, filterSections);
490
- this.filteredItems = [];
491
- for (var i = 0; i < items.length; i++) {
492
- this.renderItemWithFilter(items[i], pureFilterTexts, 0);
493
- }
494
- };
495
- MenuLevel.prototype.matchesFilter = function (text, regexp) {
496
- if (text && regexp) {
497
- return regexp.test(text);
498
- }
499
- else {
500
- return true;
501
- }
502
- };
503
- MenuLevel.prototype.filterItems = function (items, filterSections) {
504
- var resultItems = [];
505
- var filter = filterSections.length > 0 ? filterSections[0] : '';
506
- var restFilterSections = filterSections.length > 1 ? filterSections.slice(1) : filterSections;
507
- var filterRegexp = filter ? new RegExp(filter.replace(/\*/g, '.+?'), 'i') : null;
508
- for (var i = 0; i < items.length; i++) {
509
- var item = items[i];
510
- if (item.items) {
511
- var groupItem = dataUtils.assign({}, item);
512
- var groupItemMatches = this.matchesFilter(item.text, filterRegexp);
513
- //if we have only one filter section (or an empty filter)
514
- if (filterSections.length < 2) {
515
- //if current group item matches the filter -> show all sub-items
516
- if (groupItemMatches && filterSections.length < 2) {
517
- groupItem.items = dataUtils.createArrayFrom(item.items);
518
- }
519
- else {
520
- groupItem.items = this.filterItems(item.items, restFilterSections);
521
- }
522
- }
523
- //if we have more than 1 filter section and there is a match -> filter sub-items as well
524
- else if (groupItemMatches) {
525
- groupItem.items = this.filterItems(item.items, restFilterSections);
526
- }
527
- //otherwise we skip this group at all
528
- else {
529
- groupItem.items = [];
530
- }
531
- if (groupItem.items.length > 0) {
532
- resultItems.push(groupItem);
533
- }
534
- }
535
- else {
536
- if (this.matchesFilter(item.text, filterRegexp)) {
537
- resultItems.push(item);
538
- }
539
- }
540
- }
541
- return resultItems;
542
- };
543
- MenuLevel.prototype.renderItemWithFilter = function (item, filterTexts, level) {
544
- var _this = this;
545
- var scrollDiv = this.scrollDiv;
546
- var levelFilterText = level < filterTexts.length ? filterTexts[level] : filterTexts[filterTexts.length - 1];
547
- var multiselect = this.parentMenu.options.multiselect;
548
- var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;
549
- var itemFgColor = this.parentMenu.style.colors.fgON || 'black';
550
- var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';
551
- var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';
552
- var itemFilterCallback = this.parentMenu.getItemFilterCallback();
553
- if (!item || !item.text)
554
- return;
555
- if (itemFilterCallback) {
556
- if (!itemFilterCallback(item))
557
- return;
558
- if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))
559
- return;
560
- }
561
- item.data = function (propName) {
562
- return this[propName];
563
- };
564
- if (typeof (item.selected) == "undefined") {
565
- item.selected = false;
566
- }
567
- if (item.selected && this.selectedItem == null) {
568
- this.selectedItem = item;
569
- }
570
- var itemDiv = document.createElement("div");
571
- domel(itemDiv)
572
- .addClass("".concat(this.cssPrefix, "-itemDiv"))
573
- .addClass(browserUtils.getMobileCssClass());
574
- itemDiv.style.marginLeft = "".concat(level * 10, "px");
575
- if (item.selected && !multiselect) {
576
- itemDiv.classList.add("".concat(this.cssPrefix, "-selected"));
577
- }
578
- ;
579
- if (this.domWriteItemsId && this.menuId) {
580
- itemDiv.id = 'item-' + this.menuId + '-' + item.id;
581
- }
582
- scrollDiv.appendChild(itemDiv);
583
- itemDiv['menuItem'] = item;
584
- itemDiv['menuLevel'] = this;
585
- item.itemDiv = itemDiv;
586
- if (this.parentMenu.options.useDefaultStyles) {
587
- itemDiv.style.fontSize = itemFontSize;
588
- itemDiv.style.color = itemFgColor;
589
- itemDiv.style.paddingLeft = "15px";
590
- itemDiv.style.paddingRight = "6px";
591
- itemDiv.style.cursor = "pointer";
592
- }
593
- if (item.text == '---') {
594
- itemDiv.appendChild(document.createElement('hr'));
595
- }
596
- else {
597
- if (multiselect) {
598
- var cb = document.createElement("input");
599
- cb.type = "checkbox";
600
- cb.id = "cb" + item.id;
601
- cb.checked = this.isItemSelected(item);
602
- cb.defaultChecked = this.isItemSelected(item);
603
- itemDiv.appendChild(cb);
604
- item.itemCheckbox = cb;
605
- if (this.parentMenu.options.useDefaultStyles) {
606
- cb.style.margin = "4px 10px 0 0";
607
- cb.style.verticalAlign = "top";
608
- }
609
- }
610
- var itemText = document.createElement('span');
611
- itemText.innerHTML = this.highlightText(item.text, levelFilterText);
612
- itemDiv.appendChild(itemText);
613
- if (item.items && item.items.length > 0) {
614
- itemDiv.classList.add("".concat(this.cssPrefix, "-itemDiv-filter-hasChildren"));
615
- }
616
- else {
617
- this.filteredItems.push(item);
618
- var itemClickHandler = function (event) {
619
- if (multiselect) {
620
- if (!item.items || event.target == item.itemCheckbox) {
621
- var itemSelected = _this.isItemSelected(item);
622
- _this.setItemSelected(item, !itemSelected);
623
- item.itemCheckbox.checked = !itemSelected;
624
- _this.parentMenu.refreshCheckboxes();
625
- }
626
- else {
627
- _this.activateItem(item);
628
- }
629
- }
630
- else {
631
- _this.activateItem(item);
632
- _this.submit(item);
633
- }
634
- return false;
635
- };
636
- itemDiv.removeEventListener("click", itemClickHandler);
637
- itemDiv.addEventListener('click', itemClickHandler);
638
- itemDiv.addEventListener('mouseenter', function (ev) {
639
- ;
640
- _this.parentMenu.isCursorInside = true;
641
- if (activateOnMouseOver) {
642
- _this.activateItem(item);
643
- }
644
- });
645
- itemDiv.addEventListener('mouseleave', function (ev) {
646
- _this.parentMenu.isCursorInside = false;
647
- setTimeout(function () {
648
- if (!_this.parentMenu.isCursorInside) {
649
- if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {
650
- _this.deactivateItem(item);
651
- }
652
- }
653
- }, 200);
654
- });
655
- }
656
- }
657
- if (item.items) {
658
- for (var i = 0; i < item.items.length; i++) {
659
- this.renderItemWithFilter(item.items[i], filterTexts, level + 1);
660
- }
661
- }
662
- if (this.itemRenderedCallback) {
663
- this.itemRenderedCallback(this.menuId, itemDiv);
664
- }
665
- };
666
- MenuLevel.prototype.highlightText = function (content, text) {
667
- if (text && text.length > 0) {
668
- var lowerText = text.toLowerCase();
669
- var lowerContent = content.toLowerCase();
670
- var insertValue1 = "<span class='eqjs-menu-itemDiv-highlight'>";
671
- var insertValue2 = "</span>";
672
- var startIndex = lowerContent.indexOf(lowerText);
673
- if (startIndex >= 0) {
674
- var pos = 0;
675
- var value = content;
676
- var indexInMas = [];
677
- while (true) {
678
- var index = lowerContent.indexOf(lowerText, pos);
679
- if (index >= 0) {
680
- indexInMas.push(index);
681
- pos = index + text.length;
682
- }
683
- else {
684
- pos++;
685
- }
686
- if (pos >= value.length - 1) {
687
- break;
688
- }
689
- }
690
- if (indexInMas.length > 0) {
691
- content = '';
692
- for (var i = 0; i < indexInMas.length; i++) {
693
- if (i === 0) {
694
- content += value.substring(0, indexInMas[i]);
695
- }
696
- content += insertValue1 + value.substring(indexInMas[i], indexInMas[i] + text.length) + insertValue2;
697
- if (i < indexInMas.length - 1) {
698
- content += value.substring(indexInMas[i] + text.length, indexInMas[i + 1]);
699
- }
700
- else {
701
- content += value.substring(indexInMas[i] + text.length);
702
- }
703
- }
704
- }
705
- }
706
- }
707
- return content;
708
- };
709
- MenuLevel.prototype.renderItems = function (filter) {
710
- if (!filter && !browserUtils.isMobileMode()) {
711
- this.renderItemsWithoutFilter();
712
- }
713
- else {
714
- filter = filter || '';
715
- this.renderItemsWithFilter(filter.toLowerCase());
716
- }
717
- };
718
- MenuLevel.prototype.activateItem = function (menuItem, openSubLevel) {
719
- if (openSubLevel === void 0) { openSubLevel = true; }
720
- if (this.activeItem != null) {
721
- this.deactivateItem(this.activeItem);
722
- }
723
- this.activeItem = menuItem;
724
- var rowElement = menuItem.itemDiv;
725
- rowElement.classList.add('active');
726
- if (this.parentMenu.options.useDefaultStyles) {
727
- var itemBgColor = this.parentMenu.style.colors.bgON;
728
- var itemFgColor = this.parentMenu.style.colors.fgON;
729
- var itemOverBgColor = this.parentMenu.style.colors.bgOVER;
730
- var itemOverFgColor = this.parentMenu.style.colors.fgOVER || "";
731
- var itemClass = this.parentMenu.style.itemClass || "";
732
- var itemClassOver = this.parentMenu.style.itemClassOver || "";
733
- if (itemClassOver != "") {
734
- rowElement.style.backgroundColor = "";
735
- rowElement.style.color = "";
736
- }
737
- else {
738
- rowElement.style.backgroundColor = itemOverBgColor;
739
- rowElement.style.color = itemOverFgColor;
740
- }
741
- }
742
- if (menuItem.items && !this.isFilteringMode && openSubLevel) {
743
- this.showSubLevel(menuItem);
744
- }
745
- };
746
- MenuLevel.prototype.deactivateItem = function (menuItem) {
747
- if (!menuItem)
748
- return;
749
- var rowElement = menuItem.itemDiv;
750
- rowElement.classList.remove('active');
751
- if (this.parentMenu.options.useDefaultStyles) {
752
- var itemBgColor = this.parentMenu.style.colors.bgON;
753
- var itemFgColor = this.parentMenu.style.colors.fgON;
754
- var itemClass = this.parentMenu.style.itemClass || "";
755
- if (itemClass != "") {
756
- rowElement.style.backgroundColor = "";
757
- rowElement.style.color = "";
758
- }
759
- else {
760
- rowElement.style.backgroundColor = itemBgColor;
761
- rowElement.style.color = itemFgColor;
762
- }
763
- }
764
- if (menuItem.subLevel) {
765
- menuItem.subLevel.hide();
766
- }
767
- this.activeItem = null;
768
- };
769
- MenuLevel.prototype.showSubLevel = function (menuItem) {
770
- if (!menuItem.subLevel) {
771
- var levelId = '';
772
- if (this.menuId) {
773
- levelId = this.menuId + "-" + menuItem.id;
774
- }
775
- menuItem.subLevel = new MenuLevel({
776
- showSelected: this.showSelected,
777
- menu: this.parentMenu,
778
- parent: this,
779
- container: this.parentElement,
780
- items: menuItem.items,
781
- levelIndex: this.levelIndex + 1,
782
- domWriteItemsId: this.domWriteItemsId,
783
- menuId: levelId,
784
- itemRenderedCallback: this.itemRenderedCallback
785
- });
786
- }
787
- var pos = getElementAbsolutePos(menuItem.itemDiv);
788
- var scroll = getScrollPos();
789
- var winSize = getWinSize();
790
- //show menu to the side that have more space available
791
- var leftSpace = pos.x - scroll.left;
792
- var rightSpace = winSize.width - leftSpace - menuItem.itemDiv.offsetWidth;
793
- pos.x += menuItem.itemDiv.offsetParent.offsetWidth;
794
- pos.y += 1;
795
- menuItem.subLevel.showAt(pos.x, pos.y, true, true);
796
- menuItem.subLevel.levelDiv.style.width = '';
797
- menuItem.subLevel.levelDiv.style.right = '';
798
- if ((rightSpace >= menuItem.subLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) { //show level to the right
799
- if (rightSpace < menuItem.subLevel.levelDiv.offsetWidth) {
800
- menuItem.subLevel.levelDiv.style.right = -scroll.left + 'px';
801
- }
802
- }
803
- else { //show level to the left
804
- if (leftSpace < menuItem.subLevel.levelDiv.offsetWidth) {
805
- menuItem.subLevel.levelDiv.style.left = scroll.left + 4 + 'px';
806
- }
807
- else {
808
- menuItem.subLevel.levelDiv.style.left = '';
809
- }
810
- menuItem.subLevel.levelDiv.style.right = getViewportSize().width - pos.x + menuItem.itemDiv.offsetWidth - 6 + 'px';
811
- }
812
- menuItem.subLevel.levelDiv.style.visibility = 'visible';
813
- menuItem.subLevel.focus();
814
- };
815
- MenuLevel.prototype.adjustTopPos = function (top) {
816
- var winSize = getWinSize();
817
- var levelBottom = top - getScrollPos().top + this.levelDiv.offsetHeight;
818
- var res = top;
819
- if (levelBottom > winSize.height - 5) {
820
- res -= levelBottom - winSize.height + 5;
821
- if (res < getScrollPos().top) {
822
- res = getScrollPos().top + 10;
823
- }
824
- }
825
- return res;
826
- };
827
- MenuLevel.prototype.showAt = function (x, y, adjustTopPos, hidden) {
828
- if (!this.items) {
829
- return;
830
- }
831
- this.initLevelDiv();
832
- //crocodile
833
- this.turnCheckboxes(this.items);
834
- this.renderItems();
835
- var levelStyle = this.levelDiv.style;
836
- if (hidden) {
837
- this.levelDiv.style.visibility = 'hidden';
838
- }
839
- levelStyle.display = 'block';
840
- levelStyle.left = x + 'px';
841
- levelStyle.top = y + 'px';
842
- this.scrollDiv.style.width = "auto";
843
- this.scrollDiv.style.height = "auto";
844
- //adjusting level top position
845
- if (adjustTopPos) {
846
- y = this.adjustTopPos(y);
847
- levelStyle.top = y + 'px';
848
- }
849
- //setting minimal level width if it is defined
850
- var minItemWidth = this.parentMenu.minItemWidth;
851
- if (minItemWidth > 0 && this.scrollDiv.offsetWidth < minItemWidth) {
852
- for (var i = 0; i < this.items.length; i++) {
853
- this.items[i].itemDiv.style.width = minItemWidth + "px";
854
- }
855
- }
856
- var maxItemWidth = this.parentMenu.maxItemWidth;
857
- if (maxItemWidth > 0 && this.scrollDiv.offsetWidth > maxItemWidth) {
858
- for (var i = 0; i < this.items.length; i++) {
859
- this.items[i].itemDiv.style.width = maxItemWidth + "px";
860
- this.items[i].itemDiv.style.overflowX = "hidden";
861
- }
862
- }
863
- var winSize = getWinSize();
864
- //adjustinng maximum height of the menu level if it does not fit to browser window
865
- var maxHeight = winSize.height - (y - getScrollPos().top) - 15; //document.documentElement.scrollTop
866
- if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {
867
- maxHeight = this.parentMenu.maxHeight;
868
- }
869
- if (this._applyItem != null && this._applyItem.itemDiv != null) {
870
- maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;
871
- }
872
- if (this.searchDiv != null) {
873
- maxHeight -= this.searchDiv.offsetHeight;
874
- }
875
- if (this.closeDiv != null) {
876
- maxHeight -= this.closeDiv.offsetHeight;
877
- }
878
- if (this.levelDiv.offsetHeight > maxHeight) {
879
- var newHeight = maxHeight;
880
- if (newHeight < 50) {
881
- newHeight = 50;
882
- }
883
- this.scrollDiv.style.height = newHeight + "px";
884
- }
885
- else {
886
- this.scrollDiv.style.height = "auto";
887
- }
888
- this.activeItem = null;
889
- };
890
- MenuLevel.prototype.focus = function () {
891
- var _this = this;
892
- window.setTimeout(function () {
893
- _this.scrollDiv.focus();
894
- if (_this.searchBox != null) {
895
- if (_this.parentMenu.options.searchBoxAutoFocus) {
896
- _this.searchBox.focus();
897
- }
898
- _this.searchBox.value = "";
899
- }
900
- }, 100);
901
- };
902
- MenuLevel.prototype.hide = function () {
903
- if (this.activeItem !== null) {
904
- if (this.activeItem.subLevel) {
905
- this.activeItem.subLevel.hide();
906
- }
907
- }
908
- if (this.levelDiv) {
909
- var levelStyle = this.levelDiv.style;
910
- levelStyle.display = 'none';
911
- if (this.initialized) {
912
- this.parentElement.removeChild(this.levelDiv);
913
- this.initialized = false;
914
- }
915
- }
916
- };
917
- MenuLevel.prototype.initLevelDiv = function () {
918
- if (!this.initialized) {
919
- this.parentElement.appendChild(this.levelDiv);
920
- domel(this.levelDiv)
921
- .addClass("".concat(this.cssPrefix, "-levelDiv"))
922
- .addClass(browserUtils.getMobileCssClass());
923
- this.initialized = true;
924
- }
925
- };
926
- MenuLevel.prototype.submit = function (menuItem) {
927
- if (menuItem != null) {
928
- if (!menuItem.items) {
929
- this.parentMenu.hideMenu();
930
- var selectedItems = [];
931
- if (menuItem == this._applyItem) {
932
- this.submitItems(this.items, selectedItems);
933
- }
934
- this.parentMenu.submitMenu(menuItem, selectedItems);
935
- }
936
- }
937
- };
938
- MenuLevel.prototype.remove = function () {
939
- //remove old level elements
940
- for (var i = 0; i < this.items.length; i++) {
941
- var item = this.items[i];
942
- if (item.subLevel) {
943
- item.subLevel.remove();
944
- }
945
- }
946
- if (this.levelDiv) {
947
- this.levelDiv.innerHTML = "";
948
- var parentNode = this.levelDiv.parentNode;
949
- if (parentNode != null) {
950
- parentNode.removeChild(this.levelDiv);
951
- }
952
- }
953
- this.levelDiv = null;
954
- };
955
- MenuLevel.prototype.update = function (newItems) {
956
- this.remove();
957
- //create new level
958
- this.items = newItems;
959
- this.activeItem = null;
960
- this.selectedItem = null;
961
- this._applyItem.itemDiv = null;
962
- this.initialized = false;
963
- this.updated++;
964
- this.renderContent();
965
- };
966
- MenuLevel.prototype.refreshCheckboxes = function () {
967
- for (var i = 0; i < this.items.length; i++) {
968
- var item = this.items[i];
969
- if (item.itemCheckbox) {
970
- item.itemCheckbox.checked = this.isItemSelected(item);
971
- }
972
- if (item.subLevel) {
973
- item.subLevel.refreshCheckboxes();
974
- }
975
- }
976
- };
977
- MenuLevel.prototype.refreshItems = function () {
978
- for (var i = 0; i < this.items.length; i++) {
979
- var item = this.items[i];
980
- if (item.itemDiv) {
981
- if (item.hidden) {
982
- item.itemDiv.style.display = "none";
983
- }
984
- else {
985
- item.itemDiv.style.display = "block";
986
- }
987
- }
988
- if (item.subLevel) {
989
- item.subLevel.refreshItems();
990
- }
991
- }
992
- };
993
- MenuLevel.prototype.findItem = function (searchedText) {
994
- var txt = searchedText.toLowerCase();
995
- for (var i = 0; i < this.items.length; i++) {
996
- var item = this.items[i];
997
- if (item.text.toLowerCase().indexOf(txt) == 0) {
998
- return item;
999
- }
1000
- }
1001
- return null;
1002
- };
1003
- return MenuLevel;
1004
- }());
1005
- export var PopupMenu = /** @class */ (function () {
1006
- function PopupMenu(options) {
1007
- var _this = this;
1008
- this.isCursorInside = false;
1009
- this.mouseIsOverBlock = false;
1010
- this.mouseIsOverLink = false;
1011
- this.toId = null;
1012
- this.active = false;
1013
- this.ancorFocused = null;
1014
- this.options = {
1015
- items: [],
1016
- buttons: {
1017
- submit: i18n.getText('ButtonApply'),
1018
- cancel: i18n.getText('ButtonCancel')
1019
- },
1020
- itemFilterCallback: null,
1021
- useDefaultStyles: false,
1022
- multiselect: false,
1023
- adjustHeight: true,
1024
- showSearchBoxAfter: 30,
1025
- activateOnMouseOver: true,
1026
- container: document.body,
1027
- domWriteItemsId: false,
1028
- itemRenderedCallback: null,
1029
- showItemIds: false
1030
- };
1031
- if (options) {
1032
- dataUtils.assignDeep(this.options, options);
1033
- }
1034
- if (this.options.hideButtons) {
1035
- this.options.submitOnBlur = true;
1036
- }
1037
- this.menuId = PopupMenu.lastMenuID++;
1038
- this.updateProps();
1039
- this.rootLevel = new MenuLevel({
1040
- menu: this,
1041
- items: this.options.items,
1042
- levelIndex: 0,
1043
- container: this.options.container,
1044
- domWriteItemsId: this.options.domWriteItemsId,
1045
- menuId: this.options.id,
1046
- itemRenderedCallback: this.options.itemRenderedCallback,
1047
- showSelected: this.options.showSelected,
1048
- });
1049
- this.rootLevel.levelDiv.classList.add("".concat(this.cssPrefix, "-rootLevel"));
1050
- if (this.options.zIndex)
1051
- this.rootLevel.levelDiv.style.zIndex = "".concat(this.options.zIndex);
1052
- this.menuKeyUpHandler = function (e) {
1053
- if (e.which == 27) {
1054
- _this.hideMenu();
1055
- e.stopImmediatePropagation();
1056
- }
1057
- };
1058
- this.globalMouseDownHandler = function (e) {
1059
- if (!_this.active)
1060
- return true;
1061
- var event = window.event || e;
1062
- var o = event.srcElement || event.target;
1063
- var isOutside = true;
1064
- while (o) {
1065
- if (o.tagName && o.tagName.toLowerCase() == 'div') {
1066
- // it is added in renderContent of MenuLevel class
1067
- if (o.menuLevel) {
1068
- if (o.menuLevel.parentMenu == _this) {
1069
- isOutside = false;
1070
- break;
1071
- }
1072
- }
1073
- }
1074
- o = o.parentNode || o.parentElement;
1075
- }
1076
- if (isOutside) {
1077
- if (_this.options.submitOnBlur) {
1078
- _this.rootLevel.submit(_this.rootLevel.applyItem);
1079
- }
1080
- _this.hideMenu();
1081
- }
1082
- return true;
1083
- };
1084
- this.render();
1085
- }
1086
- Object.defineProperty(PopupMenu.prototype, "cssPrefix", {
1087
- get: function () {
1088
- return 'eqjs-menu';
1089
- },
1090
- enumerable: false,
1091
- configurable: true
1092
- });
1093
- PopupMenu.prototype.getItems = function () {
1094
- return this.rootLevel.getItems();
1095
- };
1096
- PopupMenu.prototype.updateProps = function () {
1097
- this.style = {};
1098
- this.style.colors = { border: "#666666", shadow: "#888888", bgON: "white", fgON: "black", bgOVER: "#B6BDD2", fgOVER: "black" };
1099
- this.style.itemStyle = { fontSize: "14px" };
1100
- this.minItemWidth = 0;
1101
- this.maxItemWidth = 0;
1102
- this.maxHeight = 0;
1103
- this.zIndex = "".concat(this.options.zIndex);
1104
- this.commandTemplate = "";
1105
- this.args = [];
1106
- this.active = false;
1107
- };
1108
- PopupMenu.prototype.render = function () {
1109
- };
1110
- PopupMenu.prototype.clearItemsMenuProps = function (items) {
1111
- if (!items)
1112
- return;
1113
- for (var i = 0; i < items.length; i++) {
1114
- this.clearItemMenuProps(items[i]);
1115
- }
1116
- };
1117
- PopupMenu.prototype.clearItemMenuProps = function (item) {
1118
- //don't clear properties they belong this menu
1119
- if (item.subLevel && item.subLevel.parentMenu == this)
1120
- return;
1121
- if (item.subLevel) {
1122
- item.subLevel.remove();
1123
- item.subLevel = null;
1124
- }
1125
- if (item.itemDiv) {
1126
- item.itemDiv = null;
1127
- }
1128
- if (item.items) {
1129
- this.clearItemsMenuProps(item.items);
1130
- }
1131
- };
1132
- PopupMenu.prototype.setSelectedItems = function (items, selectedIds) {
1133
- var itemsLength = items ? items.length : 0;
1134
- for (var i = 0; i < itemsLength; i++) {
1135
- var item = items[i];
1136
- if (item.items) {
1137
- this.setSelectedItems(item.items, selectedIds);
1138
- }
1139
- else {
1140
- item.selected = selectedIds.indexOf(item.id) >= 0;
1141
- }
1142
- }
1143
- };
1144
- PopupMenu.prototype.getRootLevel = function () {
1145
- return this.rootLevel;
1146
- };
1147
- PopupMenu.prototype.getItemFilterCallback = function () {
1148
- return this.itemFilterCallback;
1149
- };
1150
- PopupMenu.prototype.showMenu = function (options) {
1151
- this.ancorFocused = options.anchor == document.activeElement ? options.anchor : null;
1152
- this.clearItemsMenuProps(this.options.items);
1153
- this.itemSelectedCallback = options.itemSelectedCallback || null;
1154
- this.menuClosedCallback = options.menuClosedCallback || null;
1155
- this.itemFilterCallback = options.itemFilterCallback || null;
1156
- if (options.items) {
1157
- this.options.items = options.items;
1158
- this.rootLevel.setItems(options.items);
1159
- }
1160
- if (options.onMenuItemSelected) {
1161
- this.options.onMenuItemSelected = options.onMenuItemSelected;
1162
- }
1163
- var selectedIds = options.selectedIds || null;
1164
- if (selectedIds) {
1165
- if (typeof selectedIds === "string") {
1166
- selectedIds = selectedIds.split(",");
1167
- }
1168
- }
1169
- else {
1170
- selectedIds = [];
1171
- }
1172
- this.active = true;
1173
- this.setSelectedItems(this.options.items, selectedIds);
1174
- if (browserUtils.isMobileMode()) {
1175
- this.rootLevel.showAt(0, 0, true, true);
1176
- this.rootLevel.levelDiv.style.top = '0px';
1177
- this.rootLevel.levelDiv.style.bottom = '0px';
1178
- this.rootLevel.levelDiv.style.right = '0px';
1179
- this.rootLevel.levelDiv.style.position = 'fixed';
1180
- this.rootLevel.levelDiv.style.fontSize = '20px';
1181
- }
1182
- else {
1183
- var anchor = options.anchor || document.documentElement;
1184
- var srcPos = getElementAbsolutePos(anchor);
1185
- var anchorHeight = anchor.offsetHeight;
1186
- var anchorWidth = anchor.offsetWidth;
1187
- var pos = {
1188
- x: srcPos.x,
1189
- y: srcPos.y + anchorHeight + 2
1190
- };
1191
- var scroll_1 = getScrollPos();
1192
- var winSize = getWinSize();
1193
- //show menu to the side that have more space available
1194
- var leftSpace = pos.x + anchorWidth - scroll_1.left;
1195
- var rightSpace = winSize.width - leftSpace + anchorWidth;
1196
- pos.x += 2;
1197
- this.rootLevel.showAt(pos.x, pos.y, true, true);
1198
- this.rootLevel.levelDiv.style.width = '';
1199
- this.rootLevel.levelDiv.style.right = '';
1200
- if (!this.rootLevel.levelDiv.style.zIndex) {
1201
- // z-index is at least 10000 and more if anchor has bigger
1202
- this.rootLevel.levelDiv.style.zIndex = "".concat(Math.max(10000, findHighestZIndex(anchor) + 1));
1203
- }
1204
- if ((rightSpace >= this.rootLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) {
1205
- //show level to the right
1206
- if (rightSpace < this.rootLevel.levelDiv.offsetWidth) {
1207
- this.rootLevel.levelDiv.style.right = -scroll_1.left + 'px';
1208
- }
1209
- }
1210
- else {
1211
- //show level to the left
1212
- if (leftSpace < this.rootLevel.levelDiv.offsetWidth) {
1213
- this.rootLevel.levelDiv.style.left = scroll_1.left + 4 + 'px';
1214
- }
1215
- else {
1216
- this.rootLevel.levelDiv.style.left = '';
1217
- }
1218
- this.rootLevel.levelDiv.style.right = getViewportSize().width - pos.x - anchorWidth + 'px';
1219
- }
1220
- this.rootLevel.levelDiv.style.fontSize = '14px';
1221
- }
1222
- this.rootLevel.levelDiv.style.visibility = 'visible';
1223
- this.rootLevel.focus();
1224
- document.addEventListener('keyup', this.menuKeyUpHandler);
1225
- document.addEventListener('mousedown', this.globalMouseDownHandler, true);
1226
- };
1227
- PopupMenu.prototype.hideMenu = function () {
1228
- document.removeEventListener('mousedown', this.globalMouseDownHandler, true);
1229
- document.removeEventListener('keyup', this.menuKeyUpHandler);
1230
- this.rootLevel.hide();
1231
- if (this.ancorFocused) {
1232
- this.ancorFocused.focus();
1233
- }
1234
- if (this.menuClosedCallback) {
1235
- this.menuClosedCallback();
1236
- }
1237
- };
1238
- PopupMenu.prototype.submitMenu = function (menuItem, selectedItems) {
1239
- if (this.itemSelectedCallback) {
1240
- this.itemSelectedCallback(menuItem, selectedItems);
1241
- }
1242
- };
1243
- PopupMenu.prototype.knockMenuStyle = function (menu) {
1244
- menu.removeAttribute('style');
1245
- var ul = menu.querySelectorAll('ul').item(0);
1246
- var hasUlStyle = ul && ul.style ? true : false;
1247
- if (hasUlStyle !== false) {
1248
- ul.setAttribute('style', '');
1249
- }
1250
- };
1251
- PopupMenu.prototype.refreshItems = function () {
1252
- this.rootLevel.refreshItems();
1253
- };
1254
- PopupMenu.prototype.refreshCheckboxes = function () {
1255
- this.rootLevel.refreshCheckboxes();
1256
- };
1257
- PopupMenu.lastMenuID = 0;
1258
- return PopupMenu;
1259
- }());
1260
- //# sourceMappingURL=popup_menu.js.map