@refinitiv-ui/efx-grid 6.0.5 → 6.0.7

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 (284) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +13 -11
  2. package/lib/column-dragging/es6/ColumnDragging.js +21 -15
  3. package/lib/column-format-dialog/lib/column-format-dialog.d.ts +1 -1
  4. package/lib/column-format-dialog/lib/column-format-dialog.js +3 -4
  5. package/lib/column-format-dialog/lib/preview-table.js +3 -4
  6. package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +2 -2
  7. package/lib/column-selection-dialog/lib/column-selection-dialog.js +23 -7
  8. package/lib/core/dist/core.css +1 -1
  9. package/lib/core/dist/core.js +456 -269
  10. package/lib/core/dist/core.min.js +1 -1
  11. package/lib/core/es6/data/ColumnStats.d.ts +3 -3
  12. package/lib/core/es6/data/DataCache.d.ts +9 -9
  13. package/lib/core/es6/data/DataTable.d.ts +28 -28
  14. package/lib/core/es6/data/DataTable.js +44 -11
  15. package/lib/core/es6/data/DataView.d.ts +62 -62
  16. package/lib/core/es6/data/DataView.js +42 -22
  17. package/lib/core/es6/data/Segment.d.ts +8 -4
  18. package/lib/core/es6/data/Segment.js +16 -0
  19. package/lib/core/es6/data/SegmentCollection.d.ts +9 -7
  20. package/lib/core/es6/data/SegmentCollection.js +38 -36
  21. package/lib/core/es6/data/WrappedView.d.ts +62 -62
  22. package/lib/core/es6/grid/Core.d.ts +95 -95
  23. package/lib/core/es6/grid/Core.js +173 -25
  24. package/lib/core/es6/grid/ILayoutGrid.d.ts +20 -20
  25. package/lib/core/es6/grid/ILayoutGrid.js +2 -1
  26. package/lib/core/es6/grid/LayoutGrid.d.ts +2 -2
  27. package/lib/core/es6/grid/LayoutGrid.js +18 -10
  28. package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +2 -2
  29. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +14 -3
  30. package/lib/core/es6/grid/components/Cell.d.ts +6 -6
  31. package/lib/core/es6/grid/components/Cell.js +3 -0
  32. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +4 -2
  33. package/lib/core/es6/grid/components/CellFloatingPanel.js +7 -0
  34. package/lib/core/es6/grid/components/CellSpans.d.ts +2 -2
  35. package/lib/core/es6/grid/components/Column.d.ts +2 -2
  36. package/lib/core/es6/grid/components/ElementWrapper.d.ts +19 -19
  37. package/lib/core/es6/grid/components/Scrollbar.d.ts +9 -9
  38. package/lib/core/es6/grid/components/StretchedCells.js +19 -5
  39. package/lib/core/es6/grid/event/EventDispatcher.d.ts +3 -3
  40. package/lib/core/es6/grid/event/EventListeners.d.ts +5 -5
  41. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +45 -44
  42. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +62 -65
  43. package/lib/core/es6/grid/util/Conflator.d.ts +4 -4
  44. package/lib/core/es6/grid/util/HttpRequest.d.ts +3 -3
  45. package/lib/core/es6/grid/util/PercentBar.d.ts +8 -8
  46. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +8 -8
  47. package/lib/core/es6/grid/util/RangeBar.d.ts +1 -1
  48. package/lib/core/es6/grid/util/RangeBar.js +1 -1
  49. package/lib/core/es6/grid/util/Reverter.d.ts +1 -1
  50. package/lib/core/es6/grid/util/SectionSettings.d.ts +13 -13
  51. package/lib/core/es6/grid/util/SelectionList.d.ts +2 -2
  52. package/lib/core/es6/grid/util/TrackLayout.d.ts +9 -9
  53. package/lib/core/es6/grid/util/Virtualizer.d.ts +3 -3
  54. package/lib/core/es6/grid/util/util.d.ts +6 -4
  55. package/lib/core/es6/grid/util/util.js +16 -91
  56. package/lib/core/es6/index.d.ts +1 -0
  57. package/lib/core/es6/index.js +2 -0
  58. package/lib/core/es6/tr-grid-theme.js +1 -1
  59. package/lib/filter-dialog/lib/checkbox-list.d.ts +1 -1
  60. package/lib/filter-dialog/lib/filter-dialog.d.ts +1 -1
  61. package/lib/filter-dialog/lib/filter-dialog.js +27 -9
  62. package/lib/filter-dialog/themes/base-checkbox.less +0 -1
  63. package/lib/filter-dialog/themes/base.less +1 -1
  64. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  65. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +2 -2
  66. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  67. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  68. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +2 -2
  69. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  70. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  71. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +2 -2
  72. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  73. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  74. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +2 -2
  75. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  76. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  77. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +2 -2
  78. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  79. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  80. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +2 -2
  81. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  82. package/lib/formatters/es6/index.d.ts +1 -1
  83. package/lib/formatters/es6/index.js +1 -1
  84. package/lib/grid/index.js +1 -1
  85. package/lib/grid/lib/efx-grid.js +3 -0
  86. package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
  87. package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
  88. package/lib/grid/themes/halo/efx-grid.less +5 -5
  89. package/lib/grid/themes/halo/light/efx-grid.js +1 -1
  90. package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
  91. package/lib/row-segmenting/es6/RowSegmenting.d.ts +30 -24
  92. package/lib/row-segmenting/es6/RowSegmenting.js +122 -21
  93. package/lib/rt-grid/dist/rt-grid.js +689 -367
  94. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  95. package/lib/rt-grid/es6/ColumnDefinition.d.ts +46 -42
  96. package/lib/rt-grid/es6/ColumnDefinition.js +31 -1
  97. package/lib/rt-grid/es6/DataConnector.d.ts +6 -4
  98. package/lib/rt-grid/es6/DataConnector.js +8 -0
  99. package/lib/rt-grid/es6/FieldDefinition.d.ts +2 -2
  100. package/lib/rt-grid/es6/FieldDefinition.js +12 -5
  101. package/lib/rt-grid/es6/Grid.d.ts +102 -94
  102. package/lib/rt-grid/es6/Grid.js +70 -105
  103. package/lib/rt-grid/es6/ReferenceCounter.d.ts +5 -5
  104. package/lib/rt-grid/es6/RowDefSorter.d.ts +2 -2
  105. package/lib/rt-grid/es6/RowDefinition.d.ts +22 -22
  106. package/lib/rt-grid/es6/RowDefinition.js +12 -5
  107. package/lib/rt-grid/es6/SnapshotFiller.d.ts +3 -3
  108. package/lib/rt-grid/es6/StyleLoader.d.ts +1 -1
  109. package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +11 -11
  110. package/lib/tr-grid-cell-selection/es6/CellSelection.js +50 -54
  111. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +18 -16
  112. package/lib/tr-grid-checkbox/es6/Checkbox.js +1 -0
  113. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.d.ts +29 -27
  114. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.js +1 -0
  115. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +28 -14
  116. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +556 -11
  117. package/lib/tr-grid-column-resizing/es6/ColumnResizing.d.ts +2 -2
  118. package/lib/tr-grid-column-resizing/es6/ColumnResizing.js +1 -0
  119. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +2 -3
  120. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +15 -13
  121. package/lib/tr-grid-column-stack/es6/ColumnStack.js +96 -72
  122. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +11 -2
  123. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +309 -114
  124. package/lib/tr-grid-content-wrap/es6/ContentWrap.js +1 -6
  125. package/lib/tr-grid-contextmenu/es6/ContextMenu.js +3 -3
  126. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.d.ts +2 -2
  127. package/lib/tr-grid-contextmenu/es6/MenuItem.d.ts +2 -2
  128. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +2 -1
  129. package/lib/tr-grid-heat-map/es6/HeatMap.js +6 -9
  130. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +5 -2
  131. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +311 -71
  132. package/lib/tr-grid-percent-bar/es6/PercentBar.d.ts +1 -1
  133. package/lib/tr-grid-percent-bar/es6/PercentBar.js +8 -11
  134. package/lib/tr-grid-printer/es6/SectionWriter.js +8 -0
  135. package/lib/tr-grid-range-bar/es6/RangeBar.js +3 -10
  136. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +6 -0
  137. package/lib/tr-grid-row-dragging/es6/RowDragging.js +56 -23
  138. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +4 -3
  139. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +57 -13
  140. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +1 -1
  141. package/lib/tr-grid-row-selection/es6/RowSelection.js +2 -3
  142. package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +0 -2
  143. package/lib/tr-grid-rowcoloring/es6/RowColoring.js +1 -40
  144. package/lib/tr-grid-util/es6/CellPainter.d.ts +30 -30
  145. package/lib/tr-grid-util/es6/CellPainter.js +9 -8
  146. package/lib/tr-grid-util/es6/Conflator.d.ts +4 -4
  147. package/lib/tr-grid-util/es6/CoralItems.d.ts +1 -1
  148. package/lib/tr-grid-util/es6/DateTime.d.ts +10 -10
  149. package/lib/tr-grid-util/es6/Deferred.d.ts +3 -1
  150. package/lib/tr-grid-util/es6/Deferred.js +11 -1
  151. package/lib/tr-grid-util/es6/Delay.d.ts +2 -2
  152. package/lib/tr-grid-util/es6/Dom.d.ts +10 -10
  153. package/lib/tr-grid-util/es6/Dom.js +14 -10
  154. package/lib/tr-grid-util/es6/DragUI.js +5 -2
  155. package/lib/tr-grid-util/es6/ElementObserver.d.ts +2 -2
  156. package/lib/tr-grid-util/es6/ElementWrapper.d.ts +4 -4
  157. package/lib/tr-grid-util/es6/ElfDate.d.ts +5 -5
  158. package/lib/tr-grid-util/es6/ElfDate.js +1 -0
  159. package/lib/tr-grid-util/es6/ElfUtil.d.ts +10 -4
  160. package/lib/tr-grid-util/es6/ElfUtil.js +53 -4
  161. package/lib/tr-grid-util/es6/EventDispatcher.d.ts +5 -5
  162. package/lib/tr-grid-util/es6/ExpanderIcon.d.ts +2 -2
  163. package/lib/tr-grid-util/es6/ExpanderIcon.js +1 -1
  164. package/lib/tr-grid-util/es6/Ext.d.ts +1 -1
  165. package/lib/tr-grid-util/es6/FieldFormatter.d.ts +12 -12
  166. package/lib/tr-grid-util/es6/FieldFormatter.js +1 -1
  167. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +13 -13
  168. package/lib/tr-grid-util/es6/FilterBuilder.js +15 -8
  169. package/lib/tr-grid-util/es6/FilterOperators.d.ts +22 -22
  170. package/lib/tr-grid-util/es6/FilterOperators.js +3 -3
  171. package/lib/tr-grid-util/es6/GridPlugin.d.ts +10 -10
  172. package/lib/tr-grid-util/es6/GridPlugin.js +20 -0
  173. package/lib/tr-grid-util/es6/Icon.d.ts +3 -3
  174. package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +8 -8
  175. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +6 -6
  176. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +19 -19
  177. package/lib/tr-grid-util/es6/NumberFormatter.js +1 -1
  178. package/lib/tr-grid-util/es6/PercentBar.d.ts +19 -19
  179. package/lib/tr-grid-util/es6/Perf.d.ts +4 -4
  180. package/lib/tr-grid-util/es6/Popup.d.ts +36 -33
  181. package/lib/tr-grid-util/es6/Popup.js +19 -1
  182. package/lib/tr-grid-util/es6/RangeBar.d.ts +5 -5
  183. package/lib/tr-grid-util/es6/RequestQueue.d.ts +4 -4
  184. package/lib/tr-grid-util/es6/RowPainter.d.ts +37 -4
  185. package/lib/tr-grid-util/es6/RowPainter.js +199 -76
  186. package/lib/tr-grid-util/es6/SubTable.d.ts +14 -14
  187. package/lib/tr-grid-util/es6/Table.d.ts +25 -25
  188. package/lib/tr-grid-util/es6/TextHighlighter.d.ts +1 -1
  189. package/lib/tr-grid-util/es6/Timer.d.ts +1 -1
  190. package/lib/tr-grid-util/es6/TouchProxy.d.ts +9 -9
  191. package/lib/tr-grid-util/es6/Util.d.ts +12 -12
  192. package/lib/tr-grid-util/es6/formula/ADCService.d.ts +1 -1
  193. package/lib/tr-grid-util/es6/formula/ADCSubscription.d.ts +1 -1
  194. package/lib/tr-grid-util/es6/formula/AdFinService.d.ts +1 -1
  195. package/lib/tr-grid-util/es6/formula/AdFinSubscription.d.ts +1 -1
  196. package/lib/tr-grid-util/es6/formula/Engine.d.ts +9 -9
  197. package/lib/tr-grid-util/es6/formula/Formula.d.ts +4 -4
  198. package/lib/tr-grid-util/es6/formula/IntervalSubscription.d.ts +1 -1
  199. package/lib/tr-grid-util/es6/formula/Realtime.d.ts +3 -3
  200. package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +1 -1
  201. package/lib/tr-grid-util/es6/formula/TSIService.d.ts +1 -1
  202. package/lib/tr-grid-util/es6/formula/TSISubscription.d.ts +1 -1
  203. package/lib/tr-grid-util/es6/formula/VariableToken.d.ts +1 -1
  204. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +1 -1
  205. package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +34 -34
  206. package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +1 -1
  207. package/lib/tr-grid-util/es6/jet/MockJET.d.ts +4 -4
  208. package/lib/tr-grid-util/es6/jet/MockJET.js +12 -4
  209. package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +9 -9
  210. package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +17 -9
  211. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +84 -24
  212. package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +42 -2
  213. package/lib/tr-grid-util/es6/jet/MockRTK.js +55 -16
  214. package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +2 -2
  215. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +99 -1
  216. package/lib/types/es6/CellSelection.d.ts +11 -11
  217. package/lib/types/es6/Checkbox.d.ts +18 -16
  218. package/lib/types/es6/ColumnFormatting.d.ts +29 -27
  219. package/lib/types/es6/ColumnGrouping.d.ts +28 -14
  220. package/lib/types/es6/ColumnResizing.d.ts +2 -2
  221. package/lib/types/es6/ColumnStack.d.ts +15 -13
  222. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +4 -2
  223. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +0 -1
  224. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +1 -1
  225. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +1 -1
  226. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +1 -5
  227. package/lib/types/es6/CompositeGrid/Plugin.d.ts +3 -1
  228. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +2 -1
  229. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +2 -1
  230. package/lib/types/es6/CompositeGrid/TextWidthCalculator.d.ts +1 -1
  231. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +0 -1
  232. package/lib/types/es6/ConditionalColoring.d.ts +11 -2
  233. package/lib/types/es6/Core/data/ColumnStats.d.ts +3 -3
  234. package/lib/types/es6/Core/data/DataCache.d.ts +9 -9
  235. package/lib/types/es6/Core/data/DataTable.d.ts +28 -28
  236. package/lib/types/es6/Core/data/DataView.d.ts +62 -62
  237. package/lib/types/es6/Core/data/Segment.d.ts +8 -4
  238. package/lib/types/es6/Core/data/SegmentCollection.d.ts +9 -7
  239. package/lib/types/es6/Core/data/WrappedView.d.ts +62 -62
  240. package/lib/types/es6/Core/grid/Core.d.ts +95 -95
  241. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +20 -20
  242. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +2 -2
  243. package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +2 -2
  244. package/lib/types/es6/Core/grid/components/Cell.d.ts +6 -6
  245. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +2 -2
  246. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +2 -2
  247. package/lib/types/es6/Core/grid/components/Column.d.ts +2 -2
  248. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +19 -19
  249. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +9 -9
  250. package/lib/types/es6/Core/grid/event/EventDispatcher.d.ts +3 -3
  251. package/lib/types/es6/Core/grid/event/EventListeners.d.ts +5 -5
  252. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +45 -44
  253. package/lib/types/es6/Core/grid/util/Conflator.d.ts +4 -4
  254. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +3 -3
  255. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +8 -8
  256. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +8 -8
  257. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +1 -1
  258. package/lib/types/es6/Core/grid/util/Reverter.d.ts +1 -1
  259. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +13 -13
  260. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +2 -2
  261. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +9 -9
  262. package/lib/types/es6/Core/grid/util/Virtualizer.d.ts +3 -3
  263. package/lib/types/es6/Core/grid/util/util.d.ts +6 -4
  264. package/lib/types/es6/Core/index.d.ts +1 -0
  265. package/lib/types/es6/HeatMap.d.ts +2 -1
  266. package/lib/types/es6/InCellEditing.d.ts +5 -2
  267. package/lib/types/es6/MenuEventAPI.d.ts +2 -2
  268. package/lib/types/es6/MenuItem.d.ts +2 -2
  269. package/lib/types/es6/PercentBar.d.ts +1 -1
  270. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +46 -42
  271. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +6 -4
  272. package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +2 -2
  273. package/lib/types/es6/RealtimeGrid/Grid.d.ts +100 -92
  274. package/lib/types/es6/RealtimeGrid/ReferenceCounter.d.ts +5 -5
  275. package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +2 -2
  276. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +22 -22
  277. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +3 -3
  278. package/lib/types/es6/RealtimeGrid/StyleLoader.d.ts +1 -1
  279. package/lib/types/es6/RowColoring.d.ts +0 -2
  280. package/lib/types/es6/RowDragging.d.ts +6 -0
  281. package/lib/types/es6/RowFiltering.d.ts +4 -3
  282. package/lib/types/es6/RowSegmenting.d.ts +30 -24
  283. package/lib/versions.json +27 -27
  284. package/package.json +2 -2
@@ -1,7 +1,6 @@
1
- /* eslint-disable */
2
1
  import Ext from "../../../tr-grid-util/es6/Ext.js";
3
2
  import ElementWrapper from "./components/ElementWrapper.js";
4
- import ILayoutGrid from "./ILayoutGrid.js";
3
+ import ILayoutGrid from "./ILayoutGrid.js"; // eslint-disable-line
5
4
  import LayoutGrid from "./LayoutGrid.js";
6
5
  import DataTable from "../data/DataTable.js";
7
6
  import DataView from "../data/DataView.js";
@@ -13,7 +12,6 @@ import TrackLayout from "./util/TrackLayout.js";
13
12
  import HScrollbar from "./components/HScrollbar.js";
14
13
  import VScrollbar from "./components/VScrollbar.js";
15
14
  import VirtualizedLayoutGrid from "./VirtualizedLayoutGrid.js";
16
- /* eslint-enable */
17
15
 
18
16
  //#region Events
19
17
  /** @event Core#sectionAdded */
@@ -51,6 +49,15 @@ import VirtualizedLayoutGrid from "./VirtualizedLayoutGrid.js";
51
49
  */
52
50
  //#endregion Events
53
51
 
52
+ /** @private
53
+ * @param {number} a
54
+ * @param {number} b
55
+ * @return {number}
56
+ */
57
+ var ascNumberSorter = function (a, b) {
58
+ return a - b;
59
+ };
60
+
54
61
  /** @constructor
55
62
  * @param {Element=} opt_initializer this can be either element id (string) or DOM element.
56
63
  * @extends {ElementWrapper}
@@ -188,7 +195,8 @@ var Core = function (opt_initializer) {
188
195
  "rowAdded",
189
196
  "rowRemoved",
190
197
  "columnPositionChanged",
191
- "rowPositionChanged"
198
+ "rowPositionChanged",
199
+ "beforeColumnBoundUpdate"
192
200
  );
193
201
 
194
202
  // For debugging in advanced optimization mode
@@ -208,13 +216,13 @@ var Core = function (opt_initializer) {
208
216
  Core._runningGridId++;
209
217
 
210
218
  // init hiddenInput for retrieve copy and cut event
211
- var hiddenInput = document.createElement('input');
212
- hiddenInput.style.position = 'absolute';
213
- hiddenInput.style.width = '0';
214
- hiddenInput.style.height = '0';
215
- hiddenInput.style.padding = '0';
216
- hiddenInput.style.border = '0';
217
- hiddenInput.value = '0';
219
+ var hiddenInput = document.createElement("input");
220
+ hiddenInput.style.position = "absolute";
221
+ hiddenInput.style.width = "0";
222
+ hiddenInput.style.height = "0";
223
+ hiddenInput.style.padding = "0";
224
+ hiddenInput.style.border = "0";
225
+ hiddenInput.value = "0";
218
226
  _t._hiddenInput = hiddenInput;
219
227
  elem.insertBefore(hiddenInput, elem.firstChild);
220
228
 
@@ -520,7 +528,7 @@ Core.prototype._rowHeightTimerId = 0;
520
528
  * @return {string}
521
529
  */
522
530
  Core.getVersion = function () {
523
- return "5.0.59";
531
+ return "5.1.20";
524
532
  };
525
533
  /** {@link ElementWrapper#dispose}
526
534
  * @override
@@ -684,6 +692,9 @@ Core.prototype.getConfigObject = function (gridOptions) {
684
692
  if(this.hasClass("no-horizontal-grid-line")) {
685
693
  obj["horizontalLines"] = false;
686
694
  }
695
+ if(this.hasClass("no-content-vertical-line")) {
696
+ obj["contentVerticalLines"] = false;
697
+ }
687
698
  if(this._bottomPaddingSect) {
688
699
  obj["contentBottomPadding"] = this._bottomPadding;
689
700
  }
@@ -1517,13 +1528,118 @@ Core.prototype.isColumnMoveAllowed = function (fromColIndex, toColIndex) {
1517
1528
  return true;
1518
1529
  };
1519
1530
 
1531
+ /** This method is used for checking movability of column.
1532
+ * @public
1533
+ * @param {number} colIndex Index of the column.
1534
+ * @return {boolean} Return true if the column moving is movable, and false otherwise
1535
+ */
1536
+ Core.prototype.isColumnMovable = function (colIndex) {
1537
+ var stationaryIndex = this.getStationaryColumnIndex();
1538
+
1539
+ if (stationaryIndex > -1) {
1540
+ if (colIndex <= stationaryIndex) {
1541
+ return false;
1542
+ }
1543
+ }
1544
+
1545
+ return true;
1546
+ };
1547
+
1520
1548
  /** @public
1521
- * @param {number} fromCol INCLUSIVE
1549
+ * @param {number|Array.<number>} fromCol INCLUSIVE index/indices of the column to be moved
1522
1550
  * @param {number} destCol INCLUSIVE
1523
1551
  * @return {boolean} Return true if there is any change, and false otherwise
1524
1552
  * @fires Core#columnMoved
1525
1553
  */
1526
1554
  Core.prototype.moveColumn = function (fromCol, destCol) {
1555
+ if(typeof fromCol === "number") {
1556
+ return this._moveColumn(fromCol, destCol);
1557
+ }
1558
+ if(!Array.isArray(fromCol)) {
1559
+ return false;
1560
+ }
1561
+
1562
+ // Validate user inputs
1563
+ var i;
1564
+ var len = fromCol.length;
1565
+ var colIndices = [];
1566
+ var colIndex = 0;
1567
+ var colCount = this.getColumnCount();
1568
+ var dict = {};
1569
+ for(i = 0; i < len; ++i) {
1570
+ colIndex = fromCol[i];
1571
+ if(colIndex >= 0 && colIndex < colCount) { // Filter out invalid index
1572
+ if(dict[colIndex] == null) { // Remove duplication
1573
+ dict[colIndex] = 1;
1574
+ colIndices.push(colIndex);
1575
+ }
1576
+ }
1577
+ }
1578
+ if (destCol < 0) {
1579
+ destCol = 0;
1580
+ } else if (destCol >= colCount) {
1581
+ destCol = colCount - 1;
1582
+ }
1583
+
1584
+ // Skip unneccessary cases
1585
+ len = colIndices.length;
1586
+ if(!len) {
1587
+ return false;
1588
+ }
1589
+ if(len === 1) {
1590
+ return this._moveColumn(colIndices[0], destCol);
1591
+ }
1592
+ if(!this.isColumnMoveAllowed(colIndices, destCol)) {
1593
+ return false;
1594
+ }
1595
+
1596
+ colIndices.sort(ascNumberSorter);
1597
+ if(dict[destCol]) { // Destination falls in the same place as source columns
1598
+ // Check if source columns are in continuous sequence
1599
+ var continuousSequence = true;
1600
+ colIndex = colIndices[0];
1601
+ for(i = 1; i < len; ++i) {
1602
+ if(++colIndex !== colIndices[i]) {
1603
+ continuousSequence = false;
1604
+ break;
1605
+ }
1606
+ }
1607
+ if(continuousSequence) {
1608
+ return false; // No moving operation is required
1609
+ }
1610
+ }
1611
+ var prevState = this.freezeLayout(true);
1612
+
1613
+ // Start moving multiple items
1614
+ var rhsCount = 0;
1615
+ var srcIndex, destIndex;
1616
+ // Perform move operation on the right hand side
1617
+ for(i = 0; i < len; ++i) {
1618
+ srcIndex = colIndices[i];
1619
+ if(srcIndex >= destCol) {
1620
+ destIndex = destCol + rhsCount;
1621
+ this._moveColumn(srcIndex, destIndex);
1622
+ ++rhsCount;
1623
+ }
1624
+ }
1625
+ // Perform move operation on the left hand side
1626
+ var lhsCount = len - rhsCount;
1627
+ destIndex = rhsCount ? destCol - 1 : destCol;
1628
+ for(i = 0; i < lhsCount; ++i) {
1629
+ srcIndex = colIndices[i] - i;
1630
+ this._moveColumn(srcIndex, destIndex);
1631
+ }
1632
+
1633
+ this.freezeLayout(prevState);
1634
+ return true;
1635
+ };
1636
+ /** @private
1637
+ * @param {number} fromCol INCLUSIVE
1638
+ * @param {number} destCol INCLUSIVE
1639
+ * @return {boolean} Return true if there is any change, and false otherwise
1640
+ * @fires Core#columnMoved
1641
+ */
1642
+ Core.prototype._moveColumn = function (fromCol, destCol) {
1527
1643
  var colCount = this.getColumnCount();
1528
1644
  if (fromCol < 0) { fromCol = 0; }
1529
1645
  else if (fromCol >= colCount) { fromCol = colCount - 1; }
@@ -1608,6 +1724,7 @@ Core.prototype.moveColumn = function (fromCol, destCol) {
1608
1724
  this._colVirtualizer.update();
1609
1725
  }
1610
1726
  }
1727
+ this._updateColumnBounds();
1611
1728
  return true;
1612
1729
  };
1613
1730
 
@@ -2814,6 +2931,7 @@ Core.prototype.isLayoutFrozen = function () {
2814
2931
 
2815
2932
  /** Deprecated
2816
2933
  * @public
2934
+ * @ignore
2817
2935
  * @function
2818
2936
  * @param {boolean=} opt_shown
2819
2937
  * @see {@link Core#toggleBorders}
@@ -2821,6 +2939,7 @@ Core.prototype.isLayoutFrozen = function () {
2821
2939
  Core.prototype.showBorders = Util._deprecatedFunction;
2822
2940
  /** Deprecated
2823
2941
  * @public
2942
+ * @ignore
2824
2943
  * @function
2825
2944
  * @param {boolean=} opt_hidden
2826
2945
  * @see {@link Core#toggleBorders}
@@ -2854,6 +2973,14 @@ Core.prototype.toggleVerticalLines = function(forcedVal) {
2854
2973
  Core.prototype.toggleHorizontalLines = function(forcedVal) {
2855
2974
  this.toggleClass("no-horizontal-grid-line", forcedVal != null ? !forcedVal : null);
2856
2975
  };
2976
+ /** Toggle vertical gridlines. This applies to ONLY content sections.
2977
+ * @public
2978
+ * @param {boolean=} forcedVal If value is true, show horizontal lines, otherwise hide them
2979
+ */
2980
+ Core.prototype.toggleContentVerticalLines = function(forcedVal) {
2981
+ this.toggleClass("no-content-vertical-line", forcedVal != null ? !forcedVal : null);
2982
+ };
2983
+
2857
2984
 
2858
2985
  /** @public
2859
2986
  * @return {Array.<string>}
@@ -3669,18 +3796,18 @@ Core.prototype.isBinding = function() {
3669
3796
  };
3670
3797
 
3671
3798
  /**
3672
- * Hide row(s) in the Grid by specifying the rId
3799
+ * Hide the specified rows by row id
3673
3800
  * @param {number | string} rowId rowId of the row to hide
3674
- * @param {boolean=} hidden if false, show instead of hide
3801
+ * @param {boolean=} hidden=true If the value is false, the specified rows will be shown.
3675
3802
  * @public
3676
3803
  */
3677
3804
  Core.prototype.hideRow = function (rowId, hidden) {
3678
3805
  this._dataSource.hideRow(rowId, hidden);
3679
3806
  };
3680
3807
  /**
3681
- * Hide row(s) in the Grid by specifying the rIds
3808
+ * Hide the specified rows by rowIds
3682
3809
  * @param {number | string | Array.<number | string>} rowIds rowId(s) of the rows to hide
3683
- * @param {boolean=} hidden if false, show instead of hide
3810
+ * @param {boolean=} hidden=true If the value is false, the specified rows will be shown.
3684
3811
  * @public
3685
3812
  */
3686
3813
  Core.prototype.hideRows = function (rowIds, hidden) {
@@ -3692,9 +3819,9 @@ Core.prototype.hideRows = function (rowIds, hidden) {
3692
3819
  };
3693
3820
 
3694
3821
  /**
3695
- * Show row(s) in the Grid by specifying the rIds
3822
+ * Show the specified rows by rowIds. To show all rows, use unhideAllRows method for better performance.
3696
3823
  * @param {number | string | Array.<number | string>} rowIds rowId(s) of the rows to show
3697
- * @param {boolean=} shown if false, hide instead of show
3824
+ * @param {boolean=} shown=true If the value is false, the specified rows will be hidden.
3698
3825
  * @public
3699
3826
  */
3700
3827
  Core.prototype.showRows = function (rowIds, shown) {
@@ -3715,7 +3842,7 @@ Core.prototype.unhideAllRows = function () {
3715
3842
 
3716
3843
  /**
3717
3844
  * @public
3718
- * @returns {boolean}
3845
+ * @return {boolean}
3719
3846
  */
3720
3847
  Core.prototype.hasHiddenRow = function () {
3721
3848
  return this._dataSource.hasHiddenRow();
@@ -3794,10 +3921,22 @@ Core.prototype._updateColumnBounds = function () {
3794
3921
  return;
3795
3922
  }
3796
3923
 
3924
+ var colCount = this.getColumnCount();
3925
+ var colIndices = [];
3926
+ var i;
3927
+ for(i = 0; i < colCount; i++) {
3928
+ if(this.isSelectedColumn(i)) {
3929
+ colIndices.push(i);
3930
+ }
3931
+ }
3932
+ var arg = {
3933
+ selectedColumns: colIndices
3934
+ };
3935
+ this._dispatch("beforeColumnBoundUpdate", arg);
3936
+
3797
3937
  var len = this.getColumnCount();
3798
3938
  var lftIdx = -1;
3799
3939
  var rgtIdx = -1;
3800
- var i;
3801
3940
  for(i = 0; i < len; ++i) {
3802
3941
  if(this.isSelectedColumn(i)) {
3803
3942
  rgtIdx = i;
@@ -3808,12 +3947,17 @@ Core.prototype._updateColumnBounds = function () {
3808
3947
  }
3809
3948
  var sectCount = this._settings.length;
3810
3949
  if(sectCount) {
3811
- var section = this._settings[0].getSection();
3950
+ var sectionSetting = this._settings[0];
3951
+ var section = sectionSetting.getSection();
3812
3952
  var positions = [0, 0];
3813
3953
  var noBorders = [false, false];
3814
3954
  section.calculateColumnBounds(lftIdx, rgtIdx, positions, noBorders);
3815
-
3816
- for (i = sectCount; --i >= 0; ) {
3955
+ var topPx = 0;
3956
+ if(sectionSetting.getType() === "title" && arg.topBoundRowIndex != null) {
3957
+ topPx = this._layoutY.getLaneStart(arg.topBoundRowIndex);
3958
+ }
3959
+ section.updateColumnBounds(positions, noBorders, topPx);
3960
+ for(i = 1; i < sectCount; i++) {
3817
3961
  section = this._settings[i].getSection();
3818
3962
  section.updateColumnBounds(positions, noBorders);
3819
3963
  }
@@ -4983,6 +5127,10 @@ Core.prototype._updateScrollbarHeight = function (paneChanged, contentChanged, n
4983
5127
  * @param {boolean} contentChanged
4984
5128
  */
4985
5129
  Core.prototype._updateScrollbarWidth = function (paneChanged, contentChanged) {
5130
+ if (this._frozenLayout) {
5131
+ return;
5132
+ }
5133
+
4986
5134
  if (paneChanged && this._hScrollbarEnabled) {
4987
5135
  // Scroll Frame
4988
5136
  var gridElem = this.getElement();
@@ -5187,7 +5335,7 @@ Core.prototype._updateLayout = function () {
5187
5335
  this._syncLayoutToColumns(); // Update only if need
5188
5336
 
5189
5337
  this._updateScrollbarHeight(true, true);
5190
- this._updateScrollbarWidth(true, true);
5338
+ this._updateScrollbarWidth(true, true); // WARNING this may be redundant with _syncLayoutToColumns
5191
5339
 
5192
5340
  var sectionCount = this.getSectionCount();
5193
5341
  for (var s = 0; s < sectionCount; ++s) {
@@ -4,7 +4,7 @@ import TrackLayout from "./util/TrackLayout.js";
4
4
 
5
5
  declare interface ILayoutGrid extends ElementWrapper {
6
6
 
7
- hitTest(x: number, y: number, opt_omitSpan?: boolean): any|null|null;
7
+ hitTest(x: number, y: number, opt_omitSpan?: boolean|null): any|null|null;
8
8
 
9
9
  hitTestX(x: number): number;
10
10
 
@@ -28,11 +28,11 @@ declare interface ILayoutGrid extends ElementWrapper {
28
28
 
29
29
  isColumnVisible(colIndex: number): boolean;
30
30
 
31
- hideColumn(colIndex: number, val?: boolean): boolean;
31
+ hideColumn(colIndex: number, val?: boolean|null): boolean;
32
32
 
33
33
  isRowVisible(rowIndex: number): boolean;
34
34
 
35
- hideRow(rowIndex: number, val?: boolean): boolean;
35
+ hideRow(rowIndex: number, val?: boolean|null): boolean;
36
36
 
37
37
  getMinimumColumnWidth(colIndex: number): number;
38
38
 
@@ -76,7 +76,7 @@ declare interface ILayoutGrid extends ElementWrapper {
76
76
 
77
77
  setRowScalability(rowIndex: number, val: boolean): boolean;
78
78
 
79
- getCell(colIndex: number, rowIndex: number, opt_includeSpan?: boolean): ElementWrapper|null;
79
+ getCell(colIndex: number, rowIndex: number, opt_includeSpan?: boolean|null): ElementWrapper|null;
80
80
 
81
81
  getCellContent(colIndex: number, rowIndex: number): Element|Node|NodeList|null;
82
82
 
@@ -90,7 +90,7 @@ declare interface ILayoutGrid extends ElementWrapper {
90
90
 
91
91
  getRowCount(): number;
92
92
 
93
- setRowCount(val: number, noBinding?: boolean): void;
93
+ setRowCount(val: number, noBinding?: boolean|null): void;
94
94
 
95
95
  getVisibleRowCount(): number;
96
96
 
@@ -104,13 +104,13 @@ declare interface ILayoutGrid extends ElementWrapper {
104
104
 
105
105
  setColumnStyle(colIndex: number, styleName: string, value: string): void;
106
106
 
107
- enableColumnClass(colIndex: number, className: string, enabled?: boolean): void;
107
+ enableColumnClass(colIndex: number, className: string, enabled?: boolean|null): void;
108
108
 
109
109
  hasColumnClass(): boolean;
110
110
 
111
111
  enableRowClass(rowIndex: number, className: string, enabled: boolean): void;
112
112
 
113
- setRowStyle(rowIndex: number, styleName: string, value?: string|null, enabled?: boolean): void;
113
+ setRowStyle(rowIndex: number, styleName: string, value?: string|null|null, enabled?: boolean|null): void;
114
114
 
115
115
  getRelativePosition(obj: ElementWrapper|Element|Event|MouseEvent): any;
116
116
 
@@ -120,15 +120,15 @@ declare interface ILayoutGrid extends ElementWrapper {
120
120
 
121
121
  getCellsByRowIndex(rowIndex: number): (ElementWrapper)[]|null;
122
122
 
123
- disableHorizontalGridLine(opt_bool?: boolean): void;
123
+ disableHorizontalGridLine(opt_bool?: boolean|null): void;
124
124
 
125
- disableVerticalGridLine(opt_bool?: boolean): void;
125
+ disableVerticalGridLine(opt_bool?: boolean|null): void;
126
126
 
127
127
  enableShading(enabled: boolean): void;
128
128
 
129
129
  setTransposedShading(enabled: boolean): void;
130
130
 
131
- enableRowHighlighting(opt_bool?: boolean): void;
131
+ enableRowHighlighting(opt_bool?: boolean|null): void;
132
132
 
133
133
  getRowHighlight(): number;
134
134
 
@@ -144,7 +144,7 @@ declare interface ILayoutGrid extends ElementWrapper {
144
144
 
145
145
  setRowAnchor(at: number): void;
146
146
 
147
- setSelectedRow(rowIndex: number, opt_selected?: boolean): void;
147
+ setSelectedRow(rowIndex: number, opt_selected?: boolean|null): void;
148
148
 
149
149
  selectSingleRow(rowIndex: number): void;
150
150
 
@@ -156,7 +156,7 @@ declare interface ILayoutGrid extends ElementWrapper {
156
156
 
157
157
  getLastSelectedRow(): number;
158
158
 
159
- activateRows(from?: number, to?: number, opt_updateRange?: (number)[]): void;
159
+ activateRows(from?: number|null, to?: number|null, opt_updateRange?: (number)[]|null): void;
160
160
 
161
161
  getFirstIndexInView(): number;
162
162
 
@@ -164,21 +164,21 @@ declare interface ILayoutGrid extends ElementWrapper {
164
164
 
165
165
  isInCurrentView(index: number): boolean;
166
166
 
167
- getColumnIndex(colElem: Element|Node): number;
167
+ getColumnIndex(colElem: Element|Node|null): number;
168
168
 
169
- getCellIndex(colIndex: number, cellElem: Element): number;
169
+ getCellIndex(colIndex: number, cellElem: Element|null): number;
170
170
 
171
171
  getIndex(): number;
172
172
 
173
173
  getRowOffset(): number;
174
174
 
175
- stretchCell(cellRef: number|Cell, rowIndex?: number, opt_stretching?: boolean, onlyToTheRight?: boolean): Cell|null;
175
+ stretchCell(cellRef: number|Cell|null, rowIndex?: number|null, opt_stretching?: boolean|null, onlyToTheRight?: boolean|null): Cell|null;
176
176
 
177
- unstretchCell(cellRef: number|Cell, rowIndex?: number): Cell|null;
177
+ unstretchCell(cellRef: number|Cell|null, rowIndex?: number|null): Cell|null;
178
178
 
179
179
  unstretchAllCells(): void;
180
180
 
181
- getStretchedCell(cellRef: number|Cell, rowIndex?: number): Cell|null;
181
+ getStretchedCell(cellRef: number|Cell|null, rowIndex?: number|null): Cell|null;
182
182
 
183
183
  getStretchedCells(): (Cell)[];
184
184
 
@@ -194,15 +194,15 @@ declare interface ILayoutGrid extends ElementWrapper {
194
194
 
195
195
  isColumnActive(colIndex: number): boolean;
196
196
 
197
- setRowAttributes(rowIndex: number, func: ((...params: any[]) => any)[]): void;
197
+ setRowAttributes(rowIndex: number, func: ((...params: any[]) => any)[]|null): void;
198
198
 
199
199
  getContextRow(rowIndex: number): any;
200
200
 
201
- selectColumn(colIndex: number, selected?: boolean): void;
201
+ selectColumn(colIndex: number, selected?: boolean|null): void;
202
202
 
203
203
  isSelectedColumn(colIndex: number): boolean;
204
204
 
205
- selectCell(colIndex: number, rowIndex: number, selected?: boolean): void;
205
+ selectCell(colIndex: number, rowIndex: number, selected?: boolean|null): void;
206
206
 
207
207
  setCellBounds(colIndex: number, rowIndex: number, width: number, height: number): void;
208
208
 
@@ -694,8 +694,9 @@ ILayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPosit
694
694
  * @ignore
695
695
  * @param {!Array.<number>} positions Left and right bound positions in pixel
696
696
  * @param {!Array.<boolean>} noBorders Boolean values indicating existence of left and right CSS borders
697
+ * @param {number=} topPx Top position of bound
697
698
  */
698
- ILayoutGrid.prototype.updateColumnBounds = function (positions, noBorders) {};
699
+ ILayoutGrid.prototype.updateColumnBounds = function (positions, noBorders, topPx) {};
699
700
 
700
701
  export default ILayoutGrid;
701
702
  export { ILayoutGrid };
@@ -18,11 +18,11 @@ declare class LayoutGrid extends ElementWrapper {
18
18
 
19
19
  public getContextRow(rowIndex: number): any;
20
20
 
21
- public selectColumn(colIndex: number, selected?: boolean): void;
21
+ public selectColumn(colIndex: number, selected?: boolean|null): void;
22
22
 
23
23
  public isSelectedColumn(colIndex: number): boolean;
24
24
 
25
- public selectCell(colIndex: number, rowIndex: number, selected?: boolean): void;
25
+ public selectCell(colIndex: number, rowIndex: number, selected?: boolean|null): void;
26
26
 
27
27
  public setCellBounds(colIndex: number, rowIndex: number, width: number, height: number): void;
28
28
 
@@ -531,10 +531,8 @@ LayoutGrid.prototype._updateColumnLayout = function () {
531
531
  /** @public
532
532
  * @ignore
533
533
  * @param {boolean} enabled
534
- * @param {number=} fromR
535
- * @param {number=} toR
536
534
  */
537
- LayoutGrid.prototype._startBindingSession = function (enabled, fromR, toR) {
535
+ LayoutGrid.prototype._startBindingSession = function (enabled) {
538
536
  // Prevent error when calling _startBindingSession in LayoutGrid
539
537
  };
540
538
  /** @public
@@ -1751,8 +1749,14 @@ LayoutGrid.prototype.moveColumn = function (from, to) {
1751
1749
 
1752
1750
  Util.moveArrayItem(this._columns, from, to);
1753
1751
 
1754
- var nextSibling = this._columns[to + 1] || null;
1755
- movedColumn.insertBefore(nextSibling);
1752
+ if(movedColumn.getElement().offsetParent) {
1753
+ var siblingIndex = to + 1;
1754
+ var nextSibling = this._columns[siblingIndex] || null;
1755
+ while (nextSibling && !nextSibling.getElement().offsetParent) {
1756
+ nextSibling = this._columns[++siblingIndex];
1757
+ }
1758
+ movedColumn.insertBefore(nextSibling);
1759
+ }
1756
1760
 
1757
1761
  this._updateColumnIndices();
1758
1762
  this._updateCellSpans(cellSpans, true); // Restore all styling
@@ -1971,6 +1975,10 @@ LayoutGrid.prototype.updateStretchedCells = function () {
1971
1975
  * @return {number}
1972
1976
  */
1973
1977
  LayoutGrid.prototype._calculateViewSize = function (forceRecal) {
1978
+ if(this._frozenLayout) {
1979
+ return this._stretchedCells.getStretchSize();
1980
+ }
1981
+
1974
1982
  var ctx = this._ctx;
1975
1983
  var stretchSize = forceRecal ? 0 : this._stretchedCells.getStretchSize();
1976
1984
  if(!stretchSize && ctx) {
@@ -1978,9 +1986,6 @@ LayoutGrid.prototype._calculateViewSize = function (forceRecal) {
1978
1986
  var contentWidth = this.getContentWidth();
1979
1987
  stretchSize = ctx["getWidth"]();
1980
1988
  if(stretchSize) { // Grid may not be in the document
1981
- if(!ctx.hasClass("no-borders")) {
1982
- stretchSize -= 1;
1983
- }
1984
1989
  if(contentWidth < stretchSize) { // If view width is larger than actual content
1985
1990
  stretchSize = contentWidth;
1986
1991
  }
@@ -2328,8 +2333,9 @@ LayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositi
2328
2333
  * @ignore
2329
2334
  * @param {!Array.<number>} positions Left and right bound positions in pixel
2330
2335
  * @param {!Array.<boolean>} noBorders Boolean values indicating existence of left and right CSS borders
2336
+ * @param {number=} topPx Top position of bound
2331
2337
  */
2332
- LayoutGrid.prototype.updateColumnBounds = function (positions, noBorders) {
2338
+ LayoutGrid.prototype.updateColumnBounds = function (positions, noBorders, topPx) {
2333
2339
  var columnBound = this._columnBound;
2334
2340
  if(!columnBound) {
2335
2341
  return;
@@ -2346,7 +2352,9 @@ LayoutGrid.prototype.updateColumnBounds = function (positions, noBorders) {
2346
2352
  columnBound.style.left = lftPx + "px";
2347
2353
  columnBound.style.width = (rgtPx - lftPx) + "px";
2348
2354
 
2349
- columnBound.style.height = this._trackY.getTrackSize() + "px";
2355
+ topPx = topPx || 0;
2356
+ columnBound.style.top = topPx + "px";
2357
+ columnBound.style.height = (this._trackY.getTrackSize() - topPx) + "px";
2350
2358
  columnBound.classList.toggle("no-left-bound", noBorders[0]);
2351
2359
  columnBound.classList.toggle("no-right-bound", noBorders[1]);
2352
2360
  if(this._boundLayer) {
@@ -13,11 +13,11 @@ declare class VirtualizedLayoutGrid extends ElementWrapper {
13
13
 
14
14
  public getContextRow(rowIndex: number): any;
15
15
 
16
- public selectColumn(colIndex: number, selected?: boolean): void;
16
+ public selectColumn(colIndex: number, selected?: boolean|null): void;
17
17
 
18
18
  public isSelectedColumn(colIndex: number): boolean;
19
19
 
20
- public selectCell(colIndex: number, rowIndex: number, selected?: boolean): void;
20
+ public selectCell(colIndex: number, rowIndex: number, selected?: boolean|null): void;
21
21
 
22
22
  public setCellBounds(colIndex: number, rowIndex: number, width: number, height: number): void;
23
23
 
@@ -849,12 +849,22 @@ VirtualizedLayoutGrid.prototype.updateLayout = function () {
849
849
  /** {@link ILayoutGrid#stretchCell}
850
850
  * @inheritDoc */
851
851
  VirtualizedLayoutGrid.prototype.stretchCell = function (cellRef, rowIndex, opt_stretching, onlyToTheRight) {
852
- return this._grid.stretchCell(
852
+ var stretchedCell = this._grid.stretchCell(
853
853
  cellRef,
854
854
  (rowIndex != null) ? rowIndex - this._firstIndex : null,
855
855
  opt_stretching,
856
856
  onlyToTheRight
857
857
  );
858
+
859
+ if (stretchedCell){
860
+ var cellElem = stretchedCell.getElement();
861
+ if(rowIndex === 0) {
862
+ cellElem.classList.add("top");
863
+ } else {
864
+ cellElem.classList.remove("top");
865
+ }
866
+ }
867
+ return stretchedCell;
858
868
  };
859
869
 
860
870
  /** {@link ILayoutGrid#unstretchCell}
@@ -1073,9 +1083,10 @@ VirtualizedLayoutGrid.prototype._updateCellBounds = function () {
1073
1083
  * @ignore
1074
1084
  * @param {!Array.<number>} positions Left and right bound positions in pixel
1075
1085
  * @param {!Array.<boolean>} noBorders Boolean values indicating existence of left and right CSS borders
1086
+ * @param {number=} topPx Top position of bound
1076
1087
  */
1077
- VirtualizedLayoutGrid.prototype.updateColumnBounds = function (positions, noBorders) {
1078
- this._grid.updateColumnBounds(positions, noBorders);
1088
+ VirtualizedLayoutGrid.prototype.updateColumnBounds = function (positions, noBorders, topPx) {
1089
+ this._grid.updateColumnBounds(positions, noBorders, topPx);
1079
1090
  this._updateRowBounds();
1080
1091
  };
1081
1092
  /** @private
@@ -6,7 +6,7 @@ import CellFloatingPanel from "../components/CellFloatingPanel.js";
6
6
 
7
7
  declare class Cell extends ElementWrapper {
8
8
 
9
- constructor(opt_element?: Element, opt_section?: ILayoutGrid);
9
+ constructor(opt_element?: Element|null, opt_section?: ILayoutGrid|null);
10
10
 
11
11
  public setTextContent(str: string): void;
12
12
 
@@ -18,7 +18,7 @@ declare class Cell extends ElementWrapper {
18
18
 
19
19
  public initialize(): Element;
20
20
 
21
- public updateIcon(icon: Element): void;
21
+ public updateIcon(icon: Element|null): void;
22
22
 
23
23
  public removeIcon(): void;
24
24
 
@@ -32,13 +32,13 @@ declare class Cell extends ElementWrapper {
32
32
 
33
33
  public resetToInitialState(): void;
34
34
 
35
- public insertFloatingIcon(elem: Element, opt_order?: number): void;
35
+ public insertFloatingIcon(elem: Element|null, opt_order?: number|null): void;
36
36
 
37
- public removeFloatingIcon(elemRef: Element|string): Element|null|null;
37
+ public removeFloatingIcon(elemRef: Element|string|null): Element|null|null;
38
38
 
39
- public insertFrontIcon(elem: Element, opt_order?: number): void;
39
+ public insertFrontIcon(elem: Element|null, opt_order?: number|null): void;
40
40
 
41
- public removeFrontIcon(elemRef: Element|string): Element|null|null;
41
+ public removeFrontIcon(elemRef: Element|string|null): Element|null|null;
42
42
 
43
43
  public updatePadding(): void;
44
44
 
@@ -382,6 +382,9 @@ Cell.prototype.updateIcon = function(icon) {
382
382
 
383
383
  var fi = this._frontIcon;
384
384
  if (fi) {
385
+ if(fi.containItem(icon)) { // Check same icon which duplicate with insertItem in _frontIcon
386
+ return;
387
+ }
385
388
  fi.clearItems();
386
389
  }
387
390
  this.insertFrontIcon(icon, 0);