@refinitiv-ui/efx-grid 6.0.4 → 6.0.6

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 (277) 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 +392 -230
  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 +33 -10
  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 +4 -4
  18. package/lib/core/es6/data/SegmentCollection.d.ts +7 -7
  19. package/lib/core/es6/data/WrappedView.d.ts +62 -62
  20. package/lib/core/es6/grid/Core.d.ts +97 -95
  21. package/lib/core/es6/grid/Core.js +180 -26
  22. package/lib/core/es6/grid/ILayoutGrid.d.ts +20 -20
  23. package/lib/core/es6/grid/ILayoutGrid.js +2 -1
  24. package/lib/core/es6/grid/LayoutGrid.d.ts +2 -2
  25. package/lib/core/es6/grid/LayoutGrid.js +18 -10
  26. package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +2 -2
  27. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +14 -3
  28. package/lib/core/es6/grid/components/Cell.d.ts +6 -6
  29. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +2 -2
  30. package/lib/core/es6/grid/components/CellSpans.d.ts +2 -2
  31. package/lib/core/es6/grid/components/Column.d.ts +2 -2
  32. package/lib/core/es6/grid/components/ElementWrapper.d.ts +19 -19
  33. package/lib/core/es6/grid/components/Scrollbar.d.ts +11 -9
  34. package/lib/core/es6/grid/components/Scrollbar.js +13 -0
  35. package/lib/core/es6/grid/components/StretchedCells.js +12 -2
  36. package/lib/core/es6/grid/event/EventDispatcher.d.ts +3 -3
  37. package/lib/core/es6/grid/event/EventListeners.d.ts +5 -5
  38. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +45 -44
  39. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +62 -65
  40. package/lib/core/es6/grid/util/Conflator.d.ts +4 -4
  41. package/lib/core/es6/grid/util/HttpRequest.d.ts +3 -3
  42. package/lib/core/es6/grid/util/PercentBar.d.ts +8 -8
  43. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +8 -8
  44. package/lib/core/es6/grid/util/RangeBar.d.ts +1 -1
  45. package/lib/core/es6/grid/util/RangeBar.js +1 -1
  46. package/lib/core/es6/grid/util/Reverter.d.ts +1 -1
  47. package/lib/core/es6/grid/util/SectionSettings.d.ts +13 -13
  48. package/lib/core/es6/grid/util/SelectionList.d.ts +2 -2
  49. package/lib/core/es6/grid/util/TrackLayout.d.ts +9 -9
  50. package/lib/core/es6/grid/util/Virtualizer.d.ts +3 -3
  51. package/lib/core/es6/grid/util/util.d.ts +6 -4
  52. package/lib/core/es6/grid/util/util.js +16 -91
  53. package/lib/core/es6/tr-grid-theme.js +1 -1
  54. package/lib/filter-dialog/lib/checkbox-list.d.ts +1 -1
  55. package/lib/filter-dialog/lib/filter-dialog.d.ts +1 -1
  56. package/lib/filter-dialog/lib/filter-dialog.js +27 -9
  57. package/lib/filter-dialog/themes/base-checkbox.less +0 -1
  58. package/lib/filter-dialog/themes/base.less +1 -1
  59. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  60. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +2 -2
  61. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  62. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  63. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +2 -2
  64. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  65. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  66. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +2 -2
  67. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  68. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  69. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +2 -2
  70. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  71. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  72. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +2 -2
  73. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  74. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  75. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +2 -2
  76. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  77. package/lib/grid/index.js +1 -1
  78. package/lib/grid/lib/efx-grid.js +7 -44
  79. package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
  80. package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
  81. package/lib/grid/themes/halo/efx-grid.less +5 -5
  82. package/lib/grid/themes/halo/light/efx-grid.js +1 -1
  83. package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
  84. package/lib/row-segmenting/es6/RowSegmenting.d.ts +30 -24
  85. package/lib/row-segmenting/es6/RowSegmenting.js +122 -21
  86. package/lib/rt-grid/dist/rt-grid.js +1354 -435
  87. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  88. package/lib/rt-grid/es6/ColumnDefinition.d.ts +46 -42
  89. package/lib/rt-grid/es6/ColumnDefinition.js +31 -1
  90. package/lib/rt-grid/es6/DataConnector.d.ts +6 -4
  91. package/lib/rt-grid/es6/DataConnector.js +8 -0
  92. package/lib/rt-grid/es6/FieldDefinition.d.ts +2 -2
  93. package/lib/rt-grid/es6/FieldDefinition.js +12 -5
  94. package/lib/rt-grid/es6/Grid.d.ts +106 -91
  95. package/lib/rt-grid/es6/Grid.js +151 -106
  96. package/lib/rt-grid/es6/ReferenceCounter.d.ts +5 -5
  97. package/lib/rt-grid/es6/RowDefSorter.d.ts +2 -2
  98. package/lib/rt-grid/es6/RowDefinition.d.ts +22 -22
  99. package/lib/rt-grid/es6/RowDefinition.js +12 -5
  100. package/lib/rt-grid/es6/SnapshotFiller.d.ts +5 -2
  101. package/lib/rt-grid/es6/SnapshotFiller.js +121 -15
  102. package/lib/rt-grid/es6/StyleLoader.d.ts +1 -1
  103. package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +11 -11
  104. package/lib/tr-grid-cell-selection/es6/CellSelection.js +20 -35
  105. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +18 -16
  106. package/lib/tr-grid-checkbox/es6/Checkbox.js +1 -0
  107. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.d.ts +29 -27
  108. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.js +1 -0
  109. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +28 -14
  110. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +556 -11
  111. package/lib/tr-grid-column-resizing/es6/ColumnResizing.d.ts +2 -2
  112. package/lib/tr-grid-column-resizing/es6/ColumnResizing.js +1 -0
  113. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +2 -3
  114. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +15 -13
  115. package/lib/tr-grid-column-stack/es6/ColumnStack.js +96 -72
  116. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +14 -4
  117. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +314 -114
  118. package/lib/tr-grid-content-wrap/es6/ContentWrap.js +1 -6
  119. package/lib/tr-grid-contextmenu/es6/ContextMenu.js +3 -3
  120. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.d.ts +2 -2
  121. package/lib/tr-grid-contextmenu/es6/MenuItem.d.ts +2 -2
  122. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +2 -1
  123. package/lib/tr-grid-heat-map/es6/HeatMap.js +6 -9
  124. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +5 -2
  125. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +311 -71
  126. package/lib/tr-grid-percent-bar/es6/PercentBar.d.ts +1 -1
  127. package/lib/tr-grid-percent-bar/es6/PercentBar.js +8 -11
  128. package/lib/tr-grid-printer/es6/SectionWriter.js +8 -0
  129. package/lib/tr-grid-range-bar/es6/RangeBar.js +3 -10
  130. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +6 -0
  131. package/lib/tr-grid-row-dragging/es6/RowDragging.js +56 -23
  132. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +4 -3
  133. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +57 -13
  134. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +1 -1
  135. package/lib/tr-grid-row-selection/es6/RowSelection.js +16 -13
  136. package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +0 -2
  137. package/lib/tr-grid-rowcoloring/es6/RowColoring.js +1 -40
  138. package/lib/tr-grid-util/es6/CellPainter.d.ts +30 -30
  139. package/lib/tr-grid-util/es6/CellPainter.js +9 -8
  140. package/lib/tr-grid-util/es6/Conflator.d.ts +4 -4
  141. package/lib/tr-grid-util/es6/CoralItems.d.ts +1 -1
  142. package/lib/tr-grid-util/es6/DateTime.d.ts +10 -10
  143. package/lib/tr-grid-util/es6/Deferred.d.ts +3 -1
  144. package/lib/tr-grid-util/es6/Deferred.js +11 -1
  145. package/lib/tr-grid-util/es6/Delay.d.ts +2 -2
  146. package/lib/tr-grid-util/es6/Dom.d.ts +10 -10
  147. package/lib/tr-grid-util/es6/Dom.js +14 -10
  148. package/lib/tr-grid-util/es6/DragUI.js +5 -2
  149. package/lib/tr-grid-util/es6/ElementObserver.d.ts +2 -2
  150. package/lib/tr-grid-util/es6/ElementObserver.js +6 -3
  151. package/lib/tr-grid-util/es6/ElementWrapper.d.ts +4 -4
  152. package/lib/tr-grid-util/es6/ElfDate.d.ts +5 -5
  153. package/lib/tr-grid-util/es6/ElfDate.js +1 -0
  154. package/lib/tr-grid-util/es6/ElfUtil.d.ts +13 -4
  155. package/lib/tr-grid-util/es6/ElfUtil.js +178 -26
  156. package/lib/tr-grid-util/es6/EventDispatcher.d.ts +5 -5
  157. package/lib/tr-grid-util/es6/ExpanderIcon.d.ts +2 -2
  158. package/lib/tr-grid-util/es6/ExpanderIcon.js +1 -1
  159. package/lib/tr-grid-util/es6/Ext.d.ts +1 -1
  160. package/lib/tr-grid-util/es6/FieldFormatter.d.ts +12 -12
  161. package/lib/tr-grid-util/es6/FieldFormatter.js +1 -1
  162. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +13 -13
  163. package/lib/tr-grid-util/es6/FilterBuilder.js +15 -8
  164. package/lib/tr-grid-util/es6/FilterOperators.d.ts +22 -22
  165. package/lib/tr-grid-util/es6/FilterOperators.js +3 -3
  166. package/lib/tr-grid-util/es6/GridPlugin.d.ts +10 -10
  167. package/lib/tr-grid-util/es6/GridPlugin.js +20 -0
  168. package/lib/tr-grid-util/es6/Icon.d.ts +3 -3
  169. package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +8 -8
  170. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +6 -6
  171. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +19 -19
  172. package/lib/tr-grid-util/es6/NumberFormatter.js +1 -1
  173. package/lib/tr-grid-util/es6/PercentBar.d.ts +19 -19
  174. package/lib/tr-grid-util/es6/Perf.d.ts +4 -4
  175. package/lib/tr-grid-util/es6/Popup.d.ts +36 -33
  176. package/lib/tr-grid-util/es6/Popup.js +19 -1
  177. package/lib/tr-grid-util/es6/RangeBar.d.ts +5 -5
  178. package/lib/tr-grid-util/es6/RequestQueue.d.ts +4 -4
  179. package/lib/tr-grid-util/es6/RowPainter.d.ts +37 -4
  180. package/lib/tr-grid-util/es6/RowPainter.js +199 -76
  181. package/lib/tr-grid-util/es6/SubTable.d.ts +14 -14
  182. package/lib/tr-grid-util/es6/Table.d.ts +25 -25
  183. package/lib/tr-grid-util/es6/TextHighlighter.d.ts +1 -1
  184. package/lib/tr-grid-util/es6/Timer.d.ts +1 -1
  185. package/lib/tr-grid-util/es6/TouchProxy.d.ts +9 -9
  186. package/lib/tr-grid-util/es6/Util.d.ts +12 -12
  187. package/lib/tr-grid-util/es6/formula/ADCService.d.ts +1 -1
  188. package/lib/tr-grid-util/es6/formula/ADCSubscription.d.ts +1 -1
  189. package/lib/tr-grid-util/es6/formula/AdFinService.d.ts +1 -1
  190. package/lib/tr-grid-util/es6/formula/AdFinSubscription.d.ts +1 -1
  191. package/lib/tr-grid-util/es6/formula/Engine.d.ts +9 -9
  192. package/lib/tr-grid-util/es6/formula/Formula.d.ts +4 -4
  193. package/lib/tr-grid-util/es6/formula/IntervalSubscription.d.ts +1 -1
  194. package/lib/tr-grid-util/es6/formula/Realtime.d.ts +3 -3
  195. package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +1 -1
  196. package/lib/tr-grid-util/es6/formula/TSIService.d.ts +1 -1
  197. package/lib/tr-grid-util/es6/formula/TSISubscription.d.ts +1 -1
  198. package/lib/tr-grid-util/es6/formula/VariableToken.d.ts +1 -1
  199. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +1 -1
  200. package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +34 -34
  201. package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +1 -1
  202. package/lib/tr-grid-util/es6/jet/MockJET.d.ts +4 -4
  203. package/lib/tr-grid-util/es6/jet/MockJET.js +12 -4
  204. package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +9 -9
  205. package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +17 -9
  206. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +84 -24
  207. package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +42 -2
  208. package/lib/tr-grid-util/es6/jet/MockRTK.js +55 -16
  209. package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +2 -2
  210. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +99 -1
  211. package/lib/types/es6/Checkbox.d.ts +18 -16
  212. package/lib/types/es6/ColumnFormatting.d.ts +29 -27
  213. package/lib/types/es6/ColumnGrouping.d.ts +28 -14
  214. package/lib/types/es6/ColumnResizing.d.ts +2 -2
  215. package/lib/types/es6/ColumnStack.d.ts +15 -13
  216. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +4 -2
  217. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +0 -1
  218. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +1 -1
  219. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +1 -1
  220. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +1 -5
  221. package/lib/types/es6/CompositeGrid/Plugin.d.ts +3 -1
  222. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +2 -1
  223. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +2 -1
  224. package/lib/types/es6/CompositeGrid/TextWidthCalculator.d.ts +1 -1
  225. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +0 -1
  226. package/lib/types/es6/ConditionalColoring.d.ts +14 -4
  227. package/lib/types/es6/Core/data/ColumnStats.d.ts +3 -3
  228. package/lib/types/es6/Core/data/DataCache.d.ts +9 -9
  229. package/lib/types/es6/Core/data/DataTable.d.ts +28 -28
  230. package/lib/types/es6/Core/data/DataView.d.ts +62 -62
  231. package/lib/types/es6/Core/data/Segment.d.ts +4 -4
  232. package/lib/types/es6/Core/data/SegmentCollection.d.ts +7 -7
  233. package/lib/types/es6/Core/data/WrappedView.d.ts +62 -62
  234. package/lib/types/es6/Core/grid/Core.d.ts +97 -95
  235. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +20 -20
  236. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +2 -2
  237. package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +2 -2
  238. package/lib/types/es6/Core/grid/components/Cell.d.ts +6 -6
  239. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +2 -2
  240. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +2 -2
  241. package/lib/types/es6/Core/grid/components/Column.d.ts +2 -2
  242. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +19 -19
  243. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +11 -9
  244. package/lib/types/es6/Core/grid/event/EventDispatcher.d.ts +3 -3
  245. package/lib/types/es6/Core/grid/event/EventListeners.d.ts +5 -5
  246. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +45 -44
  247. package/lib/types/es6/Core/grid/util/Conflator.d.ts +4 -4
  248. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +3 -3
  249. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +8 -8
  250. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +8 -8
  251. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +1 -1
  252. package/lib/types/es6/Core/grid/util/Reverter.d.ts +1 -1
  253. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +13 -13
  254. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +2 -2
  255. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +9 -9
  256. package/lib/types/es6/Core/grid/util/Virtualizer.d.ts +3 -3
  257. package/lib/types/es6/Core/grid/util/util.d.ts +6 -4
  258. package/lib/types/es6/HeatMap.d.ts +2 -1
  259. package/lib/types/es6/InCellEditing.d.ts +5 -2
  260. package/lib/types/es6/MenuEventAPI.d.ts +2 -2
  261. package/lib/types/es6/MenuItem.d.ts +2 -2
  262. package/lib/types/es6/PercentBar.d.ts +1 -1
  263. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +46 -42
  264. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +6 -4
  265. package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +2 -2
  266. package/lib/types/es6/RealtimeGrid/Grid.d.ts +104 -89
  267. package/lib/types/es6/RealtimeGrid/ReferenceCounter.d.ts +5 -5
  268. package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +2 -2
  269. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +22 -22
  270. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +5 -2
  271. package/lib/types/es6/RealtimeGrid/StyleLoader.d.ts +1 -1
  272. package/lib/types/es6/RowColoring.d.ts +0 -2
  273. package/lib/types/es6/RowDragging.d.ts +6 -0
  274. package/lib/types/es6/RowFiltering.d.ts +4 -3
  275. package/lib/types/es6/RowSegmenting.d.ts +30 -24
  276. package/lib/versions.json +26 -26
  277. package/package.json +2 -2
@@ -14,13 +14,33 @@ var _joinSubKeys = function(subA, subB) {
14
14
  var MockQuotes2 = function() {
15
15
 
16
16
  };
17
+ /** @private
18
+ * @type {*}
19
+ */
20
+ MockQuotes2.prototype._lastSub = null;
21
+ /** @private
22
+ * @type {Object}
23
+ */
24
+ MockQuotes2.prototype._configObj = null;
17
25
 
26
+ /** @public
27
+ * @param {Object=} options
28
+ */
29
+ MockQuotes2.prototype.config = function(options) {
30
+ if(options) {
31
+ this._configObj = options;
32
+ }
33
+ if(this._lastSub && this._configObj) {
34
+ this._lastSub.config(this._configObj);
35
+ }
36
+ };
18
37
  /** @public
19
38
  * @param {Object=} options
20
39
  * @return {MockSubscriptions}
21
40
  */
22
41
  MockQuotes2.prototype.create = function(options) {
23
- return new MockSubscriptions(options);
42
+ this._lastSub = new MockSubscriptions(options || this._configObj);
43
+ return this._lastSub;
24
44
  };
25
45
 
26
46
  /** @public
@@ -30,30 +50,40 @@ MockQuotes2.prototype.isSkipHeaderSupported = function() {
30
50
  return true;
31
51
  };
32
52
 
53
+ /** @public
54
+ * @param {number=} min
55
+ * @param {number=} max
56
+ */
57
+ MockQuotes2.prototype.setUpdateInterval = function(min, max) {
58
+ if(this._lastSub) {
59
+ this._lastSub.setUpdateInterval(min, max);
60
+ } else {
61
+ if(!this._configObj) {
62
+ this._configObj = {};
63
+ }
64
+ this._configObj.minInterval = min;
65
+ this._configObj.maxInterval = max;
66
+ }
67
+ };
68
+ /** @public
69
+ * @param {number=} percent
70
+ */
71
+ MockQuotes2.prototype.setPercentageDataUpdate = function(percent) {
72
+ if(this._lastSub) {
73
+ this._lastSub.setPercentageDataUpdate(percent);
74
+ } else {
75
+ if(!this._configObj) {
76
+ this._configObj = {};
77
+ }
78
+ this._configObj.percentageDataUpdate = percent;
79
+ }
80
+ };
81
+
33
82
 
34
83
  /** @constructor
35
84
  * @param {Object=} options
36
85
  */
37
86
  var MockSubscriptions = function(options) {
38
- if(options) {
39
- if(typeof options.minInterval === "number") {
40
- this._minInterval = options.minInterval;
41
- if(this._minInterval > this._maxInterval) {
42
- this._maxInterval = this._minInterval;
43
- }
44
- }
45
-
46
- if(typeof options.maxInterval === "number") {
47
- this._maxInterval = options.maxInterval;
48
- if(this._minInterval > this._maxInterval) {
49
- this._minInterval = this._maxInterval;
50
- }
51
- }
52
-
53
- if(typeof options.percentageDataUpdate === "number") {
54
- this._percentageDataUpdate = options.percentageDataUpdate / 100;
55
- }
56
- }
57
87
  this._onSubscriptionResponse = this._onSubscriptionResponse.bind(this);
58
88
 
59
89
  this._subMap = {};
@@ -61,21 +91,51 @@ var MockSubscriptions = function(options) {
61
91
  this._fields = {};
62
92
  this._events = {};
63
93
  this._dataGen = new DataGenerator();
94
+
95
+ this.config(options);
64
96
  };
65
97
 
66
- /* @private
98
+ /** @private
67
99
  * @type {number}
68
100
  */
69
101
  MockSubscriptions.prototype._minInterval = 750;
70
- /* @private
102
+ /** @private
71
103
  * @type {number}
72
104
  */
73
105
  MockSubscriptions.prototype._maxInterval = 850;
74
- /* @private
75
- * @type {float}
106
+ /** @private
107
+ * @type {number}
76
108
  */
77
109
  MockSubscriptions.prototype._percentageDataUpdate = 0.1; // 10% by default
78
110
 
111
+ /** @public
112
+ * @param {Object=} options
113
+ */
114
+ MockSubscriptions.prototype.config = function(options) {
115
+ if(!options) {
116
+ return;
117
+ }
118
+ var num = options.minInterval;
119
+ if(typeof num === "number") {
120
+ this._minInterval = num;
121
+ if(this._minInterval > this._maxInterval) {
122
+ this._maxInterval = this._minInterval;
123
+ }
124
+ }
125
+
126
+ num = options.maxInterval;
127
+ if(typeof num === "number") {
128
+ this._maxInterval = num;
129
+ if(this._minInterval > this._maxInterval) {
130
+ this._minInterval = this._maxInterval;
131
+ }
132
+ }
133
+
134
+ num = options.percentageDataUpdate;
135
+ if(typeof num === "number") {
136
+ this._percentageDataUpdate = num / 100;
137
+ }
138
+ };
79
139
  /** @public
80
140
  * @param {number=} min
81
141
  * @param {number=} max
@@ -1,8 +1,48 @@
1
- import { DataGrid, setInvalidFields } from "./mockDataAPI.js";
1
+ import { DataGrid, Adc, setInvalidFields } from "./mockDataAPI.js";
2
2
  import { MockQuotes2 } from "./MockQuotes2.js";
3
3
  import { cloneObject } from "../Util.js";
4
4
 
5
- declare function init(opt_obj?: any): MockRTK|null;
5
+ declare class MockRTKData {
6
+
7
+ constructor();
8
+
9
+ public static readonly DataGrid: any;
10
+
11
+ public static readonly Adc: any;
12
+
13
+ public static readonly Data: any;
14
+
15
+ public static request(payload: any): any;
16
+
17
+ public static request(payload: any): any;
18
+
19
+ public static setInvalidFields(payload: any): any;
20
+
21
+ }
22
+
23
+ declare class MockRTK {
24
+
25
+ constructor();
26
+
27
+ public static readonly DataGrid: any;
28
+
29
+ public static readonly Adc: any;
30
+
31
+ public static readonly Quotes: MockQuotes2|null;
32
+
33
+ public static readonly Data: any;
34
+
35
+ public static request(payload: any): any;
36
+
37
+ public static request(payload: any): any;
38
+
39
+ public static setInvalidFields(payload: any): any;
40
+
41
+ public static init(options?: any): MockRTK|null;
42
+
43
+ public static ready(options?: any): MockRTK|null;
44
+
45
+ }
6
46
 
7
47
  export default MockRTK;
8
48
  export { MockRTK };
@@ -1,43 +1,82 @@
1
- import { DataGrid, setInvalidFields } from "./mockDataAPI.js";
1
+ import { DataGrid, Adc, setInvalidFields } from "./mockDataAPI.js";
2
2
  import { MockQuotes2 } from "./MockQuotes2.js";
3
3
  import { cloneObject } from "../Util.js";
4
4
 
5
- var RTKDataGrid = cloneObject(DataGrid);
5
+ /** @constructor */
6
+ var MockRTKData = {};
6
7
 
8
+ /** @type {Object}
9
+ * @public
10
+ */
11
+ MockRTKData.DataGrid = cloneObject(DataGrid);
7
12
  /** @public
8
13
  * @param {Object} payload
9
14
  * @return {*}
10
15
  */
11
- RTKDataGrid.request = function (payload) {
16
+ MockRTKData.DataGrid.request = function (payload) {
12
17
  var p = DataGrid.request(payload);
13
18
  return p.then(function (res) {
14
19
  return JSON.parse(res);
15
20
  });
16
21
  };
17
22
 
18
- var MockRTK = {
19
- Quotes: new MockQuotes2(),
20
- Data: {
21
- DataGrid: RTKDataGrid,
22
- setInvalidFields: setInvalidFields
23
- },
24
- init: init,
25
- ready: function () {
26
- return this.init();
27
- }
23
+ /** @type {Object}
24
+ * @public
25
+ */
26
+ MockRTKData.Adc = cloneObject(Adc);
27
+ /** @public
28
+ * @param {Object} payload
29
+ * @return {*}
30
+ */
31
+ MockRTKData.Adc.request = function (payload) {
32
+ var p = Adc.request(payload);
33
+ return p.then(function (res) {
34
+ return JSON.parse(res);
35
+ });
28
36
  };
29
37
 
30
38
  /** @public
31
- * @param {Object=} opt_obj
39
+ * @function
40
+ * @param {Object} payload
41
+ * @return {*}
42
+ */
43
+ MockRTKData.setInvalidFields = setInvalidFields;
44
+
45
+
46
+ /** @constructor */
47
+ var MockRTK = {};
48
+
49
+ /** @type {MockQuotes2}
50
+ * @public
51
+ */
52
+ MockRTK.Quotes = new MockQuotes2();
53
+ /** @type {Object}
54
+ * @public
55
+ */
56
+ MockRTK.Data = MockRTKData;
57
+
58
+ /** @public
59
+ * @param {Object=} options
32
60
  * @return {MockRTK}
33
61
  */
34
- function init(opt_obj) {
62
+ MockRTK.init = function (options) {
63
+ if(options) {
64
+ MockRTK.Quotes.config(options);
65
+ }
66
+
35
67
  return new Promise(function (resolve, reject) {
36
68
  setTimeout(function(){
37
69
  resolve(MockRTK);
38
70
  }, 300);
39
71
  });
40
- }
72
+ };
73
+ /** @public
74
+ * @param {Object=} options
75
+ * @return {MockRTK}
76
+ */
77
+ MockRTK.ready = function (options) {
78
+ return MockRTK.init(options);
79
+ };
41
80
 
42
81
  export default MockRTK;
43
82
  export { MockRTK };
@@ -4,8 +4,8 @@ declare namespace DataGrid {
4
4
 
5
5
  }
6
6
 
7
- declare function setInvalidFields(fields: (string)[]|string): void;
7
+ declare function setInvalidFields(fields: (string)[]|string|null): void;
8
8
 
9
9
  declare function mockDataAPI(dataType: string): Promise<any>|null;
10
10
 
11
- export { mockDataAPI, DataGrid, setInvalidFields };
11
+ export { mockDataAPI, DataGrid, Adc, setInvalidFields };
@@ -31,6 +31,11 @@ var dataGen = new DataGenerator();
31
31
  */
32
32
  var DataGrid = {};
33
33
 
34
+ /** @private
35
+ * @namespace
36
+ */
37
+ var Adc = {};
38
+
34
39
  /** @private
35
40
  * @function
36
41
  * @param {Object} payload
@@ -109,6 +114,97 @@ DataGrid.request = function (payload, mockResponse) {
109
114
  }));
110
115
  };
111
116
 
117
+ /** @private
118
+ * @function
119
+ * @param {Object} payload
120
+ * @param {Object=} mockResponse
121
+ * @return {Promise}
122
+ */
123
+ Adc.request = function (payload, mockResponse) {
124
+ if (mockResponse) {
125
+ return Promise.resolve(JSON.stringify(mockResponse));
126
+ }
127
+
128
+ var i, f, len, row;
129
+ var identifiers = payload.identifiers;
130
+ var formula = payload.formula.split(",");
131
+ var fields = [];
132
+
133
+ // _invalidFieldDict is a dictionary of non exist field
134
+ // so we must remove invalid field to make "mocking api" return result more like a "real api".
135
+ var invalidDict = _invalidFieldDict;
136
+ for (i = 0; i < formula.length; i++) {
137
+ f = formula[i];
138
+ if (!invalidDict[f]) {
139
+ fields.push(f);
140
+ }
141
+ }
142
+
143
+ // build row header
144
+ var rows = [];
145
+ rows[0] = [{
146
+ "h": true,
147
+ "i": "instrument",
148
+ "v": "Instrument"
149
+ }];
150
+ for (i = 0; i < fields.length; i++) {
151
+ f = fields[i];
152
+ rows[0].push({
153
+ "h": true,
154
+ "r": f.toUpperCase()
155
+ // "v": "Price Close", // Doesn't use
156
+ // "p": "I_TRP_PH_PriceClose" // Doesn't use this property
157
+ });
158
+ }
159
+
160
+ // build data
161
+ var rowMap = {};
162
+
163
+ len = identifiers.length;
164
+ var rowData = dataGen.generate(fields, len);
165
+ for (i = 0; i < len; ++i) {
166
+ var inst = identifiers[i];
167
+ row = rowMap[inst];
168
+ if (!row) {
169
+ row = rowMap[inst] = rowData[i];
170
+ row.unshift(inst); // prepend instrument on each row
171
+ }
172
+ rows.push(row);
173
+ }
174
+
175
+ // There is a chance that rtk will return multiple row data per instrument
176
+ // so we must create mock up for this case
177
+ if (rows.length > 0) {
178
+ var chance = dataGen.randInt(1, 10);
179
+ if (chance <= 3) { // chance 30%
180
+ var pos = dataGen.randInt(0, rows.length - 1); // random row pos
181
+ row = rows[pos];
182
+ len = row.length;
183
+ var mockupRow = new Array(len);
184
+ mockupRow[0] = row[0]; // 1st index is for instrument
185
+ for (i = 1; i < len; i++) {
186
+ mockupRow[i] = ''; // real case will return null or empty string
187
+ }
188
+ rows.splice(pos + 1, 0, mockupRow);
189
+ }
190
+ }
191
+
192
+ /*
193
+ response type is :
194
+ {
195
+ cols: number,
196
+ faults: Array<obj>,
197
+ rows: Array<obj>,
198
+ status: string
199
+ }
200
+ Currently, we use only the rows property for cache ADC data
201
+ */
202
+ return Promise.resolve(JSON.stringify({
203
+ rows: rows
204
+ // TODO : supports faults property
205
+ }));
206
+ };
207
+
112
208
  /** @public
113
209
  * @function
114
210
  * @param {string} dataType
@@ -117,6 +213,8 @@ DataGrid.request = function (payload, mockResponse) {
117
213
  var mockDataAPI = function (dataType) {
118
214
  if (dataType === "datagrid") {
119
215
  return Promise.resolve(DataGrid);
216
+ } else if(dataType === "adc") {
217
+ return Promise.resolve(Adc);
120
218
  } else {
121
219
  return Promise.reject(dataType + " is not supported.");
122
220
  }
@@ -128,4 +226,4 @@ var mockDataAPI = function (dataType) {
128
226
  */
129
227
  mockDataAPI.setInvalidFields = setInvalidFields;
130
228
 
131
- export { mockDataAPI, DataGrid, setInvalidFields };
229
+ export { mockDataAPI, DataGrid, Adc, setInvalidFields };
@@ -6,25 +6,25 @@ import {injectCss, prettifyCss} from "../../tr-grid-util/es6/Util.js";
6
6
  declare namespace CheckboxPlugin {
7
7
 
8
8
  type Options = {
9
- rowSelection?: boolean,
10
- field?: string,
11
- disablingField?: string,
12
- checkboxCreated?: ((...params: any[]) => any),
13
- checkboxBinding?: ((...params: any[]) => any),
14
- clicked?: ((...params: any[]) => any),
15
- width?: number,
16
- topCheckboxHandler?: boolean
9
+ rowSelection?: boolean|null,
10
+ field?: string|null,
11
+ disablingField?: string|null,
12
+ checkboxCreated?: ((...params: any[]) => any)|null,
13
+ checkboxBinding?: ((...params: any[]) => any)|null,
14
+ clicked?: ((...params: any[]) => any)|null,
15
+ width?: number|null,
16
+ topCheckboxHandler?: boolean|null
17
17
  };
18
18
 
19
19
  type ColumnOptions = {
20
- checkboxColumn?: boolean
20
+ checkboxColumn?: boolean|null
21
21
  };
22
22
 
23
23
  }
24
24
 
25
25
  declare class CheckboxPlugin extends GridPlugin {
26
26
 
27
- constructor(options?: CheckboxPlugin.Options);
27
+ constructor(options?: CheckboxPlugin.Options|null);
28
28
 
29
29
  public getName(): string;
30
30
 
@@ -52,17 +52,19 @@ declare class CheckboxPlugin extends GridPlugin {
52
52
 
53
53
  public setAllCheckStates(checked: boolean): void;
54
54
 
55
- public selectAllPages(checked?: boolean): void;
55
+ public selectAllPages(checked?: boolean|null): void;
56
56
 
57
- public disableCheckbox(rowRef: number|string, disabled: boolean): void;
57
+ public disableCheckbox(rowRef: number|string|null, disabled: boolean): void;
58
58
 
59
- public enableCheckbox(rowRef: number|string): void;
59
+ public enableCheckbox(rowRef: number|string|null): void;
60
60
 
61
- public getAllCheckedIndices(sectionRef: any, state?: string): (number)[];
61
+ public getAllCheckedIndices(sectionRef: any, state?: string|null): (number)[];
62
62
 
63
- public getFilteredSelectedData(field?: string): any[];
63
+ public getFilteredSelectedData(field?: string|null): any[];
64
64
 
65
- public getAllSelectedData(field?: string): any[];
65
+ public getAllSelectedData(field?: string|null): any[];
66
+
67
+ public getSelectedRowData(field?: string|null): any[];
66
68
 
67
69
  }
68
70
 
@@ -6,48 +6,48 @@ import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
6
6
  declare namespace ColumnFormattingPlugin {
7
7
 
8
8
  type HeatmapOption = {
9
- midPoint?: string,
10
- mode?: string
9
+ midPoint?: string|null,
10
+ mode?: string|null
11
11
  };
12
12
 
13
13
  type ConditionalColorOption = {
14
- conditions?: (any)[],
15
- field?: string
14
+ conditions?: (any)[]|null,
15
+ field?: string|null
16
16
  };
17
17
 
18
18
  type BarOption = {
19
- useMovementColor?: boolean,
20
- showValues?: boolean,
21
- alignment?: string,
22
- field?: string,
23
- textHidden?: boolean,
24
- textWidth?: (number|string),
25
- barColor?: string,
26
- padding?: number,
27
- percentageLabel?: boolean,
28
- autoTextSizing?: boolean,
29
- autoFitting?: boolean,
30
- zeroValueHidden?: boolean
19
+ useMovementColor?: boolean|null,
20
+ showValues?: boolean|null,
21
+ alignment?: string|null,
22
+ field?: string|null,
23
+ textHidden?: boolean|null,
24
+ textWidth?: (number|string)|null,
25
+ barColor?: string|null,
26
+ padding?: number|null,
27
+ percentageLabel?: boolean|null,
28
+ autoTextSizing?: boolean|null,
29
+ autoFitting?: boolean|null,
30
+ zeroValueHidden?: boolean|null
31
31
  };
32
32
 
33
33
  type DisplayStyleOption = {
34
- alignment?: string,
35
- mode?: string,
36
- bar?: ColumnFormattingPlugin.BarOption,
37
- conditionalColor?: ColumnFormattingPlugin.ConditionalColorOption,
38
- heatmap?: ColumnFormattingPlugin.HeatmapOption,
34
+ alignment?: string|null,
35
+ mode?: string|null,
36
+ bar?: ColumnFormattingPlugin.BarOption|null,
37
+ conditionalColor?: ColumnFormattingPlugin.ConditionalColorOption|null,
38
+ heatmap?: ColumnFormattingPlugin.HeatmapOption|null,
39
39
  general?: any
40
40
  };
41
41
 
42
42
  type ColumnFormatOptions = {
43
43
  valueFormatTab?: TextFormatting.FormatOptions,
44
- displayStyleTab?: ColumnFormattingPlugin.DisplayStyleOption,
44
+ displayStyleTab?: ColumnFormattingPlugin.DisplayStyleOption|null,
45
45
  colorTextTab?: any,
46
- fieldDataType?: string
46
+ fieldDataType?: string|null
47
47
  };
48
48
 
49
49
  type ColumnOptions = {
50
- fieldDataType?: string
50
+ fieldDataType?: string|null
51
51
  };
52
52
 
53
53
  }
@@ -60,7 +60,9 @@ declare class ColumnFormattingPlugin extends GridPlugin {
60
60
 
61
61
  public getConfigObject(gridOptions?: any): any;
62
62
 
63
- public getFieldList(): (string)[];
63
+ public getField(colIndex: number): string;
64
+
65
+ public getFieldList(): (string)[]|null;
64
66
 
65
67
  public getColumnCount(): number;
66
68
 
@@ -68,7 +70,7 @@ declare class ColumnFormattingPlugin extends GridPlugin {
68
70
 
69
71
  public getColumnFormatOptions(colIndex: number): ColumnFormattingPlugin.ColumnFormatOptions;
70
72
 
71
- public setColumnFormatOptions(colIndex: number, options?: ColumnFormattingPlugin.ColumnFormatOptions): void;
73
+ public setColumnFormatOptions(colIndex: number, options?: ColumnFormattingPlugin.ColumnFormatOptions|null): void;
72
74
 
73
75
  public setColumnAlignment(colIndex: number, align: string): void;
74
76
 
@@ -78,7 +80,7 @@ declare class ColumnFormattingPlugin extends GridPlugin {
78
80
 
79
81
  public isColumnHidden(colIndex: number): boolean;
80
82
 
81
- public hideColumn(colIndex: number, opt_bool?: boolean): void;
83
+ public hideColumn(colIndex: number, opt_bool?: boolean|null): void;
82
84
 
83
85
  public showAllColumns(): void;
84
86
 
@@ -4,24 +4,24 @@ import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
4
4
 
5
5
  declare namespace ColumnGroupingPlugin {
6
6
 
7
- type Options = (ColumnGroupingPlugin.GroupDefinition)[];
7
+ type Options = (ColumnGroupingPlugin.GroupDefinition)[]|null;
8
8
 
9
- type GroupDefinitions = (ColumnGroupingPlugin.GroupDefinition)[];
9
+ type GroupDefinitions = (ColumnGroupingPlugin.GroupDefinition)[]|null;
10
10
 
11
11
  type GroupDefinition = {
12
12
  id: string,
13
13
  name: string,
14
- tooltip?: (boolean|string),
15
- children: (string)[],
16
- alignment?: string,
17
- render?: ((...params: any[]) => any)
14
+ tooltip?: (boolean|string)|null,
15
+ children: (string)[]|null,
16
+ alignment?: string|null,
17
+ render?: ((...params: any[]) => any)|null
18
18
  };
19
19
 
20
20
  }
21
21
 
22
22
  declare class ColumnGroupingPlugin extends GridPlugin {
23
23
 
24
- constructor(options?: ColumnGroupingPlugin.Options);
24
+ constructor(options?: ColumnGroupingPlugin.Options|null);
25
25
 
26
26
  public beforeProcessOption(optionName: string, optionValue: any): any;
27
27
 
@@ -37,23 +37,37 @@ declare class ColumnGroupingPlugin extends GridPlugin {
37
37
 
38
38
  public addColumnToGroup(column: any, groupId: string, colIndex: number): void;
39
39
 
40
- public addGroup(groupDef: ColumnGroupingPlugin.GroupDefinition): boolean;
40
+ public addGroup(groupDef: ColumnGroupingPlugin.GroupDefinition|null): boolean;
41
41
 
42
- public addColumnGrouping(groupDef: ColumnGroupingPlugin.GroupDefinition): void;
42
+ public addColumnGrouping(groupDef: ColumnGroupingPlugin.GroupDefinition|null): void;
43
43
 
44
44
  public removeGroup(groupId: string): any;
45
45
 
46
- public setGroupDefinitions(groupDefs: ColumnGroupingPlugin.GroupDefinitions): void;
46
+ public setGroupDefinitions(groupDefs: ColumnGroupingPlugin.GroupDefinitions|null): void;
47
47
 
48
48
  public getGroupDefinitions(): ColumnGroupingPlugin.GroupDefinitions;
49
49
 
50
- public setGroupDefinition(groupId: string, newDef: ColumnGroupingPlugin.GroupDefinition): void;
50
+ public setGroupDefinition(groupId: string, newDef: ColumnGroupingPlugin.GroupDefinition|null): void;
51
51
 
52
- public getGroupDefinition(groupId: number): ColumnGroupingPlugin.GroupDefinition;
52
+ public getGroupDefinition(groupId: string): ColumnGroupingPlugin.GroupDefinition|null;
53
53
 
54
- public setGroupChildren(groupId: string, newChildList: (string)[]): void;
54
+ public setGroupChildren(groupId: string, newChildList: (string)[]|null): void;
55
55
 
56
- public getGroupChildren(groupId: number): ColumnGroupingPlugin.GroupDefinition;
56
+ public getGroupChildren(groupId: string): (string)[]|null;
57
+
58
+ public getChildColumnIndices(groupId: string): (number)[]|null;
59
+
60
+ public getGroupIds(colRef: string|number|null): (string)[]|null;
61
+
62
+ public getMaxGroupLevel(): number;
63
+
64
+ public getGroupLevel(groupId: string): number;
65
+
66
+ public getCellInfo(e: Element|Event|MouseEvent|null): any;
67
+
68
+ public moveColumnIntoGroup(from: number|string|null, to: number, groupId: string): void;
69
+
70
+ public setColumnParent(columnIndex: number|string|null, groupId: string): void;
57
71
 
58
72
  }
59
73
 
@@ -50,11 +50,11 @@ declare class ColumnResizingPlugin extends GridPlugin {
50
50
 
51
51
  public setAllColumnWidths(colWidth: number, scalability?: boolean): boolean;
52
52
 
53
- public getColumnWidths(): (number)[];
53
+ public getColumnWidths(): (number)[]|null;
54
54
 
55
55
  public resetAllColumnsToDefaultWidth(): boolean;
56
56
 
57
- public getColumnSizeStates(): (any)[];
57
+ public getColumnSizeStates(): (any)[]|null;
58
58
 
59
59
  public setColumnSizeStates(columns: (any)[]|string): void;
60
60