@refinitiv-ui/efx-grid 0.0.0-dev.12023565035.1

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 (864) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +61 -0
  3. package/lib/column-dragging/es6/ColumnDragging.d.ts +51 -0
  4. package/lib/column-dragging/es6/ColumnDragging.js +968 -0
  5. package/lib/column-dragging/es6/index.d.ts +1 -0
  6. package/lib/column-dragging/es6/index.js +1 -0
  7. package/lib/column-format-dialog/index.d.ts +2 -0
  8. package/lib/column-format-dialog/index.js +2 -0
  9. package/lib/column-format-dialog/lib/column-format-dialog.d.ts +77 -0
  10. package/lib/column-format-dialog/lib/column-format-dialog.js +2688 -0
  11. package/lib/column-format-dialog/lib/locale/translation-de.d.ts +7 -0
  12. package/lib/column-format-dialog/lib/locale/translation-de.js +94 -0
  13. package/lib/column-format-dialog/lib/locale/translation-en.d.ts +7 -0
  14. package/lib/column-format-dialog/lib/locale/translation-en.js +94 -0
  15. package/lib/column-format-dialog/lib/locale/translation-ja.d.ts +7 -0
  16. package/lib/column-format-dialog/lib/locale/translation-ja.js +94 -0
  17. package/lib/column-format-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  18. package/lib/column-format-dialog/lib/locale/translation-zh-hant.js +94 -0
  19. package/lib/column-format-dialog/lib/locale/translation-zh.d.ts +7 -0
  20. package/lib/column-format-dialog/lib/locale/translation-zh.js +94 -0
  21. package/lib/column-format-dialog/lib/locale/translation.d.ts +11 -0
  22. package/lib/column-format-dialog/lib/locale/translation.js +18 -0
  23. package/lib/column-format-dialog/lib/preview-table.d.ts +151 -0
  24. package/lib/column-format-dialog/lib/preview-table.js +982 -0
  25. package/lib/column-format-dialog/themes/base.less +429 -0
  26. package/lib/column-format-dialog/themes/elemental/column-format-dialog.less +1 -0
  27. package/lib/column-format-dialog/themes/elemental/dark/column-format-dialog.js +4 -0
  28. package/lib/column-format-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  29. package/lib/column-format-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
  30. package/lib/column-format-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
  31. package/lib/column-format-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
  32. package/lib/column-format-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  33. package/lib/column-format-dialog/themes/elemental/dark.js +16 -0
  34. package/lib/column-format-dialog/themes/elemental/defaults.less +1 -0
  35. package/lib/column-format-dialog/themes/elemental/index.less +5 -0
  36. package/lib/column-format-dialog/themes/elemental/light/column-format-dialog.js +4 -0
  37. package/lib/column-format-dialog/themes/elemental/light/css/native-elements.css +0 -0
  38. package/lib/column-format-dialog/themes/elemental/light/es5/all-elements.js +2 -0
  39. package/lib/column-format-dialog/themes/elemental/light/imports/all-elements.js +1 -0
  40. package/lib/column-format-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
  41. package/lib/column-format-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  42. package/lib/column-format-dialog/themes/elemental/light.js +16 -0
  43. package/lib/column-format-dialog/themes/halo/column-format-dialog.less +6 -0
  44. package/lib/column-format-dialog/themes/halo/dark/column-format-dialog.js +4 -0
  45. package/lib/column-format-dialog/themes/halo/dark/css/native-elements.css +0 -0
  46. package/lib/column-format-dialog/themes/halo/dark/es5/all-elements.js +2 -0
  47. package/lib/column-format-dialog/themes/halo/dark/imports/all-elements.js +1 -0
  48. package/lib/column-format-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
  49. package/lib/column-format-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  50. package/lib/column-format-dialog/themes/halo/dark.js +16 -0
  51. package/lib/column-format-dialog/themes/halo/defaults.less +1 -0
  52. package/lib/column-format-dialog/themes/halo/index.less +5 -0
  53. package/lib/column-format-dialog/themes/halo/light/column-format-dialog.js +4 -0
  54. package/lib/column-format-dialog/themes/halo/light/css/native-elements.css +0 -0
  55. package/lib/column-format-dialog/themes/halo/light/es5/all-elements.js +2 -0
  56. package/lib/column-format-dialog/themes/halo/light/imports/all-elements.js +1 -0
  57. package/lib/column-format-dialog/themes/halo/light/imports/custom-elements.js +1 -0
  58. package/lib/column-format-dialog/themes/halo/light/imports/native-elements.js +0 -0
  59. package/lib/column-format-dialog/themes/halo/light.js +16 -0
  60. package/lib/column-format-dialog/themes/luna/column-format-dialog.less +1 -0
  61. package/lib/column-format-dialog/themes/luna/default/column-format-dialog.js +4 -0
  62. package/lib/column-format-dialog/themes/luna/default/css/native-elements.css +0 -0
  63. package/lib/column-format-dialog/themes/luna/default/es5/all-elements.js +2 -0
  64. package/lib/column-format-dialog/themes/luna/default/imports/all-elements.js +1 -0
  65. package/lib/column-format-dialog/themes/luna/default/imports/custom-elements.js +1 -0
  66. package/lib/column-format-dialog/themes/luna/default/imports/native-elements.js +0 -0
  67. package/lib/column-format-dialog/themes/luna/defaults.less +1 -0
  68. package/lib/column-format-dialog/themes/luna/index.less +5 -0
  69. package/lib/column-format-dialog/themes/solar/charcoal/column-format-dialog.js +4 -0
  70. package/lib/column-format-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  71. package/lib/column-format-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
  72. package/lib/column-format-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
  73. package/lib/column-format-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
  74. package/lib/column-format-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  75. package/lib/column-format-dialog/themes/solar/charcoal.js +16 -0
  76. package/lib/column-format-dialog/themes/solar/column-format-dialog.less +6 -0
  77. package/lib/column-format-dialog/themes/solar/defaults.less +1 -0
  78. package/lib/column-format-dialog/themes/solar/index.less +5 -0
  79. package/lib/column-format-dialog/themes/solar/pearl/column-format-dialog.js +4 -0
  80. package/lib/column-format-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  81. package/lib/column-format-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
  82. package/lib/column-format-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
  83. package/lib/column-format-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
  84. package/lib/column-format-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  85. package/lib/column-format-dialog/themes/solar/pearl.js +16 -0
  86. package/lib/column-selection-dialog/index.d.ts +2 -0
  87. package/lib/column-selection-dialog/index.js +2 -0
  88. package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +66 -0
  89. package/lib/column-selection-dialog/lib/column-selection-dialog.js +2034 -0
  90. package/lib/column-selection-dialog/lib/locale/translation-de.d.ts +7 -0
  91. package/lib/column-selection-dialog/lib/locale/translation-de.js +20 -0
  92. package/lib/column-selection-dialog/lib/locale/translation-en.d.ts +7 -0
  93. package/lib/column-selection-dialog/lib/locale/translation-en.js +20 -0
  94. package/lib/column-selection-dialog/lib/locale/translation-ja.d.ts +7 -0
  95. package/lib/column-selection-dialog/lib/locale/translation-ja.js +20 -0
  96. package/lib/column-selection-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  97. package/lib/column-selection-dialog/lib/locale/translation-zh-hant.js +20 -0
  98. package/lib/column-selection-dialog/lib/locale/translation-zh.d.ts +7 -0
  99. package/lib/column-selection-dialog/lib/locale/translation-zh.js +20 -0
  100. package/lib/column-selection-dialog/lib/locale/translation.d.ts +11 -0
  101. package/lib/column-selection-dialog/lib/locale/translation.js +18 -0
  102. package/lib/column-selection-dialog/themes/base.less +258 -0
  103. package/lib/column-selection-dialog/themes/elemental/column-selection-dialog.less +1 -0
  104. package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +4 -0
  105. package/lib/column-selection-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  106. package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
  107. package/lib/column-selection-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
  108. package/lib/column-selection-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
  109. package/lib/column-selection-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  110. package/lib/column-selection-dialog/themes/elemental/dark.js +8 -0
  111. package/lib/column-selection-dialog/themes/elemental/defaults.less +1 -0
  112. package/lib/column-selection-dialog/themes/elemental/index.less +5 -0
  113. package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +4 -0
  114. package/lib/column-selection-dialog/themes/elemental/light/css/native-elements.css +0 -0
  115. package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +2 -0
  116. package/lib/column-selection-dialog/themes/elemental/light/imports/all-elements.js +1 -0
  117. package/lib/column-selection-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
  118. package/lib/column-selection-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  119. package/lib/column-selection-dialog/themes/elemental/light.js +8 -0
  120. package/lib/column-selection-dialog/themes/halo/column-selection-dialog.less +25 -0
  121. package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +4 -0
  122. package/lib/column-selection-dialog/themes/halo/dark/css/native-elements.css +0 -0
  123. package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +2 -0
  124. package/lib/column-selection-dialog/themes/halo/dark/imports/all-elements.js +1 -0
  125. package/lib/column-selection-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
  126. package/lib/column-selection-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  127. package/lib/column-selection-dialog/themes/halo/dark.js +8 -0
  128. package/lib/column-selection-dialog/themes/halo/defaults.less +1 -0
  129. package/lib/column-selection-dialog/themes/halo/index.less +6 -0
  130. package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +4 -0
  131. package/lib/column-selection-dialog/themes/halo/light/css/native-elements.css +0 -0
  132. package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +2 -0
  133. package/lib/column-selection-dialog/themes/halo/light/imports/all-elements.js +1 -0
  134. package/lib/column-selection-dialog/themes/halo/light/imports/custom-elements.js +1 -0
  135. package/lib/column-selection-dialog/themes/halo/light/imports/native-elements.js +0 -0
  136. package/lib/column-selection-dialog/themes/halo/light.js +8 -0
  137. package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +4 -0
  138. package/lib/column-selection-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  139. package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
  140. package/lib/column-selection-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
  141. package/lib/column-selection-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
  142. package/lib/column-selection-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  143. package/lib/column-selection-dialog/themes/solar/charcoal.js +8 -0
  144. package/lib/column-selection-dialog/themes/solar/column-selection-dialog.less +5 -0
  145. package/lib/column-selection-dialog/themes/solar/defaults.less +1 -0
  146. package/lib/column-selection-dialog/themes/solar/index.less +6 -0
  147. package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +4 -0
  148. package/lib/column-selection-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  149. package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
  150. package/lib/column-selection-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
  151. package/lib/column-selection-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
  152. package/lib/column-selection-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  153. package/lib/column-selection-dialog/themes/solar/pearl.js +8 -0
  154. package/lib/core/dist/core.css +1 -0
  155. package/lib/core/dist/core.js +33910 -0
  156. package/lib/core/dist/core.min.js +1 -0
  157. package/lib/core/es6/data/ColumnStats.d.ts +42 -0
  158. package/lib/core/es6/data/ColumnStats.js +428 -0
  159. package/lib/core/es6/data/DataCache.d.ts +43 -0
  160. package/lib/core/es6/data/DataCache.js +597 -0
  161. package/lib/core/es6/data/DataTable.d.ts +156 -0
  162. package/lib/core/es6/data/DataTable.js +2206 -0
  163. package/lib/core/es6/data/DataView.d.ts +332 -0
  164. package/lib/core/es6/data/DataView.js +4144 -0
  165. package/lib/core/es6/data/Segment.d.ts +91 -0
  166. package/lib/core/es6/data/Segment.js +1001 -0
  167. package/lib/core/es6/data/SegmentCollection.d.ts +84 -0
  168. package/lib/core/es6/data/SegmentCollection.js +713 -0
  169. package/lib/core/es6/data/WrappedView.d.ts +290 -0
  170. package/lib/core/es6/data/WrappedView.js +1320 -0
  171. package/lib/core/es6/grid/Core.d.ts +455 -0
  172. package/lib/core/es6/grid/Core.js +6196 -0
  173. package/lib/core/es6/grid/ILayoutGrid.d.ts +212 -0
  174. package/lib/core/es6/grid/ILayoutGrid.js +706 -0
  175. package/lib/core/es6/grid/LayoutGrid.d.ts +37 -0
  176. package/lib/core/es6/grid/LayoutGrid.js +2975 -0
  177. package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +28 -0
  178. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +1241 -0
  179. package/lib/core/es6/grid/components/Cell.d.ts +52 -0
  180. package/lib/core/es6/grid/components/Cell.js +826 -0
  181. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +21 -0
  182. package/lib/core/es6/grid/components/CellFloatingPanel.js +130 -0
  183. package/lib/core/es6/grid/components/CellSpan.d.ts +18 -0
  184. package/lib/core/es6/grid/components/CellSpan.js +99 -0
  185. package/lib/core/es6/grid/components/CellSpans.d.ts +40 -0
  186. package/lib/core/es6/grid/components/CellSpans.js +368 -0
  187. package/lib/core/es6/grid/components/Column.d.ts +22 -0
  188. package/lib/core/es6/grid/components/Column.js +618 -0
  189. package/lib/core/es6/grid/components/ElementWrapper.d.ts +127 -0
  190. package/lib/core/es6/grid/components/ElementWrapper.js +718 -0
  191. package/lib/core/es6/grid/components/HScrollbar.d.ts +28 -0
  192. package/lib/core/es6/grid/components/HScrollbar.js +241 -0
  193. package/lib/core/es6/grid/components/Scrollbar.d.ts +63 -0
  194. package/lib/core/es6/grid/components/Scrollbar.js +1413 -0
  195. package/lib/core/es6/grid/components/StretchedCells.d.ts +17 -0
  196. package/lib/core/es6/grid/components/StretchedCells.js +342 -0
  197. package/lib/core/es6/grid/components/VScrollbar.d.ts +18 -0
  198. package/lib/core/es6/grid/components/VScrollbar.js +139 -0
  199. package/lib/core/es6/grid/components/VirtualItems.d.ts +12 -0
  200. package/lib/core/es6/grid/components/VirtualItems.js +51 -0
  201. package/lib/core/es6/grid/event/EventDispatcher.d.ts +16 -0
  202. package/lib/core/es6/grid/event/EventDispatcher.js +138 -0
  203. package/lib/core/es6/grid/event/EventListeners.d.ts +34 -0
  204. package/lib/core/es6/grid/event/EventListeners.js +166 -0
  205. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +155 -0
  206. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +1977 -0
  207. package/lib/core/es6/grid/util/CellBoundPainter.d.ts +16 -0
  208. package/lib/core/es6/grid/util/CellBoundPainter.js +171 -0
  209. package/lib/core/es6/grid/util/Conflator.d.ts +32 -0
  210. package/lib/core/es6/grid/util/Conflator.js +191 -0
  211. package/lib/core/es6/grid/util/Reverter.d.ts +14 -0
  212. package/lib/core/es6/grid/util/Reverter.js +79 -0
  213. package/lib/core/es6/grid/util/SectionSettings.d.ts +79 -0
  214. package/lib/core/es6/grid/util/SectionSettings.js +679 -0
  215. package/lib/core/es6/grid/util/SelectionList.d.ts +54 -0
  216. package/lib/core/es6/grid/util/SelectionList.js +491 -0
  217. package/lib/core/es6/grid/util/TrackLayout.d.ts +92 -0
  218. package/lib/core/es6/grid/util/TrackLayout.js +902 -0
  219. package/lib/core/es6/grid/util/Virtualizer.d.ts +40 -0
  220. package/lib/core/es6/grid/util/Virtualizer.js +340 -0
  221. package/lib/core/es6/grid/util/util.d.ts +20 -0
  222. package/lib/core/es6/grid/util/util.js +391 -0
  223. package/lib/core/es6/index.d.ts +79 -0
  224. package/lib/core/es6/index.js +125 -0
  225. package/lib/core/es6/tr-grid-theme.d.ts +5 -0
  226. package/lib/core/es6/tr-grid-theme.js +5 -0
  227. package/lib/filter-dialog/index.d.ts +2 -0
  228. package/lib/filter-dialog/index.js +2 -0
  229. package/lib/filter-dialog/lib/checkbox-list.d.ts +52 -0
  230. package/lib/filter-dialog/lib/checkbox-list.js +444 -0
  231. package/lib/filter-dialog/lib/filter-dialog.d.ts +75 -0
  232. package/lib/filter-dialog/lib/filter-dialog.js +1160 -0
  233. package/lib/filter-dialog/lib/locale/translation-de.d.ts +7 -0
  234. package/lib/filter-dialog/lib/locale/translation-de.js +40 -0
  235. package/lib/filter-dialog/lib/locale/translation-en.d.ts +7 -0
  236. package/lib/filter-dialog/lib/locale/translation-en.js +40 -0
  237. package/lib/filter-dialog/lib/locale/translation-ja.d.ts +7 -0
  238. package/lib/filter-dialog/lib/locale/translation-ja.js +40 -0
  239. package/lib/filter-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  240. package/lib/filter-dialog/lib/locale/translation-zh-hant.js +40 -0
  241. package/lib/filter-dialog/lib/locale/translation-zh.d.ts +7 -0
  242. package/lib/filter-dialog/lib/locale/translation-zh.js +40 -0
  243. package/lib/filter-dialog/lib/locale/translation.d.ts +11 -0
  244. package/lib/filter-dialog/lib/locale/translation.js +18 -0
  245. package/lib/filter-dialog/themes/base-checkbox.less +42 -0
  246. package/lib/filter-dialog/themes/base.less +191 -0
  247. package/lib/filter-dialog/themes/elemental/checkbox-list.less +3 -0
  248. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +4 -0
  249. package/lib/filter-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  250. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +4 -0
  251. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +5 -0
  252. package/lib/filter-dialog/themes/elemental/dark/imports/all-elements.js +2 -0
  253. package/lib/filter-dialog/themes/elemental/dark/imports/custom-elements.js +2 -0
  254. package/lib/filter-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  255. package/lib/filter-dialog/themes/elemental/dark.js +11 -0
  256. package/lib/filter-dialog/themes/elemental/defaults.less +3 -0
  257. package/lib/filter-dialog/themes/elemental/filter-dialog.less +1 -0
  258. package/lib/filter-dialog/themes/elemental/index.less +6 -0
  259. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +4 -0
  260. package/lib/filter-dialog/themes/elemental/light/css/native-elements.css +0 -0
  261. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +4 -0
  262. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +5 -0
  263. package/lib/filter-dialog/themes/elemental/light/imports/all-elements.js +2 -0
  264. package/lib/filter-dialog/themes/elemental/light/imports/custom-elements.js +2 -0
  265. package/lib/filter-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  266. package/lib/filter-dialog/themes/elemental/light.js +11 -0
  267. package/lib/filter-dialog/themes/halo/checkbox-list.less +3 -0
  268. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +4 -0
  269. package/lib/filter-dialog/themes/halo/dark/css/native-elements.css +0 -0
  270. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +4 -0
  271. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +5 -0
  272. package/lib/filter-dialog/themes/halo/dark/imports/all-elements.js +2 -0
  273. package/lib/filter-dialog/themes/halo/dark/imports/custom-elements.js +2 -0
  274. package/lib/filter-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  275. package/lib/filter-dialog/themes/halo/dark.js +11 -0
  276. package/lib/filter-dialog/themes/halo/defaults.less +3 -0
  277. package/lib/filter-dialog/themes/halo/filter-dialog.less +15 -0
  278. package/lib/filter-dialog/themes/halo/index.less +6 -0
  279. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +4 -0
  280. package/lib/filter-dialog/themes/halo/light/css/native-elements.css +0 -0
  281. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +4 -0
  282. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +5 -0
  283. package/lib/filter-dialog/themes/halo/light/imports/all-elements.js +2 -0
  284. package/lib/filter-dialog/themes/halo/light/imports/custom-elements.js +2 -0
  285. package/lib/filter-dialog/themes/halo/light/imports/native-elements.js +0 -0
  286. package/lib/filter-dialog/themes/halo/light.js +11 -0
  287. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +4 -0
  288. package/lib/filter-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  289. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +4 -0
  290. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +5 -0
  291. package/lib/filter-dialog/themes/solar/charcoal/imports/all-elements.js +2 -0
  292. package/lib/filter-dialog/themes/solar/charcoal/imports/custom-elements.js +2 -0
  293. package/lib/filter-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  294. package/lib/filter-dialog/themes/solar/charcoal.js +11 -0
  295. package/lib/filter-dialog/themes/solar/checkbox-list.less +3 -0
  296. package/lib/filter-dialog/themes/solar/defaults.less +3 -0
  297. package/lib/filter-dialog/themes/solar/filter-dialog.less +5 -0
  298. package/lib/filter-dialog/themes/solar/index.less +6 -0
  299. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +4 -0
  300. package/lib/filter-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  301. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +4 -0
  302. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +5 -0
  303. package/lib/filter-dialog/themes/solar/pearl/imports/all-elements.js +2 -0
  304. package/lib/filter-dialog/themes/solar/pearl/imports/custom-elements.js +2 -0
  305. package/lib/filter-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  306. package/lib/filter-dialog/themes/solar/pearl.js +11 -0
  307. package/lib/formatters/es6/CoralButtonFormatter.d.ts +20 -0
  308. package/lib/formatters/es6/CoralButtonFormatter.js +45 -0
  309. package/lib/formatters/es6/CoralCheckboxFormatter.d.ts +12 -0
  310. package/lib/formatters/es6/CoralCheckboxFormatter.js +50 -0
  311. package/lib/formatters/es6/CoralComboBoxFormatter.d.ts +23 -0
  312. package/lib/formatters/es6/CoralComboBoxFormatter.js +103 -0
  313. package/lib/formatters/es6/CoralIconFormatter.d.ts +21 -0
  314. package/lib/formatters/es6/CoralIconFormatter.js +50 -0
  315. package/lib/formatters/es6/CoralInputFormatter.d.ts +12 -0
  316. package/lib/formatters/es6/CoralInputFormatter.js +45 -0
  317. package/lib/formatters/es6/CoralRadioButtonFormatter.d.ts +20 -0
  318. package/lib/formatters/es6/CoralRadioButtonFormatter.js +85 -0
  319. package/lib/formatters/es6/CoralSelectFormatter.d.ts +23 -0
  320. package/lib/formatters/es6/CoralSelectFormatter.js +71 -0
  321. package/lib/formatters/es6/CoralToggleFormatter.d.ts +12 -0
  322. package/lib/formatters/es6/CoralToggleFormatter.js +47 -0
  323. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
  324. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.js +119 -0
  325. package/lib/formatters/es6/EFButtonFormatter.d.ts +20 -0
  326. package/lib/formatters/es6/EFButtonFormatter.js +45 -0
  327. package/lib/formatters/es6/EFCheckboxFormatter.d.ts +12 -0
  328. package/lib/formatters/es6/EFCheckboxFormatter.js +50 -0
  329. package/lib/formatters/es6/EFComboBoxFormatter.d.ts +23 -0
  330. package/lib/formatters/es6/EFComboBoxFormatter.js +78 -0
  331. package/lib/formatters/es6/EFDateTimePickerFormatter.d.ts +13 -0
  332. package/lib/formatters/es6/EFDateTimePickerFormatter.js +60 -0
  333. package/lib/formatters/es6/EFIconFormatter.d.ts +21 -0
  334. package/lib/formatters/es6/EFIconFormatter.js +50 -0
  335. package/lib/formatters/es6/EFNumberFieldFormatter.d.ts +12 -0
  336. package/lib/formatters/es6/EFNumberFieldFormatter.js +45 -0
  337. package/lib/formatters/es6/EFRadioButtonFormatter.d.ts +20 -0
  338. package/lib/formatters/es6/EFRadioButtonFormatter.js +132 -0
  339. package/lib/formatters/es6/EFSelectFormatter.d.ts +23 -0
  340. package/lib/formatters/es6/EFSelectFormatter.js +76 -0
  341. package/lib/formatters/es6/EFTextFieldFormatter.d.ts +12 -0
  342. package/lib/formatters/es6/EFTextFieldFormatter.js +40 -0
  343. package/lib/formatters/es6/EFToggleFormatter.d.ts +12 -0
  344. package/lib/formatters/es6/EFToggleFormatter.js +47 -0
  345. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
  346. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.js +55 -0
  347. package/lib/formatters/es6/FormatterBuilder.d.ts +26 -0
  348. package/lib/formatters/es6/FormatterBuilder.js +493 -0
  349. package/lib/formatters/es6/NumericInputFormatter.d.ts +13 -0
  350. package/lib/formatters/es6/NumericInputFormatter.js +64 -0
  351. package/lib/formatters/es6/PercentBarFormatter.d.ts +25 -0
  352. package/lib/formatters/es6/PercentBarFormatter.js +62 -0
  353. package/lib/formatters/es6/SimpleImageFormatter.d.ts +21 -0
  354. package/lib/formatters/es6/SimpleImageFormatter.js +64 -0
  355. package/lib/formatters/es6/SimpleInputFormatter.d.ts +12 -0
  356. package/lib/formatters/es6/SimpleInputFormatter.js +40 -0
  357. package/lib/formatters/es6/SimpleLinkFormatter.d.ts +21 -0
  358. package/lib/formatters/es6/SimpleLinkFormatter.js +48 -0
  359. package/lib/formatters/es6/SimpleTickerFormatter.d.ts +23 -0
  360. package/lib/formatters/es6/SimpleTickerFormatter.js +66 -0
  361. package/lib/formatters/es6/SimpleToggleFormatter.d.ts +22 -0
  362. package/lib/formatters/es6/SimpleToggleFormatter.js +132 -0
  363. package/lib/formatters/es6/TextFormatter.d.ts +12 -0
  364. package/lib/formatters/es6/TextFormatter.js +35 -0
  365. package/lib/formatters/es6/index.d.ts +64 -0
  366. package/lib/formatters/es6/index.js +88 -0
  367. package/lib/grid/index.d.ts +2 -0
  368. package/lib/grid/index.js +3 -0
  369. package/lib/grid/lib/efx-grid.d.ts +53 -0
  370. package/lib/grid/lib/efx-grid.js +444 -0
  371. package/lib/grid/themes/base.less +137 -0
  372. package/lib/grid/themes/ds/dark/css/native-elements.css +0 -0
  373. package/lib/grid/themes/ds/dark/efx-grid.js +4 -0
  374. package/lib/grid/themes/ds/dark/es5/all-elements.js +2 -0
  375. package/lib/grid/themes/ds/dark/imports/all-elements.js +1 -0
  376. package/lib/grid/themes/ds/dark/imports/custom-elements.js +1 -0
  377. package/lib/grid/themes/ds/dark/imports/native-elements.js +0 -0
  378. package/lib/grid/themes/ds/dark.js +3 -0
  379. package/lib/grid/themes/ds/efx-grid.less +207 -0
  380. package/lib/grid/themes/ds/index.less +3 -0
  381. package/lib/grid/themes/ds/light/css/native-elements.css +0 -0
  382. package/lib/grid/themes/ds/light/efx-grid.js +4 -0
  383. package/lib/grid/themes/ds/light/es5/all-elements.js +2 -0
  384. package/lib/grid/themes/ds/light/imports/all-elements.js +1 -0
  385. package/lib/grid/themes/ds/light/imports/custom-elements.js +1 -0
  386. package/lib/grid/themes/ds/light/imports/native-elements.js +0 -0
  387. package/lib/grid/themes/ds/light.js +3 -0
  388. package/lib/grid/themes/halo/dark/css/native-elements.css +0 -0
  389. package/lib/grid/themes/halo/dark/efx-grid.js +4 -0
  390. package/lib/grid/themes/halo/dark/es5/all-elements.js +2 -0
  391. package/lib/grid/themes/halo/dark/imports/all-elements.js +1 -0
  392. package/lib/grid/themes/halo/dark/imports/custom-elements.js +1 -0
  393. package/lib/grid/themes/halo/dark/imports/native-elements.js +0 -0
  394. package/lib/grid/themes/halo/dark.js +3 -0
  395. package/lib/grid/themes/halo/efx-grid.less +127 -0
  396. package/lib/grid/themes/halo/index.less +3 -0
  397. package/lib/grid/themes/halo/light/css/native-elements.css +0 -0
  398. package/lib/grid/themes/halo/light/efx-grid.js +4 -0
  399. package/lib/grid/themes/halo/light/es5/all-elements.js +2 -0
  400. package/lib/grid/themes/halo/light/imports/all-elements.js +1 -0
  401. package/lib/grid/themes/halo/light/imports/custom-elements.js +1 -0
  402. package/lib/grid/themes/halo/light/imports/native-elements.js +0 -0
  403. package/lib/grid/themes/halo/light.js +3 -0
  404. package/lib/grid/themes/solar/charcoal/css/native-elements.css +0 -0
  405. package/lib/grid/themes/solar/charcoal/efx-grid.js +4 -0
  406. package/lib/grid/themes/solar/charcoal/es5/all-elements.js +2 -0
  407. package/lib/grid/themes/solar/charcoal/imports/all-elements.js +1 -0
  408. package/lib/grid/themes/solar/charcoal/imports/custom-elements.js +1 -0
  409. package/lib/grid/themes/solar/charcoal/imports/native-elements.js +0 -0
  410. package/lib/grid/themes/solar/charcoal.js +3 -0
  411. package/lib/grid/themes/solar/efx-grid.less +27 -0
  412. package/lib/grid/themes/solar/index.less +3 -0
  413. package/lib/grid/themes/solar/pearl/css/native-elements.css +0 -0
  414. package/lib/grid/themes/solar/pearl/efx-grid.js +4 -0
  415. package/lib/grid/themes/solar/pearl/es5/all-elements.js +2 -0
  416. package/lib/grid/themes/solar/pearl/imports/all-elements.js +1 -0
  417. package/lib/grid/themes/solar/pearl/imports/custom-elements.js +1 -0
  418. package/lib/grid/themes/solar/pearl/imports/native-elements.js +0 -0
  419. package/lib/grid/themes/solar/pearl.js +3 -0
  420. package/lib/index.d.ts +100 -0
  421. package/lib/index.js +100 -0
  422. package/lib/row-segmenting/es6/RowSegmenting.d.ts +115 -0
  423. package/lib/row-segmenting/es6/RowSegmenting.js +1182 -0
  424. package/lib/row-segmenting/es6/index.d.ts +1 -0
  425. package/lib/row-segmenting/es6/index.js +1 -0
  426. package/lib/rt-grid/dist/rt-grid.js +54547 -0
  427. package/lib/rt-grid/dist/rt-grid.min.js +1 -0
  428. package/lib/rt-grid/es6/ColumnDefinition.d.ts +174 -0
  429. package/lib/rt-grid/es6/ColumnDefinition.js +1203 -0
  430. package/lib/rt-grid/es6/DataConnector.d.ts +43 -0
  431. package/lib/rt-grid/es6/DataConnector.js +290 -0
  432. package/lib/rt-grid/es6/FieldDefinition.d.ts +40 -0
  433. package/lib/rt-grid/es6/FieldDefinition.js +560 -0
  434. package/lib/rt-grid/es6/Grid.d.ts +376 -0
  435. package/lib/rt-grid/es6/Grid.js +4653 -0
  436. package/lib/rt-grid/es6/PredefinedFormula.d.ts +16 -0
  437. package/lib/rt-grid/es6/PredefinedFormula.js +33 -0
  438. package/lib/rt-grid/es6/ReferenceCounter.d.ts +40 -0
  439. package/lib/rt-grid/es6/ReferenceCounter.js +251 -0
  440. package/lib/rt-grid/es6/RowDefSorter.d.ts +19 -0
  441. package/lib/rt-grid/es6/RowDefSorter.js +231 -0
  442. package/lib/rt-grid/es6/RowDefinition.d.ts +156 -0
  443. package/lib/rt-grid/es6/RowDefinition.js +1478 -0
  444. package/lib/rt-grid/es6/SnapshotFiller.d.ts +36 -0
  445. package/lib/rt-grid/es6/SnapshotFiller.js +537 -0
  446. package/lib/rt-grid/es6/StyleLoader.d.ts +17 -0
  447. package/lib/rt-grid/es6/StyleLoader.js +47 -0
  448. package/lib/rt-grid/es6/index.d.ts +8 -0
  449. package/lib/rt-grid/es6/index.js +43 -0
  450. package/lib/statistics-row/es6/StatisticsRow.d.ts +68 -0
  451. package/lib/statistics-row/es6/StatisticsRow.js +807 -0
  452. package/lib/statistics-row/es6/index.d.ts +1 -0
  453. package/lib/statistics-row/es6/index.js +1 -0
  454. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.d.ts +46 -0
  455. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.js +617 -0
  456. package/lib/tr-grid-auto-tooltip/es6/index.d.ts +1 -0
  457. package/lib/tr-grid-auto-tooltip/es6/index.js +1 -0
  458. package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +70 -0
  459. package/lib/tr-grid-cell-selection/es6/CellSelection.js +1695 -0
  460. package/lib/tr-grid-cell-selection/es6/index.d.ts +1 -0
  461. package/lib/tr-grid-cell-selection/es6/index.js +1 -0
  462. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +82 -0
  463. package/lib/tr-grid-checkbox/es6/Checkbox.js +1704 -0
  464. package/lib/tr-grid-checkbox/es6/index.d.ts +1 -0
  465. package/lib/tr-grid-checkbox/es6/index.js +1 -0
  466. package/lib/tr-grid-column-fitter/es6/ColumnFitter.d.ts +56 -0
  467. package/lib/tr-grid-column-fitter/es6/ColumnFitter.js +817 -0
  468. package/lib/tr-grid-column-fitter/es6/index.d.ts +1 -0
  469. package/lib/tr-grid-column-fitter/es6/index.js +1 -0
  470. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.d.ts +91 -0
  471. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.js +617 -0
  472. package/lib/tr-grid-column-formatting/es6/index.d.ts +1 -0
  473. package/lib/tr-grid-column-formatting/es6/index.js +1 -0
  474. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +110 -0
  475. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +2028 -0
  476. package/lib/tr-grid-column-grouping/es6/index.d.ts +1 -0
  477. package/lib/tr-grid-column-grouping/es6/index.js +1 -0
  478. package/lib/tr-grid-column-resizing/es6/ColumnResizing.d.ts +68 -0
  479. package/lib/tr-grid-column-resizing/es6/ColumnResizing.js +1010 -0
  480. package/lib/tr-grid-column-resizing/es6/index.d.ts +1 -0
  481. package/lib/tr-grid-column-resizing/es6/index.js +1 -0
  482. package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +77 -0
  483. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +1405 -0
  484. package/lib/tr-grid-column-selection/es6/index.d.ts +1 -0
  485. package/lib/tr-grid-column-selection/es6/index.js +1 -0
  486. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +160 -0
  487. package/lib/tr-grid-column-stack/es6/ColumnStack.js +2155 -0
  488. package/lib/tr-grid-column-stack/es6/index.d.ts +1 -0
  489. package/lib/tr-grid-column-stack/es6/index.js +1 -0
  490. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +100 -0
  491. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +1513 -0
  492. package/lib/tr-grid-conditional-coloring/es6/index.d.ts +1 -0
  493. package/lib/tr-grid-conditional-coloring/es6/index.js +1 -0
  494. package/lib/tr-grid-content-wrap/es6/ContentWrap.d.ts +43 -0
  495. package/lib/tr-grid-content-wrap/es6/ContentWrap.js +519 -0
  496. package/lib/tr-grid-content-wrap/es6/index.d.ts +1 -0
  497. package/lib/tr-grid-content-wrap/es6/index.js +1 -0
  498. package/lib/tr-grid-contextmenu/es6/ContextMenu.d.ts +83 -0
  499. package/lib/tr-grid-contextmenu/es6/ContextMenu.js +453 -0
  500. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.d.ts +22 -0
  501. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.js +138 -0
  502. package/lib/tr-grid-contextmenu/es6/MenuItem.d.ts +41 -0
  503. package/lib/tr-grid-contextmenu/es6/MenuItem.js +285 -0
  504. package/lib/tr-grid-contextmenu/es6/PopupMenu.d.ts +33 -0
  505. package/lib/tr-grid-contextmenu/es6/PopupMenu.js +303 -0
  506. package/lib/tr-grid-contextmenu/es6/index.d.ts +1 -0
  507. package/lib/tr-grid-contextmenu/es6/index.js +1 -0
  508. package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +64 -0
  509. package/lib/tr-grid-filter-input/es6/FilterInput.js +1027 -0
  510. package/lib/tr-grid-filter-input/es6/index.d.ts +1 -0
  511. package/lib/tr-grid-filter-input/es6/index.js +1 -0
  512. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +45 -0
  513. package/lib/tr-grid-heat-map/es6/HeatMap.js +401 -0
  514. package/lib/tr-grid-heat-map/es6/index.d.ts +1 -0
  515. package/lib/tr-grid-heat-map/es6/index.js +1 -0
  516. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +148 -0
  517. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +2671 -0
  518. package/lib/tr-grid-in-cell-editing/es6/index.d.ts +1 -0
  519. package/lib/tr-grid-in-cell-editing/es6/index.js +1 -0
  520. package/lib/tr-grid-pagination/es6/Pagination.d.ts +58 -0
  521. package/lib/tr-grid-pagination/es6/Pagination.js +433 -0
  522. package/lib/tr-grid-pagination/es6/index.d.ts +1 -0
  523. package/lib/tr-grid-pagination/es6/index.js +1 -0
  524. package/lib/tr-grid-percent-bar/es6/PercentBar.d.ts +60 -0
  525. package/lib/tr-grid-percent-bar/es6/PercentBar.js +804 -0
  526. package/lib/tr-grid-percent-bar/es6/index.d.ts +1 -0
  527. package/lib/tr-grid-percent-bar/es6/index.js +1 -0
  528. package/lib/tr-grid-printer/es6/CellWriter.d.ts +50 -0
  529. package/lib/tr-grid-printer/es6/CellWriter.js +234 -0
  530. package/lib/tr-grid-printer/es6/ColumnWriter.d.ts +13 -0
  531. package/lib/tr-grid-printer/es6/ColumnWriter.js +23 -0
  532. package/lib/tr-grid-printer/es6/GridPrinter.d.ts +33 -0
  533. package/lib/tr-grid-printer/es6/GridPrinter.js +794 -0
  534. package/lib/tr-grid-printer/es6/PrintTrait.d.ts +39 -0
  535. package/lib/tr-grid-printer/es6/PrintTrait.js +494 -0
  536. package/lib/tr-grid-printer/es6/SectionWriter.d.ts +57 -0
  537. package/lib/tr-grid-printer/es6/SectionWriter.js +238 -0
  538. package/lib/tr-grid-printer/es6/index.d.ts +1 -0
  539. package/lib/tr-grid-printer/es6/index.js +1 -0
  540. package/lib/tr-grid-range-bar/es6/LEDGuage.d.ts +39 -0
  541. package/lib/tr-grid-range-bar/es6/LEDGuage.js +261 -0
  542. package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +56 -0
  543. package/lib/tr-grid-range-bar/es6/RangeBar.js +514 -0
  544. package/lib/tr-grid-range-bar/es6/index.d.ts +1 -0
  545. package/lib/tr-grid-range-bar/es6/index.js +1 -0
  546. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +81 -0
  547. package/lib/tr-grid-row-dragging/es6/RowDragging.js +1479 -0
  548. package/lib/tr-grid-row-dragging/es6/index.d.ts +1 -0
  549. package/lib/tr-grid-row-dragging/es6/index.js +1 -0
  550. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +159 -0
  551. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +2568 -0
  552. package/lib/tr-grid-row-filtering/es6/index.d.ts +1 -0
  553. package/lib/tr-grid-row-filtering/es6/index.js +1 -0
  554. package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +123 -0
  555. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +1728 -0
  556. package/lib/tr-grid-row-grouping/es6/index.d.ts +1 -0
  557. package/lib/tr-grid-row-grouping/es6/index.js +1 -0
  558. package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +75 -0
  559. package/lib/tr-grid-row-selection/es6/RowSelection.js +1447 -0
  560. package/lib/tr-grid-row-selection/es6/index.d.ts +1 -0
  561. package/lib/tr-grid-row-selection/es6/index.js +1 -0
  562. package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +64 -0
  563. package/lib/tr-grid-rowcoloring/es6/RowColoring.js +615 -0
  564. package/lib/tr-grid-rowcoloring/es6/index.d.ts +1 -0
  565. package/lib/tr-grid-rowcoloring/es6/index.js +1 -0
  566. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +72 -0
  567. package/lib/tr-grid-textformatting/es6/TextFormatting.js +543 -0
  568. package/lib/tr-grid-textformatting/es6/index.d.ts +1 -0
  569. package/lib/tr-grid-textformatting/es6/index.js +1 -0
  570. package/lib/tr-grid-titlewrap/es6/TitleWrap.d.ts +27 -0
  571. package/lib/tr-grid-titlewrap/es6/TitleWrap.js +431 -0
  572. package/lib/tr-grid-titlewrap/es6/index.d.ts +1 -0
  573. package/lib/tr-grid-titlewrap/es6/index.js +1 -0
  574. package/lib/tr-grid-util/es6/CellPainter.d.ts +142 -0
  575. package/lib/tr-grid-util/es6/CellPainter.js +1183 -0
  576. package/lib/tr-grid-util/es6/Color.d.ts +40 -0
  577. package/lib/tr-grid-util/es6/Color.js +210 -0
  578. package/lib/tr-grid-util/es6/Conflator.d.ts +34 -0
  579. package/lib/tr-grid-util/es6/Conflator.js +193 -0
  580. package/lib/tr-grid-util/es6/CoralItems.d.ts +10 -0
  581. package/lib/tr-grid-util/es6/CoralItems.js +42 -0
  582. package/lib/tr-grid-util/es6/DateTime.d.ts +57 -0
  583. package/lib/tr-grid-util/es6/DateTime.js +508 -0
  584. package/lib/tr-grid-util/es6/Deferred.d.ts +16 -0
  585. package/lib/tr-grid-util/es6/Deferred.js +108 -0
  586. package/lib/tr-grid-util/es6/Delay.d.ts +20 -0
  587. package/lib/tr-grid-util/es6/Delay.js +96 -0
  588. package/lib/tr-grid-util/es6/Dom.d.ts +32 -0
  589. package/lib/tr-grid-util/es6/Dom.js +350 -0
  590. package/lib/tr-grid-util/es6/DragUI.d.ts +20 -0
  591. package/lib/tr-grid-util/es6/DragUI.js +263 -0
  592. package/lib/tr-grid-util/es6/ElementObserver.d.ts +12 -0
  593. package/lib/tr-grid-util/es6/ElementObserver.js +134 -0
  594. package/lib/tr-grid-util/es6/ElementWrapper.d.ts +23 -0
  595. package/lib/tr-grid-util/es6/ElementWrapper.js +84 -0
  596. package/lib/tr-grid-util/es6/ElfDate.d.ts +26 -0
  597. package/lib/tr-grid-util/es6/ElfDate.js +164 -0
  598. package/lib/tr-grid-util/es6/ElfUtil.d.ts +46 -0
  599. package/lib/tr-grid-util/es6/ElfUtil.js +637 -0
  600. package/lib/tr-grid-util/es6/EventDispatcher.d.ts +26 -0
  601. package/lib/tr-grid-util/es6/EventDispatcher.js +161 -0
  602. package/lib/tr-grid-util/es6/ExpanderIcon.d.ts +24 -0
  603. package/lib/tr-grid-util/es6/ExpanderIcon.js +120 -0
  604. package/lib/tr-grid-util/es6/ExpressionParser.d.ts +10 -0
  605. package/lib/tr-grid-util/es6/ExpressionParser.js +408 -0
  606. package/lib/tr-grid-util/es6/Ext.d.ts +10 -0
  607. package/lib/tr-grid-util/es6/Ext.js +52 -0
  608. package/lib/tr-grid-util/es6/FieldFormatter.d.ts +55 -0
  609. package/lib/tr-grid-util/es6/FieldFormatter.js +440 -0
  610. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +54 -0
  611. package/lib/tr-grid-util/es6/FilterBuilder.js +580 -0
  612. package/lib/tr-grid-util/es6/FilterOperators.d.ts +56 -0
  613. package/lib/tr-grid-util/es6/FilterOperators.js +255 -0
  614. package/lib/tr-grid-util/es6/GridPlugin.d.ts +86 -0
  615. package/lib/tr-grid-util/es6/GridPlugin.js +1055 -0
  616. package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +74 -0
  617. package/lib/tr-grid-util/es6/GroupDefinitions.js +642 -0
  618. package/lib/tr-grid-util/es6/Icon.d.ts +14 -0
  619. package/lib/tr-grid-util/es6/Icon.js +62 -0
  620. package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +42 -0
  621. package/lib/tr-grid-util/es6/MouseDownTrait.js +250 -0
  622. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +40 -0
  623. package/lib/tr-grid-util/es6/MultiTableManager.js +611 -0
  624. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +85 -0
  625. package/lib/tr-grid-util/es6/NumberFormatter.js +528 -0
  626. package/lib/tr-grid-util/es6/PercentBar.d.ts +71 -0
  627. package/lib/tr-grid-util/es6/PercentBar.js +600 -0
  628. package/lib/tr-grid-util/es6/Perf.d.ts +32 -0
  629. package/lib/tr-grid-util/es6/Perf.js +163 -0
  630. package/lib/tr-grid-util/es6/Popup.d.ts +98 -0
  631. package/lib/tr-grid-util/es6/Popup.js +991 -0
  632. package/lib/tr-grid-util/es6/RangeBar.d.ts +33 -0
  633. package/lib/tr-grid-util/es6/RangeBar.js +260 -0
  634. package/lib/tr-grid-util/es6/RequestQueue.d.ts +30 -0
  635. package/lib/tr-grid-util/es6/RequestQueue.js +228 -0
  636. package/lib/tr-grid-util/es6/RowPainter.d.ts +60 -0
  637. package/lib/tr-grid-util/es6/RowPainter.js +448 -0
  638. package/lib/tr-grid-util/es6/SubTable.d.ts +78 -0
  639. package/lib/tr-grid-util/es6/SubTable.js +642 -0
  640. package/lib/tr-grid-util/es6/Table.d.ts +146 -0
  641. package/lib/tr-grid-util/es6/Table.js +832 -0
  642. package/lib/tr-grid-util/es6/TextHighlighter.d.ts +16 -0
  643. package/lib/tr-grid-util/es6/TextHighlighter.js +268 -0
  644. package/lib/tr-grid-util/es6/TickCodes.d.ts +8 -0
  645. package/lib/tr-grid-util/es6/TickCodes.js +33 -0
  646. package/lib/tr-grid-util/es6/Timer.d.ts +16 -0
  647. package/lib/tr-grid-util/es6/Timer.js +49 -0
  648. package/lib/tr-grid-util/es6/TouchProxy.d.ts +46 -0
  649. package/lib/tr-grid-util/es6/TouchProxy.js +212 -0
  650. package/lib/tr-grid-util/es6/Util.d.ts +66 -0
  651. package/lib/tr-grid-util/es6/Util.js +508 -0
  652. package/lib/tr-grid-util/es6/formula/ADCService.d.ts +11 -0
  653. package/lib/tr-grid-util/es6/formula/ADCService.js +72 -0
  654. package/lib/tr-grid-util/es6/formula/ADCSubscription.d.ts +17 -0
  655. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +317 -0
  656. package/lib/tr-grid-util/es6/formula/AdFinService.d.ts +12 -0
  657. package/lib/tr-grid-util/es6/formula/AdFinService.js +61 -0
  658. package/lib/tr-grid-util/es6/formula/AdFinSubscription.d.ts +19 -0
  659. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +310 -0
  660. package/lib/tr-grid-util/es6/formula/Engine.d.ts +56 -0
  661. package/lib/tr-grid-util/es6/formula/Engine.js +592 -0
  662. package/lib/tr-grid-util/es6/formula/Formula.d.ts +68 -0
  663. package/lib/tr-grid-util/es6/formula/Formula.js +890 -0
  664. package/lib/tr-grid-util/es6/formula/IntervalSubscription.d.ts +16 -0
  665. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +165 -0
  666. package/lib/tr-grid-util/es6/formula/Realtime.d.ts +18 -0
  667. package/lib/tr-grid-util/es6/formula/Realtime.js +279 -0
  668. package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +18 -0
  669. package/lib/tr-grid-util/es6/formula/RealtimeService.js +203 -0
  670. package/lib/tr-grid-util/es6/formula/TSIService.d.ts +11 -0
  671. package/lib/tr-grid-util/es6/formula/TSIService.js +51 -0
  672. package/lib/tr-grid-util/es6/formula/TSISubscription.d.ts +18 -0
  673. package/lib/tr-grid-util/es6/formula/TSISubscription.js +1015 -0
  674. package/lib/tr-grid-util/es6/formula/VariableToken.d.ts +30 -0
  675. package/lib/tr-grid-util/es6/formula/VariableToken.js +314 -0
  676. package/lib/tr-grid-util/es6/formula/functions/AdFin.d.ts +9 -0
  677. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +1778 -0
  678. package/lib/tr-grid-util/es6/formula/functions/Excel.d.ts +8 -0
  679. package/lib/tr-grid-util/es6/formula/functions/Excel.js +21 -0
  680. package/lib/tr-grid-util/es6/formula/functions/Info.d.ts +8 -0
  681. package/lib/tr-grid-util/es6/formula/functions/Info.js +192 -0
  682. package/lib/tr-grid-util/es6/formula/functions/Internal.d.ts +8 -0
  683. package/lib/tr-grid-util/es6/formula/functions/Internal.js +90 -0
  684. package/lib/tr-grid-util/es6/formula/functions/Logic.d.ts +12 -0
  685. package/lib/tr-grid-util/es6/formula/functions/Logic.js +176 -0
  686. package/lib/tr-grid-util/es6/formula/functions/Math.d.ts +18 -0
  687. package/lib/tr-grid-util/es6/formula/functions/Math.js +1624 -0
  688. package/lib/tr-grid-util/es6/formula/functions/Statistics.d.ts +18 -0
  689. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +234 -0
  690. package/lib/tr-grid-util/es6/formula/functions/Text.d.ts +10 -0
  691. package/lib/tr-grid-util/es6/formula/functions/Text.js +676 -0
  692. package/lib/tr-grid-util/es6/index.d.ts +65 -0
  693. package/lib/tr-grid-util/es6/index.js +102 -0
  694. package/lib/tr-grid-util/es6/jet/Adc.d.ts +9 -0
  695. package/lib/tr-grid-util/es6/jet/Adc.js +268 -0
  696. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +28 -0
  697. package/lib/tr-grid-util/es6/jet/CollectionDict.js +151 -0
  698. package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +136 -0
  699. package/lib/tr-grid-util/es6/jet/DataGenerator.js +860 -0
  700. package/lib/tr-grid-util/es6/jet/DataSet.d.ts +8 -0
  701. package/lib/tr-grid-util/es6/jet/DataSet.js +392 -0
  702. package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +21 -0
  703. package/lib/tr-grid-util/es6/jet/MockArchive.js +56 -0
  704. package/lib/tr-grid-util/es6/jet/MockJET.d.ts +25 -0
  705. package/lib/tr-grid-util/es6/jet/MockJET.js +71 -0
  706. package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +37 -0
  707. package/lib/tr-grid-util/es6/jet/MockQuotes.js +199 -0
  708. package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +82 -0
  709. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +890 -0
  710. package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +48 -0
  711. package/lib/tr-grid-util/es6/jet/MockRTK.js +82 -0
  712. package/lib/tr-grid-util/es6/jet/MockUtil.d.ts +7 -0
  713. package/lib/tr-grid-util/es6/jet/MockUtil.js +25 -0
  714. package/lib/tr-grid-util/es6/jet/index.d.ts +9 -0
  715. package/lib/tr-grid-util/es6/jet/index.js +18 -0
  716. package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +11 -0
  717. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +111 -0
  718. package/lib/tr-grid-util/es6/jsx.d.ts +223 -0
  719. package/lib/tr-grid-util/es6/locale/translation-de.d.ts +7 -0
  720. package/lib/tr-grid-util/es6/locale/translation-de.js +51 -0
  721. package/lib/tr-grid-util/es6/locale/translation-en.d.ts +7 -0
  722. package/lib/tr-grid-util/es6/locale/translation-en.js +51 -0
  723. package/lib/tr-grid-util/es6/locale/translation-ja.d.ts +7 -0
  724. package/lib/tr-grid-util/es6/locale/translation-ja.js +51 -0
  725. package/lib/tr-grid-util/es6/locale/translation-zh-hant.d.ts +7 -0
  726. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +51 -0
  727. package/lib/tr-grid-util/es6/locale/translation-zh.d.ts +7 -0
  728. package/lib/tr-grid-util/es6/locale/translation-zh.js +51 -0
  729. package/lib/tr-grid-util/es6/locale/translation.d.ts +11 -0
  730. package/lib/tr-grid-util/es6/locale/translation.js +18 -0
  731. package/lib/types/es6/AutoTooltip.d.ts +46 -0
  732. package/lib/types/es6/CellSelection.d.ts +70 -0
  733. package/lib/types/es6/Checkbox.d.ts +82 -0
  734. package/lib/types/es6/ColumnDragging.d.ts +51 -0
  735. package/lib/types/es6/ColumnFitter.d.ts +56 -0
  736. package/lib/types/es6/ColumnFormatting.d.ts +92 -0
  737. package/lib/types/es6/ColumnGrouping.d.ts +107 -0
  738. package/lib/types/es6/ColumnResizing.d.ts +68 -0
  739. package/lib/types/es6/ColumnSelection.d.ts +77 -0
  740. package/lib/types/es6/ColumnStack.d.ts +160 -0
  741. package/lib/types/es6/CompositeGrid/CollapsibleHeaderPlugin.d.ts +11 -0
  742. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +41 -0
  743. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +45 -0
  744. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +289 -0
  745. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +23 -0
  746. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +41 -0
  747. package/lib/types/es6/CompositeGrid/Plugin.d.ts +30 -0
  748. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +32 -0
  749. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +44 -0
  750. package/lib/types/es6/CompositeGrid/TextWidthCalculator.d.ts +24 -0
  751. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +46 -0
  752. package/lib/types/es6/CompositeGrid/index.d.ts +9 -0
  753. package/lib/types/es6/ConditionalColoring.d.ts +100 -0
  754. package/lib/types/es6/ContentWrap.d.ts +43 -0
  755. package/lib/types/es6/ContextMenu.d.ts +83 -0
  756. package/lib/types/es6/CoralButtonFormatter.d.ts +20 -0
  757. package/lib/types/es6/CoralCheckboxFormatter.d.ts +12 -0
  758. package/lib/types/es6/CoralComboBoxFormatter.d.ts +23 -0
  759. package/lib/types/es6/CoralIconFormatter.d.ts +21 -0
  760. package/lib/types/es6/CoralInputFormatter.d.ts +12 -0
  761. package/lib/types/es6/CoralRadioButtonFormatter.d.ts +20 -0
  762. package/lib/types/es6/CoralSelectFormatter.d.ts +23 -0
  763. package/lib/types/es6/CoralToggleFormatter.d.ts +12 -0
  764. package/lib/types/es6/Core/data/ColumnStats.d.ts +42 -0
  765. package/lib/types/es6/Core/data/DataCache.d.ts +43 -0
  766. package/lib/types/es6/Core/data/DataTable.d.ts +156 -0
  767. package/lib/types/es6/Core/data/DataView.d.ts +332 -0
  768. package/lib/types/es6/Core/data/Segment.d.ts +91 -0
  769. package/lib/types/es6/Core/data/SegmentCollection.d.ts +84 -0
  770. package/lib/types/es6/Core/data/WrappedView.d.ts +290 -0
  771. package/lib/types/es6/Core/grid/Core.d.ts +455 -0
  772. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +212 -0
  773. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +37 -0
  774. package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +28 -0
  775. package/lib/types/es6/Core/grid/components/Cell.d.ts +52 -0
  776. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +21 -0
  777. package/lib/types/es6/Core/grid/components/CellSpan.d.ts +18 -0
  778. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +40 -0
  779. package/lib/types/es6/Core/grid/components/Column.d.ts +22 -0
  780. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +127 -0
  781. package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +28 -0
  782. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +63 -0
  783. package/lib/types/es6/Core/grid/components/StretchedCells.d.ts +17 -0
  784. package/lib/types/es6/Core/grid/components/VScrollbar.d.ts +18 -0
  785. package/lib/types/es6/Core/grid/components/VirtualItems.d.ts +12 -0
  786. package/lib/types/es6/Core/grid/event/EventDispatcher.d.ts +16 -0
  787. package/lib/types/es6/Core/grid/event/EventListeners.d.ts +34 -0
  788. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +155 -0
  789. package/lib/types/es6/Core/grid/util/CellBoundPainter.d.ts +16 -0
  790. package/lib/types/es6/Core/grid/util/Conflator.d.ts +32 -0
  791. package/lib/types/es6/Core/grid/util/Reverter.d.ts +14 -0
  792. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +79 -0
  793. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +54 -0
  794. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +92 -0
  795. package/lib/types/es6/Core/grid/util/Virtualizer.d.ts +40 -0
  796. package/lib/types/es6/Core/grid/util/util.d.ts +20 -0
  797. package/lib/types/es6/Core/index.d.ts +79 -0
  798. package/lib/types/es6/Core/tr-grid-theme.d.ts +5 -0
  799. package/lib/types/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
  800. package/lib/types/es6/EFButtonFormatter.d.ts +20 -0
  801. package/lib/types/es6/EFCheckboxFormatter.d.ts +12 -0
  802. package/lib/types/es6/EFComboBoxFormatter.d.ts +23 -0
  803. package/lib/types/es6/EFDateTimePickerFormatter.d.ts +13 -0
  804. package/lib/types/es6/EFIconFormatter.d.ts +21 -0
  805. package/lib/types/es6/EFNumberFieldFormatter.d.ts +12 -0
  806. package/lib/types/es6/EFRadioButtonFormatter.d.ts +20 -0
  807. package/lib/types/es6/EFSelectFormatter.d.ts +23 -0
  808. package/lib/types/es6/EFTextFieldFormatter.d.ts +12 -0
  809. package/lib/types/es6/EFToggleFormatter.d.ts +12 -0
  810. package/lib/types/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
  811. package/lib/types/es6/ExtensionColumnOptions.d.ts +41 -0
  812. package/lib/types/es6/ExtensionOptions.d.ts +58 -0
  813. package/lib/types/es6/Extensions.d.ts +63 -0
  814. package/lib/types/es6/FilterInput.d.ts +64 -0
  815. package/lib/types/es6/FormatterBuilder.d.ts +26 -0
  816. package/lib/types/es6/GridFormatter.d.ts +63 -0
  817. package/lib/types/es6/HeatMap.d.ts +45 -0
  818. package/lib/types/es6/InCellEditing.d.ts +148 -0
  819. package/lib/types/es6/MenuEventAPI.d.ts +22 -0
  820. package/lib/types/es6/MenuItem.d.ts +41 -0
  821. package/lib/types/es6/NumericInputFormatter.d.ts +13 -0
  822. package/lib/types/es6/Pagination.d.ts +58 -0
  823. package/lib/types/es6/PercentBar.d.ts +60 -0
  824. package/lib/types/es6/PercentBarFormatter.d.ts +25 -0
  825. package/lib/types/es6/PopupMenu.d.ts +33 -0
  826. package/lib/types/es6/RangeBar.d.ts +39 -0
  827. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +176 -0
  828. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +43 -0
  829. package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +40 -0
  830. package/lib/types/es6/RealtimeGrid/Grid.d.ts +413 -0
  831. package/lib/types/es6/RealtimeGrid/PredefinedFormula.d.ts +16 -0
  832. package/lib/types/es6/RealtimeGrid/ReferenceCounter.d.ts +40 -0
  833. package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +19 -0
  834. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +156 -0
  835. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +36 -0
  836. package/lib/types/es6/RealtimeGrid/StyleLoader.d.ts +17 -0
  837. package/lib/types/es6/RealtimeGrid/index.d.ts +8 -0
  838. package/lib/types/es6/RowColoring.d.ts +64 -0
  839. package/lib/types/es6/RowDragging.d.ts +81 -0
  840. package/lib/types/es6/RowFiltering.d.ts +159 -0
  841. package/lib/types/es6/RowGrouping.d.ts +123 -0
  842. package/lib/types/es6/RowSegmenting.d.ts +109 -0
  843. package/lib/types/es6/RowSelection.d.ts +75 -0
  844. package/lib/types/es6/SimpleImageFormatter.d.ts +21 -0
  845. package/lib/types/es6/SimpleInputFormatter.d.ts +12 -0
  846. package/lib/types/es6/SimpleLinkFormatter.d.ts +21 -0
  847. package/lib/types/es6/SimpleTickerFormatter.d.ts +23 -0
  848. package/lib/types/es6/SimpleToggleFormatter.d.ts +22 -0
  849. package/lib/types/es6/StatisticsRow.d.ts +68 -0
  850. package/lib/types/es6/TextFormatter.d.ts +12 -0
  851. package/lib/types/es6/TextFormatting.d.ts +72 -0
  852. package/lib/types/es6/TitleWrap.d.ts +27 -0
  853. package/lib/types/es6/Zoom.d.ts +52 -0
  854. package/lib/types/es6/index.d.ts +80 -0
  855. package/lib/types/index.d.ts +1 -0
  856. package/lib/utils/index.d.ts +7 -0
  857. package/lib/utils/index.js +7 -0
  858. package/lib/versions.json +37 -0
  859. package/lib/window-exporter.js +18 -0
  860. package/lib/zoom/es6/Zoom.d.ts +52 -0
  861. package/lib/zoom/es6/Zoom.js +438 -0
  862. package/lib/zoom/es6/index.d.ts +1 -0
  863. package/lib/zoom/es6/index.js +1 -0
  864. package/package.json +69 -0
@@ -0,0 +1,2975 @@
1
+ /* eslint-disable */
2
+ import Ext from "../../../tr-grid-util/es6/Ext.js";
3
+ import Util from "./util/util.js";
4
+ import Cell from "./components/Cell.js";
5
+ import Column from "./components/Column.js";
6
+ import VirtualItems from "./components/VirtualItems.js";
7
+ import StretchedCells from "./components/StretchedCells.js";
8
+ import CellSpans from "./components/CellSpans.js";
9
+ import CellSpan from "./components/CellSpan.js";
10
+ import TrackLayout from "./util/TrackLayout.js";
11
+ import SelectionList from "./util/SelectionList.js";
12
+ import ILayoutGrid from "./ILayoutGrid.js";
13
+ import ElementWrapper from "./components/ElementWrapper.js";
14
+ import HScrollbar from "./components/HScrollbar.js";
15
+ import CellBoundPainter from "./util/CellBoundPainter.js";
16
+ /* eslint-enable */
17
+
18
+ //#region Events
19
+ /**
20
+ * @event LayoutGrid#rowHighlighted
21
+ */
22
+ /**
23
+ * @event LayoutGrid#rowCountChanged
24
+ */
25
+ /**
26
+ * @event LayoutGrid#rowHeightChanged
27
+ */
28
+ /**
29
+ * @event LayoutGrid#rowAvailable
30
+ * @ignore
31
+ */
32
+ //#endregion Events
33
+
34
+ /**
35
+ * Please see {@link ILayoutGrid} for full APIs and parameter lists.
36
+ * @constructor
37
+ * @param {Object=} options
38
+ * @extends {ElementWrapper}
39
+ */
40
+ let LayoutGrid = function (options) {
41
+ let _t = this;
42
+
43
+ _t._onMouseMove = _t._onMouseMove.bind(_t);
44
+ _t._onMouseOut = _t._onMouseOut.bind(_t);
45
+ _t._onResetTransformIE = _t._onResetTransformIE.bind(_t);
46
+
47
+ _t._trackX = new TrackLayout();
48
+ _t._trackY = new TrackLayout();
49
+ _t._trackX.setDefaultLaneSize(100);
50
+ _t._trackY.setDefaultLaneSize(32);
51
+
52
+ _t._cellSpans = new CellSpans();
53
+
54
+ _t._element = document.createElement("div");
55
+ _t._element.className = "tr-lg tr-even-shading";
56
+
57
+ _t._ctxRows = new VirtualItems(); // Context rows act as a virtual column storing UI context or metadata for rows
58
+ _t._columns = [];
59
+ _t._cells = [];
60
+ _t._highlightedCells = [];
61
+ _t._stretchedCells = new StretchedCells(_t._trackX, _t._trackY, _t);
62
+ _t._selectionList = new SelectionList();
63
+
64
+ if (options) {
65
+ _t._virOwner = options["owner"] || null;
66
+ if(options["horizontalScrollbar"]) {
67
+ _t._hscrollbar = options["horizontalScrollbar"];
68
+ }
69
+ }
70
+ if(!_t._virOwner) {
71
+ _t._element.classList.add("section");
72
+ }
73
+
74
+ _t._addEvent("rowHighlighted");
75
+ _t._addEvent("rowCountChanged");
76
+ _t._addEvent("rowHeightChanged");
77
+ _t._addEvent("rowAvailable");
78
+ };
79
+
80
+ Ext.inherits(LayoutGrid, ElementWrapper);
81
+
82
+ /**
83
+ * @type {number}
84
+ * @private
85
+ */
86
+ LayoutGrid.prototype._index = -1;
87
+
88
+ /**
89
+ * For virtualization in Y-Axis
90
+ * @type {number}
91
+ * @private
92
+ */
93
+ LayoutGrid.prototype._availableRowCount = 0;
94
+
95
+ /**
96
+ * For virtualization in Y-Axis
97
+ * @type {number}
98
+ * @private
99
+ */
100
+ LayoutGrid.prototype._activeRow = 0;
101
+
102
+ /**
103
+ * For virtualization in Y-Axis
104
+ * @type {number}
105
+ * @private
106
+ */
107
+ LayoutGrid.prototype._activeRowEnd = 0;
108
+
109
+ /**
110
+ * Cache of column count.
111
+ * @type {number}
112
+ * @private
113
+ */
114
+ LayoutGrid.prototype._colCount = 0;
115
+
116
+ /** Cache of row count
117
+ * @type {number}
118
+ * @private
119
+ */
120
+ LayoutGrid.prototype._rowCount = 0;
121
+
122
+ /**
123
+ * Cache of hidden row count
124
+ * @type {number}
125
+ * @private
126
+ */
127
+ LayoutGrid.prototype._hiddenRowCount = 0;
128
+
129
+ /**
130
+ * @type {!TrackLayout}
131
+ * @private
132
+ */
133
+ LayoutGrid.prototype._trackX;
134
+
135
+ /**
136
+ * @type {!TrackLayout}
137
+ * @private
138
+ */
139
+ LayoutGrid.prototype._trackY;
140
+
141
+ /**
142
+ * @type {!CellSpans}
143
+ * @private
144
+ */
145
+ LayoutGrid.prototype._cellSpans;
146
+
147
+ /**
148
+ * Div elements that govern column styles
149
+ * @type {!Array.<Column>}
150
+ * @private
151
+ */
152
+ LayoutGrid.prototype._columns;
153
+
154
+ /**
155
+ * @type {Column}
156
+ * @private
157
+ */
158
+ LayoutGrid.prototype._firstColumn;
159
+
160
+ /**
161
+ * @type {Column}
162
+ * @private
163
+ */
164
+ LayoutGrid.prototype._lastColumn;
165
+
166
+ /** @type {Element}
167
+ * @private
168
+ */
169
+ LayoutGrid.prototype._rightSpace;
170
+ /** @type {number}
171
+ * @private
172
+ */
173
+ LayoutGrid.prototype._rightSpaceSize = 0;
174
+
175
+ /**
176
+ * @type {boolean}
177
+ * @private
178
+ */
179
+ LayoutGrid.prototype._frozenLayout = false;
180
+
181
+ /**
182
+ * @type {boolean}
183
+ * @private
184
+ */
185
+ LayoutGrid.prototype._rowHighlightEnabled = false;
186
+
187
+ /**
188
+ * Negative value means no row is highlight
189
+ * @type {number}
190
+ * @private
191
+ */
192
+ LayoutGrid.prototype._rowHighlightIndex = -1;
193
+
194
+ /**
195
+ * @type {!Array.<Cell>}
196
+ * @private
197
+ */
198
+ LayoutGrid.prototype._highlightedCells;
199
+
200
+ /**
201
+ * @type {Element}
202
+ * @private
203
+ */
204
+ LayoutGrid.prototype._coverLayer = null;
205
+ /**
206
+ * @type {StretchedCells}
207
+ * @private
208
+ */
209
+ LayoutGrid.prototype._stretchedCells = null;
210
+ /**
211
+ * @type {*}
212
+ * @private
213
+ */
214
+ LayoutGrid.prototype._ctx = null;
215
+
216
+ /**
217
+ * @type {!SelectionList}
218
+ * @private
219
+ */
220
+ LayoutGrid.prototype._selectionList;
221
+
222
+ /** @type {boolean}
223
+ * @private
224
+ */
225
+ LayoutGrid.prototype._colVir = false;
226
+
227
+ /**
228
+ * @type {boolean}
229
+ * @private
230
+ */
231
+ LayoutGrid.prototype._initialized = false;
232
+
233
+ /**
234
+ * @type {string}
235
+ * @private
236
+ */
237
+ LayoutGrid.prototype._hidingMethod = "";
238
+
239
+ /**
240
+ * @type {ILayoutGrid}
241
+ * @private
242
+ */
243
+ LayoutGrid.prototype._virOwner = null;
244
+ /** @type {number}
245
+ * @private
246
+ */
247
+ LayoutGrid.prototype._transformIETimer = 0;
248
+ /** @type {!VirtualItems}
249
+ * @description Context rows act as a virtual column storing UI context or metadata for rows
250
+ * @private
251
+ */
252
+ LayoutGrid.prototype._ctxRows;
253
+ /** @type {Element}
254
+ * @private
255
+ */
256
+ LayoutGrid.prototype._boundLayer = null;
257
+ /** @type {Array.<Element>}
258
+ * @private
259
+ */
260
+ LayoutGrid.prototype._colBounds = null;
261
+ /** @type {Array.<Element>}
262
+ * @private
263
+ */
264
+ LayoutGrid.prototype._colBoundCache = null;
265
+ /** @type {HScrollbar}
266
+ * @private
267
+ */
268
+ LayoutGrid.prototype._hscrollbar = null;
269
+ /** @type {Element}
270
+ * @private
271
+ */
272
+ LayoutGrid.prototype._leftColumnSeparator = null;
273
+ /** @type {Element}
274
+ * @private
275
+ */
276
+ LayoutGrid.prototype._rightColumnSeparator = null;
277
+ /** @type {Element}
278
+ * @private
279
+ */
280
+ LayoutGrid.prototype._cellBoundPainter = null;
281
+ /**
282
+ * {@link ElementWrapper#dispose}
283
+ * @override
284
+ */
285
+ LayoutGrid.prototype.dispose = function () {
286
+ this.setRowCount(0); // Fire rowCountChanged
287
+
288
+ this.unlistenAll();
289
+ //this.clearSelectedRows();
290
+
291
+ this._ctxRows.dispose();
292
+ this._stretchedCells.dispose();
293
+ for (let i = this._columns.length; --i >= 0; ) {
294
+ this._columns[i].dispose();
295
+ }
296
+
297
+ this._colCount = this._rowCount = this._activeRowEnd = this._availableRowCount = 0;
298
+ this._colBounds = this._colBoundCache = null;
299
+
300
+ this._highlightedCells.length = 0;
301
+ this._ctx = null;
302
+ this._hscrollbar = null;
303
+
304
+ if(this._cellBoundPainter) {
305
+ this._cellBoundPainter.dispose();
306
+ }
307
+
308
+ this._dispose();
309
+ };
310
+ /**
311
+ * {@link ElementWrapper#getWidth}
312
+ * @override
313
+ */
314
+ LayoutGrid.prototype.getWidth = function () {
315
+ return this.isVisible() ? this._getWidth() : 0;
316
+ };
317
+ /** @private
318
+ * @return {number}
319
+ */
320
+ LayoutGrid.prototype._getWidth = function () {
321
+ return this.getContentWidth() + this._rightSpaceSize;
322
+ };
323
+
324
+ /**
325
+ * {@link ElementWrapper#setWidth}
326
+ * @override
327
+ */
328
+ LayoutGrid.prototype.setWidth = function (px) {
329
+ if (px < 0) {
330
+ return false;
331
+ }
332
+
333
+ let changes = this._trackX.setTrackSize(px - this._rightSpaceSize); // WARNING: Perform scalling instead of setting width directly
334
+
335
+ if (changes == null) {
336
+ return false;
337
+ }
338
+
339
+ // The size will be applied, only if minimum specification is satisfied.
340
+ this._syncLayoutToColumns(0);
341
+
342
+ return true;
343
+ };
344
+
345
+ /**
346
+ * {@link ElementWrapper#getHeight}
347
+ * @override
348
+ */
349
+ LayoutGrid.prototype.getHeight = function () {
350
+ if (!this.isVisible()) {
351
+ return 0;
352
+ }
353
+
354
+ return this.getContentHeight();
355
+ };
356
+ /**
357
+ * {@link ElementWrapper#setHeight}
358
+ * @override
359
+ */
360
+ LayoutGrid.prototype.setHeight = function (px) {
361
+ if (px < 0) {
362
+ return false;
363
+ }
364
+
365
+ let changes = this._trackY.setTrackSize(px); // WARNING: Perform scalling instead of setting height directly
366
+
367
+ if (changes == null) {
368
+ return true;
369
+ }
370
+
371
+ // The size will be applied, only if minimum specification is satisfied.
372
+ this._syncLayoutToRows(0, this._rowCount);
373
+
374
+ return true;
375
+ };
376
+ /**
377
+ * {@link ElementWrapper#show}
378
+ * @override
379
+ */
380
+ LayoutGrid.prototype.show = function (opt_shown) {
381
+ // warning: this method affect to row only
382
+ this._element.style.display = opt_shown !== false ? "" : "none";
383
+ this._trackY.show(opt_shown);
384
+ this.setFrozenLayout(opt_shown === false);
385
+ this._dispatchRowHeightChangedEvent(0, this._rowCount); // TODO: This is redundant with setFrozenLayout
386
+ };
387
+
388
+ /**
389
+ * {@link ILayoutGrid#hitTest}
390
+ * @inheritDoc
391
+ */
392
+ LayoutGrid.prototype.hitTest = function (x, y, opt_omitSpan) {
393
+ if (x < 0) {
394
+ return null;
395
+ }
396
+
397
+ if (y < 0) {
398
+ return null;
399
+ }
400
+
401
+ if (x >= this.getContentWidth()) {
402
+ return null;
403
+ }
404
+
405
+ if (y >= this.getHeight()) {
406
+ return null;
407
+ }
408
+
409
+ let hitX = this._trackX.hitTest(x);
410
+
411
+ if (hitX < 0) {
412
+ return null;
413
+ }
414
+
415
+ let hitY = this._trackY.hitTest(y);
416
+
417
+ if (hitY < 0) {
418
+ return null;
419
+ }
420
+
421
+ let result = {};
422
+ result["colIndex"] = hitX;
423
+ result["rowIndex"] = hitY;
424
+
425
+ if (opt_omitSpan !== true) {
426
+ let cellSpan = this._cellSpans.getOccupyingSpan(hitX, hitY);
427
+
428
+ if (cellSpan) {
429
+ result["colIndex"] = cellSpan.indexX;
430
+ result["rowIndex"] = cellSpan.indexY;
431
+ }
432
+ }
433
+
434
+ return result;
435
+ };
436
+
437
+ /**
438
+ * {@link ILayoutGrid#hitTestX}
439
+ * @inheritDoc
440
+ */
441
+ LayoutGrid.prototype.hitTestX = function (x) {
442
+ if (x < 0) {
443
+ return -1;
444
+ }
445
+
446
+ if (x >= this.getContentWidth()) {
447
+ return ~this._colCount;
448
+ }
449
+
450
+ return this._trackX.hitTest(x);
451
+ };
452
+
453
+ /**
454
+ * {@link ILayoutGrid#hitTestY}
455
+ * @inheritDoc
456
+ */
457
+ LayoutGrid.prototype.hitTestY = function (y) {
458
+ if (y < 0) {
459
+ return -1;
460
+ }
461
+
462
+ if (y >= this.getHeight()) {
463
+ return ~this._rowCount;
464
+ }
465
+
466
+ return this._trackY.hitTest(y);
467
+ };
468
+
469
+ /**
470
+ * {@link ILayoutGrid#getDefaultColumnWidth}
471
+ * @inheritDoc
472
+ */
473
+ LayoutGrid.prototype.getDefaultColumnWidth = function () {
474
+ return this._trackX.getDefaultLaneSize();
475
+ };
476
+
477
+ /**
478
+ * {@link ILayoutGrid#setDefaultColumnWidth}
479
+ * @inheritDoc
480
+ */
481
+ LayoutGrid.prototype.setDefaultColumnWidth = function (val) {
482
+ if (this._trackX.getDefaultLaneSize() !== val) {
483
+ this._trackX.setDefaultLaneSize(val);
484
+ this._syncLayoutToColumns(0);
485
+ }
486
+ };
487
+
488
+ /**
489
+ * {@link ILayoutGrid#getDefaultRowHeight}
490
+ * @inheritDoc
491
+ */
492
+ LayoutGrid.prototype.getDefaultRowHeight = function () {
493
+ return this._trackY.getDefaultLaneSize();
494
+ };
495
+
496
+ /**
497
+ * {@link ILayoutGrid#setDefaultRowHeight}
498
+ * @inheritDoc
499
+ */
500
+ LayoutGrid.prototype.setDefaultRowHeight = function (val) {
501
+ let defaultH = this._trackY.getDefaultLaneSize();
502
+
503
+ if (defaultH !== val) {
504
+ this._trackY.setDefaultLaneSize(val);
505
+
506
+ for (let i = 0; i < this._colCount; ++i) {
507
+ this._columns[i].setHeight(val);
508
+ }
509
+
510
+ this._syncLayoutToRows(0, this._rowCount);
511
+ this._dispatchRowHeightChangedEvent(0, this._rowCount);
512
+ }
513
+ };
514
+
515
+ /**
516
+ * {@link ILayoutGrid#getColumnWidth}
517
+ * @inheritDoc
518
+ */
519
+ LayoutGrid.prototype.getColumnWidth = function (indexX) {
520
+ return this._trackX.getLaneSize(indexX);
521
+ };
522
+
523
+ /**
524
+ * {@link ILayoutGrid#setColumnWidth}
525
+ * @inheritDoc
526
+ */
527
+ LayoutGrid.prototype.setColumnWidth = function (indexX, val) {
528
+ if (this._setColumnWidth(indexX, val)) {
529
+ this._syncLayoutToColumns(indexX);
530
+
531
+ return true;
532
+ }
533
+
534
+ return false;
535
+ };
536
+ /** @public
537
+ * @ignore
538
+ * @param {number} indexX
539
+ * @param {number} val
540
+ * @return {boolean}
541
+ */
542
+ LayoutGrid.prototype._setColumnWidth = function (indexX, val) {
543
+ return this._trackX.setLaneSize(indexX, val);
544
+ };
545
+ /** @public
546
+ * @ignore
547
+ */
548
+ LayoutGrid.prototype._updateColumnLayout = function () {
549
+ this._syncLayoutToColumns(0);
550
+ };
551
+ /** @public
552
+ * @ignore
553
+ * @param {boolean} enabled
554
+ */
555
+ LayoutGrid.prototype._startBindingSession = function (enabled) {
556
+ // Prevent error when calling _startBindingSession in LayoutGrid
557
+ };
558
+ /** @public
559
+ * @ignore
560
+ * @return {Array<boolean>}
561
+ */
562
+ LayoutGrid.prototype._getTempRowHeights = function () {
563
+ return null;
564
+ };
565
+
566
+ /**
567
+ * {@link ILayoutGrid#getRowHeight}
568
+ * @inheritDoc
569
+ */
570
+ LayoutGrid.prototype.getRowHeight = function (indexY) {
571
+ return this._trackY.getLaneSize(indexY);
572
+ };
573
+
574
+ /**
575
+ * {@link ILayoutGrid#setRowHeight}
576
+ * @inheritDoc
577
+ */
578
+ LayoutGrid.prototype.setRowHeight = function (rowIndex, val) {
579
+ if (rowIndex < 0 || rowIndex >= this._rowCount) {
580
+ return false;
581
+ }
582
+
583
+ let dirty = this._trackY.setLaneSize(rowIndex, val);
584
+
585
+ this._syncLayoutToRows(rowIndex, rowIndex + 1); // Update UI. WARNING: Very slow
586
+
587
+ if (dirty) {
588
+ this._dispatchRowHeightChangedEvent(rowIndex, rowIndex + 1);
589
+ }
590
+
591
+ this._resetTransformIETimer();
592
+
593
+ return dirty;
594
+ };
595
+
596
+ /**
597
+ * @description Use internally to quickly update all row heights
598
+ * @public
599
+ * @ignore
600
+ * @param {TrackLayout} track
601
+ * @param {number} start
602
+ * @returns {boolean}
603
+ */
604
+ LayoutGrid.prototype._updateRowHeights = function (track, start) {
605
+ let dirty = 0;
606
+
607
+ for (let i = 0; i < this._rowCount; ++i) {
608
+ let val = track.getLaneSize(start);
609
+
610
+ dirty |= this._trackY.setLaneSize(i, val);
611
+ ++start;
612
+ }
613
+
614
+ this._syncLayoutToRows(0, this._rowCount);
615
+ // if (dirty) { // TODO: Check if need to dispatch the event
616
+ // this._dispatchRowHeightChangedEvent(0, this._rowCount);
617
+ // }
618
+ return dirty;
619
+ };
620
+
621
+ /**
622
+ * {@link ILayoutGrid#isColumnVisible}
623
+ * @inheritDoc
624
+ */
625
+ LayoutGrid.prototype.isColumnVisible = function (indexX) {
626
+ return this._trackX.isLaneVisible(indexX);
627
+ };
628
+
629
+ /**
630
+ * {@link ILayoutGrid#hideColumn}
631
+ * @inheritDoc
632
+ */
633
+ LayoutGrid.prototype.hideColumn = function (indexX, val) {
634
+ return this.setColumnVisibility(indexX, (val === false), 0);
635
+ };
636
+
637
+ /**
638
+ * {@link ILayoutGrid#isRowVisible}
639
+ * @inheritDoc
640
+ */
641
+ LayoutGrid.prototype.isRowVisible = function (indexY) {
642
+ return this._trackY.isLaneVisible(indexY);
643
+ };
644
+
645
+ /**
646
+ * {@link ILayoutGrid#hideRow}
647
+ * @inheritDoc
648
+ */
649
+ LayoutGrid.prototype.hideRow = function (indexY, val) {
650
+ if (this._trackY.hideLane(indexY, val)) {
651
+ if ((val == null || val) && !this.isRowVisible(indexY)) {
652
+ this._hiddenRowCount++;
653
+ } else if (this.isRowVisible(indexY)){
654
+ this._hiddenRowCount--;
655
+ }
656
+
657
+ this._syncLayoutToRows(indexY, this._rowCount);
658
+ this._dispatchRowHeightChangedEvent(indexY, indexY + 1);
659
+
660
+ return true;
661
+ }
662
+
663
+ return false;
664
+ };
665
+
666
+ /**
667
+ * {@link ILayoutGrid#getMinimumColumnWidth}
668
+ * @inheritDoc
669
+ */
670
+ LayoutGrid.prototype.getMinimumColumnWidth = function (indexX) {
671
+ return this._trackX.getMinimumLaneSize(indexX);
672
+ };
673
+
674
+ /**
675
+ * {@link ILayoutGrid#setMinimumColumnWidth}
676
+ * @inheritDoc
677
+ */
678
+ LayoutGrid.prototype.setMinimumColumnWidth = function (indexX, val) {
679
+ if (this._trackX.setMinimumLaneSize(indexX, val)) {
680
+ this._syncLayoutToColumns(indexX);
681
+
682
+ return true;
683
+ }
684
+
685
+ return false;
686
+ };
687
+
688
+ /**
689
+ * {@link ILayoutGrid#getMinimumRowHeight}
690
+ * @inheritDoc
691
+ */
692
+ LayoutGrid.prototype.getMinimumRowHeight = function (indexY) {
693
+ return this._trackY.getMinimumLaneSize(indexY);
694
+ };
695
+
696
+ /**
697
+ * {@link ILayoutGrid#setMinimumRowHeight}
698
+ * @inheritDoc
699
+ */
700
+ LayoutGrid.prototype.setMinimumRowHeight = function (indexY, val) {
701
+ if (this._trackY.setMinimumLaneSize(indexY, val)) {
702
+ this._syncLayoutToRows(indexY, this._rowCount);
703
+ this._dispatchRowHeightChangedEvent(indexY, indexY + 1);
704
+
705
+ return true;
706
+ }
707
+
708
+ return false;
709
+ };
710
+
711
+ /**
712
+ * {@link ILayoutGrid#getCellLeft}
713
+ * @inheritDoc
714
+ */
715
+ LayoutGrid.prototype.getCellLeft = function (indexX) {
716
+ return this._trackX.getLaneStart(indexX);
717
+ };
718
+
719
+ /**
720
+ * {@link ILayoutGrid#getCellTop}
721
+ * @inheritDoc
722
+ */
723
+ LayoutGrid.prototype.getCellTop = function (indexY) {
724
+ return this._trackY.getLaneStart(indexY);
725
+ };
726
+
727
+ /**
728
+ * {@link ILayoutGrid#getCellWidth}
729
+ * @inheritDoc
730
+ */
731
+ LayoutGrid.prototype.getCellWidth = function (indexX, indexY) {
732
+ let cellSpan = this._cellSpans.getOccupyingSpan(indexX, indexY);
733
+
734
+ if (cellSpan) {
735
+ let spanStart = this._trackX.getLaneStart(cellSpan.indexX);
736
+ let spanEnd = this._trackX.getLaneEnd(cellSpan.indexX + cellSpan.colSpan - 1);
737
+
738
+ return spanEnd - spanStart;
739
+ }
740
+
741
+ return this.getColumnWidth(indexX);
742
+ };
743
+
744
+ /**
745
+ * {@link ILayoutGrid#getCellHeight}
746
+ * @inheritDoc
747
+ */
748
+ LayoutGrid.prototype.getCellHeight = function (indexX, indexY) {
749
+ let cellSpan = this._cellSpans.getOccupyingSpan(indexX, indexY);
750
+
751
+ if (cellSpan) {
752
+ let spanStart = this._trackY.getLaneStart(cellSpan.indexY);
753
+ let spanEnd = this._trackY.getLaneEnd(cellSpan.indexY + cellSpan.rowSpan - 1);
754
+
755
+ return spanEnd - spanStart;
756
+ }
757
+
758
+ return this.getRowHeight(indexY);
759
+ };
760
+
761
+ /**
762
+ * {@link ILayoutGrid#hasCellSpan}
763
+ * @inheritDoc
764
+ */
765
+ LayoutGrid.prototype.hasCellSpan = function () {
766
+ return this._cellSpans.hasSpan();
767
+ };
768
+
769
+ /**
770
+ * {@link ILayoutGrid#getCellRowSpan}
771
+ * @inheritDoc
772
+ */
773
+ LayoutGrid.prototype.getCellRowSpan = function (indexX, indexY) {
774
+ return this._cellSpans.getRowSpan(indexX, indexY);
775
+ };
776
+
777
+ /**
778
+ * {@link ILayoutGrid#setCellRowSpan}
779
+ * @inheritDoc
780
+ */
781
+ LayoutGrid.prototype.setCellRowSpan = function (indexX, indexY, spanVal) {
782
+ let cellSpan = this._cellSpans.setRowSpan(indexX, indexY, spanVal);
783
+
784
+ this._updateCellSpanSize(indexX, indexY, cellSpan);
785
+
786
+ if (cellSpan) {
787
+ if (cellSpan.retVal >= 0) { // Expansion
788
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.rowSpan, true);
789
+ } else { // Shrinking
790
+ if (cellSpan.colSpan > 1) { // Spanning still exists
791
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.prevRowSpan, false);
792
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.rowSpan, true);
793
+ } else { // Removing span definition
794
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.prevRowSpan, false);
795
+ }
796
+ }
797
+
798
+ return cellSpan.retVal !== 0;
799
+ }
800
+
801
+ let cell = this._getCell(indexX, indexY);
802
+
803
+ if (cell && cell._rowSpan > 1) {
804
+ this._updateCellSpanClass(indexX, indexY, cell._colSpan, cell._rowSpan, false);
805
+ }
806
+
807
+ return false;
808
+ };
809
+
810
+ /**
811
+ * {@link ILayoutGrid#getCellColSpan}
812
+ * @inheritDoc
813
+ */
814
+ LayoutGrid.prototype.getCellColSpan = function (indexX, indexY) {
815
+ return this._cellSpans.getColSpan(indexX, indexY);
816
+ };
817
+
818
+ /**
819
+ * {@link ILayoutGrid#setCellColSpan}
820
+ * @inheritDoc
821
+ */
822
+ LayoutGrid.prototype.setCellColSpan = function (indexX, indexY, spanVal) {
823
+ let cellSpan = this._cellSpans.setColSpan(indexX, indexY, spanVal);
824
+
825
+ this._updateCellSpanSize(indexX, indexY, cellSpan);
826
+
827
+ if (cellSpan) {
828
+ if (cellSpan.retVal >= 0) { // Expansion
829
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.rowSpan, true);
830
+ } else { // Shrinking
831
+ if (cellSpan.colSpan > 1) { // Spanning still exists
832
+ this._updateCellSpanClass(indexX, indexY, cellSpan.prevColSpan, cellSpan.rowSpan, false);
833
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.rowSpan, true);
834
+ } else { // Removing span definition
835
+ this._updateCellSpanClass(indexX, indexY, cellSpan.prevColSpan, cellSpan.rowSpan, false);
836
+ }
837
+ }
838
+
839
+ return cellSpan.retVal !== 0;
840
+ }
841
+
842
+ let cell = this._getCell(indexX, indexY);
843
+
844
+ if (cell && cell._colSpan > 1) {
845
+ this._updateCellSpanClass(indexX, indexY, cell._colSpan, cell._rowSpan, false);
846
+ }
847
+
848
+ return false;
849
+ };
850
+
851
+ /**
852
+ * {@link ILayoutGrid#clearCellSpans}
853
+ * @inheritDoc
854
+ */
855
+ LayoutGrid.prototype.clearCellSpans = function () {
856
+ let cellSpans = this._cellSpans.clearAllSpans();
857
+
858
+ if (cellSpans == null) {
859
+ return false;
860
+ }
861
+
862
+ for (let i = cellSpans.length; --i >= 0; ) {
863
+ let cellSpan = cellSpans[i];
864
+
865
+ this._updateCellSpan(cellSpan.indexX, cellSpan.indexY, cellSpan, false);
866
+ }
867
+
868
+ return true;
869
+ };
870
+
871
+ /**
872
+ * {@link ILayoutGrid#clearCellSpans}
873
+ * @inheritDoc
874
+ */
875
+ LayoutGrid.prototype.clearColumnSpans = function (indexX) {
876
+ let cellSpans = this._cellSpans.removeSpanByColIndex(indexX);
877
+
878
+ if (cellSpans == null) {
879
+ return false;
880
+ }
881
+
882
+ for (let i = cellSpans.length; --i >= 0; ) {
883
+ let cellSpan = cellSpans[i];
884
+
885
+ this._updateCellSpan(cellSpan.indexX, cellSpan.indexY, cellSpan, false);
886
+ }
887
+
888
+ return true;
889
+ };
890
+
891
+ /**
892
+ * {@link ILayoutGrid#clearColumnCustomizations}
893
+ * @inheritDoc
894
+ */
895
+ LayoutGrid.prototype.clearColumnCustomizations = function () {
896
+ this._trackX.clearLaneCustomizations();
897
+ this._syncLayoutToColumns(0);
898
+ };
899
+
900
+ /**
901
+ * {@link ILayoutGrid#clearRowCustomizations}
902
+ * @inheritDoc
903
+ */
904
+ LayoutGrid.prototype.clearRowCustomizations = function () {
905
+ this._trackY.clearLaneCustomizations();
906
+ this._syncLayoutToRows(0, this._rowCount);
907
+ };
908
+
909
+ /**
910
+ * {@link ILayoutGrid#getColumnScalability}
911
+ * @inheritDoc
912
+ */
913
+ LayoutGrid.prototype.getColumnScalability = function (indexX) {
914
+ return this._trackX.getLaneScalability(indexX);
915
+ };
916
+
917
+ /**
918
+ * {@link ILayoutGrid#setColumnScalability}
919
+ * @inheritDoc
920
+ */
921
+ LayoutGrid.prototype.setColumnScalability = function (indexX, val) {
922
+ return this._trackX.setLaneScalability(indexX, val);
923
+ };
924
+
925
+ /**
926
+ * {@link ILayoutGrid#getRowScalability}
927
+ * @inheritDoc
928
+ */
929
+ LayoutGrid.prototype.getRowScalability = function (indexY) {
930
+ return this._trackY.getLaneScalability(indexY);
931
+ };
932
+
933
+ /**
934
+ * {@link ILayoutGrid#setRowScalability}
935
+ * @inheritDoc
936
+ */
937
+ LayoutGrid.prototype.setRowScalability = function (indexY, val) {
938
+ return this._trackY.setLaneScalability(indexY, val);
939
+ };
940
+
941
+ /**
942
+ * {@link ILayoutGrid#getCell}
943
+ * @inheritDoc
944
+ */
945
+ LayoutGrid.prototype.getCell = function (indexX, indexY, opt_includeSpan) {
946
+ if (opt_includeSpan && this._cellSpans.hasSpan()) {
947
+ let colSpan = this._cellSpans.getColSpan(indexX, indexY);
948
+ let rowSpan = this._cellSpans.getRowSpan(indexX, indexY);
949
+
950
+ if (colSpan < 0) {
951
+ indexX += colSpan;
952
+ }
953
+
954
+ if (rowSpan < 0) {
955
+ indexY += rowSpan;
956
+ }
957
+ }
958
+
959
+ return this._getCell(indexX, indexY);
960
+ };
961
+
962
+ /**
963
+ * {@link ILayoutGrid#getCellContent}
964
+ * @inheritDoc
965
+ */
966
+ LayoutGrid.prototype.getCellContent = function (indexX, indexY) {
967
+ let cell = this.getCell(indexX, indexY);
968
+
969
+ if (cell !== null) {
970
+ return cell.getContent();
971
+ }
972
+
973
+ return null;
974
+ };
975
+
976
+ /**
977
+ * {@link ILayoutGrid#setCellContent}
978
+ * @inheritDoc
979
+ */
980
+ LayoutGrid.prototype.setCellContent = function (indexX, indexY, data) {
981
+ let cell = this.getCell(indexX, indexY);
982
+
983
+ if (cell == null) {
984
+ window.console.log("Error: Accessing nonexistent cell in Grid's Table");
985
+
986
+ return null;
987
+ }
988
+
989
+ return cell.setContent(data);
990
+ };
991
+
992
+ /**
993
+ * {@link ILayoutGrid#getColumnCount}
994
+ * @inheritDoc
995
+ */
996
+ LayoutGrid.prototype.getColumnCount = function () {
997
+ return this._colCount;
998
+ };
999
+
1000
+ /**
1001
+ * {@link ILayoutGrid#setColumnCount}
1002
+ * @inheritDoc
1003
+ */
1004
+ LayoutGrid.prototype.setColumnCount = function (val) {
1005
+ if (val < 0) {
1006
+ val = 0;
1007
+ }
1008
+
1009
+ if (this._colCount === val) {
1010
+ return;
1011
+ }
1012
+
1013
+ let oldColCount = this._colCount;
1014
+
1015
+ this._trackX.setLaneCount(val); // Need to be set before syncing layout
1016
+ this._colCount = this._trackX.getLaneCount();
1017
+
1018
+ let i = 0;
1019
+ let column = null;
1020
+
1021
+ if (oldColCount > val) {
1022
+ for (i = oldColCount; --i >= val; ) {
1023
+ column = this._columns.pop();
1024
+ column.dispose();
1025
+
1026
+ if (column === this._firstColumn) {
1027
+ this._firstColumn = null;
1028
+ }
1029
+
1030
+ if (column === this._lastColumn) {
1031
+ this._lastColumn = null;
1032
+ }
1033
+ }
1034
+
1035
+ // this._updateCssWidth(); // Core grid will guarantee updating width to each section
1036
+ } else {
1037
+ for (i = oldColCount; i < val; ++i) {
1038
+ column = this._newColumn(i);
1039
+ }
1040
+
1041
+ // this._syncLayoutToColumns(oldColCount); // Core grid will guarantee updating width to each section
1042
+ }
1043
+
1044
+ this._updateColumnIndices();
1045
+
1046
+ for (i = oldColCount; i < val; ++i) {
1047
+ this._columns[i].activate(!this._colVir);
1048
+ }
1049
+
1050
+ if (val <= 0) { // If there is no column at all, clear all selections
1051
+ this._selectionList.clearAllSelections(); // No UI change
1052
+ }
1053
+ };
1054
+
1055
+ /**
1056
+ * {@link ILayoutGrid#getRowCount}
1057
+ * @inheritDoc
1058
+ */
1059
+ LayoutGrid.prototype.getRowCount = function () {
1060
+ return this._rowCount;
1061
+ };
1062
+
1063
+ /**
1064
+ * {@link ILayoutGrid#setRowCount}
1065
+ * @inheritDoc
1066
+ */
1067
+ LayoutGrid.prototype.setRowCount = function (val, noBinding) {
1068
+ if (val < 0) {
1069
+ val = 0;
1070
+ }
1071
+
1072
+ if (this._rowCount === val) {
1073
+ return;
1074
+ }
1075
+
1076
+ let c;
1077
+ let oldRowCount = this._rowCount;
1078
+
1079
+ this._trackY.setLaneCount(val); // Need to be set before syncing layout
1080
+ this._rowCount = this._trackY.getLaneCount();
1081
+
1082
+ this._ctxRows.setItemCount(val);
1083
+ this._stretchedCells.setCellCount(val);
1084
+ for (c = 0; c < this._colCount; ++c) {
1085
+ this._columns[c].setCellCount(val);
1086
+ }
1087
+
1088
+ if (oldRowCount > val) {
1089
+ if (val < this._rowHighlightIndex) {
1090
+ this.setRowHighlight(-1);
1091
+ }
1092
+
1093
+ if (val < this._activeRowEnd) {
1094
+ this._activeRowEnd = val;
1095
+ }
1096
+
1097
+ if (val < this._availableRowCount) {
1098
+ this._availableRowCount = val;
1099
+ }
1100
+
1101
+ this._cellSpans.removeSpanStartedFromRowIndex(val);
1102
+ this._updateViewHeight();
1103
+
1104
+ // Clear selection of the removed rows
1105
+ if (val > 0) {
1106
+ for (let i = val; i < oldRowCount; ++i) {
1107
+ this._selectionList.deselect(i); // No UI change
1108
+ }
1109
+ } else {
1110
+ this._selectionList.clearAllSelections(); // No UI change
1111
+ }
1112
+ } else {
1113
+ this._syncLayoutToRows(oldRowCount, val);
1114
+ }
1115
+
1116
+ let e = {};
1117
+
1118
+ e["prevCount"] = oldRowCount;
1119
+ e["rowCount"] = this._rowCount;
1120
+ this._dispatch("rowCountChanged", e); // This will trigger virtualizer
1121
+
1122
+ if (oldRowCount < val) { // In case of no event is sent back
1123
+ this._insertCells(0, this._rowCount); // Dispatch row available
1124
+ }
1125
+ };
1126
+
1127
+ /**
1128
+ * {@link ILayoutGrid#getVisibleRowCount}
1129
+ * @inheritDoc
1130
+ */
1131
+ LayoutGrid.prototype.getVisibleRowCount = function () {
1132
+ return (this._rowCount - this._hiddenRowCount);
1133
+ };
1134
+
1135
+ /**
1136
+ * {@link ILayoutGrid#addRow}
1137
+ * @inheritDoc
1138
+ */
1139
+ LayoutGrid.prototype.addRow = function (val) {
1140
+ if (val <= 0) {
1141
+ return;
1142
+ }
1143
+
1144
+ if (this._colCount <= 0) {
1145
+ window.console.log("WARNING: Row cannot be added, unless at least one column is added");
1146
+
1147
+ return;
1148
+ }
1149
+
1150
+ this.setRowCount(this._rowCount + val);
1151
+ };
1152
+
1153
+ /**
1154
+ * {@link ILayoutGrid#removeRow}
1155
+ * @inheritDoc
1156
+ */
1157
+ LayoutGrid.prototype.removeRow = function (val) {
1158
+ if (val <= 0) {
1159
+ return;
1160
+ }
1161
+
1162
+ if (val > this._rowCount) {
1163
+ val = this._rowCount;
1164
+ }
1165
+
1166
+ this.setRowCount(this._rowCount - val);
1167
+ };
1168
+
1169
+ /**
1170
+ * {@link ILayoutGrid#setBorders}
1171
+ * @inheritDoc
1172
+ */
1173
+ LayoutGrid.prototype.setBorders = function (lft, top, rgt, btm) {
1174
+
1175
+ };
1176
+
1177
+ /**
1178
+ * {@link ILayoutGrid#getColumnStyle}
1179
+ * @inheritDoc
1180
+ */
1181
+ LayoutGrid.prototype.getColumnStyle = function (colIndex, styleName) {
1182
+ let column = this._columns[colIndex];
1183
+
1184
+ if (column) {
1185
+ return column.getStyle(styleName);
1186
+ }
1187
+
1188
+ return null;
1189
+ };
1190
+
1191
+ /**
1192
+ * {@link ILayoutGrid#setColumnStyle}
1193
+ * @inheritDoc
1194
+ */
1195
+ LayoutGrid.prototype.setColumnStyle = function (colIndex, styleName, value) {
1196
+ let column = this._columns[colIndex];
1197
+ if (column) {
1198
+ column.setStyle(styleName, value);
1199
+ }
1200
+ };
1201
+
1202
+ /**
1203
+ * {@link ILayoutGrid#enableColumnClass}
1204
+ * @inheritDoc
1205
+ */
1206
+ LayoutGrid.prototype.enableColumnClass = function (colIndex, className, enabled) {
1207
+ let column = this._columns[colIndex];
1208
+
1209
+ if (column) {
1210
+ column.enableClass(className, enabled);
1211
+ }
1212
+ };
1213
+
1214
+ /**
1215
+ * {@link ILayoutGrid#enableColumnClass}
1216
+ * @inheritDoc
1217
+ */
1218
+ LayoutGrid.prototype.hasColumnClass = function (colIndex, className) {
1219
+ let column = this._columns[colIndex];
1220
+
1221
+ return (column) ? column.hasClass(className) : false;
1222
+ };
1223
+
1224
+ /**
1225
+ * {@link ILayoutGrid#enableRowClass}
1226
+ * @inheritDoc
1227
+ */
1228
+ LayoutGrid.prototype.enableRowClass = function (rowIndex, className, enabled) {
1229
+ if (rowIndex >= 0 && rowIndex < this._rowCount) {
1230
+ for (let c = 0; c < this._colCount; ++c) {
1231
+ this._columns[c].getCell(rowIndex).enableClass(className, enabled);
1232
+ }
1233
+ }
1234
+ };
1235
+
1236
+ /**
1237
+ * {@link ILayoutGrid#setRowStyle}
1238
+ * @inheritDoc
1239
+ */
1240
+ LayoutGrid.prototype.setRowStyle = function (rowIndex, styleName, value, enabled) {
1241
+ if (rowIndex >= 0 && rowIndex < this._rowCount) {
1242
+ if (!value || (enabled != null && !enabled)) {
1243
+ value = "";
1244
+ }
1245
+
1246
+ for (let c = 0; c < this._colCount; ++c) {
1247
+ this._columns[c].getCell(rowIndex).setStyle(styleName, value);
1248
+ }
1249
+ }
1250
+ };
1251
+
1252
+ /**
1253
+ * {@link ILayoutGrid#getRelativePosition}
1254
+ * @inheritDoc
1255
+ */
1256
+ LayoutGrid.prototype.getRelativePosition = function (obj) {
1257
+ return Util.getRelativePosition(/** @type{Element|MouseEvent|Event} */(obj), this._element);
1258
+ };
1259
+
1260
+ /**
1261
+ * {@link ILayoutGrid#getContentWidth}
1262
+ * @inheritDoc
1263
+ */
1264
+ LayoutGrid.prototype.getContentWidth = function () {
1265
+ return this._trackX.getTrackSize();
1266
+ };
1267
+
1268
+ /**
1269
+ * {@link ILayoutGrid#getContentHeight}
1270
+ * @inheritDoc
1271
+ */
1272
+ LayoutGrid.prototype.getContentHeight = function () {
1273
+ let layoutSize = this._trackY.getTrackSize();
1274
+
1275
+ if (layoutSize <= 0) { // All of the cell has default size of zero
1276
+ if (this._colCount * this.getVisibleRowCount() > 0) {
1277
+ let column = this._columns[0];
1278
+ let bottomCell = column.getCell(this._rowCount - 1);
1279
+ let bottom = bottomCell.getTop() + bottomCell.getHeight();
1280
+
1281
+ return bottom - column.getCell(0).getTop();
1282
+ }
1283
+ }
1284
+
1285
+ return layoutSize;
1286
+ };
1287
+
1288
+ /**
1289
+ * {@link ILayoutGrid#getCellsByRowIndex}
1290
+ * @inheritDoc
1291
+ */
1292
+ LayoutGrid.prototype.getCellsByRowIndex = function (rowIndex) {
1293
+ if (rowIndex < 0 || rowIndex >= this._rowCount) {
1294
+ return null;
1295
+ }
1296
+
1297
+ let ary = new Array(this._colCount);
1298
+
1299
+ for (let c = 0; c < this._colCount; ++c) {
1300
+ ary[c] = this._columns[c].getCell(rowIndex);
1301
+ }
1302
+
1303
+ return ary;
1304
+ };
1305
+
1306
+ /**
1307
+ * {@link ILayoutGrid#disableHorizontalGridLine}
1308
+ * @inheritDoc
1309
+ */
1310
+ LayoutGrid.prototype.disableHorizontalGridLine = function (opt_bool) {
1311
+ this.enableClass("no-horizontal-grid-line", opt_bool !== false);
1312
+ };
1313
+
1314
+ /**
1315
+ * {@link ILayoutGrid#disableVerticalGridLine}
1316
+ * @inheritDoc
1317
+ */
1318
+ LayoutGrid.prototype.disableVerticalGridLine = function (opt_bool) {
1319
+ this.enableClass("no-vertical-grid-line", opt_bool !== false);
1320
+ };
1321
+
1322
+ /**
1323
+ * {@link ILayoutGrid#enableShading}
1324
+ * @inheritDoc
1325
+ */
1326
+ LayoutGrid.prototype.enableShading = function (enabled) {
1327
+ if (enabled !== false) {
1328
+ this.addClass("tr-even-shading");
1329
+ } else {
1330
+ this.removeClass("tr-even-shading");
1331
+ this.removeClass("tr-odd-shading");
1332
+ }
1333
+ };
1334
+
1335
+ /**
1336
+ * {@link ILayoutGrid#setTransposedShading}
1337
+ * @inheritDoc
1338
+ */
1339
+ LayoutGrid.prototype.setTransposedShading = function (enabled) {
1340
+ this.enableClass("transposed-shading", enabled !== false);
1341
+ };
1342
+
1343
+ /**
1344
+ * {@link ILayoutGrid#enableRowHighlighting}
1345
+ * @inheritDoc
1346
+ */
1347
+ LayoutGrid.prototype.enableRowHighlighting = function (opt_bool) {
1348
+ if (opt_bool == null) {
1349
+ opt_bool = true;
1350
+ }
1351
+
1352
+ if (this._rowHighlightEnabled === opt_bool) {
1353
+ return;
1354
+ }
1355
+
1356
+ this._rowHighlightEnabled = opt_bool;
1357
+
1358
+ if (this._rowHighlightEnabled) {
1359
+ this.listen("mousemove", this._onMouseMove);
1360
+ this.listen("mouseout", this._onMouseOut);
1361
+ } else {
1362
+ this.setRowHighlight(-1);
1363
+ this.unlisten("mousemove", this._onMouseMove);
1364
+ this.unlisten("mouseout", this._onMouseOut);
1365
+ }
1366
+ };
1367
+
1368
+ /**
1369
+ * {@link ILayoutGrid#getRowHighlight}
1370
+ * @inheritDoc
1371
+ */
1372
+ LayoutGrid.prototype.getRowHighlight = function () {
1373
+ return this._rowHighlightIndex;
1374
+ };
1375
+
1376
+ /**
1377
+ * {@link ILayoutGrid#setRowHighlight}
1378
+ * @inheritDoc
1379
+ */
1380
+ LayoutGrid.prototype.setRowHighlight = function (rowIndex) {
1381
+ if (!this._rowHighlightEnabled || rowIndex < -1 || rowIndex >= this._rowCount) {
1382
+ rowIndex = -1;
1383
+ }
1384
+
1385
+ if (this._rowHighlightIndex === rowIndex) {
1386
+ return;
1387
+ }
1388
+
1389
+ let prevIndex = this._rowHighlightIndex;
1390
+
1391
+ this._rowHighlightIndex = rowIndex;
1392
+
1393
+ for (let i = this._highlightedCells.length; --i >= 0;) {
1394
+ this._highlightedCells[i].removeClass("highlighted-row"); // This will guarantee that there is no left over highlighted cell
1395
+ }
1396
+
1397
+ if (rowIndex >= 0 && rowIndex < this._rowCount) {
1398
+ this._highlightedCells.length = this._colCount;
1399
+
1400
+ for (let c = this._colCount; --c >= 0;) {
1401
+ let cell = this._columns[c].getCell(rowIndex);
1402
+
1403
+ this._highlightedCells[c] = cell;
1404
+ cell.addClass("highlighted-row");
1405
+ }
1406
+ let stretchEl = this.getStretchedCell(rowIndex); // check stretched cell
1407
+ if(stretchEl) {
1408
+ this._highlightedCells.push(stretchEl);
1409
+ stretchEl.addClass("highlighted-row");
1410
+ }
1411
+ } else {
1412
+ this._highlightedCells.length = 0;
1413
+ }
1414
+
1415
+ if (this._hasListener("rowHighlighted")) {
1416
+ let e = {};
1417
+
1418
+ e["prevRowIndex"] = prevIndex;
1419
+ e["rowIndex"] = rowIndex;
1420
+ this._dispatch("rowHighlighted", e);
1421
+ }
1422
+ };
1423
+
1424
+ /**
1425
+ * {@link ILayoutGrid#getSelectedRows}
1426
+ * @inheritDoc
1427
+ */
1428
+ LayoutGrid.prototype.getSelectedRows = function () {
1429
+ if (this.getSelectedRowCount() > 0) {
1430
+ return this._selectionList.getAllSelections();
1431
+ }
1432
+
1433
+ return null;
1434
+ };
1435
+
1436
+ /**
1437
+ * {@link ILayoutGrid#getSelectedRowCount}
1438
+ * @inheritDoc
1439
+ */
1440
+ LayoutGrid.prototype.getSelectedRowCount = function () {
1441
+ return this._selectionList.getSelectionCount();
1442
+ };
1443
+
1444
+ /**
1445
+ * {@link ILayoutGrid#isSelectedRow}
1446
+ * @inheritDoc
1447
+ */
1448
+ LayoutGrid.prototype.isSelectedRow = function (at) {
1449
+ return this._selectionList.getSelection(at);
1450
+ };
1451
+
1452
+ /**
1453
+ * {@link ILayoutGrid#setSelectedRow}
1454
+ * @inheritDoc
1455
+ */
1456
+ LayoutGrid.prototype.setSelectedRow = function (rowIndex, opt_selected) {
1457
+ if (rowIndex < 0 || rowIndex >= this._rowCount) {
1458
+ return;
1459
+ }
1460
+
1461
+ this._selectionList.setSelection(rowIndex, opt_selected);
1462
+ this._updateSelectionUI(rowIndex);
1463
+ };
1464
+
1465
+ /**
1466
+ * {@link ILayoutGrid#selectSingleRow}
1467
+ * @inheritDoc
1468
+ */
1469
+ LayoutGrid.prototype.selectSingleRow = function (rowIndex) {
1470
+ if (rowIndex < 0 || rowIndex >= this._rowCount) {
1471
+ return;
1472
+ }
1473
+
1474
+ this.clearSelectedRows();
1475
+ this._selectionList.select(rowIndex);
1476
+ this._addSelectionUI(rowIndex);
1477
+ };
1478
+
1479
+ /**
1480
+ * {@link ILayoutGrid#selectRowRange}
1481
+ * @inheritDoc
1482
+ */
1483
+ LayoutGrid.prototype.selectRowRange = function (rowIndex, len) {
1484
+ if (rowIndex < 0 || rowIndex >= this._rowCount) {
1485
+ return;
1486
+ }
1487
+
1488
+ if (rowIndex + len > this._rowCount) {
1489
+ len = this._rowCount - rowIndex;
1490
+ }
1491
+
1492
+ this._selectionList.selectRange(rowIndex, len);
1493
+
1494
+ for (let r = 0; r < len; ++r) {
1495
+ this._addSelectionUI(r + rowIndex);
1496
+ }
1497
+ };
1498
+
1499
+ /**
1500
+ * {@link ILayoutGrid#clearSelectedRows}
1501
+ * @inheritDoc
1502
+ */
1503
+ LayoutGrid.prototype.clearSelectedRows = function () {
1504
+ let count = this._selectionList.getSelectionCount();
1505
+
1506
+ if (count) {
1507
+ let sels = this._selectionList.getAllSelections(); // Slow
1508
+
1509
+ this._selectionList.clearAllSelections();
1510
+
1511
+ for (let i = 0; i < count; ++i) {
1512
+ this._removeSelectionUI(sels[i]);
1513
+ }
1514
+
1515
+ return count;
1516
+ }
1517
+
1518
+ return 0;
1519
+ };
1520
+
1521
+ /**
1522
+ * {@link ILayoutGrid#getFirstSelectedRow}
1523
+ * @inheritDoc
1524
+ */
1525
+ LayoutGrid.prototype.getFirstSelectedRow = function () {
1526
+ return this._selectionList.getFirstSelectedIndex();
1527
+ };
1528
+
1529
+ /**
1530
+ * {@link ILayoutGrid#getLastSelectedRow}
1531
+ * @inheritDoc
1532
+ */
1533
+ LayoutGrid.prototype.getLastSelectedRow = function () {
1534
+ return this._selectionList.getLastSelectedIndex();
1535
+ };
1536
+
1537
+ /**
1538
+ * {@link ILayoutGrid#getRowAnchor}
1539
+ * @inheritDoc
1540
+ */
1541
+ LayoutGrid.prototype.getRowAnchor = function () {
1542
+ return this._selectionList.getSelectionAnchor();
1543
+ };
1544
+
1545
+ /**
1546
+ * {@link ILayoutGrid#setRowAnchor}
1547
+ * @inheritDoc
1548
+ */
1549
+ LayoutGrid.prototype.setRowAnchor = function (at) {
1550
+ this._selectionList.setSelectionAnchor(at);
1551
+ };
1552
+
1553
+ /**
1554
+ * @inheritDoc
1555
+ */
1556
+ LayoutGrid.prototype.activateColumn = function (colIndex, opt_bool) {
1557
+ let column = this._columns[colIndex];
1558
+
1559
+ if (column) {
1560
+ let dirty = column.activate(opt_bool);
1561
+ if (opt_bool && dirty && this._rightSpace) {
1562
+ let pn = this._rightSpace.parentNode;
1563
+ if (pn) {
1564
+ pn.appendChild(this._rightSpace);
1565
+ }
1566
+ }
1567
+ }
1568
+ };
1569
+
1570
+ /**
1571
+ * {@link ILayoutGrid#activateRows}
1572
+ * @inheritDoc
1573
+ */
1574
+ LayoutGrid.prototype.activateRows = function () {
1575
+ this._onEnterDocument();
1576
+ };
1577
+
1578
+ /**
1579
+ * @inheritDoc
1580
+ */
1581
+ LayoutGrid.prototype.moveRowsToTop = function (numRows) {
1582
+ this._ctxRows.moveItemsToTop(numRows);
1583
+ this._stretchedCells.moveCellsToTop(numRows);
1584
+ for (let c = 0; c < this._colCount; ++c) {
1585
+ this._columns[c].moveCellsToTop(numRows);
1586
+ }
1587
+ };
1588
+
1589
+ /**
1590
+ * {@link ILayoutGrid#getFirstIndexInView}
1591
+ * @inheritDoc
1592
+ */
1593
+ LayoutGrid.prototype.getFirstIndexInView = function () {
1594
+ return 0;
1595
+ };
1596
+
1597
+ /**
1598
+ * {@link ILayoutGrid#getLastIndexInView}
1599
+ * @inheritDoc
1600
+ */
1601
+ LayoutGrid.prototype.getLastIndexInView = function () {
1602
+ return this._availableRowCount - 1;
1603
+ };
1604
+
1605
+ /**
1606
+ * {@link ILayoutGrid#isInCurrentView}
1607
+ * @inheritDoc
1608
+ */
1609
+ LayoutGrid.prototype.isInCurrentView = function (index) {
1610
+ return this._rowCount === 0 ? false : (index >= 0 && index < this._rowCount);
1611
+ };
1612
+
1613
+ /**
1614
+ * {@link ILayoutGrid#getFrozenLayout}
1615
+ * @ignore
1616
+ * @inheritDoc
1617
+ */
1618
+ LayoutGrid.prototype.getFrozenLayout = function () {
1619
+ return this._frozenLayout;
1620
+ };
1621
+
1622
+ /**
1623
+ * {@link ILayoutGrid#setFrozenLayout}
1624
+ * @ignore
1625
+ * @inheritDoc
1626
+ */
1627
+ LayoutGrid.prototype.setFrozenLayout = function (bool) {
1628
+ if (!this.isVisible()) {
1629
+ bool = true;
1630
+ }
1631
+
1632
+ if (this._frozenLayout !== bool) {
1633
+ this._frozenLayout = bool;
1634
+
1635
+ this._cellSpans.freezeMapping(this._frozenLayout);
1636
+ if (!this._frozenLayout) {
1637
+ this._syncLayoutToColumns(0);
1638
+ this._syncLayoutToRows(0, this._rowCount);
1639
+ this._dispatchRowHeightChangedEvent(0, this._rowCount);
1640
+ }
1641
+ }
1642
+ };
1643
+
1644
+ /**
1645
+ * {@link ILayoutGrid#getColumn}
1646
+ * @inheritDoc
1647
+ */
1648
+ LayoutGrid.prototype.getColumn = function (index) {
1649
+ return this._columns[index] || null;
1650
+ };
1651
+
1652
+ /**
1653
+ * {@link ILayoutGrid#insertColumn}
1654
+ * @ignore
1655
+ * @inheritDoc
1656
+ */
1657
+ LayoutGrid.prototype.insertColumn = function (index, opt_json) {
1658
+ if (index < 0) {
1659
+ index = 0;
1660
+ } else if (index > this._colCount) {
1661
+ index = this._colCount;
1662
+ }
1663
+
1664
+ let atTheMiddle = index < this._colCount;
1665
+ let cellSpans = this._cellSpans.getAllSpans();
1666
+
1667
+ this._updateCellSpans(cellSpans, false); // Clear all styling
1668
+ this._trackX.insertLane(index, opt_json);
1669
+ this._colCount = this._trackX.getLaneCount();
1670
+
1671
+ let column = this._newColumn(index);
1672
+
1673
+ this._updateColumnIndices();
1674
+
1675
+ if (this._cellSpans.shiftColumn(index, 1)) {
1676
+ cellSpans = this._cellSpans.getAllSpans();
1677
+ }
1678
+
1679
+ this._updateCellSpans(cellSpans, true); // Restore all styling
1680
+ this._calculateViewSize(true);
1681
+ this._stretchedCells.updateXAxis();
1682
+ // this._syncLayoutToColumns(index); // Core grid will guarantee updating width to each section
1683
+
1684
+ // Select the newly added cell, if there is a row selection
1685
+ let count = this._selectionList.getSelectionCount();
1686
+
1687
+ if (count) {
1688
+ let sels = this._selectionList.getAllSelections(); // Slow
1689
+
1690
+ for (let i = sels.length; --i >= 0;) {
1691
+ let cell = column.getCell(sels[i]);
1692
+
1693
+ if (cell) {
1694
+ cell.addClass("selected-row");
1695
+ }
1696
+ }
1697
+ // TODO: Check if it can insert column with stretch cell
1698
+ }
1699
+
1700
+ column.activate(atTheMiddle || !this._colVir);
1701
+
1702
+ return column;
1703
+ };
1704
+
1705
+ /**
1706
+ * {@link ILayoutGrid#removeColumnAt}
1707
+ * @ignore
1708
+ * @inheritDoc
1709
+ */
1710
+ LayoutGrid.prototype.removeColumnAt = function (index) {
1711
+ let definition = this._trackX.removeLaneAt(index);
1712
+
1713
+ if (definition == null) {
1714
+ return null;
1715
+ }
1716
+
1717
+ let cellSpans = this._cellSpans.getAllSpans();
1718
+
1719
+ this._updateCellSpans(cellSpans, false); // Clear all styling
1720
+ this._colCount = this._trackX.getLaneCount();
1721
+
1722
+ let column = this._columns.splice(index, 1)[0];
1723
+
1724
+ column.dispose();
1725
+ definition["control"] = column;
1726
+ this._updateColumnIndices();
1727
+
1728
+ if (this._cellSpans.removeColumn(index)) {
1729
+ cellSpans = this._cellSpans.getAllSpans();
1730
+ }
1731
+
1732
+ this._updateCellSpans(cellSpans, true); // Restore all styling
1733
+ this._syncLayoutToColumns(index);
1734
+
1735
+ if (index >= this._colCount) {
1736
+ this._updateCssWidth();
1737
+ }
1738
+
1739
+ return definition;
1740
+ };
1741
+
1742
+ /**
1743
+ * {@link ILayoutGrid#moveColumn}
1744
+ * @ignore
1745
+ * @inheritDoc
1746
+ */
1747
+ LayoutGrid.prototype.moveColumn = function (from, to) {
1748
+ if (from < 0) {
1749
+ from = 0;
1750
+ } else if (from >= this._colCount) {
1751
+ return;
1752
+ }
1753
+
1754
+ if (to < 0) {
1755
+ to = 0;
1756
+ } else if (to >= this._colCount) {
1757
+ to = this._colCount - 1;
1758
+ }
1759
+
1760
+ if (from === to) {
1761
+ return;
1762
+ }
1763
+
1764
+ let cellSpans = this._cellSpans.getAllSpans();
1765
+
1766
+ this._updateCellSpans(cellSpans, false); // Clear all styling
1767
+ this._trackX.moveLane(from, to);
1768
+
1769
+ let movedColumn = this._columns[from];
1770
+
1771
+ Util.moveArrayItem(this._columns, from, to);
1772
+
1773
+ if(movedColumn.getElement().offsetParent) {
1774
+ let siblingIndex = to + 1;
1775
+ let nextSibling = this._columns[siblingIndex] || null;
1776
+ while (nextSibling && !nextSibling.getElement().offsetParent) {
1777
+ nextSibling = this._columns[++siblingIndex];
1778
+ }
1779
+ movedColumn.insertBefore(nextSibling);
1780
+ }
1781
+
1782
+ this._updateColumnIndices();
1783
+ this._updateCellSpans(cellSpans, true); // Restore all styling
1784
+
1785
+ let minIndex = (from < to) ? from : to;
1786
+
1787
+ this._syncLayoutToColumns(minIndex);
1788
+ };
1789
+
1790
+ /**
1791
+ * {@link ILayoutGrid#enableRowVirtualization}
1792
+ * @ignore
1793
+ * @inheritDoc
1794
+ */
1795
+ LayoutGrid.prototype.enableRowVirtualization = function () {
1796
+ console.log("WARNING: This function is deprecated");
1797
+ };
1798
+
1799
+ /**
1800
+ * {@link ILayoutGrid#enableRowVirtualization}
1801
+ * @ignore
1802
+ * @inheritDoc
1803
+ */
1804
+ LayoutGrid.prototype.enableColumnVirtualization = function (bool) {
1805
+ this._colVir = bool !== false;
1806
+ };
1807
+
1808
+ /**
1809
+ * {@link ILayoutGrid#getColumnIndex}
1810
+ * @ignore
1811
+ * @inheritDoc
1812
+ */
1813
+ LayoutGrid.prototype.getColumnIndex = function (colElem) {
1814
+ if (colElem) {
1815
+ if(colElem["stretched"]) {
1816
+ return this._stretchedCells.getColumnIndex(colElem);
1817
+ }
1818
+ let len = this._columns.length;
1819
+
1820
+ for (let i = 0; i < len; ++i) {
1821
+ if (this._columns[i].getElement() === colElem) {
1822
+ return i;
1823
+ }
1824
+ }
1825
+ }
1826
+
1827
+ return -1;
1828
+ };
1829
+
1830
+ /**
1831
+ * {@link ILayoutGrid#getCellIndex}
1832
+ * @ignore
1833
+ * @inheritDoc
1834
+ */
1835
+ LayoutGrid.prototype.getCellIndex = function (colIndex, cellElem) {
1836
+ if (cellElem) {
1837
+ if(cellElem["stretched"]) {
1838
+ return this._stretchedCells.getRowIndex(cellElem);
1839
+ }
1840
+
1841
+ let column = this._columns[colIndex];
1842
+ if(column) {
1843
+ return column.getCellIndex(cellElem);
1844
+ }
1845
+ }
1846
+ return -1;
1847
+ };
1848
+
1849
+ /**
1850
+ * {@link ILayoutGrid#getIndex}
1851
+ * @inheritDoc
1852
+ */
1853
+ LayoutGrid.prototype.getIndex = function () {
1854
+ return this._index;
1855
+ };
1856
+
1857
+ /**
1858
+ * {@link ILayoutGrid#setIndex}
1859
+ * @ignore
1860
+ * @inheritDoc
1861
+ */
1862
+ LayoutGrid.prototype.setIndex = function (index) {
1863
+ this._index = index;
1864
+ };
1865
+
1866
+ /**
1867
+ * {@link ILayoutGrid#getRowOffset}
1868
+ * @ignore
1869
+ * @inheritDoc
1870
+ */
1871
+ LayoutGrid.prototype.getRowOffset = function () {
1872
+ return this._rowOffset;
1873
+ };
1874
+
1875
+ /**
1876
+ * {@link ILayoutGrid#setRowOffset}
1877
+ * @ignore
1878
+ * @inheritDoc
1879
+ */
1880
+ LayoutGrid.prototype.setRowOffset = function (index) {
1881
+ this._rowOffset = index;
1882
+ };
1883
+
1884
+ /** @public
1885
+ * @ignore
1886
+ */
1887
+ LayoutGrid.prototype.updateLayout = function () {
1888
+ this._calculateViewSize(true); // Column bounds will be updated by trigger from Core
1889
+
1890
+ this._stretchedCells.updateCells();
1891
+ this._updateRightSpaceStyle();
1892
+ };
1893
+
1894
+ /**
1895
+ * {@link ILayoutGrid#stretchCell}
1896
+ * @inheritDoc
1897
+ */
1898
+ LayoutGrid.prototype.stretchCell = function (cellRef, rowIndex, opt_stretching, onlyToTheRight) {
1899
+ let colIndex = -1;
1900
+ if (typeof cellRef === "number") {
1901
+ colIndex = cellRef;
1902
+ if(rowIndex == null) {
1903
+ rowIndex = 0;
1904
+ }
1905
+ } else if (cellRef) {
1906
+ if(cellRef["stretched"]) {
1907
+ colIndex = this._stretchedCells.getColumnIndex(cellRef);
1908
+ if(rowIndex == null) {
1909
+ rowIndex = this._stretchedCells.getRowIndex(cellRef);
1910
+ }
1911
+ } else if(cellRef["getParent"]) {
1912
+ colIndex = this.getColumnIndex(cellRef["getParent"]());
1913
+ }
1914
+ }
1915
+ if(colIndex < 0 || rowIndex < 0 || rowIndex == null) {
1916
+ return null;
1917
+ }
1918
+
1919
+ let stretching = (opt_stretching !== false);
1920
+ let cell = null;
1921
+
1922
+ if (stretching) {
1923
+ let coverLayer = this._coverLayer;
1924
+ if(!coverLayer) {
1925
+ coverLayer = this._coverLayer = document.createElement("div");
1926
+ coverLayer.className = "cover-layer";
1927
+ this._updateLayers();
1928
+ }
1929
+
1930
+ this._calculateViewSize();
1931
+ cell = this._stretchedCells.stretchCell(rowIndex, onlyToTheRight ? colIndex : 0);
1932
+ cell.setParent(coverLayer);
1933
+ } else {
1934
+ cell = this._stretchedCells.unstretchCell(rowIndex);
1935
+ }
1936
+ if(cell) {
1937
+ let selected = this._selectionList.getSelection(rowIndex);
1938
+ cell.enableClass("selected-row", selected); // It's can enable class without get stretch cell again.
1939
+ }
1940
+ return cell;
1941
+ };
1942
+
1943
+ /**
1944
+ * {@link ILayoutGrid#unstretchCell}
1945
+ * @inheritDoc
1946
+ */
1947
+ LayoutGrid.prototype.unstretchCell = function (cellRef, rowIndex) {
1948
+ return this.stretchCell(cellRef, rowIndex, false);
1949
+ };
1950
+ /**
1951
+ * {@link ILayoutGrid#unstretchAllCells}
1952
+ * @inheritDoc
1953
+ */
1954
+ LayoutGrid.prototype.unstretchAllCells = function () {
1955
+ this._stretchedCells.unstretchAllCells();
1956
+ };
1957
+
1958
+ /**
1959
+ * {@link ILayoutGrid#getStretchedCell}
1960
+ * @inheritDoc
1961
+ */
1962
+ LayoutGrid.prototype.getStretchedCell = function (cellRef, rowIndex) {
1963
+ if(rowIndex == null) {
1964
+ if(typeof cellRef === "number") {
1965
+ rowIndex = cellRef;
1966
+ } else {
1967
+ rowIndex = this._stretchedCells.getRowIndex(cellRef);
1968
+ }
1969
+ }
1970
+
1971
+ return (typeof rowIndex === "number") ? this._stretchedCells.getCell(rowIndex) : null;
1972
+ };
1973
+ /**
1974
+ * {@link ILayoutGrid#getStretchedCells}
1975
+ * @inheritDoc
1976
+ */
1977
+ LayoutGrid.prototype.getStretchedCells = function () { // TODO: Deprecate this method
1978
+ return this._stretchedCells.getCells();
1979
+ };
1980
+
1981
+ /** {@link ILayoutGrid#updateStretchedCells}
1982
+ * @inheritDoc */
1983
+ LayoutGrid.prototype.updateStretchedCells = function () {
1984
+ this._updateLayers();
1985
+ let childCount = this._coverLayer ? this._coverLayer.children.length : 0; // TODO: Currently assume only stretched cells exists
1986
+ if (childCount <= 0) {
1987
+ return false;
1988
+ }
1989
+ this._calculateViewSize(true);
1990
+
1991
+ this._stretchedCells.updateCells();
1992
+ return childCount ? true : false;
1993
+ };
1994
+
1995
+ /** @private
1996
+ * @param {boolean=} forceRecal
1997
+ * @return {number}
1998
+ */
1999
+ LayoutGrid.prototype._calculateViewSize = function (forceRecal) {
2000
+ if(this._frozenLayout) {
2001
+ return this._stretchedCells.getStretchSize();
2002
+ }
2003
+
2004
+ let ctx = this._ctx;
2005
+ let stretchSize = forceRecal ? 0 : this._stretchedCells.getStretchSize();
2006
+ if(!stretchSize && ctx) {
2007
+ if(ctx["getWidth"]) {
2008
+ let contentWidth = this.getContentWidth();
2009
+ stretchSize = ctx["getWidth"]() - this._rightSpaceSize;
2010
+ if(stretchSize) { // Grid may not be in the document
2011
+ if(contentWidth < stretchSize) { // If view width is larger than actual content
2012
+ stretchSize = contentWidth;
2013
+ }
2014
+ this._stretchedCells.setStretchSize(stretchSize);
2015
+ return stretchSize;
2016
+ } else {
2017
+ return contentWidth;
2018
+ }
2019
+ }
2020
+ }
2021
+ return stretchSize;
2022
+ };
2023
+
2024
+ /**
2025
+ * @private
2026
+ * @param {number} rowIndex
2027
+ * @param {string} className
2028
+ * @param {boolean} enabled
2029
+ */
2030
+ LayoutGrid.prototype._enableStretchCellClass = function (rowIndex, className, enabled ) {
2031
+ let stretchEl = this.getStretchedCell(rowIndex); // check stretched cell
2032
+ if(stretchEl) {
2033
+ stretchEl.enableClass(className, enabled);
2034
+ }
2035
+ };
2036
+ /** View size is width of container (Grid's pane) or content (LayoutGrid's columns), whichever is smaller.
2037
+ * @public
2038
+ * @ignore
2039
+ * @return {number}
2040
+ */
2041
+ LayoutGrid.prototype._getViewSize = function () {
2042
+ return this._calculateViewSize();
2043
+ };
2044
+
2045
+ /**
2046
+ * {@link ILayoutGrid#getColumnHost}
2047
+ * @inheritDoc
2048
+ */
2049
+ LayoutGrid.prototype.getColumnHost = function () {
2050
+ return this._element;
2051
+ };
2052
+
2053
+ /**
2054
+ * {@link ILayoutGrid#setHidingMethod}
2055
+ * @inheritDoc
2056
+ */
2057
+ LayoutGrid.prototype.setHidingMethod = function (method) {
2058
+ this._hidingMethod = method;
2059
+ };
2060
+
2061
+ /**
2062
+ * {@link ILayoutGrid#getHidingMethod}
2063
+ * @inheritDoc
2064
+ */
2065
+ LayoutGrid.prototype.getHidingMethod = function () {
2066
+ return this._hidingMethod;
2067
+ };
2068
+
2069
+ /**
2070
+ * {@link ILayoutGrid#setColumnVisibility}
2071
+ * @inheritDoc
2072
+ */
2073
+ LayoutGrid.prototype.setColumnVisibility = function (colIndex, bool, flag) {
2074
+ if (this._trackX.hideLane(colIndex, !bool, flag)) {
2075
+ this._syncLayoutToColumns(colIndex);
2076
+
2077
+ return true;
2078
+ }
2079
+
2080
+ return false;
2081
+ };
2082
+
2083
+ /**
2084
+ * {@link ILayoutGrid#setColumnVisibility}
2085
+ * @inheritDoc
2086
+ */
2087
+ LayoutGrid.prototype.getRowLayout = function () {
2088
+ return this._trackY;
2089
+ };
2090
+
2091
+ /**
2092
+ * {@link ILayoutGrid#reserveRightSpace}
2093
+ * @inheritDoc
2094
+ */
2095
+ LayoutGrid.prototype.reserveRightSpace = function (size) {
2096
+ if (size && size > 0) {
2097
+ if (!this._rightSpace) {
2098
+ let rs = this._rightSpace = document.createElement("div");
2099
+ rs.className = "tr-reserved-space";
2100
+ rs.style.height = this.getContentHeight() + "px";
2101
+
2102
+ // warning: The element's style is not completed by this function
2103
+ // so this method should not be called directly in the application level.
2104
+ this._updateLayers();
2105
+ }
2106
+
2107
+ this._rightSpace.style.width = size + "px";
2108
+ this._rightSpaceSize = size;
2109
+
2110
+ this._updateCssWidth();
2111
+ } else if (this._rightSpace) {
2112
+ let pn = this._rightSpace.parentNode;
2113
+
2114
+ if (pn) {
2115
+ pn.removeChild(this._rightSpace);
2116
+ }
2117
+
2118
+ this._rightSpace = null;
2119
+ this._rightSpaceSize = 0;
2120
+
2121
+ this._updateCssWidth();
2122
+ }
2123
+
2124
+ return this._rightSpace;
2125
+ };
2126
+
2127
+ /** @public
2128
+ * @ignore
2129
+ */
2130
+ LayoutGrid.prototype._updateRightSpaceStyle = function() {
2131
+ let rs = this._rightSpace;
2132
+ if(!rs) {
2133
+ return;
2134
+ }
2135
+ let isScrollbarActive = false;
2136
+ let pinnedRgtCount = 0;
2137
+ if(this._hscrollbar) {
2138
+ isScrollbarActive = this._hscrollbar.isActive();
2139
+ pinnedRgtCount = this._hscrollbar.getPinnedRightColumnCount();
2140
+ }
2141
+ let absolutePos = isScrollbarActive && !pinnedRgtCount; // if true, the right space element will be positioned absolutely
2142
+
2143
+ if (absolutePos) {
2144
+ rs.style.top = this._trackY.getLaneStart(this._activeRow) + "px";
2145
+ rs.style.left = this._trackX.getLaneStart(this._colCount) + "px";
2146
+ rs.style.position = "";
2147
+ rs.style.display = "";
2148
+ } else {
2149
+ rs.style.position = "static";
2150
+ rs.style.display = "inline-block";
2151
+ }
2152
+ };
2153
+
2154
+ /** @public
2155
+ * @ignore
2156
+ */
2157
+ LayoutGrid.prototype._updateLayers = function() {
2158
+ if(this._rightSpace) {
2159
+ let pn = this._rightSpace.parentNode; // rightSpace can be located in two places: layout grid and pane slider
2160
+ if(pn) {
2161
+ pn.appendChild(this._rightSpace);
2162
+ } else {
2163
+ this._element.appendChild(this._rightSpace);
2164
+ }
2165
+ }
2166
+ if(this._boundLayer) {
2167
+ this._element.appendChild(this._boundLayer);
2168
+ }
2169
+ if(this._coverLayer) {
2170
+ this._element.appendChild(this._coverLayer); // The layer should always on top
2171
+ }
2172
+ };
2173
+
2174
+ /**
2175
+ * {@link ILayoutGrid#reserveRightSpace}
2176
+ * @inheritDoc
2177
+ */
2178
+ LayoutGrid.prototype.getReservedSpace = function () {
2179
+ return this._rightSpace;
2180
+ };
2181
+
2182
+ /**
2183
+ * {@link ILayoutGrid#getComputedStyle}
2184
+ * @inheritDoc
2185
+ */
2186
+ LayoutGrid.prototype.getComputedStyle = function () {
2187
+ let elem = this._element;
2188
+
2189
+ return elem.offsetParent ? getComputedStyle(elem) : null;
2190
+ };
2191
+
2192
+ /**
2193
+ * {@link ILayoutGrid#isColumnActive}
2194
+ * @inheritDoc
2195
+ */
2196
+ LayoutGrid.prototype.isColumnActive = function (colIndex) {
2197
+ let column = this._columns[colIndex];
2198
+
2199
+ return column ? column.isActive() : false;
2200
+ };
2201
+
2202
+ /**
2203
+ * {@link ILayoutGrid#setRowAttributes}
2204
+ * @inheritDoc
2205
+ */
2206
+ LayoutGrid.prototype.setRowAttributes = function (rowIndex, func) {
2207
+ if (rowIndex < 0 || (rowIndex >= this._rowCount)) {
2208
+ return;
2209
+ }
2210
+
2211
+ for (let c = 0; c < this._colCount; ++c) {
2212
+ let result = func(c);
2213
+ for (let i = result.length; --i >= 0;) {
2214
+ let entry = result[i];
2215
+ let cell = this._columns[c].getCell(rowIndex);
2216
+
2217
+ if (!cell) {
2218
+ continue;
2219
+ }
2220
+
2221
+ if (entry["remove"]) {
2222
+ cell.removeAttribute(entry["attribute"]);
2223
+ } else {
2224
+ cell.setAttribute(entry["attribute"], entry["value"]);
2225
+ }
2226
+ }
2227
+ }
2228
+ };
2229
+ /** @public
2230
+ * @param {number} rowIndex
2231
+ * @return {Object}
2232
+ */
2233
+ LayoutGrid.prototype.getContextRow = function (rowIndex) {
2234
+ return this._ctxRows.getItem(rowIndex);
2235
+ };
2236
+
2237
+ /** @public
2238
+ * @param {number} colIndex
2239
+ * @param {boolean=} selected
2240
+ */
2241
+ LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
2242
+ this.enableColumnClass(colIndex, "selected-column", selected);
2243
+
2244
+ if(selected) {
2245
+ let boundLayer = this._boundLayer;
2246
+ if(!boundLayer) {
2247
+ this._initBoundLayer();
2248
+ this._updateLayers();
2249
+ }
2250
+ }
2251
+ };
2252
+ /** @public
2253
+ * @param {number} colIndex
2254
+ * @return {boolean}
2255
+ */
2256
+ LayoutGrid.prototype.isSelectedColumn = function (colIndex) {
2257
+ return this.hasColumnClass(colIndex, "selected-column");
2258
+ };
2259
+ /** @public
2260
+ * @param {number} colIndex
2261
+ * @param {number} rowIndex
2262
+ * @param {boolean=} selected
2263
+ */
2264
+ LayoutGrid.prototype.selectCell = function (colIndex, rowIndex, selected) {
2265
+ let cell = this._getCell(colIndex, rowIndex);
2266
+ if(cell) {
2267
+ cell.enableClass("selection", selected);
2268
+ }
2269
+ };
2270
+ /** @public
2271
+ * @param {number} colIndex
2272
+ * @param {number} rowIndex
2273
+ * @param {number} width
2274
+ * @param {number} height
2275
+ */
2276
+ LayoutGrid.prototype.setCellBounds = function (colIndex, rowIndex, width, height) {
2277
+ let boundLayer = this._initBoundLayer();
2278
+ let cellBoundPainter = this._cellBoundPainter;
2279
+ if(!cellBoundPainter) {
2280
+ cellBoundPainter = this._cellBoundPainter = new CellBoundPainter({
2281
+ boundLayer: boundLayer,
2282
+ layoutX: this._trackX,
2283
+ layoutY: this._trackY,
2284
+ hscrollbar: this._hscrollbar,
2285
+ calculateColumnBounds: this.calculateColumnBounds.bind(this)
2286
+ });
2287
+ }
2288
+
2289
+ let colCount = this.getColumnCount();
2290
+ cellBoundPainter.setCellBounds(colIndex, rowIndex, width, height, colCount);
2291
+ };
2292
+ /** @public
2293
+ * @ignore
2294
+ * @return {!TrackLayout}
2295
+ */
2296
+ LayoutGrid.prototype.getHorizontalLayout = function () {
2297
+ return this._trackX;
2298
+ };
2299
+ /** @public
2300
+ * @ignore
2301
+ * @param {number} lftIdx
2302
+ * @param {number} rgtIdx Inclusive index
2303
+ * @param {!Array.<number>} outPositions
2304
+ * @param {!Array.<boolean>} outNoBorders
2305
+ */
2306
+ LayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositions, outNoBorders) {
2307
+ let lftPx = 0;
2308
+ let rgtPx = 0;
2309
+ let noLftBorder = false;
2310
+ let noRgtBorder = false;
2311
+ let pinnedRgtIdx = this._trackX.getLaneCount();
2312
+ if(lftIdx >= 0) {
2313
+ lftPx = this._trackX.getLaneStart(lftIdx);
2314
+ rgtPx = this._trackX.getLaneEnd(rgtIdx);
2315
+ }
2316
+ if(lftPx < rgtPx) {
2317
+ let lftView = 0;
2318
+ let rgtView, rgtLimit;
2319
+ let scrollLeft = 0;
2320
+ let pinnedLftCount = 0;
2321
+ let pinnedRgtCount = 0;
2322
+ if(this._hscrollbar) {
2323
+ scrollLeft = this._hscrollbar.getScrollLeft();
2324
+ pinnedLftCount = this._hscrollbar.getPinnedLeftColumnCount();
2325
+ pinnedRgtCount = this._hscrollbar.getPinnedRightColumnCount();
2326
+ }
2327
+ rgtView = rgtLimit = this._trackX.getTrackSize();
2328
+ if(pinnedLftCount) {
2329
+ lftView = this._trackX.getLaneStart(pinnedLftCount);
2330
+ }
2331
+ if(pinnedRgtCount) {
2332
+ pinnedRgtIdx -= pinnedRgtCount;
2333
+ rgtView = this._getViewSize() - rgtLimit + this._trackX.getLaneStart(pinnedRgtIdx);
2334
+ }
2335
+ if(lftIdx >= pinnedLftCount && lftIdx < pinnedRgtIdx) {
2336
+ lftPx -= scrollLeft;
2337
+ if(lftPx < lftView) {
2338
+ lftPx = lftView;
2339
+ noLftBorder = true;
2340
+ } else if(lftPx > rgtView) {
2341
+ lftPx = rgtView;
2342
+ noLftBorder = true;
2343
+ }
2344
+ } else if(lftIdx >= pinnedRgtIdx) {
2345
+ lftPx = this._getViewSize() - rgtLimit + this._trackX.getLaneStart(lftIdx);
2346
+ }
2347
+ if(rgtIdx >= pinnedLftCount && rgtIdx < pinnedRgtIdx) {
2348
+ rgtPx -= scrollLeft;
2349
+ if(rgtPx < lftView) {
2350
+ rgtPx = lftView;
2351
+ noRgtBorder = true;
2352
+ } else if(rgtPx > rgtView) {
2353
+ rgtPx = rgtView;
2354
+ noRgtBorder = true;
2355
+ }
2356
+ } else if(rgtIdx >= pinnedRgtIdx) {
2357
+ rgtPx = this._getViewSize() - rgtLimit + this._trackX.getLaneEnd(rgtIdx);
2358
+ }
2359
+ }
2360
+ outPositions[0] = lftPx;
2361
+ outPositions[1] = rgtPx;
2362
+ outNoBorders[0] = noLftBorder;
2363
+ outNoBorders[1] = noRgtBorder;
2364
+ };
2365
+ /** @public
2366
+ * @ignore
2367
+ * @param {!Array.<Array>} posAry Left and right bound positions in pixel
2368
+ * @param {!Array.<Array>} noBorderAry Boolean values indicating existence of left and right CSS borders
2369
+ * @param {number=} topPx Top position of bound
2370
+ */
2371
+ LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {
2372
+ let cbs = this._colBounds;
2373
+ let cbc = this._colBoundCache;
2374
+ if(!cbs) {
2375
+ cbs = this._colBounds = [];
2376
+ }
2377
+ if(!cbc) {
2378
+ cbc = this._colBoundCache = [];
2379
+ }
2380
+
2381
+ let rangeCount = posAry.length;
2382
+ let i;
2383
+ let pn = null; // parentNode
2384
+ let columnBound = null;
2385
+
2386
+ // Remove unused bounds from document
2387
+ let activeCount = cbs.length;
2388
+ for(i = rangeCount; i < activeCount; ++i) {
2389
+ columnBound = cbs[i];
2390
+ pn = columnBound.parentNode;
2391
+ if(pn) {
2392
+ pn.removeChild(columnBound);
2393
+ }
2394
+ }
2395
+ cbs.length = activeCount = rangeCount;
2396
+
2397
+ if(!rangeCount) {
2398
+ return;
2399
+ }
2400
+
2401
+ for(i = 0; i < rangeCount; ++i) {
2402
+ let positions = posAry[i];
2403
+ let noBorders = noBorderAry[i];
2404
+ let lftPx = /** @type{number} */(positions[0]);
2405
+ let rgtPx = /** @type{number} */(positions[1]);
2406
+
2407
+ columnBound = cbc[i];
2408
+ if(!columnBound) {
2409
+ columnBound = cbc[i] = document.createElement("div");
2410
+ columnBound.className = "selection-bound column-bound";
2411
+ }
2412
+ columnBound.style.left = lftPx + "px";
2413
+ columnBound.style.width = (rgtPx - lftPx) + "px";
2414
+
2415
+ topPx = topPx || 0;
2416
+ columnBound.style.top = topPx + "px";
2417
+ columnBound.style.height = (this._trackY.getTrackSize() - topPx) + "px";
2418
+ columnBound.classList.toggle("no-left-bound", noBorders[0]);
2419
+ columnBound.classList.toggle("no-right-bound", noBorders[1]);
2420
+ if(this._boundLayer) {
2421
+ if(!cbs[i]) {
2422
+ cbs[i] = columnBound;
2423
+ this._boundLayer.appendChild(columnBound);
2424
+ }
2425
+ }
2426
+ }
2427
+ };
2428
+
2429
+ /** @public
2430
+ */
2431
+ LayoutGrid.prototype.updateColumnSeparators = function () {
2432
+ let pinnedLeftCount = this._hscrollbar.getPinnedLeftColumnCount();
2433
+ let pinnedRightCount = this._hscrollbar.getPinnedRightColumnCount();
2434
+ if ((pinnedLeftCount || pinnedRightCount) && !this._boundLayer) {
2435
+ this._initBoundLayer();
2436
+ }
2437
+
2438
+ let isScrollbarActive = false;
2439
+ if(this._hscrollbar) {
2440
+ isScrollbarActive = this._hscrollbar.isActive();
2441
+ }
2442
+
2443
+ let boundLayer = this._boundLayer;
2444
+
2445
+ let colSeparator = this._leftColumnSeparator;
2446
+ if (isScrollbarActive && pinnedLeftCount) {
2447
+ if (!colSeparator) {
2448
+ colSeparator = this._leftColumnSeparator = this._createColumnSeparator();
2449
+ }
2450
+ if (!colSeparator.parentNode) {
2451
+ if (boundLayer.children.length) {
2452
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
2453
+ } else {
2454
+ boundLayer.appendChild(colSeparator);
2455
+ }
2456
+ }
2457
+
2458
+ let rightPos = this._trackX.getLaneStart(pinnedLeftCount);
2459
+ colSeparator.style.left = (rightPos - 1) + "px";
2460
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
2461
+ } else {
2462
+ if (colSeparator && colSeparator.parentNode) {
2463
+ this._boundLayer.removeChild(colSeparator);
2464
+ }
2465
+ }
2466
+
2467
+ colSeparator = this._rightColumnSeparator;
2468
+ if (isScrollbarActive && pinnedRightCount) {
2469
+ if (!colSeparator) {
2470
+ colSeparator = this._rightColumnSeparator = this._createColumnSeparator();
2471
+ }
2472
+
2473
+ if (!colSeparator.parentNode) {
2474
+ if (boundLayer.children.length) {
2475
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
2476
+ } else {
2477
+ boundLayer.appendChild(colSeparator);
2478
+ }
2479
+ }
2480
+ let colCount = this.getColumnCount();
2481
+ let colWidth = this._trackX.getLaneEnd(colCount - 1) - this._trackX.getLaneStart(colCount - pinnedRightCount);
2482
+ let viewSize = this._getViewSize();
2483
+
2484
+ colSeparator.style.left = (viewSize - colWidth) + "px";
2485
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
2486
+ } else {
2487
+ if (colSeparator && colSeparator.parentNode) {
2488
+ this._boundLayer.removeChild(colSeparator);
2489
+ }
2490
+ }
2491
+ };
2492
+ /** @private
2493
+ * @return {Element}
2494
+ */
2495
+ LayoutGrid.prototype._createColumnSeparator = function() {
2496
+ let colSeparator = document.createElement("div");
2497
+ colSeparator.classList.add("column-separator");
2498
+ return colSeparator;
2499
+ };
2500
+
2501
+ /** @private
2502
+ * @return {Element}
2503
+ */
2504
+ LayoutGrid.prototype._initBoundLayer = function () {
2505
+ let boundLayer = this._boundLayer;
2506
+ if(!boundLayer) {
2507
+ boundLayer = this._boundLayer = document.createElement("div");
2508
+ boundLayer.className = "cover-layer";
2509
+ this._element.appendChild(boundLayer);
2510
+ }
2511
+ return boundLayer;
2512
+ };
2513
+
2514
+ /**
2515
+ * @private
2516
+ * @param {number} indexX
2517
+ * @param {number} indexY
2518
+ * @return {Cell}
2519
+ */
2520
+ LayoutGrid.prototype._getCell = function (indexX, indexY) {
2521
+ let column = this._columns[indexX];
2522
+
2523
+ return (column) ? column.getCell(indexY) : null;
2524
+ };
2525
+
2526
+ /**
2527
+ * @private
2528
+ * @param {number} from
2529
+ * @param {number} to
2530
+ */
2531
+ LayoutGrid.prototype._insertCells = function (from, to) {
2532
+ this._activeRow = from;
2533
+ this._activeRowEnd = to;
2534
+
2535
+ let top = this._trackY.getLaneStart(from);
2536
+
2537
+ for (let c = 0; c < this._colCount; ++c) {
2538
+ let column = this._columns[c];
2539
+
2540
+ if (!column.hasCollapsedCells()) {
2541
+ column.setTop(top);
2542
+ }
2543
+
2544
+ column.activateCells(from, to);
2545
+ }
2546
+
2547
+ if (this._rightSpace) {
2548
+ this._rightSpace.style.top = top + "px";
2549
+ }
2550
+
2551
+ if (to > this._availableRowCount) {
2552
+ let e = {};
2553
+
2554
+ e["prevRowIndex"] = this._availableRowCount;
2555
+ e["rowIndex"] = to;
2556
+
2557
+ this._availableRowCount = to;
2558
+ this._dispatch("rowAvailable", e);
2559
+ }
2560
+ };
2561
+
2562
+ /**
2563
+ * @private
2564
+ * @param {number} indexX
2565
+ * @return {!ElementWrapper}
2566
+ */
2567
+ LayoutGrid.prototype._newColumn = function (indexX) {
2568
+ let column = new Column(this._virOwner || this);
2569
+
2570
+ column.setHeight(this._trackY.getDefaultLaneSize());
2571
+ column.setCellCount(this._rowCount);
2572
+ column.setTop(this._trackY.getLaneStart(this._activeRow));
2573
+ column.activateCells(this._activeRow, this._activeRowEnd);
2574
+
2575
+ for (let r = 0; r < this._rowCount; ++r) {
2576
+ if (!this._trackY.isAtDefaultSize(r)) {
2577
+ column.getCell(r).setHeight(this._trackY.getLaneSize(r));
2578
+ }
2579
+ }
2580
+
2581
+ if (indexX >= this._columns.length) {
2582
+ this._columns.push(column);
2583
+
2584
+ column.setParent(this._element);
2585
+ } else {
2586
+ this._columns.splice(indexX, 0, column);
2587
+
2588
+ let nextColumn = this._columns[indexX + 1];
2589
+
2590
+ column.insertBefore(nextColumn);
2591
+ }
2592
+
2593
+ return column;
2594
+ };
2595
+
2596
+ /** Update LayoutGrid CSS width. Grid width is calculated from summation of each column width plus reserved right space
2597
+ * @private
2598
+ */
2599
+ LayoutGrid.prototype._updateCssWidth = function () { // This method is also called by _syncLayoutToColumns()
2600
+ if (!this._frozenLayout) {
2601
+ this._calculateViewSize(true);
2602
+ this._stretchedCells.updateXAxis();
2603
+
2604
+ this._element.style.width = this._getWidth() + "px"; // View is kept in sync with content size
2605
+ }
2606
+ };
2607
+
2608
+ /**
2609
+ * @private
2610
+ */
2611
+ LayoutGrid.prototype._updateViewHeight = function () {
2612
+ if (this._frozenLayout) {
2613
+ return;
2614
+ }
2615
+
2616
+ let contentHeight = this.getContentHeight();
2617
+
2618
+ this._element.style.height = contentHeight + "px"; // View is kept in sync with content size
2619
+
2620
+ if (this._rightSpace) {
2621
+ this._rightSpace.style.height = contentHeight + "px";
2622
+ }
2623
+ };
2624
+
2625
+ /** @private
2626
+ */
2627
+ LayoutGrid.prototype._updateColumnIndices = function () {
2628
+ let columnCount = this._columns.length;
2629
+ let first = this._columns[0];
2630
+
2631
+ if (first !== this._firstColumn) {
2632
+ if (this._firstColumn) {
2633
+ this._firstColumn.removeClass("first");
2634
+ }
2635
+
2636
+ this._firstColumn = first;
2637
+
2638
+ if (this._firstColumn) {
2639
+ this._firstColumn.addClass("first");
2640
+ }
2641
+ }
2642
+
2643
+ let last = this._columns[columnCount - 1];
2644
+
2645
+ if (last !== this._lastColumn) {
2646
+ if (this._lastColumn) {
2647
+ this._lastColumn.removeClass("last");
2648
+ }
2649
+
2650
+ this._lastColumn = last;
2651
+
2652
+ if (this._lastColumn) { this._lastColumn.addClass("last"); }
2653
+ }
2654
+
2655
+ let sibling = null;
2656
+
2657
+ for (let i = this._columns.length; --i >= 0;) {
2658
+ let column = this._columns[i];
2659
+
2660
+ column.setNextSibling(sibling);
2661
+ sibling = column;
2662
+ }
2663
+ };
2664
+
2665
+ /**
2666
+ * @private
2667
+ * @param {number} from
2668
+ * @returns {boolean}
2669
+ */
2670
+ LayoutGrid.prototype._syncLayoutToColumns = function (from) {
2671
+ if (this._frozenLayout) {
2672
+ return false;
2673
+ }
2674
+
2675
+ if (this._rightSpace) { // Reserved right space must be updated regardless of the given index
2676
+ this._rightSpace.style.left = this._trackX.getLaneStart(this._colCount) + "px";
2677
+ }
2678
+
2679
+ if (from >= this._colCount) {
2680
+ return false;
2681
+ }
2682
+
2683
+ for (let c = from; c < this._colCount; ++c) {
2684
+ let column = this._columns[c];
2685
+
2686
+ column.setLeft(this._trackX.getLaneStart(c));
2687
+ column.setWidth(this._trackX.getLaneSize(c));
2688
+ }
2689
+
2690
+ this._updateCellSpanLayout(this._cellSpans.getAllSpans());
2691
+ this._updateCssWidth();
2692
+ return true;
2693
+ };
2694
+
2695
+ /**
2696
+ * @private
2697
+ * @param {number} indexY
2698
+ * @param {number} toY Exclusive index of end cell in Y-Axis
2699
+ */
2700
+ LayoutGrid.prototype._syncLayoutToRows = function (indexY, toY) {
2701
+ if (this._frozenLayout) {
2702
+ return;
2703
+ }
2704
+
2705
+ for (let r = indexY; r < toY; ++r) {
2706
+ let height = (this._trackY.isAtDefaultSize(r)) ? -1 : this._trackY.getLaneSize(r);
2707
+
2708
+ for (let c = 0; c < this._colCount; ++c) {
2709
+ this._columns[c].getCell(r).setHeight(height);
2710
+ }
2711
+ }
2712
+
2713
+ this._stretchedCells.updateYAxis();
2714
+ if(indexY) {
2715
+ this._updateCellSpanLayout(this._cellSpans.getAllSpans());
2716
+ } else {
2717
+ this._updateCellSpans(this._cellSpans.getAllSpans(), true); // Re-collapsing cells when spans are set before setting row count
2718
+ }
2719
+ this._updateViewHeight();
2720
+ };
2721
+
2722
+ /**
2723
+ * @private
2724
+ * @param {number} from
2725
+ * @param {number} to
2726
+ */
2727
+ LayoutGrid.prototype._dispatchRowHeightChangedEvent = function (from, to) {
2728
+ if (!this._hasListener("rowHeightChanged")) {
2729
+ return;
2730
+ }
2731
+
2732
+ if (from >= to) {
2733
+ return;
2734
+ }
2735
+
2736
+ let e = {};
2737
+
2738
+ e["rowIndex"] = from;
2739
+ e["changeLength"] = to - from;
2740
+ this._dispatch("rowHeightChanged", e);
2741
+ };
2742
+
2743
+ /**
2744
+ * @private
2745
+ * @param {number} indexX
2746
+ * @param {number} indexY
2747
+ * @param {CellSpan} cellSpan
2748
+ */
2749
+ LayoutGrid.prototype._updateCellSpanSize = function (indexX, indexY, cellSpan) {
2750
+ let cell = this._getCell(indexX, indexY);
2751
+
2752
+ if (cell == null) {
2753
+ return;
2754
+ }
2755
+
2756
+ if (cellSpan && cellSpan.colSpan > 1) {
2757
+ cell.setWidth(this.getCellWidth(indexX, indexY));
2758
+ this._columns[indexX].disableDeactivation(); // HACK: If a cell has column span, the column cannot be virtualized
2759
+ } else {
2760
+ cell.setWidth(-1);
2761
+ }
2762
+
2763
+ if (cellSpan && cellSpan.rowSpan > 1) {
2764
+ cell.setHeight(this.getCellHeight(indexX, indexY)); /////
2765
+ } else {
2766
+ let height = this._trackY.isAtDefaultSize(indexY) ? -1 : this._trackY.getLaneSize(indexY);
2767
+
2768
+ cell.setHeight(height);
2769
+ }
2770
+ };
2771
+
2772
+ /**
2773
+ * @private
2774
+ * @param {Array.<CellSpan>} cellSpans
2775
+ */
2776
+ LayoutGrid.prototype._updateCellSpanLayout = function (cellSpans) {
2777
+ if (cellSpans == null) { return; }
2778
+
2779
+ for (let i = cellSpans.length; --i >= 0; ) {
2780
+ let cellSpan = cellSpans[i];
2781
+
2782
+ this._updateCellSpanSize(cellSpan.indexX, cellSpan.indexY, cellSpan);
2783
+ }
2784
+ };
2785
+
2786
+ /**
2787
+ * @private
2788
+ * @param {number} indexX
2789
+ * @param {number} indexY
2790
+ * @param {!CellSpan} cellSpan
2791
+ * @param {boolean} adding
2792
+ */
2793
+ LayoutGrid.prototype._updateCellSpan = function (indexX, indexY, cellSpan, adding) {
2794
+ this._updateCellSpanSize(indexX, indexY, adding ? cellSpan : null);
2795
+ this._updateCellSpanClass(indexX, indexY, cellSpan.colSpan, cellSpan.rowSpan, adding);
2796
+ };
2797
+
2798
+ /**
2799
+ * @private
2800
+ * @param {number} indexX
2801
+ * @param {number} indexY
2802
+ * @param {number} colSpan
2803
+ * @param {number} rowSpan
2804
+ * @param {boolean} adding
2805
+ */
2806
+ LayoutGrid.prototype._updateCellSpanClass = function (indexX, indexY, colSpan, rowSpan, adding) {
2807
+ let column;
2808
+
2809
+ for (let c = 0; c < colSpan; ++c) {
2810
+ column = this._columns[indexX + c];
2811
+
2812
+ if (!column) {
2813
+ break;
2814
+ }
2815
+
2816
+ column.collapseCells(indexY, rowSpan, adding, (c === 0), (c > 0));
2817
+ }
2818
+
2819
+ let cell = this._getCell(indexX, indexY);
2820
+
2821
+ if (cell) {
2822
+ cell._colSpan = (adding) ? colSpan : 1;
2823
+ cell._rowSpan = (adding) ? rowSpan : 1; // For quick rendering
2824
+ }
2825
+ };
2826
+
2827
+ /**
2828
+ * @private
2829
+ * @param {Array.<CellSpan>} cellSpans
2830
+ * @param {boolean} adding
2831
+ */
2832
+ LayoutGrid.prototype._updateCellSpans = function (cellSpans, adding) {
2833
+ if (cellSpans == null) { return; }
2834
+
2835
+ for (let i = cellSpans.length; --i >= 0; ) {
2836
+ let cellSpan = cellSpans[i];
2837
+
2838
+ this._updateCellSpan(cellSpan.indexX, cellSpan.indexY, cellSpan, adding);
2839
+ }
2840
+ };
2841
+
2842
+ /**
2843
+ * @private
2844
+ * @param {Object} e
2845
+ */
2846
+ LayoutGrid.prototype._onMouseMove = function (e) {
2847
+ let target = e["target"];
2848
+
2849
+ let cellElement = Util.closestElement(target, "cell");
2850
+ let colIndex = this._stretchedCells.getColumnIndex(cellElement);
2851
+ if(colIndex < 0) { // Not found colIndex in stretching cell, then get from normal row
2852
+ let colElement = Util.closestElement(target, "column");
2853
+ colIndex = this.getColumnIndex(colElement);
2854
+ }
2855
+ let rowIndex = this.getCellIndex(colIndex, cellElement);
2856
+
2857
+ this.setRowHighlight(rowIndex);
2858
+ };
2859
+
2860
+ /**
2861
+ * @private
2862
+ * @param {Object} e
2863
+ */
2864
+ LayoutGrid.prototype._onMouseOut = function (e) {
2865
+ let rel = e.relatedTarget;
2866
+
2867
+ if (rel) {
2868
+ let thisElem = this._element;
2869
+
2870
+ while (rel.parentNode !== null) {
2871
+ rel = rel.parentNode;
2872
+
2873
+ if (rel === thisElem) {
2874
+ return;
2875
+ }
2876
+ }
2877
+ }
2878
+
2879
+ this.setRowHighlight(-1);
2880
+ };
2881
+
2882
+
2883
+ /** @public
2884
+ * @ignore
2885
+ * @return {!Object}
2886
+ */
2887
+ LayoutGrid.prototype._getEventHandlers = function () {
2888
+ return {
2889
+ "mouseout": this._onMouseOut,
2890
+ "mousemove": this._onMouseMove
2891
+ };
2892
+ };
2893
+
2894
+
2895
+
2896
+ /**
2897
+ * @private
2898
+ * @param {number} rowIndex
2899
+ */
2900
+ LayoutGrid.prototype._updateSelectionUI = function (rowIndex) { // Update UI of the specified row index
2901
+ let selected = this._selectionList.getSelection(rowIndex);
2902
+ this._enableStretchCellClass(rowIndex, "selected-row", selected);
2903
+ this.enableRowClass(rowIndex, "selected-row", selected);
2904
+ };
2905
+
2906
+ /** @private
2907
+ * @param {number} rowIndex
2908
+ */
2909
+ LayoutGrid.prototype._addSelectionUI = function (rowIndex) {
2910
+ this._enableStretchCellClass(rowIndex, "selected-row", true);
2911
+ this.enableRowClass(rowIndex, "selected-row", true);
2912
+ };
2913
+
2914
+ /**
2915
+ * @private
2916
+ * @param {number} rowIndex
2917
+ */
2918
+ LayoutGrid.prototype._removeSelectionUI = function (rowIndex) {
2919
+ this._enableStretchCellClass(rowIndex, "selected-row", false);
2920
+ this.enableRowClass(rowIndex, "selected-row", false);
2921
+ };
2922
+
2923
+ /**
2924
+ * @public
2925
+ * @ignore
2926
+ */
2927
+ LayoutGrid.prototype._onEnterDocument = function () {
2928
+ if (!this._initialized && this.getParent()) {
2929
+ for (let c = 0; c < this._colCount; ++c) {
2930
+ this._columns[c].enableAutoStyleUpdating();
2931
+ }
2932
+
2933
+ this._syncLayoutToColumns(0);
2934
+ this._initialized = true;
2935
+ }
2936
+ };
2937
+
2938
+ /** @public
2939
+ * @ignore
2940
+ * @param {*} ctx
2941
+ */
2942
+ LayoutGrid.prototype._setContext = function(ctx) {
2943
+ this._ctx = ctx;
2944
+ };
2945
+
2946
+ /** @public
2947
+ * @ignore
2948
+ * @return {*} ctx
2949
+ */
2950
+ LayoutGrid.prototype._getContext = function () {
2951
+ return this._ctx;
2952
+ };
2953
+
2954
+ /** This is a WORKAROUND to fix Internet Explorer couldn't render top 50% with translateX -50% correctly
2955
+ * @private
2956
+ */
2957
+ LayoutGrid.prototype._resetTransformIETimer = function () {
2958
+ if (Util.isIE) {
2959
+ if(!this._transformIETimer) {
2960
+ this.enableClass("reset-transform");
2961
+ this._transformIETimer = setTimeout(this._onResetTransformIE, 20);
2962
+ }
2963
+ }
2964
+ };
2965
+ /** @private
2966
+ */
2967
+ LayoutGrid.prototype._onResetTransformIE = function () {
2968
+ this._transformIETimer = 0;
2969
+ this.enableClass("reset-transform", false);
2970
+ };
2971
+
2972
+ LayoutGrid._proto = LayoutGrid.prototype;
2973
+
2974
+ export default LayoutGrid;
2975
+ export { LayoutGrid };