@refinitiv-ui/efx-grid 6.0.0-next.0

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 (837) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +61 -0
  3. package/lib/column-format-dialog/index.d.ts +1 -0
  4. package/lib/column-format-dialog/index.js +1 -0
  5. package/lib/column-format-dialog/lib/column-format-dialog.d.ts +64 -0
  6. package/lib/column-format-dialog/lib/column-format-dialog.js +2713 -0
  7. package/lib/column-format-dialog/lib/locale/translation-de.d.ts +7 -0
  8. package/lib/column-format-dialog/lib/locale/translation-de.js +94 -0
  9. package/lib/column-format-dialog/lib/locale/translation-en.d.ts +7 -0
  10. package/lib/column-format-dialog/lib/locale/translation-en.js +94 -0
  11. package/lib/column-format-dialog/lib/locale/translation-ja.d.ts +7 -0
  12. package/lib/column-format-dialog/lib/locale/translation-ja.js +94 -0
  13. package/lib/column-format-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  14. package/lib/column-format-dialog/lib/locale/translation-zh-hant.js +94 -0
  15. package/lib/column-format-dialog/lib/locale/translation-zh.d.ts +7 -0
  16. package/lib/column-format-dialog/lib/locale/translation-zh.js +94 -0
  17. package/lib/column-format-dialog/lib/locale/translation.d.ts +11 -0
  18. package/lib/column-format-dialog/lib/locale/translation.js +18 -0
  19. package/lib/column-format-dialog/lib/preview-table.d.ts +151 -0
  20. package/lib/column-format-dialog/lib/preview-table.js +995 -0
  21. package/lib/column-format-dialog/themes/base.less +429 -0
  22. package/lib/column-format-dialog/themes/elemental/column-format-dialog.less +1 -0
  23. package/lib/column-format-dialog/themes/elemental/dark/column-format-dialog.js +4 -0
  24. package/lib/column-format-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  25. package/lib/column-format-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
  26. package/lib/column-format-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
  27. package/lib/column-format-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
  28. package/lib/column-format-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  29. package/lib/column-format-dialog/themes/elemental/dark.js +16 -0
  30. package/lib/column-format-dialog/themes/elemental/defaults.less +1 -0
  31. package/lib/column-format-dialog/themes/elemental/index.less +5 -0
  32. package/lib/column-format-dialog/themes/elemental/light/column-format-dialog.js +4 -0
  33. package/lib/column-format-dialog/themes/elemental/light/css/native-elements.css +0 -0
  34. package/lib/column-format-dialog/themes/elemental/light/es5/all-elements.js +2 -0
  35. package/lib/column-format-dialog/themes/elemental/light/imports/all-elements.js +1 -0
  36. package/lib/column-format-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
  37. package/lib/column-format-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  38. package/lib/column-format-dialog/themes/elemental/light.js +16 -0
  39. package/lib/column-format-dialog/themes/halo/column-format-dialog.less +6 -0
  40. package/lib/column-format-dialog/themes/halo/dark/column-format-dialog.js +4 -0
  41. package/lib/column-format-dialog/themes/halo/dark/css/native-elements.css +0 -0
  42. package/lib/column-format-dialog/themes/halo/dark/es5/all-elements.js +2 -0
  43. package/lib/column-format-dialog/themes/halo/dark/imports/all-elements.js +1 -0
  44. package/lib/column-format-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
  45. package/lib/column-format-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  46. package/lib/column-format-dialog/themes/halo/dark.js +16 -0
  47. package/lib/column-format-dialog/themes/halo/defaults.less +1 -0
  48. package/lib/column-format-dialog/themes/halo/index.less +5 -0
  49. package/lib/column-format-dialog/themes/halo/light/column-format-dialog.js +4 -0
  50. package/lib/column-format-dialog/themes/halo/light/css/native-elements.css +0 -0
  51. package/lib/column-format-dialog/themes/halo/light/es5/all-elements.js +2 -0
  52. package/lib/column-format-dialog/themes/halo/light/imports/all-elements.js +1 -0
  53. package/lib/column-format-dialog/themes/halo/light/imports/custom-elements.js +1 -0
  54. package/lib/column-format-dialog/themes/halo/light/imports/native-elements.js +0 -0
  55. package/lib/column-format-dialog/themes/halo/light.js +16 -0
  56. package/lib/column-format-dialog/themes/luna/column-format-dialog.less +1 -0
  57. package/lib/column-format-dialog/themes/luna/default/column-format-dialog.js +4 -0
  58. package/lib/column-format-dialog/themes/luna/default/css/native-elements.css +0 -0
  59. package/lib/column-format-dialog/themes/luna/default/es5/all-elements.js +2 -0
  60. package/lib/column-format-dialog/themes/luna/default/imports/all-elements.js +1 -0
  61. package/lib/column-format-dialog/themes/luna/default/imports/custom-elements.js +1 -0
  62. package/lib/column-format-dialog/themes/luna/default/imports/native-elements.js +0 -0
  63. package/lib/column-format-dialog/themes/luna/defaults.less +1 -0
  64. package/lib/column-format-dialog/themes/luna/index.less +5 -0
  65. package/lib/column-format-dialog/themes/solar/charcoal/column-format-dialog.js +4 -0
  66. package/lib/column-format-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  67. package/lib/column-format-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
  68. package/lib/column-format-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
  69. package/lib/column-format-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
  70. package/lib/column-format-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  71. package/lib/column-format-dialog/themes/solar/charcoal.js +16 -0
  72. package/lib/column-format-dialog/themes/solar/column-format-dialog.less +6 -0
  73. package/lib/column-format-dialog/themes/solar/defaults.less +1 -0
  74. package/lib/column-format-dialog/themes/solar/index.less +5 -0
  75. package/lib/column-format-dialog/themes/solar/pearl/column-format-dialog.js +4 -0
  76. package/lib/column-format-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  77. package/lib/column-format-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
  78. package/lib/column-format-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
  79. package/lib/column-format-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
  80. package/lib/column-format-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  81. package/lib/column-format-dialog/themes/solar/pearl.js +16 -0
  82. package/lib/column-selection-dialog/index.d.ts +1 -0
  83. package/lib/column-selection-dialog/index.js +1 -0
  84. package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +41 -0
  85. package/lib/column-selection-dialog/lib/column-selection-dialog.js +1410 -0
  86. package/lib/column-selection-dialog/lib/locale/translation-de.d.ts +7 -0
  87. package/lib/column-selection-dialog/lib/locale/translation-de.js +19 -0
  88. package/lib/column-selection-dialog/lib/locale/translation-en.d.ts +7 -0
  89. package/lib/column-selection-dialog/lib/locale/translation-en.js +19 -0
  90. package/lib/column-selection-dialog/lib/locale/translation-ja.d.ts +7 -0
  91. package/lib/column-selection-dialog/lib/locale/translation-ja.js +19 -0
  92. package/lib/column-selection-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  93. package/lib/column-selection-dialog/lib/locale/translation-zh-hant.js +19 -0
  94. package/lib/column-selection-dialog/lib/locale/translation-zh.d.ts +7 -0
  95. package/lib/column-selection-dialog/lib/locale/translation-zh.js +19 -0
  96. package/lib/column-selection-dialog/lib/locale/translation.d.ts +11 -0
  97. package/lib/column-selection-dialog/lib/locale/translation.js +18 -0
  98. package/lib/column-selection-dialog/themes/base.less +189 -0
  99. package/lib/column-selection-dialog/themes/elemental/column-selection-dialog.less +1 -0
  100. package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +4 -0
  101. package/lib/column-selection-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  102. package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
  103. package/lib/column-selection-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
  104. package/lib/column-selection-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
  105. package/lib/column-selection-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  106. package/lib/column-selection-dialog/themes/elemental/dark.js +6 -0
  107. package/lib/column-selection-dialog/themes/elemental/defaults.less +1 -0
  108. package/lib/column-selection-dialog/themes/elemental/index.less +5 -0
  109. package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +4 -0
  110. package/lib/column-selection-dialog/themes/elemental/light/css/native-elements.css +0 -0
  111. package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +2 -0
  112. package/lib/column-selection-dialog/themes/elemental/light/imports/all-elements.js +1 -0
  113. package/lib/column-selection-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
  114. package/lib/column-selection-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  115. package/lib/column-selection-dialog/themes/elemental/light.js +6 -0
  116. package/lib/column-selection-dialog/themes/halo/column-selection-dialog.less +22 -0
  117. package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +4 -0
  118. package/lib/column-selection-dialog/themes/halo/dark/css/native-elements.css +0 -0
  119. package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +2 -0
  120. package/lib/column-selection-dialog/themes/halo/dark/imports/all-elements.js +1 -0
  121. package/lib/column-selection-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
  122. package/lib/column-selection-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  123. package/lib/column-selection-dialog/themes/halo/dark.js +6 -0
  124. package/lib/column-selection-dialog/themes/halo/defaults.less +1 -0
  125. package/lib/column-selection-dialog/themes/halo/index.less +6 -0
  126. package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +4 -0
  127. package/lib/column-selection-dialog/themes/halo/light/css/native-elements.css +0 -0
  128. package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +2 -0
  129. package/lib/column-selection-dialog/themes/halo/light/imports/all-elements.js +1 -0
  130. package/lib/column-selection-dialog/themes/halo/light/imports/custom-elements.js +1 -0
  131. package/lib/column-selection-dialog/themes/halo/light/imports/native-elements.js +0 -0
  132. package/lib/column-selection-dialog/themes/halo/light.js +6 -0
  133. package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +4 -0
  134. package/lib/column-selection-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  135. package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
  136. package/lib/column-selection-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
  137. package/lib/column-selection-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
  138. package/lib/column-selection-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  139. package/lib/column-selection-dialog/themes/solar/charcoal.js +6 -0
  140. package/lib/column-selection-dialog/themes/solar/column-selection-dialog.less +1 -0
  141. package/lib/column-selection-dialog/themes/solar/defaults.less +1 -0
  142. package/lib/column-selection-dialog/themes/solar/index.less +6 -0
  143. package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +4 -0
  144. package/lib/column-selection-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  145. package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
  146. package/lib/column-selection-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
  147. package/lib/column-selection-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
  148. package/lib/column-selection-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  149. package/lib/column-selection-dialog/themes/solar/pearl.js +6 -0
  150. package/lib/core/dist/core.css +1 -0
  151. package/lib/core/dist/core.js +28075 -0
  152. package/lib/core/dist/core.min.js +1 -0
  153. package/lib/core/es6/data/ColumnStats.d.ts +42 -0
  154. package/lib/core/es6/data/ColumnStats.js +428 -0
  155. package/lib/core/es6/data/DataCache.d.ts +81 -0
  156. package/lib/core/es6/data/DataCache.js +1317 -0
  157. package/lib/core/es6/data/DataTable.d.ts +125 -0
  158. package/lib/core/es6/data/DataTable.js +1655 -0
  159. package/lib/core/es6/data/DataView.d.ts +280 -0
  160. package/lib/core/es6/data/DataView.js +3654 -0
  161. package/lib/core/es6/data/Segment.d.ts +38 -0
  162. package/lib/core/es6/data/Segment.js +193 -0
  163. package/lib/core/es6/data/SegmentCollection.d.ts +58 -0
  164. package/lib/core/es6/data/SegmentCollection.js +431 -0
  165. package/lib/core/es6/grid/Core.d.ts +387 -0
  166. package/lib/core/es6/grid/Core.js +4939 -0
  167. package/lib/core/es6/grid/ILayoutGrid.d.ts +204 -0
  168. package/lib/core/es6/grid/ILayoutGrid.js +658 -0
  169. package/lib/core/es6/grid/LayoutGrid.d.ts +23 -0
  170. package/lib/core/es6/grid/LayoutGrid.js +2602 -0
  171. package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +18 -0
  172. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +907 -0
  173. package/lib/core/es6/grid/components/Cell.d.ts +50 -0
  174. package/lib/core/es6/grid/components/Cell.js +740 -0
  175. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +19 -0
  176. package/lib/core/es6/grid/components/CellFloatingPanel.js +123 -0
  177. package/lib/core/es6/grid/components/CellSpan.d.ts +18 -0
  178. package/lib/core/es6/grid/components/CellSpan.js +99 -0
  179. package/lib/core/es6/grid/components/CellSpans.d.ts +38 -0
  180. package/lib/core/es6/grid/components/CellSpans.js +341 -0
  181. package/lib/core/es6/grid/components/Column.d.ts +22 -0
  182. package/lib/core/es6/grid/components/Column.js +612 -0
  183. package/lib/core/es6/grid/components/ElementWrapper.d.ts +125 -0
  184. package/lib/core/es6/grid/components/ElementWrapper.js +714 -0
  185. package/lib/core/es6/grid/components/HScrollbar.d.ts +24 -0
  186. package/lib/core/es6/grid/components/HScrollbar.js +222 -0
  187. package/lib/core/es6/grid/components/Scrollbar.d.ts +61 -0
  188. package/lib/core/es6/grid/components/Scrollbar.js +1374 -0
  189. package/lib/core/es6/grid/components/StretchedCells.d.ts +17 -0
  190. package/lib/core/es6/grid/components/StretchedCells.js +328 -0
  191. package/lib/core/es6/grid/components/VScrollbar.d.ts +18 -0
  192. package/lib/core/es6/grid/components/VScrollbar.js +139 -0
  193. package/lib/core/es6/grid/components/VirtualItems.d.ts +12 -0
  194. package/lib/core/es6/grid/components/VirtualItems.js +51 -0
  195. package/lib/core/es6/grid/event/EventDispatcher.d.ts +16 -0
  196. package/lib/core/es6/grid/event/EventDispatcher.js +138 -0
  197. package/lib/core/es6/grid/event/EventListeners.d.ts +34 -0
  198. package/lib/core/es6/grid/event/EventListeners.js +163 -0
  199. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.d.ts +24 -0
  200. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.js +615 -0
  201. package/lib/core/es6/grid/plugins/Plugin.d.ts +28 -0
  202. package/lib/core/es6/grid/plugins/Plugin.js +272 -0
  203. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +127 -0
  204. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +1707 -0
  205. package/lib/core/es6/grid/util/Conflator.d.ts +32 -0
  206. package/lib/core/es6/grid/util/Conflator.js +191 -0
  207. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +18 -0
  208. package/lib/core/es6/grid/util/ElementFrameWork.js +227 -0
  209. package/lib/core/es6/grid/util/HttpRequest.d.ts +53 -0
  210. package/lib/core/es6/grid/util/HttpRequest.js +371 -0
  211. package/lib/core/es6/grid/util/PercentBar.d.ts +43 -0
  212. package/lib/core/es6/grid/util/PercentBar.js +390 -0
  213. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +41 -0
  214. package/lib/core/es6/grid/util/PercentBarRenderer.js +316 -0
  215. package/lib/core/es6/grid/util/RangeBar.d.ts +25 -0
  216. package/lib/core/es6/grid/util/RangeBar.js +255 -0
  217. package/lib/core/es6/grid/util/Reverter.d.ts +14 -0
  218. package/lib/core/es6/grid/util/Reverter.js +79 -0
  219. package/lib/core/es6/grid/util/SectionSettings.d.ts +79 -0
  220. package/lib/core/es6/grid/util/SectionSettings.js +674 -0
  221. package/lib/core/es6/grid/util/SelectionList.d.ts +50 -0
  222. package/lib/core/es6/grid/util/SelectionList.js +422 -0
  223. package/lib/core/es6/grid/util/TrackLayout.d.ts +84 -0
  224. package/lib/core/es6/grid/util/TrackLayout.js +850 -0
  225. package/lib/core/es6/grid/util/Virtualizer.d.ts +40 -0
  226. package/lib/core/es6/grid/util/Virtualizer.js +340 -0
  227. package/lib/core/es6/grid/util/util.d.ts +18 -0
  228. package/lib/core/es6/grid/util/util.js +450 -0
  229. package/lib/core/es6/index.d.ts +84 -0
  230. package/lib/core/es6/index.js +132 -0
  231. package/lib/core/es6/tr-grid-theme.d.ts +5 -0
  232. package/lib/core/es6/tr-grid-theme.js +5 -0
  233. package/lib/filter-dialog/index.d.ts +1 -0
  234. package/lib/filter-dialog/index.js +1 -0
  235. package/lib/filter-dialog/lib/checkbox-list.d.ts +27 -0
  236. package/lib/filter-dialog/lib/checkbox-list.js +336 -0
  237. package/lib/filter-dialog/lib/filter-dialog.d.ts +53 -0
  238. package/lib/filter-dialog/lib/filter-dialog.js +860 -0
  239. package/lib/filter-dialog/lib/locale/translation-de.d.ts +7 -0
  240. package/lib/filter-dialog/lib/locale/translation-de.js +37 -0
  241. package/lib/filter-dialog/lib/locale/translation-en.d.ts +7 -0
  242. package/lib/filter-dialog/lib/locale/translation-en.js +37 -0
  243. package/lib/filter-dialog/lib/locale/translation-ja.d.ts +7 -0
  244. package/lib/filter-dialog/lib/locale/translation-ja.js +37 -0
  245. package/lib/filter-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
  246. package/lib/filter-dialog/lib/locale/translation-zh-hant.js +37 -0
  247. package/lib/filter-dialog/lib/locale/translation-zh.d.ts +7 -0
  248. package/lib/filter-dialog/lib/locale/translation-zh.js +37 -0
  249. package/lib/filter-dialog/lib/locale/translation.d.ts +11 -0
  250. package/lib/filter-dialog/lib/locale/translation.js +18 -0
  251. package/lib/filter-dialog/themes/base-checkbox.less +37 -0
  252. package/lib/filter-dialog/themes/base.less +102 -0
  253. package/lib/filter-dialog/themes/elemental/checkbox-list.less +3 -0
  254. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +4 -0
  255. package/lib/filter-dialog/themes/elemental/dark/css/native-elements.css +0 -0
  256. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +4 -0
  257. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +5 -0
  258. package/lib/filter-dialog/themes/elemental/dark/imports/all-elements.js +2 -0
  259. package/lib/filter-dialog/themes/elemental/dark/imports/custom-elements.js +2 -0
  260. package/lib/filter-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
  261. package/lib/filter-dialog/themes/elemental/dark.js +11 -0
  262. package/lib/filter-dialog/themes/elemental/defaults.less +3 -0
  263. package/lib/filter-dialog/themes/elemental/filter-dialog.less +1 -0
  264. package/lib/filter-dialog/themes/elemental/index.less +6 -0
  265. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +4 -0
  266. package/lib/filter-dialog/themes/elemental/light/css/native-elements.css +0 -0
  267. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +4 -0
  268. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +5 -0
  269. package/lib/filter-dialog/themes/elemental/light/imports/all-elements.js +2 -0
  270. package/lib/filter-dialog/themes/elemental/light/imports/custom-elements.js +2 -0
  271. package/lib/filter-dialog/themes/elemental/light/imports/native-elements.js +0 -0
  272. package/lib/filter-dialog/themes/elemental/light.js +11 -0
  273. package/lib/filter-dialog/themes/halo/checkbox-list.less +3 -0
  274. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +4 -0
  275. package/lib/filter-dialog/themes/halo/dark/css/native-elements.css +0 -0
  276. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +4 -0
  277. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +5 -0
  278. package/lib/filter-dialog/themes/halo/dark/imports/all-elements.js +2 -0
  279. package/lib/filter-dialog/themes/halo/dark/imports/custom-elements.js +2 -0
  280. package/lib/filter-dialog/themes/halo/dark/imports/native-elements.js +0 -0
  281. package/lib/filter-dialog/themes/halo/dark.js +11 -0
  282. package/lib/filter-dialog/themes/halo/defaults.less +3 -0
  283. package/lib/filter-dialog/themes/halo/filter-dialog.less +9 -0
  284. package/lib/filter-dialog/themes/halo/index.less +6 -0
  285. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +4 -0
  286. package/lib/filter-dialog/themes/halo/light/css/native-elements.css +0 -0
  287. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +4 -0
  288. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +5 -0
  289. package/lib/filter-dialog/themes/halo/light/imports/all-elements.js +2 -0
  290. package/lib/filter-dialog/themes/halo/light/imports/custom-elements.js +2 -0
  291. package/lib/filter-dialog/themes/halo/light/imports/native-elements.js +0 -0
  292. package/lib/filter-dialog/themes/halo/light.js +11 -0
  293. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +4 -0
  294. package/lib/filter-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
  295. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +4 -0
  296. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +5 -0
  297. package/lib/filter-dialog/themes/solar/charcoal/imports/all-elements.js +2 -0
  298. package/lib/filter-dialog/themes/solar/charcoal/imports/custom-elements.js +2 -0
  299. package/lib/filter-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
  300. package/lib/filter-dialog/themes/solar/charcoal.js +11 -0
  301. package/lib/filter-dialog/themes/solar/checkbox-list.less +3 -0
  302. package/lib/filter-dialog/themes/solar/defaults.less +3 -0
  303. package/lib/filter-dialog/themes/solar/filter-dialog.less +5 -0
  304. package/lib/filter-dialog/themes/solar/index.less +6 -0
  305. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +4 -0
  306. package/lib/filter-dialog/themes/solar/pearl/css/native-elements.css +0 -0
  307. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +4 -0
  308. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +5 -0
  309. package/lib/filter-dialog/themes/solar/pearl/imports/all-elements.js +2 -0
  310. package/lib/filter-dialog/themes/solar/pearl/imports/custom-elements.js +2 -0
  311. package/lib/filter-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
  312. package/lib/filter-dialog/themes/solar/pearl.js +11 -0
  313. package/lib/formatters/es6/CoralButtonFormatter.d.ts +22 -0
  314. package/lib/formatters/es6/CoralButtonFormatter.js +40 -0
  315. package/lib/formatters/es6/CoralCheckboxFormatter.d.ts +12 -0
  316. package/lib/formatters/es6/CoralCheckboxFormatter.js +45 -0
  317. package/lib/formatters/es6/CoralComboBoxFormatter.d.ts +23 -0
  318. package/lib/formatters/es6/CoralComboBoxFormatter.js +102 -0
  319. package/lib/formatters/es6/CoralIconFormatter.d.ts +23 -0
  320. package/lib/formatters/es6/CoralIconFormatter.js +45 -0
  321. package/lib/formatters/es6/CoralInputFormatter.d.ts +12 -0
  322. package/lib/formatters/es6/CoralInputFormatter.js +40 -0
  323. package/lib/formatters/es6/CoralRadioButtonFormatter.d.ts +22 -0
  324. package/lib/formatters/es6/CoralRadioButtonFormatter.js +80 -0
  325. package/lib/formatters/es6/CoralSelectFormatter.d.ts +23 -0
  326. package/lib/formatters/es6/CoralSelectFormatter.js +66 -0
  327. package/lib/formatters/es6/CoralToggleFormatter.d.ts +12 -0
  328. package/lib/formatters/es6/CoralToggleFormatter.js +47 -0
  329. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
  330. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.js +119 -0
  331. package/lib/formatters/es6/EFButtonFormatter.d.ts +22 -0
  332. package/lib/formatters/es6/EFButtonFormatter.js +40 -0
  333. package/lib/formatters/es6/EFCheckboxFormatter.d.ts +12 -0
  334. package/lib/formatters/es6/EFCheckboxFormatter.js +45 -0
  335. package/lib/formatters/es6/EFComboBoxFormatter.d.ts +23 -0
  336. package/lib/formatters/es6/EFComboBoxFormatter.js +68 -0
  337. package/lib/formatters/es6/EFDateTimePickerFormatter.d.ts +13 -0
  338. package/lib/formatters/es6/EFDateTimePickerFormatter.js +55 -0
  339. package/lib/formatters/es6/EFIconFormatter.d.ts +23 -0
  340. package/lib/formatters/es6/EFIconFormatter.js +45 -0
  341. package/lib/formatters/es6/EFNumberFieldFormatter.d.ts +12 -0
  342. package/lib/formatters/es6/EFNumberFieldFormatter.js +40 -0
  343. package/lib/formatters/es6/EFRadioButtonFormatter.d.ts +22 -0
  344. package/lib/formatters/es6/EFRadioButtonFormatter.js +80 -0
  345. package/lib/formatters/es6/EFSelectFormatter.d.ts +23 -0
  346. package/lib/formatters/es6/EFSelectFormatter.js +66 -0
  347. package/lib/formatters/es6/EFTextFieldFormatter.d.ts +12 -0
  348. package/lib/formatters/es6/EFTextFieldFormatter.js +40 -0
  349. package/lib/formatters/es6/EFToggleFormatter.d.ts +12 -0
  350. package/lib/formatters/es6/EFToggleFormatter.js +47 -0
  351. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
  352. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.js +55 -0
  353. package/lib/formatters/es6/FormatterBuilder.d.ts +22 -0
  354. package/lib/formatters/es6/FormatterBuilder.js +334 -0
  355. package/lib/formatters/es6/NumericInputFormatter.d.ts +13 -0
  356. package/lib/formatters/es6/NumericInputFormatter.js +64 -0
  357. package/lib/formatters/es6/PercentBarFormatter.d.ts +25 -0
  358. package/lib/formatters/es6/PercentBarFormatter.js +62 -0
  359. package/lib/formatters/es6/SimpleImageFormatter.d.ts +21 -0
  360. package/lib/formatters/es6/SimpleImageFormatter.js +64 -0
  361. package/lib/formatters/es6/SimpleInputFormatter.d.ts +12 -0
  362. package/lib/formatters/es6/SimpleInputFormatter.js +40 -0
  363. package/lib/formatters/es6/SimpleLinkFormatter.d.ts +21 -0
  364. package/lib/formatters/es6/SimpleLinkFormatter.js +48 -0
  365. package/lib/formatters/es6/SimpleTickerFormatter.d.ts +25 -0
  366. package/lib/formatters/es6/SimpleTickerFormatter.js +65 -0
  367. package/lib/formatters/es6/SimpleToggleFormatter.d.ts +22 -0
  368. package/lib/formatters/es6/SimpleToggleFormatter.js +132 -0
  369. package/lib/formatters/es6/TextFormatter.d.ts +12 -0
  370. package/lib/formatters/es6/TextFormatter.js +30 -0
  371. package/lib/formatters/es6/index.d.ts +43 -0
  372. package/lib/formatters/es6/index.js +67 -0
  373. package/lib/grid/index.d.ts +1 -0
  374. package/lib/grid/index.js +2 -0
  375. package/lib/grid/lib/efx-grid.d.ts +32 -0
  376. package/lib/grid/lib/efx-grid.js +469 -0
  377. package/lib/grid/themes/base.less +134 -0
  378. package/lib/grid/themes/halo/dark/css/native-elements.css +0 -0
  379. package/lib/grid/themes/halo/dark/efx-grid.js +4 -0
  380. package/lib/grid/themes/halo/dark/es5/all-elements.js +2 -0
  381. package/lib/grid/themes/halo/dark/imports/all-elements.js +1 -0
  382. package/lib/grid/themes/halo/dark/imports/custom-elements.js +1 -0
  383. package/lib/grid/themes/halo/dark/imports/native-elements.js +0 -0
  384. package/lib/grid/themes/halo/dark.js +3 -0
  385. package/lib/grid/themes/halo/efx-grid.less +92 -0
  386. package/lib/grid/themes/halo/index.less +3 -0
  387. package/lib/grid/themes/halo/light/css/native-elements.css +0 -0
  388. package/lib/grid/themes/halo/light/efx-grid.js +4 -0
  389. package/lib/grid/themes/halo/light/es5/all-elements.js +2 -0
  390. package/lib/grid/themes/halo/light/imports/all-elements.js +1 -0
  391. package/lib/grid/themes/halo/light/imports/custom-elements.js +1 -0
  392. package/lib/grid/themes/halo/light/imports/native-elements.js +0 -0
  393. package/lib/grid/themes/halo/light.js +3 -0
  394. package/lib/grid/themes/solar/charcoal/css/native-elements.css +0 -0
  395. package/lib/grid/themes/solar/charcoal/efx-grid.js +4 -0
  396. package/lib/grid/themes/solar/charcoal/es5/all-elements.js +2 -0
  397. package/lib/grid/themes/solar/charcoal/imports/all-elements.js +1 -0
  398. package/lib/grid/themes/solar/charcoal/imports/custom-elements.js +1 -0
  399. package/lib/grid/themes/solar/charcoal/imports/native-elements.js +0 -0
  400. package/lib/grid/themes/solar/charcoal.js +3 -0
  401. package/lib/grid/themes/solar/efx-grid.less +27 -0
  402. package/lib/grid/themes/solar/index.less +3 -0
  403. package/lib/grid/themes/solar/pearl/css/native-elements.css +0 -0
  404. package/lib/grid/themes/solar/pearl/efx-grid.js +4 -0
  405. package/lib/grid/themes/solar/pearl/es5/all-elements.js +2 -0
  406. package/lib/grid/themes/solar/pearl/imports/all-elements.js +1 -0
  407. package/lib/grid/themes/solar/pearl/imports/custom-elements.js +1 -0
  408. package/lib/grid/themes/solar/pearl/imports/native-elements.js +0 -0
  409. package/lib/grid/themes/solar/pearl.js +3 -0
  410. package/lib/index.d.ts +102 -0
  411. package/lib/index.js +102 -0
  412. package/lib/row-segmenting/es6/RowSegmenting.d.ts +83 -0
  413. package/lib/row-segmenting/es6/RowSegmenting.js +592 -0
  414. package/lib/row-segmenting/es6/index.d.ts +1 -0
  415. package/lib/row-segmenting/es6/index.js +1 -0
  416. package/lib/rt-grid/dist/rt-grid.js +44672 -0
  417. package/lib/rt-grid/dist/rt-grid.min.js +1 -0
  418. package/lib/rt-grid/es6/ColumnDefinition.d.ts +141 -0
  419. package/lib/rt-grid/es6/ColumnDefinition.js +1074 -0
  420. package/lib/rt-grid/es6/DataConnector.d.ts +37 -0
  421. package/lib/rt-grid/es6/DataConnector.js +266 -0
  422. package/lib/rt-grid/es6/FieldDefinition.d.ts +20 -0
  423. package/lib/rt-grid/es6/FieldDefinition.js +418 -0
  424. package/lib/rt-grid/es6/Grid.d.ts +261 -0
  425. package/lib/rt-grid/es6/Grid.js +2893 -0
  426. package/lib/rt-grid/es6/PredefinedFormula.d.ts +16 -0
  427. package/lib/rt-grid/es6/PredefinedFormula.js +33 -0
  428. package/lib/rt-grid/es6/ReferenceCounter.d.ts +38 -0
  429. package/lib/rt-grid/es6/ReferenceCounter.js +230 -0
  430. package/lib/rt-grid/es6/RowDefinition.d.ts +120 -0
  431. package/lib/rt-grid/es6/RowDefinition.js +873 -0
  432. package/lib/rt-grid/es6/SnapshotFiller.d.ts +21 -0
  433. package/lib/rt-grid/es6/SnapshotFiller.js +252 -0
  434. package/lib/rt-grid/es6/StyleLoader.d.ts +17 -0
  435. package/lib/rt-grid/es6/StyleLoader.js +47 -0
  436. package/lib/rt-grid/es6/index.d.ts +8 -0
  437. package/lib/rt-grid/es6/index.js +43 -0
  438. package/lib/statistics-row/es6/StatisticsRow.d.ts +67 -0
  439. package/lib/statistics-row/es6/StatisticsRow.js +786 -0
  440. package/lib/statistics-row/es6/index.d.ts +1 -0
  441. package/lib/statistics-row/es6/index.js +1 -0
  442. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.d.ts +45 -0
  443. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.js +431 -0
  444. package/lib/tr-grid-auto-tooltip/es6/index.d.ts +1 -0
  445. package/lib/tr-grid-auto-tooltip/es6/index.js +1 -0
  446. package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +67 -0
  447. package/lib/tr-grid-cell-selection/es6/CellSelection.js +1777 -0
  448. package/lib/tr-grid-cell-selection/es6/index.d.ts +1 -0
  449. package/lib/tr-grid-cell-selection/es6/index.js +1 -0
  450. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +69 -0
  451. package/lib/tr-grid-checkbox/es6/Checkbox.js +1476 -0
  452. package/lib/tr-grid-checkbox/es6/index.d.ts +1 -0
  453. package/lib/tr-grid-checkbox/es6/index.js +1 -0
  454. package/lib/tr-grid-column-fitter/es6/ColumnFitter.d.ts +56 -0
  455. package/lib/tr-grid-column-fitter/es6/ColumnFitter.js +1000 -0
  456. package/lib/tr-grid-column-fitter/es6/index.d.ts +1 -0
  457. package/lib/tr-grid-column-fitter/es6/index.js +1 -0
  458. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.d.ts +89 -0
  459. package/lib/tr-grid-column-formatting/es6/ColumnFormatting.js +615 -0
  460. package/lib/tr-grid-column-formatting/es6/index.d.ts +1 -0
  461. package/lib/tr-grid-column-formatting/es6/index.js +1 -0
  462. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +60 -0
  463. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +913 -0
  464. package/lib/tr-grid-column-grouping/es6/index.d.ts +1 -0
  465. package/lib/tr-grid-column-grouping/es6/index.js +1 -0
  466. package/lib/tr-grid-column-resizing/es6/ColumnResizing.d.ts +68 -0
  467. package/lib/tr-grid-column-resizing/es6/ColumnResizing.js +1013 -0
  468. package/lib/tr-grid-column-resizing/es6/index.d.ts +1 -0
  469. package/lib/tr-grid-column-resizing/es6/index.js +1 -0
  470. package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +70 -0
  471. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +928 -0
  472. package/lib/tr-grid-column-selection/es6/index.d.ts +1 -0
  473. package/lib/tr-grid-column-selection/es6/index.js +1 -0
  474. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +76 -0
  475. package/lib/tr-grid-column-stack/es6/ColumnStack.js +1227 -0
  476. package/lib/tr-grid-column-stack/es6/index.d.ts +1 -0
  477. package/lib/tr-grid-column-stack/es6/index.js +1 -0
  478. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +70 -0
  479. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +947 -0
  480. package/lib/tr-grid-conditional-coloring/es6/index.d.ts +1 -0
  481. package/lib/tr-grid-conditional-coloring/es6/index.js +1 -0
  482. package/lib/tr-grid-content-wrap/es6/ContentWrap.d.ts +43 -0
  483. package/lib/tr-grid-content-wrap/es6/ContentWrap.js +478 -0
  484. package/lib/tr-grid-content-wrap/es6/index.d.ts +1 -0
  485. package/lib/tr-grid-content-wrap/es6/index.js +1 -0
  486. package/lib/tr-grid-contextmenu/es6/ContextMenu.d.ts +83 -0
  487. package/lib/tr-grid-contextmenu/es6/ContextMenu.js +471 -0
  488. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.d.ts +22 -0
  489. package/lib/tr-grid-contextmenu/es6/MenuEventAPI.js +133 -0
  490. package/lib/tr-grid-contextmenu/es6/MenuItem.d.ts +39 -0
  491. package/lib/tr-grid-contextmenu/es6/MenuItem.js +245 -0
  492. package/lib/tr-grid-contextmenu/es6/PopupMenu.d.ts +29 -0
  493. package/lib/tr-grid-contextmenu/es6/PopupMenu.js +292 -0
  494. package/lib/tr-grid-contextmenu/es6/index.d.ts +1 -0
  495. package/lib/tr-grid-contextmenu/es6/index.js +1 -0
  496. package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +57 -0
  497. package/lib/tr-grid-filter-input/es6/FilterInput.js +928 -0
  498. package/lib/tr-grid-filter-input/es6/index.d.ts +1 -0
  499. package/lib/tr-grid-filter-input/es6/index.js +1 -0
  500. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +44 -0
  501. package/lib/tr-grid-heat-map/es6/HeatMap.js +394 -0
  502. package/lib/tr-grid-heat-map/es6/index.d.ts +1 -0
  503. package/lib/tr-grid-heat-map/es6/index.js +1 -0
  504. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +129 -0
  505. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +1977 -0
  506. package/lib/tr-grid-in-cell-editing/es6/index.d.ts +1 -0
  507. package/lib/tr-grid-in-cell-editing/es6/index.js +1 -0
  508. package/lib/tr-grid-pagination/es6/Pagination.d.ts +57 -0
  509. package/lib/tr-grid-pagination/es6/Pagination.js +427 -0
  510. package/lib/tr-grid-pagination/es6/index.d.ts +1 -0
  511. package/lib/tr-grid-pagination/es6/index.js +1 -0
  512. package/lib/tr-grid-percent-bar/es6/PercentBar.d.ts +60 -0
  513. package/lib/tr-grid-percent-bar/es6/PercentBar.js +801 -0
  514. package/lib/tr-grid-percent-bar/es6/index.d.ts +1 -0
  515. package/lib/tr-grid-percent-bar/es6/index.js +1 -0
  516. package/lib/tr-grid-printer/es6/CellWriter.d.ts +49 -0
  517. package/lib/tr-grid-printer/es6/CellWriter.js +226 -0
  518. package/lib/tr-grid-printer/es6/ColumnWriter.d.ts +12 -0
  519. package/lib/tr-grid-printer/es6/ColumnWriter.js +21 -0
  520. package/lib/tr-grid-printer/es6/GridPrinter.d.ts +32 -0
  521. package/lib/tr-grid-printer/es6/GridPrinter.js +761 -0
  522. package/lib/tr-grid-printer/es6/PrintTrait.d.ts +38 -0
  523. package/lib/tr-grid-printer/es6/PrintTrait.js +481 -0
  524. package/lib/tr-grid-printer/es6/SectionWriter.d.ts +54 -0
  525. package/lib/tr-grid-printer/es6/SectionWriter.js +205 -0
  526. package/lib/tr-grid-printer/es6/index.d.ts +1 -0
  527. package/lib/tr-grid-printer/es6/index.js +1 -0
  528. package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +39 -0
  529. package/lib/tr-grid-range-bar/es6/RangeBar.js +353 -0
  530. package/lib/tr-grid-range-bar/es6/index.d.ts +1 -0
  531. package/lib/tr-grid-range-bar/es6/index.js +1 -0
  532. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +53 -0
  533. package/lib/tr-grid-row-dragging/es6/RowDragging.js +794 -0
  534. package/lib/tr-grid-row-dragging/es6/index.d.ts +1 -0
  535. package/lib/tr-grid-row-dragging/es6/index.js +1 -0
  536. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +118 -0
  537. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +1884 -0
  538. package/lib/tr-grid-row-filtering/es6/index.d.ts +1 -0
  539. package/lib/tr-grid-row-filtering/es6/index.js +1 -0
  540. package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +109 -0
  541. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +1541 -0
  542. package/lib/tr-grid-row-grouping/es6/index.d.ts +1 -0
  543. package/lib/tr-grid-row-grouping/es6/index.js +1 -0
  544. package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +74 -0
  545. package/lib/tr-grid-row-selection/es6/RowSelection.js +1202 -0
  546. package/lib/tr-grid-row-selection/es6/index.d.ts +1 -0
  547. package/lib/tr-grid-row-selection/es6/index.js +1 -0
  548. package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +60 -0
  549. package/lib/tr-grid-rowcoloring/es6/RowColoring.js +611 -0
  550. package/lib/tr-grid-rowcoloring/es6/index.d.ts +1 -0
  551. package/lib/tr-grid-rowcoloring/es6/index.js +1 -0
  552. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +77 -0
  553. package/lib/tr-grid-textformatting/es6/TextFormatting.js +574 -0
  554. package/lib/tr-grid-textformatting/es6/index.d.ts +1 -0
  555. package/lib/tr-grid-textformatting/es6/index.js +1 -0
  556. package/lib/tr-grid-titlewrap/es6/TitleWrap.d.ts +29 -0
  557. package/lib/tr-grid-titlewrap/es6/TitleWrap.js +431 -0
  558. package/lib/tr-grid-titlewrap/es6/index.d.ts +1 -0
  559. package/lib/tr-grid-titlewrap/es6/index.js +1 -0
  560. package/lib/tr-grid-util/es6/CellPainter.d.ts +136 -0
  561. package/lib/tr-grid-util/es6/CellPainter.js +1128 -0
  562. package/lib/tr-grid-util/es6/Conflator.d.ts +34 -0
  563. package/lib/tr-grid-util/es6/Conflator.js +193 -0
  564. package/lib/tr-grid-util/es6/CoralItems.d.ts +10 -0
  565. package/lib/tr-grid-util/es6/CoralItems.js +42 -0
  566. package/lib/tr-grid-util/es6/DateTime.d.ts +57 -0
  567. package/lib/tr-grid-util/es6/DateTime.js +508 -0
  568. package/lib/tr-grid-util/es6/Deferred.d.ts +14 -0
  569. package/lib/tr-grid-util/es6/Deferred.js +98 -0
  570. package/lib/tr-grid-util/es6/Delay.d.ts +20 -0
  571. package/lib/tr-grid-util/es6/Delay.js +85 -0
  572. package/lib/tr-grid-util/es6/Dom.d.ts +32 -0
  573. package/lib/tr-grid-util/es6/Dom.js +346 -0
  574. package/lib/tr-grid-util/es6/ElementObserver.d.ts +10 -0
  575. package/lib/tr-grid-util/es6/ElementObserver.js +101 -0
  576. package/lib/tr-grid-util/es6/ElementWrapper.d.ts +23 -0
  577. package/lib/tr-grid-util/es6/ElementWrapper.js +83 -0
  578. package/lib/tr-grid-util/es6/ElfDate.d.ts +26 -0
  579. package/lib/tr-grid-util/es6/ElfDate.js +163 -0
  580. package/lib/tr-grid-util/es6/ElfUtil.d.ts +33 -0
  581. package/lib/tr-grid-util/es6/ElfUtil.js +458 -0
  582. package/lib/tr-grid-util/es6/EventDispatcher.d.ts +26 -0
  583. package/lib/tr-grid-util/es6/EventDispatcher.js +161 -0
  584. package/lib/tr-grid-util/es6/ExpanderIcon.d.ts +27 -0
  585. package/lib/tr-grid-util/es6/ExpanderIcon.js +169 -0
  586. package/lib/tr-grid-util/es6/Ext.d.ts +10 -0
  587. package/lib/tr-grid-util/es6/Ext.js +52 -0
  588. package/lib/tr-grid-util/es6/FieldFormatter.d.ts +55 -0
  589. package/lib/tr-grid-util/es6/FieldFormatter.js +432 -0
  590. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +48 -0
  591. package/lib/tr-grid-util/es6/FilterBuilder.js +521 -0
  592. package/lib/tr-grid-util/es6/FilterOperators.d.ts +41 -0
  593. package/lib/tr-grid-util/es6/FilterOperators.js +181 -0
  594. package/lib/tr-grid-util/es6/GridPlugin.d.ts +72 -0
  595. package/lib/tr-grid-util/es6/GridPlugin.js +747 -0
  596. package/lib/tr-grid-util/es6/Icon.d.ts +14 -0
  597. package/lib/tr-grid-util/es6/Icon.js +61 -0
  598. package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +42 -0
  599. package/lib/tr-grid-util/es6/MouseDownTrait.js +237 -0
  600. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +32 -0
  601. package/lib/tr-grid-util/es6/MultiTableManager.js +506 -0
  602. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +83 -0
  603. package/lib/tr-grid-util/es6/NumberFormatter.js +471 -0
  604. package/lib/tr-grid-util/es6/PercentBar.d.ts +71 -0
  605. package/lib/tr-grid-util/es6/PercentBar.js +600 -0
  606. package/lib/tr-grid-util/es6/Perf.d.ts +32 -0
  607. package/lib/tr-grid-util/es6/Perf.js +162 -0
  608. package/lib/tr-grid-util/es6/Popup.d.ts +84 -0
  609. package/lib/tr-grid-util/es6/Popup.js +818 -0
  610. package/lib/tr-grid-util/es6/RangeBar.d.ts +33 -0
  611. package/lib/tr-grid-util/es6/RangeBar.js +259 -0
  612. package/lib/tr-grid-util/es6/RequestQueue.d.ts +30 -0
  613. package/lib/tr-grid-util/es6/RequestQueue.js +239 -0
  614. package/lib/tr-grid-util/es6/RowPainter.d.ts +23 -0
  615. package/lib/tr-grid-util/es6/RowPainter.js +188 -0
  616. package/lib/tr-grid-util/es6/SubTable.d.ts +74 -0
  617. package/lib/tr-grid-util/es6/SubTable.js +558 -0
  618. package/lib/tr-grid-util/es6/Table.d.ts +125 -0
  619. package/lib/tr-grid-util/es6/Table.js +790 -0
  620. package/lib/tr-grid-util/es6/TextHighlighter.d.ts +18 -0
  621. package/lib/tr-grid-util/es6/TextHighlighter.js +273 -0
  622. package/lib/tr-grid-util/es6/TickCodes.d.ts +8 -0
  623. package/lib/tr-grid-util/es6/TickCodes.js +33 -0
  624. package/lib/tr-grid-util/es6/Timer.d.ts +16 -0
  625. package/lib/tr-grid-util/es6/Timer.js +49 -0
  626. package/lib/tr-grid-util/es6/TouchProxy.d.ts +46 -0
  627. package/lib/tr-grid-util/es6/TouchProxy.js +212 -0
  628. package/lib/tr-grid-util/es6/Util.d.ts +65 -0
  629. package/lib/tr-grid-util/es6/Util.js +528 -0
  630. package/lib/tr-grid-util/es6/formula/ADCService.d.ts +11 -0
  631. package/lib/tr-grid-util/es6/formula/ADCService.js +72 -0
  632. package/lib/tr-grid-util/es6/formula/ADCSubscription.d.ts +17 -0
  633. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +317 -0
  634. package/lib/tr-grid-util/es6/formula/AdFinService.d.ts +12 -0
  635. package/lib/tr-grid-util/es6/formula/AdFinService.js +61 -0
  636. package/lib/tr-grid-util/es6/formula/AdFinSubscription.d.ts +19 -0
  637. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +310 -0
  638. package/lib/tr-grid-util/es6/formula/Engine.d.ts +56 -0
  639. package/lib/tr-grid-util/es6/formula/Engine.js +592 -0
  640. package/lib/tr-grid-util/es6/formula/Formula.d.ts +68 -0
  641. package/lib/tr-grid-util/es6/formula/Formula.js +882 -0
  642. package/lib/tr-grid-util/es6/formula/IntervalSubscription.d.ts +16 -0
  643. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +165 -0
  644. package/lib/tr-grid-util/es6/formula/Realtime.d.ts +18 -0
  645. package/lib/tr-grid-util/es6/formula/Realtime.js +279 -0
  646. package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +18 -0
  647. package/lib/tr-grid-util/es6/formula/RealtimeService.js +203 -0
  648. package/lib/tr-grid-util/es6/formula/TSIService.d.ts +11 -0
  649. package/lib/tr-grid-util/es6/formula/TSIService.js +51 -0
  650. package/lib/tr-grid-util/es6/formula/TSISubscription.d.ts +18 -0
  651. package/lib/tr-grid-util/es6/formula/TSISubscription.js +1015 -0
  652. package/lib/tr-grid-util/es6/formula/VariableToken.d.ts +30 -0
  653. package/lib/tr-grid-util/es6/formula/VariableToken.js +314 -0
  654. package/lib/tr-grid-util/es6/formula/functions/AdFin.d.ts +9 -0
  655. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +1778 -0
  656. package/lib/tr-grid-util/es6/formula/functions/Excel.d.ts +8 -0
  657. package/lib/tr-grid-util/es6/formula/functions/Excel.js +21 -0
  658. package/lib/tr-grid-util/es6/formula/functions/Info.d.ts +8 -0
  659. package/lib/tr-grid-util/es6/formula/functions/Info.js +192 -0
  660. package/lib/tr-grid-util/es6/formula/functions/Internal.d.ts +8 -0
  661. package/lib/tr-grid-util/es6/formula/functions/Internal.js +90 -0
  662. package/lib/tr-grid-util/es6/formula/functions/Logic.d.ts +12 -0
  663. package/lib/tr-grid-util/es6/formula/functions/Logic.js +176 -0
  664. package/lib/tr-grid-util/es6/formula/functions/Math.d.ts +18 -0
  665. package/lib/tr-grid-util/es6/formula/functions/Math.js +1624 -0
  666. package/lib/tr-grid-util/es6/formula/functions/Statistics.d.ts +18 -0
  667. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +234 -0
  668. package/lib/tr-grid-util/es6/formula/functions/Text.d.ts +10 -0
  669. package/lib/tr-grid-util/es6/formula/functions/Text.js +676 -0
  670. package/lib/tr-grid-util/es6/index.d.ts +63 -0
  671. package/lib/tr-grid-util/es6/index.js +99 -0
  672. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +28 -0
  673. package/lib/tr-grid-util/es6/jet/CollectionDict.js +141 -0
  674. package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +114 -0
  675. package/lib/tr-grid-util/es6/jet/DataGenerator.js +827 -0
  676. package/lib/tr-grid-util/es6/jet/DataSet.d.ts +8 -0
  677. package/lib/tr-grid-util/es6/jet/DataSet.js +392 -0
  678. package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +21 -0
  679. package/lib/tr-grid-util/es6/jet/MockArchive.js +56 -0
  680. package/lib/tr-grid-util/es6/jet/MockJET.d.ts +25 -0
  681. package/lib/tr-grid-util/es6/jet/MockJET.js +63 -0
  682. package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +37 -0
  683. package/lib/tr-grid-util/es6/jet/MockQuotes.js +199 -0
  684. package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +72 -0
  685. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +564 -0
  686. package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +8 -0
  687. package/lib/tr-grid-util/es6/jet/MockRTK.js +43 -0
  688. package/lib/tr-grid-util/es6/jet/index.d.ts +9 -0
  689. package/lib/tr-grid-util/es6/jet/index.js +18 -0
  690. package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +11 -0
  691. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +131 -0
  692. package/lib/tr-grid-util/es6/locale/translation-de.d.ts +7 -0
  693. package/lib/tr-grid-util/es6/locale/translation-de.js +51 -0
  694. package/lib/tr-grid-util/es6/locale/translation-en.d.ts +7 -0
  695. package/lib/tr-grid-util/es6/locale/translation-en.js +51 -0
  696. package/lib/tr-grid-util/es6/locale/translation-ja.d.ts +7 -0
  697. package/lib/tr-grid-util/es6/locale/translation-ja.js +51 -0
  698. package/lib/tr-grid-util/es6/locale/translation-zh-hant.d.ts +7 -0
  699. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +51 -0
  700. package/lib/tr-grid-util/es6/locale/translation-zh.d.ts +7 -0
  701. package/lib/tr-grid-util/es6/locale/translation-zh.js +51 -0
  702. package/lib/tr-grid-util/es6/locale/translation.d.ts +11 -0
  703. package/lib/tr-grid-util/es6/locale/translation.js +18 -0
  704. package/lib/types/es6/AutoTooltip.d.ts +45 -0
  705. package/lib/types/es6/CellSelection.d.ts +67 -0
  706. package/lib/types/es6/Checkbox.d.ts +69 -0
  707. package/lib/types/es6/ColumnFitter.d.ts +56 -0
  708. package/lib/types/es6/ColumnFormatting.d.ts +90 -0
  709. package/lib/types/es6/ColumnGrouping.d.ts +60 -0
  710. package/lib/types/es6/ColumnResizing.d.ts +68 -0
  711. package/lib/types/es6/ColumnSelection.d.ts +70 -0
  712. package/lib/types/es6/ColumnStack.d.ts +76 -0
  713. package/lib/types/es6/CompositeGrid/CollapsibleHeaderPlugin.d.ts +11 -0
  714. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +38 -0
  715. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +45 -0
  716. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +287 -0
  717. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +22 -0
  718. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +44 -0
  719. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +30 -0
  720. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +42 -0
  721. package/lib/types/es6/CompositeGrid/TextWidthCalculator.d.ts +24 -0
  722. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +46 -0
  723. package/lib/types/es6/CompositeGrid/index.d.ts +9 -0
  724. package/lib/types/es6/ConditionalColoring.d.ts +70 -0
  725. package/lib/types/es6/ContentWrap.d.ts +43 -0
  726. package/lib/types/es6/ContextMenu.d.ts +83 -0
  727. package/lib/types/es6/CoralButtonFormatter.d.ts +22 -0
  728. package/lib/types/es6/CoralCheckboxFormatter.d.ts +12 -0
  729. package/lib/types/es6/CoralComboBoxFormatter.d.ts +23 -0
  730. package/lib/types/es6/CoralIconFormatter.d.ts +23 -0
  731. package/lib/types/es6/CoralInputFormatter.d.ts +12 -0
  732. package/lib/types/es6/CoralRadioButtonFormatter.d.ts +22 -0
  733. package/lib/types/es6/CoralSelectFormatter.d.ts +23 -0
  734. package/lib/types/es6/CoralToggleFormatter.d.ts +12 -0
  735. package/lib/types/es6/Core/data/ColumnStats.d.ts +42 -0
  736. package/lib/types/es6/Core/data/DataCache.d.ts +81 -0
  737. package/lib/types/es6/Core/data/DataTable.d.ts +125 -0
  738. package/lib/types/es6/Core/data/DataView.d.ts +280 -0
  739. package/lib/types/es6/Core/data/Segment.d.ts +38 -0
  740. package/lib/types/es6/Core/data/SegmentCollection.d.ts +58 -0
  741. package/lib/types/es6/Core/grid/Core.d.ts +387 -0
  742. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +204 -0
  743. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +23 -0
  744. package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +18 -0
  745. package/lib/types/es6/Core/grid/components/Cell.d.ts +50 -0
  746. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +19 -0
  747. package/lib/types/es6/Core/grid/components/CellSpan.d.ts +18 -0
  748. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +38 -0
  749. package/lib/types/es6/Core/grid/components/Column.d.ts +22 -0
  750. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +125 -0
  751. package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +24 -0
  752. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +61 -0
  753. package/lib/types/es6/Core/grid/components/StretchedCells.d.ts +17 -0
  754. package/lib/types/es6/Core/grid/components/VScrollbar.d.ts +18 -0
  755. package/lib/types/es6/Core/grid/components/VirtualItems.d.ts +12 -0
  756. package/lib/types/es6/Core/grid/event/EventDispatcher.d.ts +16 -0
  757. package/lib/types/es6/Core/grid/event/EventListeners.d.ts +34 -0
  758. package/lib/types/es6/Core/grid/plugins/DragAndDropTitlePlugin.d.ts +24 -0
  759. package/lib/types/es6/Core/grid/plugins/Plugin.d.ts +28 -0
  760. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +127 -0
  761. package/lib/types/es6/Core/grid/util/Conflator.d.ts +32 -0
  762. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +18 -0
  763. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +53 -0
  764. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +43 -0
  765. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +41 -0
  766. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +25 -0
  767. package/lib/types/es6/Core/grid/util/Reverter.d.ts +14 -0
  768. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +79 -0
  769. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +50 -0
  770. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +84 -0
  771. package/lib/types/es6/Core/grid/util/Virtualizer.d.ts +40 -0
  772. package/lib/types/es6/Core/grid/util/util.d.ts +18 -0
  773. package/lib/types/es6/Core/index.d.ts +84 -0
  774. package/lib/types/es6/Core/tr-grid-theme.d.ts +5 -0
  775. package/lib/types/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
  776. package/lib/types/es6/EFButtonFormatter.d.ts +22 -0
  777. package/lib/types/es6/EFCheckboxFormatter.d.ts +12 -0
  778. package/lib/types/es6/EFComboBoxFormatter.d.ts +23 -0
  779. package/lib/types/es6/EFDateTimePickerFormatter.d.ts +13 -0
  780. package/lib/types/es6/EFIconFormatter.d.ts +23 -0
  781. package/lib/types/es6/EFNumberFieldFormatter.d.ts +12 -0
  782. package/lib/types/es6/EFRadioButtonFormatter.d.ts +22 -0
  783. package/lib/types/es6/EFSelectFormatter.d.ts +23 -0
  784. package/lib/types/es6/EFTextFieldFormatter.d.ts +12 -0
  785. package/lib/types/es6/EFToggleFormatter.d.ts +12 -0
  786. package/lib/types/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
  787. package/lib/types/es6/ExtensionColumnOptions.d.ts +41 -0
  788. package/lib/types/es6/ExtensionOptions.d.ts +52 -0
  789. package/lib/types/es6/Extensions.d.ts +61 -0
  790. package/lib/types/es6/FilterInput.d.ts +57 -0
  791. package/lib/types/es6/FormatterBuilder.d.ts +22 -0
  792. package/lib/types/es6/GridFormatter.d.ts +63 -0
  793. package/lib/types/es6/HeatMap.d.ts +44 -0
  794. package/lib/types/es6/InCellEditing.d.ts +129 -0
  795. package/lib/types/es6/MenuEventAPI.d.ts +22 -0
  796. package/lib/types/es6/MenuItem.d.ts +39 -0
  797. package/lib/types/es6/NumericInputFormatter.d.ts +13 -0
  798. package/lib/types/es6/Pagination.d.ts +57 -0
  799. package/lib/types/es6/PercentBar.d.ts +60 -0
  800. package/lib/types/es6/PercentBarFormatter.d.ts +25 -0
  801. package/lib/types/es6/PopupMenu.d.ts +29 -0
  802. package/lib/types/es6/RangeBar.d.ts +39 -0
  803. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +143 -0
  804. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +37 -0
  805. package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +20 -0
  806. package/lib/types/es6/RealtimeGrid/Grid.d.ts +263 -0
  807. package/lib/types/es6/RealtimeGrid/PredefinedFormula.d.ts +16 -0
  808. package/lib/types/es6/RealtimeGrid/ReferenceCounter.d.ts +38 -0
  809. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +120 -0
  810. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +21 -0
  811. package/lib/types/es6/RealtimeGrid/StyleLoader.d.ts +17 -0
  812. package/lib/types/es6/RealtimeGrid/index.d.ts +8 -0
  813. package/lib/types/es6/RowColoring.d.ts +60 -0
  814. package/lib/types/es6/RowDragging.d.ts +53 -0
  815. package/lib/types/es6/RowFiltering.d.ts +118 -0
  816. package/lib/types/es6/RowGrouping.d.ts +109 -0
  817. package/lib/types/es6/RowSegmenting.d.ts +83 -0
  818. package/lib/types/es6/RowSelection.d.ts +74 -0
  819. package/lib/types/es6/SimpleImageFormatter.d.ts +21 -0
  820. package/lib/types/es6/SimpleInputFormatter.d.ts +12 -0
  821. package/lib/types/es6/SimpleLinkFormatter.d.ts +21 -0
  822. package/lib/types/es6/SimpleTickerFormatter.d.ts +25 -0
  823. package/lib/types/es6/SimpleToggleFormatter.d.ts +22 -0
  824. package/lib/types/es6/StatisticsRow.d.ts +67 -0
  825. package/lib/types/es6/TextFormatter.d.ts +12 -0
  826. package/lib/types/es6/TextFormatting.d.ts +77 -0
  827. package/lib/types/es6/TitleWrap.d.ts +29 -0
  828. package/lib/types/es6/Zoom.d.ts +51 -0
  829. package/lib/types/es6/index.d.ts +76 -0
  830. package/lib/types/index.d.ts +1 -0
  831. package/lib/versions.json +36 -0
  832. package/lib/window-exporter.js +13 -0
  833. package/lib/zoom/es6/Zoom.d.ts +51 -0
  834. package/lib/zoom/es6/Zoom.js +419 -0
  835. package/lib/zoom/es6/index.d.ts +1 -0
  836. package/lib/zoom/es6/index.js +1 -0
  837. package/package.json +42 -0
@@ -0,0 +1,1015 @@
1
+ import {Ext} from "../Ext.js";
2
+ import {Util} from "../Util.js";
3
+ import {EventDispatcher} from "../EventDispatcher.js";
4
+ import {RequestQueue} from "../RequestQueue.js";
5
+
6
+ /** @constructor
7
+ * @extends {EventDispatcher}
8
+ */
9
+ var TSISubscription = function() {
10
+ this._refreshData = this._refreshData.bind(this);
11
+
12
+ // Old TSI service
13
+ this._onTSIUpdate = this._onTSIUpdate.bind(this);
14
+ this._requestTimeSeriesData = this._requestTimeSeriesData.bind(this);
15
+
16
+ // New metadata service
17
+ this._manageMetadataQ = this._manageMetadataQ.bind(this);
18
+ this._extractMetadata = this._extractMetadata.bind(this);
19
+ this._onRequestMetadata = this._onRequestMetadata.bind(this);
20
+
21
+ // New TSI service
22
+ this._manageTSIDataQ = this._manageTSIDataQ.bind(this);
23
+ this._extractTSIData = this._extractTSIData.bind(this);
24
+ this._onRequestTSIData = this._onRequestTSIData.bind(this);
25
+
26
+ // Temporary Map
27
+ this._metadataMap = {};
28
+ this._metadataPendingMap = {};
29
+ this._tsiDataMap = {};
30
+ this._tsiDataPendingMap = {};
31
+
32
+ // Data Map
33
+ this._tsiPeriodMap = {};
34
+ this._tsiMetadata = {};
35
+
36
+ this._metadataQ = new RequestQueue(this._onRequestMetadata, 80, 10000); // 80 requests in 10 seconds
37
+ this._metadataQ.setConcurrentLimit(2); // To prevent blocking request due to long running request time.
38
+
39
+ this._tsiDataQ = new RequestQueue(this._onRequestTSIData, 80, 10000); // 80 requests in 10 seconds
40
+ this._tsiDataQ.setConcurrentLimit(4); // To prevent blocking request due to long running request time.
41
+
42
+ this._oldTsiDataQ = new RequestQueue(this._requestTimeSeriesData, 80, 10000); // 80 requests in 10 seconds
43
+ this._oldTsiDataQ.setConcurrentLimit(4); // To prevent blocking request due to long running request time.
44
+ };
45
+ Ext.inherits(TSISubscription, EventDispatcher);
46
+
47
+
48
+ /** @type {Object.<string, boolean>}
49
+ * @private
50
+ * @const
51
+ */
52
+ TSISubscription.INTERVAL_MAIN = {
53
+ "Daily": true,
54
+ "Weekly": true,
55
+ "Monthly": true,
56
+ "Quarterly": true,
57
+ "Yearly": true
58
+ };
59
+ /** @type {Object.<string, number>}
60
+ * @private
61
+ * @const
62
+ */
63
+ TSISubscription.INTERVAL_INDEX = {
64
+ "Daily": 0,
65
+ "Weekly": 1,
66
+ "Monthly": 2,
67
+ "4Monthly": 2, // WORKAROUND: Due to metadata on RIC USCONC=ECI, Time Series data provides monthly interval
68
+ "Quarterly": 3,
69
+ "Yearly": 4
70
+ };
71
+ /** @type {Object.<string, number>}
72
+ * @private
73
+ * @const
74
+ */
75
+ TSISubscription.INTERVAL_ENUM = {
76
+ "Daily": 4,
77
+ "Weekly": 5,
78
+ "Monthly": 6,
79
+ "4Monthly": 6, // WORKAROUND: Due to metadata on RIC USCONC=ECI, Time Series data provides monthly interval
80
+ "Quarterly": 7,
81
+ "Yearly": 8
82
+ };
83
+ /** @type {Object.<string, number>}
84
+ * @private
85
+ * @const
86
+ */
87
+ TSISubscription.COLUMN_MASK_ENUM = {
88
+ "CLOSE": 1,
89
+ "OPEN": 2,
90
+ "HIGH": 4,
91
+ "LOW": 8,
92
+ "VOLUME": 16,
93
+ "COUNT": 32,
94
+ "VALUE": 1 // WORKAROUND: Service return VALUE data in the factlist CLOSE
95
+ };
96
+ /** @type {number}
97
+ * @private
98
+ * @const
99
+ */
100
+ TSISubscription.MAX_CONCURRENT_OBJECT = 300;
101
+ /** @type {string}
102
+ * @const
103
+ */
104
+ TSISubscription.PENDING_DATA = "_PENDING♪_";
105
+
106
+
107
+ /** @type {!Object}
108
+ * @private
109
+ */
110
+ TSISubscription.prototype._tsiMetadata;
111
+ /** @type {!Object}
112
+ * @private
113
+ */
114
+ TSISubscription.prototype._tsiPeriodMap;
115
+
116
+ /** @type {!RequestQueue}
117
+ * @private
118
+ */
119
+ TSISubscription.prototype._metadataQ;
120
+ /** @type {number}
121
+ * @private
122
+ */
123
+ TSISubscription.prototype._metadataTimer = 0;
124
+ /** @type {!Object.<string, *>}
125
+ * @private
126
+ */
127
+ TSISubscription.prototype._metadataMap;
128
+ /** @type {!Object.<string, *>}
129
+ * @private
130
+ */
131
+ TSISubscription.prototype._metadataPendingMap;
132
+
133
+ /** @type {!RequestQueue}
134
+ * @private
135
+ */
136
+ TSISubscription.prototype._tsiDataQ;
137
+ /** @type {number}
138
+ * @private
139
+ */
140
+ TSISubscription.prototype._tsiDataTimer = 0;
141
+ /** @type {!Object.<string, *>}
142
+ * @private
143
+ */
144
+ TSISubscription.prototype._tsiDataMap;
145
+ /** @type {!Object.<string, *>}
146
+ * @private
147
+ */
148
+ TSISubscription.prototype._tsiDataPendingMap;
149
+
150
+ /** @type {!RequestQueue}
151
+ * @private
152
+ */
153
+ TSISubscription.prototype._oldTsiDataQ;
154
+
155
+ /** @type {string}
156
+ * @private
157
+ */
158
+ TSISubscription.prototype._state = "stop";
159
+ /** @type {string}
160
+ * @private
161
+ */
162
+ TSISubscription.prototype._tsiTaServiceUrl = "/Apps/TAService";
163
+ /** @type {string}
164
+ * @private
165
+ */
166
+ TSISubscription.prototype._tsiSharedServiceUrl = "/Apps/shared-services/service/TsMultiRICTimeSeries/GetMultiRICTimeSeries";
167
+ /** @type {number}
168
+ * @private
169
+ */
170
+ TSISubscription.prototype._intervalId = 0;
171
+ /** @type {number}
172
+ * @private
173
+ */
174
+ TSISubscription.prototype._intervalTime = 3600000; // 1 Hour
175
+
176
+
177
+ //#region public function of TSI service
178
+ /** Set the interval time for retrieving data
179
+ * @public
180
+ * @param {number} time Millisecond
181
+ */
182
+ TSISubscription.prototype.setIntervalTime = function(time) {
183
+ time = +time;
184
+ if(!time) { // NaN or 0
185
+ return;
186
+ }
187
+ this._intervalTime = time;
188
+ this._stop();
189
+ this._start();
190
+ };
191
+ /** Set the settings of TSI
192
+ * @public
193
+ * @param {string=} sharedServiceUrl Url of TSI shared-service
194
+ * @param {string=} taServiceUrl Url of TSI TAservice
195
+ */
196
+ TSISubscription.prototype.setTSISettings = function(sharedServiceUrl, taServiceUrl) {
197
+ if(sharedServiceUrl != null) {
198
+ this._tsiSharedServiceUrl = sharedServiceUrl;
199
+ }
200
+ if(taServiceUrl != null) {
201
+ this._tsiTaServiceUrl = taServiceUrl;
202
+ }
203
+ };
204
+ /** Subscribe symbol and field to the specified period. This method will start the interval for retrieving data automatically.
205
+ * @public
206
+ * @param {string} symbol RIC
207
+ * @param {string} field TSI field name
208
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
209
+ * @return {*} Return the value if there is existing. Return undefined when requesting the invalid field.
210
+ */
211
+ TSISubscription.prototype.addSymbolAndFieldToPeriod = function (symbol, field, period) {
212
+ var periodRIC = this._getPeriodRICData(period, symbol);
213
+ if(periodRIC.dataCache[field] != null) { // Already have data
214
+ return periodRIC.dataCache[field];
215
+ }
216
+
217
+ var periodMap = this._getPeriodMap(period);
218
+ var isNewSymbol = periodMap.symbol[symbol] == null;
219
+ if(isNewSymbol) {
220
+ periodMap.symbol[symbol] = true;
221
+ }
222
+
223
+ var isNewField = periodMap.field[field] == null;
224
+ if(isNewField) {
225
+ periodMap.field[field] = true;
226
+ }
227
+
228
+ if(isNewSymbol || isNewField) { // Request if it is new symbol or new field
229
+ this._oldTsiDataQ.add({ period: period });
230
+ }
231
+
232
+ this._start(); // Start interval
233
+
234
+ /*
235
+ * 1: No valid data from service
236
+ * 2: Waiting required data
237
+ */
238
+ return TSISubscription.PENDING_DATA;
239
+ };
240
+ //#endregion public function of TSI service
241
+
242
+
243
+ //#region public function of event
244
+ /** Add the function handler into the specific event. This method will start interval automatically.
245
+ * @override
246
+ * @param {string} type Event name
247
+ * @param {Function} handler Event handler
248
+ */
249
+ TSISubscription.prototype.addEventListener = function(type, handler) {
250
+ TSISubscription.base(this, "addEventListener", type, handler);
251
+ this._start();
252
+ };
253
+ /** Remove the function handler from the specific event. If there is not any event handlers, the service will stop automatically.
254
+ * @override
255
+ * @param {string} type Event name
256
+ * @param {Function} handler Event handler
257
+ */
258
+ TSISubscription.prototype.removeEventListener = function(type, handler) {
259
+ TSISubscription.base(this, "removeEventListener", type, handler);
260
+ if(!this.hasListener()) {
261
+ this.removeAllEventListeners();
262
+ }
263
+ };
264
+ /** Remove all function handlers of all events and stop the interval of retrieving data of service.
265
+ * @override
266
+ */
267
+ TSISubscription.prototype.removeAllEventListeners = function() {
268
+ TSISubscription.base(this, "removeAllEventListeners");
269
+ this._stop();
270
+ if(this._metadataTimer > 0) {
271
+ window.clearTimeout(this._metadataTimer);
272
+ }
273
+ this._metadataTimer = 0;
274
+ if(this._tsiDataTimer > 0) {
275
+ window.clearTimeout(this._tsiDataTimer);
276
+ }
277
+ this._tsiDataTimer = 0;
278
+
279
+ this._tsiPeriodMap = {};
280
+ this._metadataMap = {};
281
+ this._tsiDataMap = {};
282
+ this._metadataQ.reset();
283
+ this._tsiDataQ.reset();
284
+ };
285
+ //#endregion public function of event
286
+
287
+
288
+ //#region private function of TSI service
289
+ /** Start the interval of retrieving data
290
+ * @private
291
+ */
292
+ TSISubscription.prototype._start = function() {
293
+ if(this._state === "start") {
294
+ return;
295
+ }
296
+ this._intervalId = window.setInterval(this._refreshData, this._intervalTime);
297
+ this._state = "start";
298
+ };
299
+ /** Stop the interval of retrieving data
300
+ * @private
301
+ */
302
+ TSISubscription.prototype._stop = function() {
303
+ if(this._intervalId > 0) {
304
+ window.clearInterval(this._intervalId);
305
+ }
306
+
307
+ this._intervalId = 0;
308
+ this._state = "stop";
309
+ };
310
+ /** Refresh all the TSI data that had been subscribed to the service.
311
+ * @private
312
+ */
313
+ TSISubscription.prototype._refreshData = function() {
314
+ for(var period in this._tsiPeriodMap) {
315
+ // Request to old TSI service
316
+ this._oldTsiDataQ.add({ period: period }); // If it has error code, it will fallback to new service automatically.
317
+ }
318
+ };
319
+ /** Get object that related to period. It has symbol and field properties to store the requested field and RIC to old service (shared-service).
320
+ * @private
321
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
322
+ * @return {Object} Object that related to period
323
+ */
324
+ TSISubscription.prototype._getPeriodMap = function(period) {
325
+ if(!this._tsiPeriodMap[period]) {
326
+ this._tsiPeriodMap[period] = {
327
+ symbol: {}, // These 2 properties is used for requesting the old service (shared-service)
328
+ field: {}
329
+ };
330
+ }
331
+ return this._tsiPeriodMap[period];
332
+ };
333
+ /** Get data object that related to period and RIC. It has view property to store the requested view and dataCache property to store data.
334
+ * @private
335
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
336
+ * @param {string} symbol RIC
337
+ * @return {Object} Object that related to period and RIC
338
+ */
339
+ TSISubscription.prototype._getPeriodRICData = function(period, symbol) {
340
+ var tsiPeriodMap = this._getPeriodMap(period);
341
+ if(!tsiPeriodMap[symbol]) {
342
+ tsiPeriodMap[symbol] = {
343
+ view: {}, // This property will used for new TSI service
344
+ dataCache: {}
345
+ };
346
+ }
347
+
348
+ return tsiPeriodMap[symbol];
349
+ };
350
+ //#endregion private function of TSI service
351
+
352
+
353
+ //#region private function of calling TS metadata service
354
+ /** Check symbol has its metadata or not
355
+ * @private
356
+ * @param {string} symbol RIC
357
+ * @return {boolean}
358
+ */
359
+ TSISubscription.prototype._hasMetadata = function(symbol) {
360
+ return !symbol || (typeof this._tsiMetadata[symbol] === "object");
361
+ };
362
+ /** Method for requesting the metadata of symbol. Prevent requesting with duplicated RIC.
363
+ * @private
364
+ * @param {string} symbol RIC
365
+ */
366
+ TSISubscription.prototype._requestMetadata = function(symbol) {
367
+ if(this._metadataPendingMap[symbol] || this._hasMetadata(symbol) || this._metadataMap[symbol]) { // Has metadata || pending request
368
+ return;
369
+ }
370
+
371
+ this._metadataMap[symbol] = true;
372
+ if(this._metadataTimer <= 0) {
373
+ this._metadataTimer = window.setTimeout(this._manageMetadataQ, 200);
374
+ }
375
+ };
376
+ /** Manage the request queue of TSI metadata. Split 300 RICs per request.
377
+ * @private
378
+ */
379
+ TSISubscription.prototype._manageMetadataQ = function() {
380
+ this._metadataTimer = 0; // Reset
381
+
382
+ var symbolMap = this._metadataMap;
383
+ this._metadataMap = {};
384
+
385
+ var symbols = [];
386
+ for(var key in symbolMap) {
387
+ if(this._metadataPendingMap[key]) {
388
+ continue;
389
+ }
390
+ symbols.push(key);
391
+ this._metadataPendingMap[key] = true;
392
+
393
+ if(symbols.length >= TSISubscription.MAX_CONCURRENT_OBJECT) {
394
+ this._metadataQ.add({ rics: symbols }); // Add full capcity to queue
395
+ symbols = [];
396
+ }
397
+ }
398
+ if(symbols.length > 0) {
399
+ this._metadataQ.add({ rics: symbols }); // Add remaining to queue
400
+ }
401
+ };
402
+ /** Publish TSI metadata request to server.
403
+ * @private
404
+ * @param {Object} obj Specified RICs
405
+ * @param {Array.<Object>} q All RICs that are waiting in a queue
406
+ * @return {Promise}
407
+ */
408
+ TSISubscription.prototype._onRequestMetadata = function(obj, q) {
409
+ var reqRics = obj.rics;
410
+ var len = reqRics.length;
411
+ if(len <= 0) {
412
+ return Promise.resolve("");
413
+ }
414
+
415
+ // Merge request
416
+ var qi = q.length;
417
+ var remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
418
+ while(remaining > 0 && --qi >= 0) {
419
+ var qObj = q[qi];
420
+ reqRics = reqRics.concat( qObj.rics.splice(0, remaining) );
421
+
422
+ len = reqRics.length; // Update length
423
+ remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
424
+ if(qObj.rics.length === 0) { // No data anymore
425
+ q.pop();
426
+ }
427
+ }
428
+
429
+ var payload = { "rics": reqRics };
430
+ var pendingMap = this._metadataPendingMap;
431
+ return Util.post(this._tsiTaServiceUrl + "/GetMetadata", payload)
432
+ .then(this._extractMetadata)
433
+ .catch(function(err) {
434
+ for(var i = len; --i >= 0;) {
435
+ delete pendingMap[reqRics[i]]; // Remove key from pending list due to error
436
+ }
437
+ });
438
+ };
439
+ /** Extract the metadata response from service. This will trig to call service for getting data automatically.
440
+ * @private
441
+ * @param {Object} serviceResponse
442
+ */
443
+ TSISubscription.prototype._extractMetadata = function(serviceResponse) {
444
+ var instruments = serviceResponse["instruments"];
445
+ if(instruments) { // Successful request
446
+ var aryLen = Object.keys(/** @type {!Object} */(TSISubscription.INTERVAL_INDEX)).length;
447
+ var ary = new Array(aryLen); // Reused array
448
+ for(var i = instruments.length; --i >= 0;) {
449
+ var instrument = instruments[i];
450
+
451
+ var data = null;
452
+ var viewList = instrument["viewList"] || [];
453
+ for(var j = viewList.length; --j >= 0;) {
454
+ var view = viewList[j];
455
+ var intervals = view["intervals"];
456
+ var k, interval, len;
457
+ for(k = 0, len = intervals.length; k < len; k++) {
458
+ interval = intervals[k];
459
+ var idx = TSISubscription.INTERVAL_INDEX[ interval["name"] ];
460
+ if(idx != null) {
461
+ if(ary[idx] == null || TSISubscription.INTERVAL_MAIN[ interval["name"] ]) { // Main interval has more priority than other interval in same category
462
+ ary[idx] = interval;
463
+ }
464
+ }
465
+ }
466
+
467
+ var viewData = null;
468
+ var columns;
469
+ for(k = 0; k < aryLen; k++) {
470
+ interval = ary[k];
471
+ ary[k] = null; // Clear array for reused
472
+ if(interval != null && viewData === null) {
473
+ columns = 0; // Reset
474
+
475
+ for(var l = interval["fields"].length; --l >= 0;) { // Column mask for view + interval
476
+ columns |= TSISubscription.COLUMN_MASK_ENUM[ interval["fields"][l] ]; // undefined will be same as 0
477
+ }
478
+
479
+ if(columns !== 0) { // Valid interval to retrieve data
480
+ viewData = {
481
+ interval: TSISubscription.INTERVAL_ENUM[ interval["name"] ],
482
+ columnMask: columns
483
+ };
484
+ }
485
+ }
486
+ }
487
+
488
+ if(viewData !== null) {
489
+ if(data === null) {
490
+ data = {};
491
+ }
492
+ data[view["name"]] = viewData;
493
+ }
494
+ }
495
+
496
+ this._tsiMetadata[instrument["ric"]] = data;
497
+ delete this._metadataPendingMap[instrument["ric"]]; // Remove RIC from pending list
498
+ }
499
+
500
+ // Trig to call service for getting data
501
+ if(this._tsiDataTimer <= 0) {
502
+ this._tsiDataTimer = window.setTimeout(this._manageTSIDataQ, 0);
503
+ }
504
+ }
505
+ };
506
+ //#endregion private function of calling TS metadata service
507
+
508
+
509
+ //#region private function of calling new TS data service
510
+ /** Get the string of key by symbol, view and period.
511
+ * @private
512
+ * @param {string} symbol RIC
513
+ * @param {string} view TSI view name
514
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
515
+ * @return {string} String of key
516
+ */
517
+ TSISubscription.prototype._getKey = function(symbol, view, period) {
518
+ return symbol + "♫" + view + "♫" + period;
519
+ };
520
+ /** Build the request information for metadata
521
+ * @private
522
+ * @param {!Object} reqPayload Object that contains symbol, view and period
523
+ * @param {!Object.<string, number>} dateMap Date calculation map. Reduce duplicated date to calculate.
524
+ * @return {Object.<string, Array>}
525
+ */
526
+ TSISubscription.prototype._buildRequestInfo = function(reqPayload, dateMap) {
527
+ var ric = reqPayload.ric;
528
+ var view = reqPayload.view;
529
+ var viewData = this._tsiMetadata[ric] && this._tsiMetadata[ric][view];
530
+ if(!viewData) {
531
+ return null;
532
+ }
533
+
534
+ var period = dateMap[reqPayload.period];
535
+ if(period == null) {
536
+ period = TSISubscription._dateCalculation(reqPayload.period).getTime();
537
+ dateMap[reqPayload.period] = period;
538
+ }
539
+
540
+ return {
541
+ "RequestInfos": [{
542
+ "__type": "TSRequest:http://www.thomsonreuters.com/ns/2012/01/01/webservices/TAService_1/",
543
+ "RIC": ric,
544
+ "Interval": viewData.interval,
545
+ "Field": view,
546
+ "ColumnMask": viewData.columnMask,
547
+ "DataPoints": "1",
548
+ "EndDate": "/Date(" + period + ")/"
549
+ }]
550
+ };
551
+ };
552
+ /** Method for requesting the data of symbol and view with specified period. Prevent requesting with duplicated symbol, view and period.
553
+ * @private
554
+ * @param {string} symbol RIC
555
+ * @param {string} view TSI view name
556
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
557
+ */
558
+ TSISubscription.prototype._requestTSIData = function(symbol, view, period) {
559
+ if(!symbol || !view || !period) {
560
+ return;
561
+ }
562
+
563
+ var key = this._getKey(symbol, view, period);
564
+ if(this._tsiDataPendingMap[key] || this._tsiDataMap[key]) { // Already in list
565
+ return;
566
+ }
567
+
568
+ this._tsiDataMap[key] = {
569
+ ric: symbol,
570
+ view: view,
571
+ period: period
572
+ };
573
+ if(this._tsiDataTimer <= 0) {
574
+ this._tsiDataTimer = window.setTimeout(this._manageTSIDataQ, 200);
575
+ }
576
+ };
577
+ /** Manage the request queue of TSI data. Split 300 objects per request. If the requested object dose not have metadata, it will request metadata first.
578
+ * @private
579
+ */
580
+ TSISubscription.prototype._manageTSIDataQ = function() {
581
+ this._tsiDataTimer = 0; // Reset
582
+
583
+ var listMap = this._tsiDataMap;
584
+ this._tsiDataMap = {};
585
+
586
+ var obj;
587
+ var listArr = [];
588
+ for(var key in listMap) {
589
+ obj = listMap[key];
590
+ if(this._hasMetadata(obj.ric)) {
591
+ if(this._tsiDataPendingMap[key]) {
592
+ continue;
593
+ }
594
+ listArr.push( obj );
595
+ this._tsiDataPendingMap[key] = true;
596
+ } else { // No metadata
597
+ this._requestMetadata(obj.ric);
598
+ this._tsiDataMap[key] = obj; // Add to pending list again
599
+ continue;
600
+ }
601
+
602
+ if(listArr.length >= TSISubscription.MAX_CONCURRENT_OBJECT) {
603
+ this._tsiDataQ.add({ list: listArr }); // Add full capcity to queue
604
+ listArr = [];
605
+ }
606
+ }
607
+ if(listArr.length > 0) {
608
+ this._tsiDataQ.add({ list: listArr }); // Add remaining to queue
609
+ }
610
+ };
611
+ /** Publish TSI data request to server.
612
+ * @private
613
+ * @param {Object} obj Specified list of objects
614
+ * @param {Array.<Object>} q All list of objects that are waiting in a queue
615
+ * @return {!Promise}
616
+ */
617
+ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
618
+ var reqPayloads = obj.list;
619
+ var len = reqPayloads.length;
620
+ if(len <= 0) {
621
+ return Promise.resolve("");
622
+ }
623
+
624
+ // Merge request
625
+ var qi = q.length;
626
+ var remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
627
+ while(remaining > 0 && --qi >= 0) {
628
+ var qObj = q[qi];
629
+ reqPayloads = reqPayloads.concat( qObj.list.splice(0, remaining) );
630
+
631
+ len = reqPayloads.length; // Update length
632
+ remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
633
+ if(qObj.list.length === 0) { // No data anymore
634
+ q.pop();
635
+ }
636
+ }
637
+
638
+ var dateMap = {};
639
+ var requestInfos = [];
640
+ var reqInfo;
641
+ for(var i = len; --i >= 0;) {
642
+ reqInfo = this._buildRequestInfo(reqPayloads[i], dateMap);
643
+ if(reqInfo) {
644
+ requestInfos.push( reqInfo ); // BEWARE: This is the reverse loop
645
+ } else {
646
+
647
+ /*
648
+ * No metadata for request
649
+ * Complete the request so that it will not stay indefinitely as "pending"
650
+ * TRGRID-2335
651
+ */
652
+ var key = this._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period);
653
+ delete this._tsiDataPendingMap[key]; // Remove from pending map
654
+
655
+ var periodRIC = this._getPeriodRICData(reqPayloads[i].period, reqPayloads[i].ric);
656
+ var periodMap = this._getPeriodMap(reqPayloads[i].period);
657
+ var fields = periodMap.field;
658
+ var rowData = {};
659
+ for(var field in fields) {
660
+ if(!fields[field]) continue;
661
+ periodRIC.dataCache[field] = null;
662
+ rowData[reqPayloads[i].period + "♠" + field] = periodRIC.dataCache[field];
663
+ }
664
+ this._dispatch("dataChanged", { "ric": reqPayloads[i].ric, "values": rowData, "sender": this }); // Publish data
665
+ reqPayloads.splice(i, 1);
666
+ }
667
+ }
668
+
669
+ if(requestInfos.length === 0) {
670
+ return Promise.resolve("");
671
+ }
672
+
673
+ var self = this; // TODO: This is bad
674
+ var payload = { "messages": requestInfos.reverse() }; // Reverse array back for normal order
675
+ return Util.requestText(this._tsiTaServiceUrl + "/CalculateAllData", payload)
676
+ .then(function(serviceResponse) {
677
+ return {
678
+ payload: reqPayloads, // attached payload
679
+ response: serviceResponse
680
+ };
681
+ })
682
+ .then(this._extractTSIData)
683
+ .catch(function(err) { // TODO: This is bad
684
+ for(var i = len; --i >= 0;) { // eslint-disable-line
685
+ var key = self._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period); // eslint-disable-line
686
+ delete self._tsiDataPendingMap[key]; // Remove from pending map
687
+ }
688
+ });
689
+ };
690
+ /** Extract the TSI data response from service. Cache the data and dispatch an event.
691
+ * @private
692
+ * @param {Object} res Object that contains response from service in response property and requested payload in payload property
693
+ * @return {Object}
694
+ */
695
+ TSISubscription.prototype._extractTSIData = function(res) {
696
+ var response = res.response.replace(/\[NaN(,NaN)*\]/g, "[]"); // Handler for return the invalid JSON syntax due to no data
697
+ var json;
698
+ try {
699
+ json = /** @type {Object} */(JSON.parse(response));
700
+ } catch(ex) {
701
+ console.log("Cannot parse TSI data: ", ex);
702
+ json = null;
703
+ }
704
+
705
+ if(json) {
706
+ var payload = res.payload;
707
+ var len = payload.length;
708
+ var periodRIC, dataCache, view, symbol, period, rowData, field, periodMap;
709
+ for(var i = 0; i < len; i++) {
710
+ view = payload[i].view;
711
+ symbol = payload[i].ric;
712
+ period = payload[i].period;
713
+
714
+ periodRIC = this._getPeriodRICData(period, symbol);
715
+ periodRIC.view[view] = true; // Mark as already requested
716
+ dataCache = periodRIC.dataCache;
717
+
718
+ var data = json[i]["Columns"] || [];
719
+ if(data.length === 0) {
720
+ continue;
721
+ }
722
+
723
+ rowData = {};
724
+ var val;
725
+ for(var j = 0, dataLen = data.length; j < dataLen; j++) {
726
+ val = data[j]["Values"][0];
727
+ if(val == null || val !== val) {
728
+ /*
729
+ * undefined, null, NaN
730
+ * Complete the request so that it will not stay indefinitely as "pending"
731
+ * TRGRID-2335
732
+ */
733
+ periodMap = this._getPeriodMap(period);
734
+ for(field in periodMap.field) {
735
+ if(!periodMap.field[field]) continue;
736
+ dataCache[field] = null;
737
+ rowData[period + "♠" + field] = dataCache[field];
738
+ }
739
+ continue;
740
+ }
741
+
742
+ switch(data[j]["Name"]) { // Cache the data in service
743
+ case "Date":
744
+ field = view + ".TIMESTAMP";
745
+ dataCache[field] = new Date(+val.substring(6, val.length - 2)).toJSON().substr(0, 19);
746
+ rowData[period + "♠" + field] = dataCache[field];
747
+ break;
748
+ case "Open":
749
+ field = view + ".OPEN";
750
+ dataCache[field] = val;
751
+ rowData[period + "♠" + field] = dataCache[field];
752
+ break;
753
+ case "High":
754
+ field = view + ".HIGH";
755
+ dataCache[field] = val;
756
+ rowData[period + "♠" + field] = dataCache[field];
757
+ break;
758
+ case "Low":
759
+ field = view + ".LOW";
760
+ dataCache[field] = val;
761
+ rowData[period + "♠" + field] = dataCache[field];
762
+ break;
763
+ case "Close":
764
+ field = view + ".CLOSE";
765
+ dataCache[field] = val;
766
+ rowData[period + "♠" + field] = dataCache[field];
767
+
768
+ field = view + ".VALUE";
769
+ dataCache[field] = val; // WORKAROUND: Service return VALUE in factlist CLOSE
770
+ rowData[period + "♠" + field] = dataCache[field];
771
+ break;
772
+ case "Volume":
773
+ field = view + ".VOLUME";
774
+ dataCache[field] = val;
775
+ rowData[period + "♠" + field] = dataCache[field];
776
+ break;
777
+ case "Count":
778
+ field = view + ".COUNT";
779
+ dataCache[field] = val;
780
+ rowData[period + "♠" + field] = dataCache[field];
781
+ break;
782
+ default:
783
+ field = (view + "." + data[j]["Name"]).toUpperCase();
784
+ dataCache[field] = val; // Rarely case: new fields
785
+ rowData[period + "♠" + field] = dataCache[field];
786
+ }
787
+ }
788
+
789
+ this._dispatch("dataChanged", { "ric": symbol, "values": rowData, "sender": this }); // Publish data
790
+ delete this._tsiDataPendingMap[ this._getKey(symbol, view, period) ]; // Remove from pending map
791
+ }
792
+ }
793
+
794
+ return json;
795
+ };
796
+ //#endregion private function of calling new TS data service
797
+
798
+
799
+ //#region private function of calling old TS data service
800
+ /** Publish the TSI request to the TSI server.
801
+ * @private
802
+ * @param {Object} obj Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
803
+ * @param {Array.<Object>} q All periods that are waiting in a queue
804
+ * @return {Promise}
805
+ */
806
+ TSISubscription.prototype._requestTimeSeriesData = function(obj, q) {
807
+ var period = obj.period;
808
+ for(var i = q.length; --i >= 0;) {
809
+ var qObj = q[i];
810
+ if(!qObj.rics && qObj.period === period) {
811
+ q.splice(i, 1); // Remove any duplicate period that is being queued
812
+ }
813
+ }
814
+
815
+ var periodMap = this._getPeriodMap(period);
816
+ var fields = Object.keys(periodMap.field);
817
+ var symbols = obj.rics ? obj.rics : Object.keys(periodMap.symbol);
818
+
819
+ if(fields.length === 0 || symbols.length === 0) {
820
+ return null;
821
+ }
822
+
823
+ var reqDate = TSISubscription._dateCalculation(period).toJSON();
824
+ if(reqDate === null) { // Invalid date/period parameter
825
+ return null;
826
+ } else {
827
+ reqDate = reqDate.slice(0, 10);
828
+ }
829
+
830
+ if(symbols.length > 300) { // TSI cannot handle more than 300 rics in a single request
831
+ obj.rics = symbols;
832
+ symbols = obj.rics.splice(0, 300); // Split the rics
833
+ q.unshift(obj); // Push the request back at the front of the queue
834
+ }
835
+
836
+ var payload = {
837
+ "rics": symbols.join(" "),
838
+ "factList": fields.join(","),
839
+ "date": reqDate
840
+ };
841
+
842
+ return Util.post(this._tsiSharedServiceUrl, payload)
843
+ .then(function(result) {
844
+ return {
845
+ "period": period, // Attach requested period
846
+ "reqDate": reqDate, // Attach requested date for comparison with the returned data
847
+ "result": result
848
+ };
849
+ })
850
+ .then(this._onTSIUpdate)
851
+ .catch(TSISubscription._emptyMethod); // Silent error handling
852
+ };
853
+ /** Function for processing the TSI response and publish the event to the listener.
854
+ * @private
855
+ * @param {Object} json JSON object of TSI response
856
+ */
857
+ TSISubscription.prototype._onTSIUpdate = function(json) {
858
+ var period = json["period"];
859
+ var result = json["result"];
860
+ var periodMap = this._getPeriodMap(period);
861
+ var fields = periodMap["field"];
862
+
863
+ var header = result[0];
864
+ if(!header) {
865
+ throw("Invalid response from TSI service");
866
+ }
867
+
868
+ var ricIdx = -1;
869
+ var returnStatusIdx = -1;
870
+ // var timestampIdx = -1;
871
+ var fieldIdxMap = {};
872
+ for(var i = header.length; --i >= 0;) {
873
+ if(header[i] === "RIC") {
874
+ ricIdx = i;
875
+ } else if(header[i] === "ReturnStatus") {
876
+ returnStatusIdx = i;
877
+ } else if(header[i] === "TimeStamp") {
878
+ // timestampIdx = i;
879
+ } else if(fields[header[i]]) { // Requested fields
880
+ fieldIdxMap[header[i]] = i;
881
+ }
882
+ }
883
+ fields = Object.keys(fieldIdxMap); // Collect the fields of result
884
+
885
+ var rowLen = result.length;
886
+ var symbol, value, rowData, dataCache;
887
+ // var isCorrectDate;
888
+ for(i = 1; i < rowLen; i++) {
889
+ symbol = result[i][ricIdx];
890
+
891
+ if(result[i][returnStatusIdx] !== "0") { // Have an error in response, then fallback to new TS data service
892
+ // Request to new service
893
+ for(var k = fields.length; --k >= 0;) {
894
+ var view = fields[k].substring(0, fields[k].lastIndexOf("."));
895
+ if(!this._hasMetadata(symbol) || (this._tsiMetadata[symbol] && this._tsiMetadata[symbol][view])) { // No metadata || Ready to make a request
896
+ this._requestTSIData(symbol, view, period);
897
+ }
898
+ }
899
+ continue;
900
+ }
901
+
902
+ // isCorrectDate = (reqDate === result[i][timestampIdx]);
903
+ dataCache = this._getPeriodRICData(period, symbol).dataCache;
904
+ rowData = {};
905
+
906
+ for(var j = fields.length; --j >= 0;) {
907
+ // value = (isCorrectDate) ? (result[i][fieldIdxMap[fields[j]]] || null) : null; // If result is same as the requested timestamp then return the value. Otherwise return null.
908
+ value = result[i][fieldIdxMap[fields[j]]] || null; // If return empty string, it should be null
909
+ if(value !== null) {
910
+ value = +value; // Convert to number
911
+ }
912
+ dataCache[fields[j]] = value; // Cache the data in service
913
+ rowData[period + "♠" + fields[j]] = dataCache[fields[j]];
914
+ }
915
+
916
+ this._dispatch("dataChanged", { "ric": symbol, "values": rowData, "sender": this }); // Publish data
917
+ }
918
+ };
919
+ //#endregion private function of calling old TS data service
920
+
921
+
922
+ //#region private function of date calculation
923
+ /** Add/Subtract days to the given JS Date object.
924
+ * @private
925
+ * @param {!Date} date Javascript Date object
926
+ * @param {number} day Day to add or subtract. Plus value is add operation. Minus value is subtract operation.
927
+ * @return {!Date}
928
+ */
929
+ TSISubscription._addDays = function(date, day) {
930
+ date.setDate(date.getDate() + day);
931
+
932
+ return date;
933
+ };
934
+ /** Add/Subtract months to the given JS Date object.
935
+ * @private
936
+ * @param {!Date} date Javascript Date object
937
+ * @param {number} month Month to add or subtract. Plus value is add operation. Minus value is subtract operation.
938
+ * @return {!Date}
939
+ */
940
+ TSISubscription._addMonths = function(date, month) {
941
+ // Reference: http://stackoverflow.com/questions/7937233/how-do-i-calculate-the-date-in-javascript-three-months-prior-to-today
942
+ var expectedMonth = ((date.getMonth() + month) % 12 + 12) % 12;
943
+ date.setMonth(date.getMonth() + month);
944
+ if (date.getMonth() !== expectedMonth) { // If it has an error of native date subtraction
945
+ date.setDate(0); // Backward to the last day of previous month
946
+ }
947
+ return date;
948
+ };
949
+ /** Add/Subtract months to the given JS Date object.
950
+ * @private
951
+ * @param {!Date} date Javascript Date object
952
+ * @param {number} num
953
+ * @param {string=} dateUnit
954
+ * @return {!Date}
955
+ */
956
+ TSISubscription._addDate = function(date, num, dateUnit) {
957
+ if(dateUnit === "Y") {
958
+ return TSISubscription._addMonths(date, num * 12);
959
+ } else if(dateUnit === "Q") {
960
+ return TSISubscription._addMonths(date, num * 3);
961
+ } else if(dateUnit === "M") {
962
+ return TSISubscription._addMonths(date, num);
963
+ } else if(dateUnit === "W") {
964
+ return TSISubscription._addDays(date, num * 7);
965
+ }
966
+
967
+ return TSISubscription._addDays(date, num);
968
+ };
969
+ /** Calculate the given period or transform the given date to string of date
970
+ * @private
971
+ * @param {string} period Specified Date(YYYY-MM-DD) or period (NNNNNP where N is a digit between 0 and 9, and P can be: D for days, W for weeks, M for months, Q for quarters, Y for years)
972
+ * @return {Date} Date object
973
+ */
974
+ TSISubscription._dateCalculation = function(period) {
975
+ var goBackPeriods = period.match(/\d+(D|W|M|Q|Y)/g);
976
+ if(goBackPeriods) { // Relative date pattern
977
+ var now = new Date();
978
+ for(var i = goBackPeriods.length; --i >= 0;){
979
+ var p = goBackPeriods[i];
980
+ var dateUnit = p.substr(p.length - 1);
981
+ var num = -(p.substr(0, p.length - 1));
982
+ now = TSISubscription._addDate(now, num, dateUnit);
983
+ }
984
+ return now;
985
+ }
986
+
987
+ // Specified date
988
+ var temp = new Date(period);
989
+ if(temp.toJSON() === null) {
990
+ console.warn("Invalid period parameter: " + period);
991
+ return null;
992
+ }
993
+ var date = null;
994
+ if(period.match(/^\d{1,4}(-\d{2}(-\d{2})?)?$/)) { // If ISO format (YYYY-MM-DD)
995
+ date = temp;
996
+ } else { // If non ISO format
997
+ date = new Date(temp.getTime() - temp.getTimezoneOffset() * 60000); // Adjust timezone
998
+ }
999
+ return date; // Return the date in string format e.g. 2017-02-21
1000
+ };
1001
+
1002
+
1003
+ /** @private
1004
+ * @param {*} msg
1005
+ */
1006
+ TSISubscription._log = function(msg) {
1007
+ console.log("TSI: ", msg);
1008
+ };
1009
+ /** @private
1010
+ * @param {*} msg
1011
+ */
1012
+ TSISubscription._emptyMethod = function(msg) {
1013
+ };
1014
+
1015
+ export {TSISubscription};