@refinitiv-ui/efx-grid 6.0.1 → 6.0.4

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 (268) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +49 -0
  2. package/lib/column-dragging/es6/ColumnDragging.js +764 -0
  3. package/lib/column-dragging/es6/index.d.ts +1 -0
  4. package/lib/column-dragging/es6/index.js +1 -0
  5. package/lib/column-format-dialog/lib/column-format-dialog.d.ts +13 -1
  6. package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +15 -2
  7. package/lib/column-selection-dialog/lib/column-selection-dialog.js +226 -23
  8. package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +1 -1
  9. package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  10. package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +1 -1
  11. package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +1 -1
  12. package/lib/core/dist/core.css +1 -1
  13. package/lib/core/dist/core.js +17835 -16266
  14. package/lib/core/dist/core.min.js +1 -1
  15. package/lib/core/es6/data/ColumnStats.d.ts +2 -2
  16. package/lib/core/es6/data/DataCache.d.ts +4 -4
  17. package/lib/core/es6/data/DataTable.d.ts +5 -5
  18. package/lib/core/es6/data/DataTable.js +33 -11
  19. package/lib/core/es6/data/DataView.d.ts +26 -17
  20. package/lib/core/es6/data/DataView.js +172 -49
  21. package/lib/core/es6/data/Segment.d.ts +2 -0
  22. package/lib/core/es6/data/Segment.js +7 -0
  23. package/lib/core/es6/data/SegmentCollection.d.ts +3 -3
  24. package/lib/core/es6/data/WrappedView.d.ts +289 -0
  25. package/lib/core/es6/data/WrappedView.js +1319 -0
  26. package/lib/core/es6/grid/Core.d.ts +42 -27
  27. package/lib/core/es6/grid/Core.js +431 -163
  28. package/lib/core/es6/grid/ILayoutGrid.d.ts +23 -15
  29. package/lib/core/es6/grid/ILayoutGrid.js +45 -2
  30. package/lib/core/es6/grid/LayoutGrid.d.ts +10 -1
  31. package/lib/core/es6/grid/LayoutGrid.js +311 -108
  32. package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +10 -1
  33. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +382 -24
  34. package/lib/core/es6/grid/components/Cell.d.ts +4 -4
  35. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +1 -1
  36. package/lib/core/es6/grid/components/CellSpans.d.ts +8 -8
  37. package/lib/core/es6/grid/components/Column.d.ts +1 -1
  38. package/lib/core/es6/grid/components/Column.js +8 -2
  39. package/lib/core/es6/grid/components/ElementWrapper.d.ts +6 -6
  40. package/lib/core/es6/grid/components/HScrollbar.d.ts +4 -0
  41. package/lib/core/es6/grid/components/HScrollbar.js +20 -4
  42. package/lib/core/es6/grid/components/Scrollbar.d.ts +1 -1
  43. package/lib/core/es6/grid/components/StretchedCells.js +2 -2
  44. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +14 -6
  45. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +147 -81
  46. package/lib/core/es6/grid/util/Conflator.d.ts +2 -2
  47. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +3 -3
  48. package/lib/core/es6/grid/util/HttpRequest.d.ts +2 -2
  49. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +1 -1
  50. package/lib/core/es6/grid/util/RangeBar.d.ts +1 -1
  51. package/lib/core/es6/grid/util/SectionSettings.d.ts +5 -5
  52. package/lib/core/es6/grid/util/SectionSettings.js +5 -0
  53. package/lib/core/es6/grid/util/SelectionList.d.ts +2 -2
  54. package/lib/core/es6/grid/util/TrackLayout.d.ts +7 -3
  55. package/lib/core/es6/grid/util/TrackLayout.js +29 -3
  56. package/lib/core/es6/grid/util/util.d.ts +2 -2
  57. package/lib/core/es6/index.d.ts +1 -5
  58. package/lib/core/es6/index.js +1 -7
  59. package/lib/core/es6/tr-grid-theme.js +1 -1
  60. package/lib/filter-dialog/lib/checkbox-list.d.ts +13 -1
  61. package/lib/filter-dialog/lib/filter-dialog.d.ts +14 -1
  62. package/lib/filter-dialog/lib/filter-dialog.js +94 -32
  63. package/lib/filter-dialog/themes/base-checkbox.less +8 -1
  64. package/lib/filter-dialog/themes/base.less +69 -1
  65. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  66. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +2 -2
  67. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  68. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  69. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +2 -2
  70. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  71. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  72. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +2 -2
  73. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  74. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  75. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +2 -2
  76. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  77. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  78. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +2 -2
  79. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  80. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  81. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +2 -2
  82. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  83. package/lib/grid/lib/efx-grid.d.ts +30 -8
  84. package/lib/grid/lib/efx-grid.js +120 -115
  85. package/lib/grid/themes/base.less +5 -3
  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 +72 -41
  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/grid/themes/solar/charcoal/efx-grid.js +1 -1
  92. package/lib/grid/themes/solar/charcoal/es5/all-elements.js +1 -1
  93. package/lib/grid/themes/solar/pearl/efx-grid.js +1 -1
  94. package/lib/grid/themes/solar/pearl/es5/all-elements.js +1 -1
  95. package/lib/index.d.ts +2 -0
  96. package/lib/index.js +2 -0
  97. package/lib/row-segmenting/es6/RowSegmenting.d.ts +8 -2
  98. package/lib/row-segmenting/es6/RowSegmenting.js +137 -21
  99. package/lib/rt-grid/dist/rt-grid.js +11017 -9193
  100. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  101. package/lib/rt-grid/es6/ColumnDefinition.d.ts +9 -4
  102. package/lib/rt-grid/es6/ColumnDefinition.js +20 -108
  103. package/lib/rt-grid/es6/DataConnector.d.ts +3 -3
  104. package/lib/rt-grid/es6/Grid.d.ts +30 -15
  105. package/lib/rt-grid/es6/Grid.js +436 -167
  106. package/lib/rt-grid/es6/RowDefSorter.d.ts +19 -0
  107. package/lib/rt-grid/es6/RowDefSorter.js +137 -0
  108. package/lib/rt-grid/es6/RowDefinition.d.ts +12 -7
  109. package/lib/rt-grid/es6/RowDefinition.js +58 -2
  110. package/lib/rt-grid/es6/SnapshotFiller.d.ts +3 -1
  111. package/lib/rt-grid/es6/SnapshotFiller.js +23 -0
  112. package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +1 -1
  113. package/lib/tr-grid-cell-selection/es6/CellSelection.js +53 -40
  114. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +6 -3
  115. package/lib/tr-grid-checkbox/es6/Checkbox.js +79 -34
  116. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +1 -0
  117. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +10 -0
  118. package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +5 -1
  119. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +269 -10
  120. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +8 -4
  121. package/lib/tr-grid-column-stack/es6/ColumnStack.js +243 -125
  122. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +1 -1
  123. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +24 -13
  124. package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +4 -2
  125. package/lib/tr-grid-filter-input/es6/FilterInput.js +73 -10
  126. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +8 -5
  127. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +106 -3
  128. package/lib/tr-grid-printer/es6/CellWriter.d.ts +3 -3
  129. package/lib/tr-grid-printer/es6/GridPrinter.d.ts +1 -1
  130. package/lib/tr-grid-printer/es6/GridPrinter.js +26 -13
  131. package/lib/tr-grid-printer/es6/PrintTrait.d.ts +2 -2
  132. package/lib/tr-grid-printer/es6/SectionWriter.d.ts +3 -3
  133. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +3 -4
  134. package/lib/tr-grid-row-dragging/es6/RowDragging.js +108 -127
  135. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +2 -0
  136. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +88 -33
  137. package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +7 -2
  138. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +138 -38
  139. package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +13 -9
  140. package/lib/tr-grid-row-selection/es6/RowSelection.js +230 -29
  141. package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +2 -0
  142. package/lib/tr-grid-rowcoloring/es6/RowColoring.js +36 -0
  143. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +1 -1
  144. package/lib/tr-grid-textformatting/es6/TextFormatting.js +12 -0
  145. package/lib/tr-grid-util/es6/CellPainter.d.ts +8 -8
  146. package/lib/tr-grid-util/es6/Conflator.d.ts +2 -2
  147. package/lib/tr-grid-util/es6/CoralItems.d.ts +1 -1
  148. package/lib/tr-grid-util/es6/DateTime.d.ts +4 -4
  149. package/lib/tr-grid-util/es6/Delay.d.ts +1 -1
  150. package/lib/tr-grid-util/es6/Dom.d.ts +4 -4
  151. package/lib/tr-grid-util/es6/DragUI.d.ts +16 -0
  152. package/lib/tr-grid-util/es6/DragUI.js +214 -0
  153. package/lib/tr-grid-util/es6/ElementObserver.d.ts +2 -0
  154. package/lib/tr-grid-util/es6/ElementObserver.js +28 -1
  155. package/lib/tr-grid-util/es6/ElementWrapper.d.ts +1 -1
  156. package/lib/tr-grid-util/es6/ElfDate.d.ts +3 -3
  157. package/lib/tr-grid-util/es6/ElfUtil.d.ts +4 -4
  158. package/lib/tr-grid-util/es6/ElfUtil.js +1 -1
  159. package/lib/tr-grid-util/es6/EventDispatcher.d.ts +1 -1
  160. package/lib/tr-grid-util/es6/ExpanderIcon.js +2 -2
  161. package/lib/tr-grid-util/es6/FieldFormatter.d.ts +1 -1
  162. package/lib/tr-grid-util/es6/FieldFormatter.js +7 -5
  163. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +5 -5
  164. package/lib/tr-grid-util/es6/GridPlugin.d.ts +3 -3
  165. package/lib/tr-grid-util/es6/GridPlugin.js +8 -4
  166. package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +1 -1
  167. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +10 -2
  168. package/lib/tr-grid-util/es6/MultiTableManager.js +164 -57
  169. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +2 -0
  170. package/lib/tr-grid-util/es6/NumberFormatter.js +64 -19
  171. package/lib/tr-grid-util/es6/PercentBar.d.ts +1 -1
  172. package/lib/tr-grid-util/es6/Perf.d.ts +4 -4
  173. package/lib/tr-grid-util/es6/Popup.d.ts +2 -2
  174. package/lib/tr-grid-util/es6/RequestQueue.d.ts +1 -1
  175. package/lib/tr-grid-util/es6/RowPainter.d.ts +3 -0
  176. package/lib/tr-grid-util/es6/RowPainter.js +120 -28
  177. package/lib/tr-grid-util/es6/SubTable.d.ts +9 -9
  178. package/lib/tr-grid-util/es6/Table.d.ts +13 -13
  179. package/lib/tr-grid-util/es6/TextHighlighter.d.ts +3 -3
  180. package/lib/tr-grid-util/es6/TickCodes.d.ts +2 -2
  181. package/lib/tr-grid-util/es6/TouchProxy.d.ts +1 -1
  182. package/lib/tr-grid-util/es6/Util.d.ts +6 -6
  183. package/lib/tr-grid-util/es6/formula/Engine.d.ts +5 -5
  184. package/lib/tr-grid-util/es6/formula/Formula.d.ts +3 -3
  185. package/lib/tr-grid-util/es6/formula/Formula.js +9 -1
  186. package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +1 -1
  187. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +2 -2
  188. package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +4 -4
  189. package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +1 -1
  190. package/lib/tr-grid-util/es6/jet/MockJET.d.ts +4 -4
  191. package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +11 -11
  192. package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +7 -7
  193. package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +1 -1
  194. package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +1 -1
  195. package/lib/tr-grid-util/es6/jsx.d.ts +223 -0
  196. package/lib/types/es6/CellSelection.d.ts +1 -1
  197. package/lib/types/es6/Checkbox.d.ts +6 -3
  198. package/lib/types/es6/ColumnGrouping.d.ts +1 -0
  199. package/lib/types/es6/ColumnSelection.d.ts +5 -1
  200. package/lib/types/es6/ColumnStack.d.ts +8 -4
  201. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +3 -2
  202. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +2 -1
  203. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +20 -18
  204. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +2 -1
  205. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +3 -2
  206. package/lib/types/es6/CompositeGrid/Plugin.d.ts +28 -0
  207. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +2 -1
  208. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +5 -4
  209. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +2 -1
  210. package/lib/types/es6/CompositeGrid/index.d.ts +9 -9
  211. package/lib/types/es6/ConditionalColoring.d.ts +1 -1
  212. package/lib/types/es6/Core/data/ColumnStats.d.ts +2 -2
  213. package/lib/types/es6/Core/data/DataCache.d.ts +4 -4
  214. package/lib/types/es6/Core/data/DataTable.d.ts +5 -5
  215. package/lib/types/es6/Core/data/DataView.d.ts +26 -17
  216. package/lib/types/es6/Core/data/Segment.d.ts +2 -0
  217. package/lib/types/es6/Core/data/SegmentCollection.d.ts +3 -3
  218. package/lib/types/es6/Core/data/WrappedView.d.ts +289 -0
  219. package/lib/types/es6/Core/grid/Core.d.ts +42 -27
  220. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +23 -15
  221. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +10 -1
  222. package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +10 -1
  223. package/lib/types/es6/Core/grid/components/Cell.d.ts +4 -4
  224. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +1 -1
  225. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +8 -8
  226. package/lib/types/es6/Core/grid/components/Column.d.ts +1 -1
  227. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +6 -6
  228. package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +4 -0
  229. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +1 -1
  230. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +14 -6
  231. package/lib/types/es6/Core/grid/util/Conflator.d.ts +2 -2
  232. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +3 -3
  233. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +2 -2
  234. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +1 -1
  235. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +1 -1
  236. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +5 -5
  237. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +2 -2
  238. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +7 -3
  239. package/lib/types/es6/Core/grid/util/util.d.ts +2 -2
  240. package/lib/types/es6/Core/index.d.ts +1 -5
  241. package/lib/types/es6/ExtensionOptions.d.ts +2 -0
  242. package/lib/types/es6/FilterInput.d.ts +4 -2
  243. package/lib/types/es6/InCellEditing.d.ts +8 -5
  244. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +9 -4
  245. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +3 -3
  246. package/lib/types/es6/RealtimeGrid/Grid.d.ts +31 -16
  247. package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +19 -0
  248. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +12 -7
  249. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +3 -1
  250. package/lib/types/es6/RowColoring.d.ts +2 -0
  251. package/lib/types/es6/RowDragging.d.ts +3 -4
  252. package/lib/types/es6/RowFiltering.d.ts +2 -0
  253. package/lib/types/es6/RowGrouping.d.ts +7 -2
  254. package/lib/types/es6/RowSegmenting.d.ts +8 -2
  255. package/lib/types/es6/RowSelection.d.ts +13 -9
  256. package/lib/types/es6/TextFormatting.d.ts +1 -1
  257. package/lib/types/es6/Zoom.d.ts +2 -1
  258. package/lib/types/es6/index.d.ts +3 -0
  259. package/lib/versions.json +22 -21
  260. package/lib/zoom/es6/Zoom.d.ts +2 -1
  261. package/lib/zoom/es6/Zoom.js +11 -4
  262. package/package.json +7 -7
  263. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.d.ts +0 -24
  264. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.js +0 -615
  265. package/lib/core/es6/grid/plugins/Plugin.d.ts +0 -28
  266. package/lib/core/es6/grid/plugins/Plugin.js +0 -272
  267. package/lib/types/es6/Core/grid/plugins/DragAndDropTitlePlugin.d.ts +0 -24
  268. package/lib/types/es6/Core/grid/plugins/Plugin.d.ts +0 -28
@@ -16,11 +16,13 @@ import { CoralItems } from '../../tr-grid-util/es6/CoralItems.js';
16
16
  * @property {string=} placeholder="" Placeholder text inside the input
17
17
  * @property {string=} type="text" Type of UI. Available types are "number", "select", "dropdown", "date"
18
18
  * @property {Array=} entries Entries of dropdown filters when type is "select"
19
+ * @property {string=} trigger="keyup" Available types of trigger are `false | ""` (no trigger) , `"keyup"` (default) , `"enter"` (on enter key *only available for text type)
19
20
  */
20
21
 
21
22
  /** @typedef {Object} FilterInputPlugin~Options
22
23
  * @description FilterInputPlugin options available in main grid configuration under `filterInput` property
23
24
  * @property {Function=} inputCreated=null Handler executed after filter input is created
25
+ * @property {string=} trigger="keyup" Available types of trigger are `false | ""` (no trigger) , `"keyup"` (default) , `"enter"` (on enter key *only available for text type)
24
26
  */
25
27
 
26
28
  /** @callback {Function} FilterInputPlugin~FilterLogic
@@ -102,6 +104,11 @@ FilterInputPlugin.prototype._uiTimer = 0;
102
104
  */
103
105
 
104
106
  FilterInputPlugin.prototype._freezeInputValue = false;
107
+ /** @type {string|boolean}
108
+ * @private
109
+ */
110
+
111
+ FilterInputPlugin.prototype._inputTrigger = "keyup";
105
112
  /** @public
106
113
  * @return {string}
107
114
  */
@@ -204,7 +211,15 @@ FilterInputPlugin.prototype.config = function (options) {
204
211
 
205
212
  this._gridConfig = options; // For loading dependency
206
213
 
207
- this.addListener(options["filterInput"], "inputCreated");
214
+ var filterInputOptions = options["filterInput"];
215
+ this.addListener(filterInputOptions, "inputCreated");
216
+
217
+ if (filterInputOptions) {
218
+ if (filterInputOptions["trigger"] != null) {
219
+ this._inputTrigger = filterInputOptions["trigger"];
220
+ }
221
+ }
222
+
208
223
  var columns = options["columns"];
209
224
  var len = columns ? columns.length : 0;
210
225
 
@@ -259,6 +274,10 @@ FilterInputPlugin.prototype.getConfigObject = function (out_obj) {
259
274
  if (opt.entries != null) {
260
275
  filterInput.entries = opt.entries;
261
276
  }
277
+
278
+ if (opt.trigger != null) {
279
+ filterInput.trigger = opt.trigger;
280
+ }
262
281
  }
263
282
 
264
283
  return obj;
@@ -384,7 +403,7 @@ FilterInputPlugin.prototype._onDateChanged = function (e) {
384
403
  if (host) {
385
404
  var pos = host.getRelativePosition(e);
386
405
  var colIndex = pos.colIndex;
387
- var dateObj = ElfDate.getDate(e.detail); // TODO: Date object should be used for filtering instead of string
406
+ var dateObj = ElfDate.getDate(e.detail) || e.target.value; // TODO: Date object should be used for filtering instead of string
388
407
 
389
408
  var dateStr = dateObj ? dateObj.toDateString().substr(4) : "";
390
409
  this.filterColumn(colIndex, dateStr);
@@ -456,6 +475,7 @@ FilterInputPlugin._uiMap = {
456
475
 
457
476
  FilterInputPlugin.prototype._createFilterUI = function (colOpt) {
458
477
  var elemType = colOpt.type;
478
+ var elemTrigger = colOpt.trigger != null ? colOpt.trigger : this._inputTrigger;
459
479
  var uiTag = FilterInputPlugin._uiMap[elemType] || "input";
460
480
 
461
481
  if (uiTag == "ef-input") {
@@ -485,32 +505,69 @@ FilterInputPlugin.prototype._createFilterUI = function (colOpt) {
485
505
  switch (uiTag) {
486
506
  case "ef-input":
487
507
  elem.setAttribute("type", "number");
488
- elem.addEventListener("value-changed", this._onInputChanged, false);
508
+
509
+ if (elemTrigger != false && elemTrigger != "") {
510
+ elem.addEventListener("value-changed", this._onInputChanged, false);
511
+ }
512
+
489
513
  break;
490
514
 
491
515
  case "ef-number-field":
492
- elem.addEventListener("value-changed", this._onInputChanged, false);
516
+ if (elemTrigger != false && elemTrigger != "") {
517
+ elem.addEventListener("value-changed", this._onInputChanged, false);
518
+ }
519
+
493
520
  break;
494
521
 
495
522
  case "ef-select":
496
523
  elem.data = CoralItems.create(colOpt.entries);
497
- elem.addEventListener("value-changed", this._onInputChanged, false);
498
524
  elem.addEventListener("opened-changed", this._onOpenedChanged, false);
525
+
526
+ if (elemTrigger != false && elemTrigger != "") {
527
+ elem.addEventListener("value-changed", this._onInputChanged, false);
528
+ }
529
+
499
530
  break;
500
531
 
501
532
  case "ef-datetime-picker":
502
- elem.addEventListener("value-changed", this._onDateChanged, false);
533
+ if (elemTrigger != false && elemTrigger != "") {
534
+ elem.addEventListener("value-changed", this._onDateChanged, false);
535
+ }
536
+
503
537
  break;
504
538
 
505
539
  case "ef-search-field":
506
- elem.addEventListener("search", this._onInputChanged, false);
507
- elem.addEventListener("value-changed", this._onInputChanged, false);
540
+ if (elemTrigger != false && elemTrigger != "") {
541
+ if (elemTrigger == "enter") {
542
+ var plugin = this;
543
+ elem.addEventListener("keyup", function (e) {
544
+ if (e.key == "Enter") {
545
+ plugin._onInputChanged(e);
546
+ }
547
+ }, false);
548
+ } else {
549
+ elem.addEventListener("value-changed", this._onInputChanged, false);
550
+ }
551
+ }
552
+
508
553
  break;
509
554
 
510
555
  default:
511
556
  elem.setAttribute("type", "search");
512
- elem.addEventListener("search", this._onInputChanged, false);
513
- elem.addEventListener("keyup", this._onInputChanged, false);
557
+
558
+ if (elemTrigger != false && elemTrigger != "") {
559
+ if (elemTrigger == "enter") {
560
+ var fip = this;
561
+ elem.addEventListener("keyup", function (e) {
562
+ if (e.key == "Enter") {
563
+ fip._onInputChanged(e);
564
+ }
565
+ }, false);
566
+ } else {
567
+ elem.addEventListener("keyup", this._onInputChanged, false);
568
+ }
569
+ }
570
+
514
571
  break;
515
572
  }
516
573
 
@@ -594,6 +651,12 @@ FilterInputPlugin.prototype._retrieveColumnOption = function (colIndex, colDef)
594
651
  });
595
652
  option["entries"] = entries;
596
653
  }
654
+
655
+ var trigger = filterOption["trigger"];
656
+
657
+ if (typeof trigger == "string" || trigger == false) {
658
+ option["trigger"] = trigger;
659
+ }
597
660
  } else {
598
661
  option["disabled"] = true;
599
662
  }
@@ -3,7 +3,7 @@ import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
3
3
  import { Dom } from "../../tr-grid-util/es6/Dom.js";
4
4
  import { Popup } from "../../tr-grid-util/es6/Popup.js";
5
5
  import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
6
- import { isTouchDevice } from "../../tr-grid-util/es6/Util.js";
6
+ import { isTouchDevice, injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
7
7
  import { ElfDate } from "../../tr-grid-util/es6/ElfDate.js";
8
8
  import { CoralItems } from "../../tr-grid-util/es6/CoralItems.js";
9
9
 
@@ -28,7 +28,8 @@ declare namespace InCellEditingPlugin {
28
28
  keyUp?: ((...params: any[]) => any),
29
29
  beforeRowCommit?: ((...params: any[]) => any),
30
30
  rowEditorClosed?: ((...params: any[]) => any),
31
- uiBlocking?: boolean
31
+ uiBlocking?: boolean,
32
+ autoSuggest?: Element
32
33
  };
33
34
 
34
35
  type Cache = {
@@ -79,7 +80,7 @@ declare class InCellEditingPlugin extends GridPlugin {
79
80
 
80
81
  public isEditing(): boolean;
81
82
 
82
- public getTextBox(columnIndex?: number, grid?: any): Element;
83
+ public getTextBox(columnIndex?: number, grid?: any): Element|null;
83
84
 
84
85
  public getInitialText(): string;
85
86
 
@@ -87,7 +88,7 @@ declare class InCellEditingPlugin extends GridPlugin {
87
88
 
88
89
  public _getRowId(rowIndex: number): string;
89
90
 
90
- public getActiveGrid(): any|null;
91
+ public getActiveGrid(): any|null|null;
91
92
 
92
93
  public getActiveColIndex(): number;
93
94
 
@@ -119,7 +120,9 @@ declare class InCellEditingPlugin extends GridPlugin {
119
120
 
120
121
  public commitText(word?: string): void;
121
122
 
122
- public getBalloonPopup(): Popup|null;
123
+ public getBalloonPopup(): Popup|null|null;
124
+
125
+ public getAutoSuggest(): Element|null;
123
126
 
124
127
  public setDisablingScroll(disabled?: boolean): boolean;
125
128
 
@@ -3,7 +3,7 @@ import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
3
3
  import { Dom } from "../../tr-grid-util/es6/Dom.js";
4
4
  import { Popup } from "../../tr-grid-util/es6/Popup.js";
5
5
  import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
6
- import { isTouchDevice } from "../../tr-grid-util/es6/Util.js";
6
+ import { isTouchDevice, injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
7
7
  import { ElfDate } from "../../tr-grid-util/es6/ElfDate.js";
8
8
  import { CoralItems } from "../../tr-grid-util/es6/CoralItems.js";
9
9
  /** @typedef {Object} InCellEditingPlugin~Options
@@ -27,6 +27,7 @@ import { CoralItems } from "../../tr-grid-util/es6/CoralItems.js";
27
27
  * @property {Function=} beforeRowCommit=null Handler before all editor in row commit
28
28
  * @property {Function=} rowEditorClosed=null Handler after all editors closed
29
29
  * @property {boolean=} uiBlocking=false append transparent overlay to block ui interaction
30
+ * @property {Element=} autoSuggest=null Element of ef-autosuggest for handled with input cell
30
31
  */
31
32
 
32
33
  /** @typedef {Object} InCellEditingPlugin~Cache
@@ -66,6 +67,7 @@ import { CoralItems } from "../../tr-grid-util/es6/CoralItems.js";
66
67
  * @property {number} rowIndex
67
68
  * @property {string} field
68
69
  * @property {Element} inputElement
70
+ * @property {Element} autoSuggest
69
71
  * @example
70
72
  * var cep = new InCellEditingPlugin();
71
73
  * cep.listen("editorOpened", function(e) {
@@ -157,6 +159,8 @@ var InCellEditingPlugin = function InCellEditingPlugin(options) {
157
159
  t._createTitleEditor = t._createTitleEditor.bind(t);
158
160
  t._onColumnAdded = t._onColumnAdded.bind(t);
159
161
  t._onValueChanged = t._onValueChanged.bind(t);
162
+ t._onAutoSuggestItemSelected = t._onAutoSuggestItemSelected.bind(t);
163
+ t._onAutoSuggestTapStart = t._onAutoSuggestTapStart.bind(t);
160
164
  t._hosts = [];
161
165
 
162
166
  if (options) {
@@ -316,6 +320,11 @@ InCellEditingPlugin.prototype._disablingScroll = false;
316
320
  */
317
321
 
318
322
  InCellEditingPlugin.prototype._uiBlocking = false;
323
+ /** @type {Element}
324
+ * @private
325
+ */
326
+
327
+ InCellEditingPlugin.prototype._autoSuggest = null;
319
328
  /** @type {string}
320
329
  * @private
321
330
  */
@@ -337,6 +346,11 @@ InCellEditingPlugin.prototype._elfVersion = 0;
337
346
  */
338
347
 
339
348
  InCellEditingPlugin._primaryColor = "";
349
+ /** @type {string}
350
+ * @private
351
+ */
352
+
353
+ InCellEditingPlugin._styles = prettifyCss([":host .cell.editing input[type=text]", ["border-style: solid;"]]);
340
354
  /** @private
341
355
  * @param {Object} colors
342
356
  */
@@ -380,6 +394,13 @@ InCellEditingPlugin.prototype._createInputElement = function (tag) {
380
394
  elem.setAttribute("type", "text");
381
395
  }
382
396
 
397
+ if (this._autoSuggest) {
398
+ this._autoSuggest.addEventListener("tapstart", t._onAutoSuggestTapStart); // TODO: remove this function after elf fixed item-select doesn't fire click events
399
+
400
+
401
+ this._autoSuggest.addEventListener("item-select", t._onAutoSuggestItemSelected);
402
+ }
403
+
383
404
  elem.addEventListener("keydown", t._onTextKeyDown, false);
384
405
  elem.addEventListener("keyup", t._onTextKeyUp, false);
385
406
  elem.addEventListener("mousedown", t._stopPropagation, false);
@@ -532,6 +553,13 @@ InCellEditingPlugin.prototype.initialize = function (host, options) {
532
553
  InCellEditingPlugin._uiElementTypesMap["number"] = "ef-input";
533
554
  }
534
555
 
556
+ if (ElfUtil.isHaloTheme()) {
557
+ if (!host._inCellEditingStyles) {
558
+ host._inCellEditingStyles = true;
559
+ injectCss(InCellEditingPlugin._styles, host.getElement());
560
+ }
561
+ }
562
+
535
563
  this.config(options);
536
564
 
537
565
  if (!InCellEditingPlugin._primaryColor) {
@@ -611,6 +639,10 @@ InCellEditingPlugin.prototype.config = function (options) {
611
639
 
612
640
  if (pluginOption["uiBlocking"]) {
613
641
  t._uiBlocking = true;
642
+ }
643
+
644
+ if (pluginOption["autoSuggest"]) {
645
+ t._autoSuggest = pluginOption["autoSuggest"];
614
646
  } // event callback
615
647
 
616
648
 
@@ -1193,6 +1225,18 @@ InCellEditingPlugin.prototype._openEditor = function (e, host, arg) {
1193
1225
 
1194
1226
  if (t._disablingScroll) {
1195
1227
  t._freezeScrolling(host, true);
1228
+ }
1229
+
1230
+ arg["autoSuggest"] = t._autoSuggest;
1231
+
1232
+ if (t._autoSuggest) {
1233
+ if (t._autoSuggest.parentNode !== host.getElement()) {
1234
+ // if we appendChild all time when open editor, events won't work
1235
+ host.getElement().appendChild(t._autoSuggest);
1236
+ }
1237
+
1238
+ t._autoSuggest.attach = inputElement;
1239
+ t._autoSuggest.positionTarget = inputElement; // for re-position of autosuggest
1196
1240
  } // Dispatch an event for user to setup stuff
1197
1241
 
1198
1242
 
@@ -1496,6 +1540,42 @@ InCellEditingPlugin.prototype._onPopupHide = function (e) {
1496
1540
  this.closeRowEditor(false);
1497
1541
  };
1498
1542
  /** @private
1543
+ * @param {Object} event
1544
+ */
1545
+
1546
+
1547
+ InCellEditingPlugin.prototype._onAutoSuggestTapStart = function (event) {
1548
+ // TODO: Remove this function and use _onAutoSuggestItemSelected instead of this function
1549
+ // This WORKAROUND by use "tapstart" event instead of "item-select" event in ef-autosugest
1550
+ var target = event.target;
1551
+
1552
+ if (target.value) {
1553
+ this.setText(target.value);
1554
+
1555
+ this._commitText(true);
1556
+ }
1557
+ };
1558
+ /** @private
1559
+ * @param {Object} event
1560
+ */
1561
+
1562
+
1563
+ InCellEditingPlugin.prototype._onAutoSuggestItemSelected = function (event) {
1564
+ // TODO: Replace This function instead of _onAutoSuggestTapStart when elf fixed item-select.
1565
+ // Currently, we use tapstart instead of item-select, so it's not support other method of item-select
1566
+ // Currently, this function doesn't execute until item-select event fired from auto-suggest
1567
+ var method = event.detail.method;
1568
+ var value = event.detail.target.value;
1569
+
1570
+ if (method === 'enter' || method === 'click') {
1571
+ if (value) {
1572
+ this.setText(value);
1573
+
1574
+ this._commitText(true);
1575
+ }
1576
+ }
1577
+ };
1578
+ /** @private
1499
1579
  * @param {Object} e
1500
1580
  */
1501
1581
 
@@ -1528,6 +1608,12 @@ InCellEditingPlugin.prototype._onTextKeyDown = function (e) {
1528
1608
 
1529
1609
 
1530
1610
  if (e.keyCode === 9) {
1611
+ // For check press tab key when user tab on auto suggest list
1612
+ // When user tab on auto suggest, the focus should be in input and data doesn't commit
1613
+ if (this._autoSuggest && this._autoSuggest.suggestions.length > 0) {
1614
+ this._activeInCellCache.inputElement.focus();
1615
+ }
1616
+
1531
1617
  e.preventDefault(); // stop losing focus
1532
1618
  }
1533
1619
  };
@@ -1558,9 +1644,17 @@ InCellEditingPlugin.prototype._onTextKeyUp = function (e) {
1558
1644
  var cellInfo = this._activePos;
1559
1645
 
1560
1646
  if (this._initialText !== text) {
1561
- this._commitText(true);
1562
-
1563
1647
  e.preventDefault(); // TODO: Check if this is needed
1648
+ // Clear auto suggest and doesn't commit when user tab on auto suggest item
1649
+
1650
+ if (this._autoSuggest && this._autoSuggest.suggestions.length > 0) {
1651
+ this._activeInCellCache.inputElement.focus();
1652
+
1653
+ this._autoSuggest.suggestions = [];
1654
+ return; // when use tabToMove with auto suggest, it shouldn't be effect when doesn't commit text
1655
+ } else {
1656
+ this._commitText(true);
1657
+ }
1564
1658
  } else {
1565
1659
  this._commitText(false);
1566
1660
  }
@@ -1946,6 +2040,15 @@ InCellEditingPlugin.prototype.getBalloonPopup = function () {
1946
2040
  // we should receive column index to return balloonPopup in specific column
1947
2041
  return this._activeInCellCache ? this._activeInCellCache["balloonPopup"] : null;
1948
2042
  };
2043
+ /** Get ef-autosuggest
2044
+ * @public
2045
+ * @return {Element}
2046
+ */
2047
+
2048
+
2049
+ InCellEditingPlugin.prototype.getAutoSuggest = function () {
2050
+ return this._autoSuggest;
2051
+ };
1949
2052
  /**
1950
2053
  * @public
1951
2054
  * @param {boolean=} disabled
@@ -6,15 +6,15 @@ declare class CellWriter extends ElementWrapper {
6
6
 
7
7
  constructor();
8
8
 
9
- public getContent(): Node|null;
9
+ public getContent(): Node|null|null;
10
10
 
11
- public setContent(content: any, opt_tooltip?: boolean): Element;
11
+ public setContent(content: any, opt_tooltip?: boolean): Element|null;
12
12
 
13
13
  public setTooltip(str: string): void;
14
14
 
15
15
  public setTextContent(str: string): void;
16
16
 
17
- public addContent(n: any): Element;
17
+ public addContent(n: any): Element|null;
18
18
 
19
19
  public setStyle(str: string, val: any): void;
20
20
 
@@ -17,7 +17,7 @@ declare namespace GridPrinter {
17
17
 
18
18
  function getPreFlightInfo(grid: any, options?: any): any;
19
19
 
20
- function createPrintElement(grid: any, options?: any): Element;
20
+ function createPrintElement(grid: any, options?: any): Element|null;
21
21
 
22
22
  function print(grid: any): void;
23
23
 
@@ -113,6 +113,27 @@ var _setColumnAlignment = function (tbl, colIndex, alignment) {
113
113
  }
114
114
  };
115
115
 
116
+ /** @private
117
+ * @param {*} grid grid element, currently supports atlas-blotter, ef-grid, tr.CompositeGrid, rt.Grid and Core
118
+ * @return {Object} core grid
119
+ */
120
+ var _getCoreGrid = function (grid) {
121
+ var core = null;
122
+ try {
123
+ if (grid.api) { // ef-grid or atlas-blotter
124
+ core = grid.api.getCoreGrid();
125
+ } else if (grid.getCoreGrid) { // tr.CompositeGrid or rt.Grid
126
+ core = grid.getCoreGrid();
127
+ } else if (grid.getPlugin) { // coreGrid
128
+ core = grid;
129
+ }
130
+ // TODO: support react/angular wrapper
131
+ } catch (err) {
132
+ console.log("Cannot print the given object");
133
+ }
134
+ return core;
135
+ };
136
+
116
137
  /** @namespaces
117
138
  */
118
139
  var GridPrinter = {};
@@ -331,13 +352,15 @@ GridPrinter.getPreFlightInfo = function (grid, options) {
331
352
  };
332
353
 
333
354
  /** @public
334
- * @param {tr.Grid} grid
355
+ * @param {*} grid grid element, currently supports atlas-blotter, ef-grid, tr.CompositeGrid, rt.Grid and Core
335
356
  * @param {Object=} options
336
357
  * @return {Element}
337
358
  */
338
359
  GridPrinter.createPrintElement = function (grid, options) {
339
360
  if (!grid) {
340
361
  grid = GridPrinter._grid;
362
+ } else {
363
+ grid = _getCoreGrid(grid);
341
364
  }
342
365
 
343
366
  if (!grid) {
@@ -624,23 +647,13 @@ GridPrinter._applyCss = function () {
624
647
  };
625
648
 
626
649
  /** @public
627
- * @param {tr.Grid} grid
650
+ * @param {*} grid grid element, currently supports atlas-blotter, ef-grid, tr.CompositeGrid, rt.Grid and Core
628
651
  */
629
652
  GridPrinter.print = function (grid) {
630
653
  var core = null;
631
654
  if (grid) {
632
655
  GridPrinter._applyCss();
633
- try {
634
- if (grid.api) { // ef-grid or atlas-blotter
635
- core = grid.api.getCoreGrid();
636
- } else if (grid.getCoreGrid) { // tr.CompositeGrid or rt.Grid
637
- core = grid.getCoreGrid();
638
- } else if (grid instanceof tr.Grid) {
639
- core = grid;
640
- }
641
- } catch (err) {
642
- console.log("Cannot print the given object");
643
- }
656
+ core = _getCoreGrid(grid);
644
657
  }
645
658
 
646
659
  if (core) {
@@ -29,9 +29,9 @@ declare class PrintTrait {
29
29
 
30
30
  public fixPaperSize(enabled: boolean): void;
31
31
 
32
- public getDocumentElement(): Element|null;
32
+ public getDocumentElement(): Element|null|null;
33
33
 
34
- public getBodyElement(): Element|null;
34
+ public getBodyElement(): Element|null|null;
35
35
 
36
36
  }
37
37
 
@@ -21,9 +21,9 @@ declare class SectionWriter extends ElementWrapper {
21
21
 
22
22
  public setRowCount(val: number): void;
23
23
 
24
- public getCell(colIndex: number, rowIndex: number): CellWriter;
24
+ public getCell(colIndex: number, rowIndex: number): CellWriter|null;
25
25
 
26
- public getCellContent(colIndex: number, rowIndex: number): Element|Node|NodeList;
26
+ public getCellContent(colIndex: number, rowIndex: number): Element|Node|NodeList|null;
27
27
 
28
28
  public setCellContent(colIndex: number, rowIndex: number, data: string|Element|any|any): void;
29
29
 
@@ -47,7 +47,7 @@ declare class SectionWriter extends ElementWrapper {
47
47
 
48
48
  public isColumnActive(colIndex: number): boolean;
49
49
 
50
- public getCellElement(colIndex: number, rowIndex: number): Element;
50
+ public getCellElement(colIndex: number, rowIndex: number): Element|null;
51
51
 
52
52
  }
53
53
 
@@ -1,8 +1,9 @@
1
1
  import { Ext } from "../../tr-grid-util/es6/Ext.js";
2
- import { cloneObject, injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
2
+ import { cloneObject } from "../../tr-grid-util/es6/Util.js";
3
3
  import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
4
4
  import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
5
5
  import Dom from "../../tr-grid-util/es6/Dom.js";
6
+ import { DragUI } from "../../tr-grid-util/es6/DragUI.js";
6
7
 
7
8
  declare namespace RowDraggingPlugin {
8
9
 
@@ -25,8 +26,6 @@ declare class RowDraggingPlugin extends GridPlugin {
25
26
 
26
27
  constructor(options?: RowDraggingPlugin.Options);
27
28
 
28
- public beforeProcessOption(optionName: string, optionValue: any): any;
29
-
30
29
  public hasMultiTableSupport(): boolean;
31
30
 
32
31
  public getName(): string;
@@ -45,7 +44,7 @@ declare class RowDraggingPlugin extends GridPlugin {
45
44
 
46
45
  public cancelDrag(): void;
47
46
 
48
- public getGuideline(): Element;
47
+ public getGuideline(): Element|null;
49
48
 
50
49
  }
51
50