@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,1476 @@
1
+ import {Ext} from '../../tr-grid-util/es6/Ext.js';
2
+ import {GridPlugin} from '../../tr-grid-util/es6/GridPlugin.js';
3
+ import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
4
+ import {injectCss, prettifyCss, extendObject} from "../../tr-grid-util/es6/Util.js";
5
+
6
+ /** @typedef {Object} CheckboxPlugin~Options
7
+ * @description Available options describing `checkbox` object specified in grid's option
8
+ * @property {boolean=} rowSelection=false If enabled, grid row will be selected as checkbox is checked.
9
+ * @property {string=} field="CHECK_BOX" Field that will be used for storing check state
10
+ * @property {string=} disablingField="CHECK_BOX_DISABLED" Field that will be used for storing disabling state
11
+ * @property {Function=} checkboxCreated=null Function handler for checkboxCreated event
12
+ * @property {Function=} checkboxBinding=null Function handler for checkboxBinding event
13
+ * @property {Function=} clicked=null Function handler for checkbox clicked event
14
+ * @property {number=} width=34 Width for checkbox column
15
+ */
16
+
17
+ /** @typedef {Object} CheckboxPlugin~ColumnOptions
18
+ * @property {boolean=} checkboxColumn=false If enabled, the correspondence column will use as checkbox column.
19
+ */
20
+
21
+ /** @event CheckboxPlugin#checkboxCreated
22
+ * @description Fired on each creation of checkbox element
23
+ * @property {Element} input Checkbox element that is an alias to `checkbox`
24
+ * @property {Element} checkbox Checkbox element
25
+ * @property {Object} cell Grid Cell object
26
+ * @property {Object} section Grid ILayoutGrid object
27
+ * @property {Object} grid Core Grid object
28
+ * @property {number} colIndex
29
+ * @property {number} rowIndex
30
+ */
31
+
32
+ /** @event CheckboxPlugin#checkboxBinding
33
+ * @description Fired on each rendering of checkbox element
34
+ * @property {Element} checkbox Checkbox element
35
+ * @property {Object} rowData
36
+ * @property {number} rowIndex
37
+ */
38
+
39
+ /** @event CheckboxPlugin#clicked
40
+ * @property {Element} checkbox element
41
+ * @property {number} rowIndex
42
+ * @property {boolean} checked
43
+ * @property {string} checkState
44
+ */
45
+
46
+
47
+ /** @constructor
48
+ * @extends {GridPlugin}
49
+ * @param {CheckboxPlugin~Options=} options
50
+ */
51
+ var CheckboxPlugin = function (options) {
52
+ var t = this;
53
+ t._onPreSectionRender = t._onPreSectionRender.bind(t);
54
+ t._onPostSectionDataBinding = t._onPostSectionDataBinding.bind(t);
55
+ t._onCheckboxClicked = t._onCheckboxClicked.bind(t);
56
+ t._onColumnIndexChanged = t._onColumnIndexChanged.bind(t);
57
+ t._onColumnAdded = t._onColumnAdded.bind(t);
58
+ t._requestUIPopulation = t._requestUIPopulation.bind(t);
59
+ t._populateUIs = t._populateUIs.bind(t);
60
+ t.selectAll = t.selectAll.bind(t);
61
+ t.deselectAll = t.deselectAll.bind(t);
62
+ t._hosts = [];
63
+
64
+ if(options) {
65
+ t.config({"checkbox": options});
66
+ }
67
+ };
68
+ Ext.inherits(CheckboxPlugin, GridPlugin);
69
+
70
+ /** @type {number}
71
+ * @private
72
+ */
73
+ CheckboxPlugin.prototype._width = 34;
74
+ /** @type {number}
75
+ * @private
76
+ */
77
+ CheckboxPlugin.prototype._displayColumn = -1;
78
+ /** @type {number}
79
+ * @private
80
+ */
81
+ CheckboxPlugin.prototype._userCheckboxIdx = -1;
82
+ /** @type {number}
83
+ * @private
84
+ */
85
+ CheckboxPlugin.prototype._updateTimer = 0;
86
+ /** @type {boolean}
87
+ * @private
88
+ */
89
+ CheckboxPlugin.prototype._initializing = false;
90
+ /** @type {number}
91
+ * @private
92
+ */
93
+ CheckboxPlugin.prototype._coralCheckboxVer = -1; // Contains version number of the coral checkbox, -1 means not initialize yet
94
+ /** @type {string}
95
+ * @private
96
+ */
97
+ CheckboxPlugin.prototype._checkboxField = "CHECK_BOX";
98
+ /** @type {string}
99
+ * @private
100
+ */
101
+ CheckboxPlugin.prototype._disablingField = "CHECK_BOX_DISABLED";
102
+ /** @type {boolean}
103
+ * @private
104
+ */
105
+ CheckboxPlugin.prototype._autoRowSelection = false;
106
+ /** @type {Function}
107
+ * @private
108
+ */
109
+ CheckboxPlugin._emptyFunc = function () { };
110
+ /** @type {Object.<string, number>}
111
+ * @private
112
+ */
113
+ CheckboxPlugin._exceptions = {
114
+ "filterInputs": 1,
115
+ "bottomPadding": 1
116
+ };
117
+ /** @type {string}
118
+ * @private
119
+ */
120
+ CheckboxPlugin._styles = prettifyCss([
121
+ ".tr-checkbox-column input[type='checkbox'], .tr-checkbox-column input+label", [
122
+ "cursor: pointer;"
123
+ ],
124
+ ".column.tr-checkbox-column .cell", [
125
+ "padding: 0;",
126
+ "text-align: center;"
127
+ ]
128
+ ]);
129
+ /** @private
130
+ * @param {Object} grid core grid object
131
+ */
132
+ CheckboxPlugin._applyStyles = function(grid) {
133
+ if(grid && !grid._checkboxStyles) { // TODO: Support run-time theme loading
134
+ grid._checkboxStyles = true; // Prevent loading the same style twice
135
+ injectCss(CheckboxPlugin._styles, grid.getElement());
136
+ }
137
+ };
138
+
139
+ /** @type {number}
140
+ * @private
141
+ */
142
+ CheckboxPlugin._runningId = 0;
143
+
144
+ /** @private
145
+ * @function
146
+ * @param {*} val
147
+ * @return {string}
148
+ */
149
+ CheckboxPlugin._toCheckState = function (val) {
150
+ if (val === "partial") {
151
+ return "partial";
152
+ } else {
153
+ return (val) ? "checked" : "unchecked";
154
+ }
155
+ };
156
+ /** @private
157
+ * @function
158
+ * @param {Element} chkbox
159
+ * @return {string}
160
+ */
161
+ CheckboxPlugin._getCheckState = function (chkbox) {
162
+ if(chkbox.style.display == "none" || chkbox.hasAttribute("disabled")) { // slow
163
+ return "";
164
+ }
165
+ // WORKAROUND
166
+ // in elf v3, v4 chkbox.indeterminate can represent 'partial' state
167
+ // but we check class 'square-shape' instead to support elf v1 and native checkbox input
168
+ else if (chkbox.classList.contains('square-shape')) {
169
+ return "partial";
170
+ } else if (chkbox.checked) {
171
+ return "checked";
172
+ } else {
173
+ return "unchecked";
174
+ }
175
+ };
176
+ /** @private
177
+ * @function
178
+ * @param {Element} chkbox
179
+ * @param {string} state
180
+ * @return {number} Return non-zero value if there is a state change
181
+ */
182
+ CheckboxPlugin._setCheckState = function (chkbox, state) {
183
+ if (chkbox._forceNewState) { // WORKAROUND: to force checkbox move to next state
184
+ state = chkbox._forceNewState;
185
+ chkbox._forceNewState = null;
186
+ } else if (CheckboxPlugin._getCheckState(chkbox) === state) { // Process change only when necessary
187
+ return 0;
188
+ }
189
+
190
+ if(state === "partial") {
191
+ chkbox.classList.add("square-shape");
192
+ // Elf v3 will clear indeterminate state when setting checked property
193
+ chkbox.checked = (this._coralCheckboxVer < 3); // WARNING: This is not a conventional standard
194
+ chkbox.setAttribute("indeterminate", "");
195
+ } else {
196
+ chkbox.classList.remove("square-shape");
197
+ chkbox.checked = (state === "checked");
198
+ chkbox.removeAttribute("indeterminate");
199
+ }
200
+ // WORKAROUND: to force detech _prevState of check box
201
+ chkbox._prevState = state;
202
+ return 1;
203
+ };
204
+ /** @private
205
+ * @function
206
+ * @param {string} curState checked|unchecked|partial
207
+ * @return {string} Return new state checked|unchecked
208
+ */
209
+ CheckboxPlugin._toggleState = function (curState) {
210
+ // WARNING: When clicking indeterminated checkbox, it should result in selecting all (checked)
211
+ return (curState == "checked" || curState == "partial") ? "unchecked" : "checked";
212
+ };
213
+ /** @private
214
+ * @function
215
+ * @param {string} curState
216
+ * @param {string} state
217
+ * @return {string} checked|unchecked|partial
218
+ */
219
+ CheckboxPlugin._mergeState = function(curState, state) {
220
+ if(curState) {
221
+ if(state) {
222
+ if(curState !== state) {
223
+ return "partial";
224
+ }
225
+ } else {
226
+ return curState;
227
+ }
228
+ }
229
+ return state;
230
+ };
231
+ /** @private
232
+ * @function
233
+ * @param {Array.<string>} states
234
+ * @return {string} checked|unchecked|partial
235
+ */
236
+ CheckboxPlugin._mergeStates = function(states) {
237
+ var state = "";
238
+ for (var i = states.length; --i >= 0; ) {
239
+ state = CheckboxPlugin._mergeState(state, states[i]);
240
+ if (state === "partial") {
241
+ return state;
242
+ }
243
+ }
244
+ return state;
245
+ };
246
+ /** @private
247
+ * @function
248
+ * @param {number} count
249
+ * @param {boolean} bool
250
+ * @return {Array.<boolean>}
251
+ */
252
+ CheckboxPlugin._genData = function (count, bool) {
253
+ var data = new Array(count);
254
+ for(var i = count; --i >= 0;) { data[i] = bool; }
255
+ return data;
256
+ };
257
+
258
+ /** @public
259
+ * @return {string}
260
+ */
261
+ CheckboxPlugin.prototype.getName = function () {
262
+ return "CheckboxPlugin"; // Read Only
263
+ };
264
+ /** @public
265
+ * @param {Object} host core grid object
266
+ * @param {Object=} options
267
+ */
268
+ CheckboxPlugin.prototype.initialize = function (host, options) {
269
+ if(this._hosts.indexOf(host) >= 0) { return; }
270
+ this._hosts.push(host);
271
+
272
+ host.listen("preSectionRender", this._onPreSectionRender);
273
+ host.listen("postSectionDataBinding", this._onPostSectionDataBinding);
274
+
275
+ host.listen("columnAdded", this._onColumnIndexChanged);
276
+ host.listen("columnAdded", this._onColumnAdded);
277
+ host.listen("columnMoved", this._onColumnIndexChanged);
278
+ host.listen("columnRemoved", this._onColumnIndexChanged);
279
+
280
+ this.config(options);
281
+ CheckboxPlugin._applyStyles(host);
282
+
283
+ this._requestUIPopulation();
284
+ };
285
+ /** @public
286
+ * @param {Object} host core grid object
287
+ */
288
+ CheckboxPlugin.prototype.unload = function (host) {
289
+ var at = this._hosts.indexOf(host);
290
+ if(at < 0) { return; }
291
+
292
+ host.unlisten("preSectionRender", this._onPreSectionRender);
293
+ host.unlisten("postSectionDataBinding", this._onPostSectionDataBinding);
294
+
295
+ host.unlisten("columnAdded", this._onColumnIndexChanged);
296
+ host.unlisten("columnAdded", this._onColumnAdded);
297
+ host.unlisten("columnMoved", this._onColumnIndexChanged);
298
+ host.unlisten("columnRemoved", this._onColumnIndexChanged);
299
+
300
+ this._hosts.splice(at, 1);
301
+
302
+ if(!this._hosts.length) {
303
+ this._compositeGrid = null;
304
+ if(this._updateTimer) {
305
+ clearTimeout(this._updateTimer);
306
+ this._updateTimer = 0;
307
+ }
308
+ }
309
+ };
310
+ /** Remove redundant built-in feature
311
+ * @public
312
+ * @param {string} optionName
313
+ * @param {*} optionVal
314
+ * @return {*} The transformed value of the option
315
+ */
316
+ CheckboxPlugin.prototype.beforeProcessOption = function (optionName, optionVal) {
317
+ if (optionName == "checkboxSelector") {
318
+ return null; // eslint-disable-line
319
+ }
320
+ return; // eslint-disable-line
321
+ };
322
+
323
+ /** @public
324
+ * @param {Object=} options
325
+ */
326
+ CheckboxPlugin.prototype.config = function (options) {
327
+ if(!options) { return; }
328
+
329
+ var chkboxOpt = /** @type{Object} */(options["checkbox"]);
330
+ if(!chkboxOpt) {
331
+ return;
332
+ }
333
+
334
+ var val;
335
+ val = chkboxOpt["rowSelection"]; // previously named "selectCheckedRow"
336
+ if(val != null) {
337
+ this._autoRowSelection = val ? true : false;
338
+ }
339
+ val = chkboxOpt["field"];
340
+ if(val) {
341
+ this._checkboxField = val;
342
+ }
343
+ val = chkboxOpt["disablingField"];
344
+ if(val) {
345
+ this._disablingField = val;
346
+ }
347
+ val = chkboxOpt["width"];
348
+ if(val) {
349
+ this._width = val;
350
+ }
351
+
352
+ this.addListener(chkboxOpt, "checkboxCreated");
353
+ this.addListener(chkboxOpt, "clicked");
354
+ this.addListener(chkboxOpt, "checkboxBinding");
355
+ };
356
+
357
+ /** @public
358
+ * @param {Object=} gridOptions
359
+ * @return {!Object}
360
+ */
361
+ CheckboxPlugin.prototype.getConfigObject = function (gridOptions) {
362
+ var obj = gridOptions || {};
363
+
364
+ var columns = obj.columns;
365
+ if (!columns) {
366
+ columns = obj.columns = [];
367
+ }
368
+
369
+ var len = this.getColumnCount();
370
+ for(var i = 0; i < len; ++i) {
371
+ var col = columns[i];
372
+ if (!col) {
373
+ col = columns[i] = {};
374
+ }
375
+
376
+ var colOptions = this._getColumnData(i);
377
+ if(colOptions.isCheckboxColumn || i === this._userCheckboxIdx) {
378
+ col.checkboxColumn = true;
379
+ }
380
+ }
381
+
382
+ var extOptions = obj.checkbox;
383
+ if(!extOptions) {
384
+ extOptions = obj.checkbox = {};
385
+ }
386
+
387
+ if(this._autoRowSelection) {
388
+ extOptions.rowSelection = true;
389
+ }
390
+
391
+ if(this._checkboxField !== "CHECK_BOX") {
392
+ extOptions.field = this._checkboxField;
393
+ }
394
+
395
+ if(this._disablingField !== "CHECK_BOX_DISABLED") {
396
+ extOptions.disablingField = this._disablingField;
397
+ }
398
+
399
+ if(this._width !== 34) {
400
+ extOptions.width = this._width;
401
+ }
402
+
403
+ return obj;
404
+ };
405
+
406
+ /** @public
407
+ * @ignore
408
+ * @param {Element} elem
409
+ * @param {Object} config
410
+ * @param {boolean} runTime Indicates that this is runtime loading
411
+ */
412
+ CheckboxPlugin.prototype.beforeInit = function(elem, config, runTime) {
413
+ if(runTime) {
414
+ return; // Since this is runTime loading, there is no point of processing config object.
415
+ }
416
+ var t = this;
417
+ t._displayColumn = -1;
418
+
419
+ // Add missing fields to avoid shifting of data due to adding of checkbox column
420
+ var columns = config["columns"];
421
+ if (config.dataModel) {
422
+ config.dataModel = t._prepareData(columns, config.dataModel);
423
+ }
424
+ if (config.staticDataRows) {
425
+ config.staticDataRows = t._prepareData(columns, config.staticDataRows);
426
+ }
427
+
428
+ var chbxConfig = config["checkbox"];
429
+ if (chbxConfig) {
430
+ // Set checkbox column width here to ensure the column width will not blink during the initialization
431
+ if (chbxConfig["width"] != null) {
432
+ t._width = chbxConfig["width"];
433
+ }
434
+
435
+ if (chbxConfig["field"] != null) {
436
+ t._checkboxField = chbxConfig["field"];
437
+ }
438
+ }
439
+
440
+ var chbxCol = t._genCheckboxColumn();
441
+ var checkboxIdx = t._userCheckboxIdx = t._findCheckboxColumnIndexFromConfig(columns);
442
+
443
+ if (checkboxIdx >= 0) {
444
+ // WARNING:: User column config will be deleted here since we swap user column with our generated checkbox column
445
+ extendObject(columns[checkboxIdx], chbxCol);
446
+ } else {
447
+ checkboxIdx = t._userCheckboxIdx = 0;
448
+ columns.unshift(chbxCol);
449
+ }
450
+
451
+ // Ensure freeze columns on the left of checkbox column
452
+ var freezeCol;
453
+ var freezeColumn = config["freezeColumn"];
454
+ var columnFreezing = config["columnFreezing"];
455
+ if (freezeColumn != null && freezeColumn >= 0) {
456
+ freezeCol = freezeColumn;
457
+ }
458
+ if (columnFreezing != null && columnFreezing >= 0) {
459
+ freezeCol = columnFreezing;
460
+ }
461
+ if (checkboxIdx <= freezeColumn) {
462
+ config["freezeColumn"] = config["columnFreezing"] = freezeCol + 1;
463
+ }
464
+ };
465
+
466
+ /** @private
467
+ * @return {Object} checkbox column config
468
+ */
469
+ CheckboxPlugin.prototype._genCheckboxColumn = function () {
470
+ return {
471
+ autoGenerated: true,
472
+ width: this._width,
473
+ sortable: false,
474
+ className: "tr-checkbox-column", // For rt-grid
475
+ classes: { "tr-checkbox-column": 1 }, // For composite grid
476
+ noResizing: true, // ColumnResizing Extension
477
+ resizable: false, // ResizableTitlePlugin
478
+ headerRenderer: this._onPreSectionRender, // rt-grid support
479
+ filterInput: { disabled: true },
480
+ field: this._checkboxField,
481
+ notRealTimeField: true, // Checkbox column is not a real-time field
482
+ checkboxColumn: true,
483
+ binding: CheckboxPlugin._emptyFunc, // rt-grid binding
484
+ formatter: { // composite-grid binding,
485
+ renderTitle: CheckboxPlugin._emptyFunc,
486
+ render: CheckboxPlugin._emptyFunc,
487
+ bind: CheckboxPlugin._emptyFunc
488
+ }
489
+ };
490
+ };
491
+
492
+ /** @private
493
+ * @param {Array.<Object>} columns
494
+ * @param {Array.<Object>|Object} dataModel
495
+ * @return {Object} data model
496
+ */
497
+ CheckboxPlugin.prototype._prepareData = function (columns, dataModel) {
498
+ var model = dataModel;
499
+ if (Array.isArray(dataModel)) {
500
+ model = { data: dataModel };
501
+ }
502
+ if (model.data && !model.fields) {
503
+ // if data is 2D then we should add fields into dataModel
504
+ if (Array.isArray(model.data[0])) {
505
+ model.fields = this._getFieldsFromColumns(columns);
506
+ }
507
+ }
508
+
509
+ return model;
510
+ };
511
+
512
+ /** @private
513
+ * @param {Array.<Object>} columns
514
+ * @return {Array.<string>} list of fields
515
+ */
516
+ CheckboxPlugin.prototype._getFieldsFromColumns = function (columns) {
517
+ var colCount = columns.length;
518
+ var fields = new Array(colCount);
519
+ for (var c = 0; c < colCount; c++) {
520
+ var col = columns[c];
521
+ if(!col) {
522
+ fields[c] = "";
523
+ } else if (typeof col === "string") {
524
+ fields[c] = col;
525
+ } else {
526
+ fields[c] = col.field || "";
527
+ }
528
+ }
529
+ return fields;
530
+ };
531
+
532
+ /** @private
533
+ * @param {Array.<Object>} columns
534
+ * @return {number} Return negative number if the column not found
535
+ */
536
+ CheckboxPlugin.prototype._findCheckboxColumnIndexFromConfig = function (columns) {
537
+ if (Array.isArray(columns)) {
538
+ var colCount = columns.length;
539
+ for (var i = 0; i < colCount; i++) {
540
+ if (columns[i].checkboxColumn) {
541
+ return i;
542
+ }
543
+ }
544
+ }
545
+ return -1;
546
+ };
547
+
548
+ /** @public
549
+ * @return {number} Return negative number if the column not found
550
+ */
551
+ CheckboxPlugin.prototype.getCheckboxColumnIndex = function () {
552
+ if(this._displayColumn < 0) {
553
+ var host = this._hosts[0];
554
+ var colCount = host ? host.getColumnCount() : 0;
555
+ for(var c = 0; c < colCount; ++c) {
556
+ var colData = this._getColumnData(c, host);
557
+ if(colData && colData.isCheckboxColumn) {
558
+ this._displayColumn = c;
559
+ break;
560
+ }
561
+ }
562
+ }
563
+ return this._displayColumn;
564
+ };
565
+ /** @public
566
+ * @function
567
+ * @param {number}
568
+ * @return {number} Return negative number if the column not found
569
+ */
570
+ CheckboxPlugin.prototype.getDisplayColumn = CheckboxPlugin.prototype.getCheckboxColumnIndex;
571
+ /** @public
572
+ * @param {Object} sectionRef Grid SectionReference object
573
+ * @param {number} rowIndex
574
+ * @return {Element}
575
+ */
576
+ CheckboxPlugin.prototype.getCheckbox = function (sectionRef, rowIndex) {
577
+ var host = this._hosts[0];
578
+ var sectionSettings = host.getSectionSettings(sectionRef);
579
+ if (sectionSettings) {
580
+ return this._getCheckbox(sectionSettings, rowIndex);
581
+ }
582
+
583
+ return null;
584
+ };
585
+
586
+
587
+ /** @private
588
+ * @param {Object} sectionSettings Grid sectionSettings object
589
+ * @param {number} colIndex
590
+ * @param {number} rowIndex
591
+ * @return {Element}
592
+ */
593
+ CheckboxPlugin.prototype._createCheckbox = function (sectionSettings, colIndex, rowIndex) {
594
+ var section = sectionSettings.getSection();
595
+
596
+ var cell = section.getCell(colIndex, rowIndex);
597
+ if(!cell) {
598
+ return null;
599
+ }
600
+ var content = cell.getContent();
601
+ if(content && content._chkbox) {
602
+ return content;
603
+ }
604
+
605
+ if (this._coralCheckboxVer === -1) {
606
+ this._coralCheckboxVer = ElfUtil.hasComponent("ef-checkbox");
607
+ }
608
+
609
+ var chkbox;
610
+ if(this._coralCheckboxVer) {
611
+ chkbox = document.createElement("ef-checkbox");
612
+ } else {
613
+ chkbox = document.createElement("input");
614
+ chkbox.setAttribute("type", "checkbox");
615
+ }
616
+ chkbox._chkbox = true;
617
+
618
+ chkbox.addEventListener("click", this._onCheckboxClicked, false);
619
+ // chkbox.addEventListener("checked-changed", this._onCheckboxClicked, false); // Elf v3
620
+
621
+ cell.setContent(chkbox);
622
+ var sectionType = sectionSettings.getType();
623
+ if(sectionType == "title") {
624
+ cell.enableClass("no-sort");
625
+ }
626
+
627
+ if(!this._coralCheckboxVer) { // Workaround for UIFR theme styling
628
+ var lbl = document.createElement("label");
629
+ var id = "tr_grid_checkbox_" + CheckboxPlugin._runningId++;
630
+ chkbox.setAttribute("id", id);
631
+ lbl.setAttribute("for", id);
632
+ chkbox.parentElement.appendChild(lbl); // HACK
633
+ }
634
+
635
+ this._dispatch("checkboxCreated", {
636
+ "input": chkbox
637
+ , "checkbox": chkbox
638
+ , "cell": cell
639
+ , "colIndex": colIndex
640
+ , "rowIndex": rowIndex
641
+ , "grid": this._hosts[0]
642
+ , "section": section
643
+ , "sectionType": sectionType
644
+ });
645
+
646
+ return chkbox;
647
+ };
648
+
649
+
650
+ /** Select all checkboxes that are not affected by filtering and pagination logics. This is equivalent to ticking the checkbox at the top header section of the grid
651
+ * @public
652
+ */
653
+ CheckboxPlugin.prototype.selectAll = function () {
654
+ this.checkAll(true);
655
+ };
656
+ /** Deselect all checkboxes that are not affected by filtering and pagination logics. This is equivalent to un-ticking the checkbox at the top header section of the grid
657
+ * @public
658
+ * @param {boolean} check
659
+ */
660
+ CheckboxPlugin.prototype.deselectAll = function () {
661
+ this.checkAll(false);
662
+ };
663
+
664
+ /** This is equivalent to clicking the checkbox at the top header section of the grid. <br>
665
+ * Use {@link CheckboxPlugin#setAllCheckStates} to set all states regardless of filtering and pagination
666
+ * @public
667
+ * @param {boolean} checked Truthy or Falsy value
668
+ * @see {@link CheckboxPlugin#setAllCheckStates}
669
+ */
670
+ CheckboxPlugin.prototype.checkAll = function (checked) {
671
+ var state = CheckboxPlugin._toCheckState(checked != null ? checked : true);
672
+ var host = this._hosts[0];
673
+ var titles = host ? host.getAllSectionSettings("title") : null;
674
+ if (!titles) return;
675
+
676
+ var rootSettings;
677
+ for(var i = 0; i < titles.length; ++i) { // Find the root settings
678
+ if(titles[i].getChildren()) {
679
+ rootSettings = titles[i];
680
+ break;
681
+ }
682
+ }
683
+ if(!rootSettings) { return; }
684
+
685
+ this._setSectionState(rootSettings, state);
686
+ this._setDescendantCheckState(rootSettings, state);
687
+ };
688
+ /** Set state for all checkboxes regardless of filtering and pagination
689
+ * @public
690
+ * @param {boolean} checked Truthy or Falsy value
691
+ * @see {@link CheckboxPlugin#checkAll}
692
+ */
693
+ CheckboxPlugin.prototype.setAllCheckStates = function (checked) {
694
+ checked = checked ? true : false;
695
+ var host = this._hosts[0];
696
+ var dv = host ? host.getDataSource() : null;
697
+ var dt = dv ? dv.getDataSource() : null;
698
+
699
+ if(dt) {
700
+ var valueList = CheckboxPlugin._genData(dt.getRowCount(), checked);
701
+ var rids = dt.getAllRowIds();
702
+ this._setColumnData(dv, this._checkboxField, valueList, rids);
703
+ }
704
+ };
705
+
706
+ /** @public
707
+ * @param {number|string} rowRef Row id in the data table or row index
708
+ * @param {boolean} disabled Truthy or Falsy value
709
+ */
710
+ CheckboxPlugin.prototype.disableCheckbox = function(rowRef, disabled) {
711
+ var host = this._hosts[0];
712
+ var dv = host ? host.getDataSource() : null;
713
+ if(!dv) { return; }
714
+
715
+ if(typeof rowRef === "string") {
716
+ // TODO: should allow invisible row
717
+ rowRef = dv.getRowIndex(rowRef);
718
+ }
719
+
720
+ if(rowRef == null || rowRef < 0) {
721
+ return;
722
+ }
723
+
724
+ this._setData(dv, rowRef, this._disablingField, disabled !== false);
725
+ };
726
+
727
+ /** @public
728
+ * @param {number|string} rowRef Row id in the data table or row index
729
+ */
730
+ CheckboxPlugin.prototype.enableCheckbox = function(rowRef) {
731
+ this.disableCheckbox(rowRef, false);
732
+ };
733
+
734
+ /** WARNING: Index is not reliable when use with row grouping due to dynamic nature of the features (e.g. expanding and collapsing of the group). <br>
735
+ * Please use {@link CheckboxPlugin#getSelectedRowData} instead. <br>
736
+ * Current behavior is to get selected index from un-filtered rows.
737
+ * @public
738
+ * @param {Object} sectionRef Grid SectionReference object
739
+ * @param {string=} state Specifies state for searching. Default is "checked"
740
+ * @return {!Array.<number>} the indices are relative to the specified section
741
+ * @see {@link CheckboxPlugin#getSelectedRowData}
742
+ */
743
+ CheckboxPlugin.prototype.getAllCheckedIndices = function (sectionRef, state) {
744
+ var ary = [];
745
+ var colIndex = this.getCheckboxColumnIndex();
746
+ var host = colIndex >= 0 ? this._hosts[0] : null;
747
+ var sectionSettings = host ? host.getSectionSettings(sectionRef) : null;
748
+
749
+ if (sectionSettings) {
750
+ if (state == null) { state = "checked"; }
751
+ var r, rowCount;
752
+ if (this._isDataBound(sectionSettings)) {
753
+ var dv = sectionSettings.getDataSource();
754
+ var rowIds = dv.getVisibleRowIds(true); // Filter and pagination are applied
755
+ rowCount = rowIds.length;
756
+ for (r = 0; r < rowCount; ++r) {
757
+ var rowData = this._getRowFromId(dv, rowIds[r]);
758
+ if(rowData) {
759
+ if (CheckboxPlugin._toCheckState(rowData[this._checkboxField]) === state) {
760
+ ary.push(r);
761
+ }
762
+ }
763
+ }
764
+ } else {
765
+ var section = sectionSettings.getSection();
766
+ rowCount = section.getRowCount();
767
+ for (r = 0; r < rowCount; ++r) {
768
+ var chkbox = this._getCheckbox(section, r);
769
+ if (CheckboxPlugin._getCheckState(chkbox) === state) {
770
+ ary.push(r);
771
+ }
772
+ }
773
+ }
774
+ }
775
+ return ary;
776
+ };
777
+
778
+ /** Return selected rows, excluding rows that are filtered or hidden due to pagination.
779
+ * @public
780
+ * @param {string=} field="" When field is not provided, entire rowData is returned. If field is specified, field values will be returned. Use "ROW_ID" as the field for retrieving internal row ids.
781
+ * @return {!Array} Returns selected rows
782
+ */
783
+ CheckboxPlugin.prototype.getFilteredSelectedData = function (field) {
784
+ var host = this._hosts[0];
785
+ return this._getSelectedRowData(host ? host.getDataSource() : null, field);
786
+ };
787
+
788
+ /** Returns all selected rows, even if the rows are filtered or hidden due to group collapsing or pagination. <br>
789
+ * Note that the results are NOT shown in order of the current appearance (i.e. sorting has no impact).
790
+ * @public
791
+ * @param {string=} field="" When field is not provided, entire rowData is returned. If field is specified, field values will be returned. Use "ROW_ID" as the field for retrieving internal row ids.
792
+ * @return {!Array} Returns selected rows
793
+ * @example
794
+ * var chkBoxExtension = new CheckboxExtension();
795
+ * chkBoxExtension.getSelectedRowData(); // Get all selected row data in this format [{}, {}, ... RowData objects, {}]
796
+ * chkBoxExtension.getSelectedRowData("field"); // Get all field values from selected row data in this format [value1, value2, ... values, valueN]
797
+ */
798
+ CheckboxPlugin.prototype.getAllSelectedData = function (field) {
799
+ var host = this._hosts[0];
800
+ var dv = host ? host.getDataSource() : null;
801
+ var dt = dv ? dv.getDataSource() : null; // get All selected Data we use dataTable instead
802
+ return this._getSelectedRowData(dt, field);
803
+ };
804
+
805
+ /** Alias of {@link CheckboxPlugin#getAllSelectedData}
806
+ * @public
807
+ * @param {string=} field="" When field is not provided, entire rowData is returned. If field is specified, field values will be returned. Use "ROW_ID" as the field for retrieving internal row ids.
808
+ * @return {!Array} Returns selected rows
809
+ */
810
+ CheckboxPlugin.prototype.getSelectedRowData = CheckboxPlugin.prototype.getAllSelectedData;
811
+
812
+ /** @private
813
+ * @param {Object} dataSource DataView or DataTable object
814
+ * @return {!Array} Returns selected row ids
815
+ */
816
+ CheckboxPlugin.prototype._getSelectedRowIds = function (dataSource) {
817
+ if (!dataSource || this.getCheckboxColumnIndex() < 0) {
818
+ return [];
819
+ }
820
+
821
+ var rowIds = this._getRowMemberIdsInView(dataSource);
822
+ var rowCount = rowIds.length;
823
+ var selRowIds = [];
824
+ var i, rowId;
825
+ for (i = 0; i < rowCount; ++i) {
826
+ rowId = rowIds[i];
827
+ if (this._getCheckboxValue(dataSource, rowId)) {
828
+ selRowIds.push(rowId);
829
+ }
830
+ }
831
+ return selRowIds;
832
+ };
833
+
834
+ /** @private
835
+ * @param {Object} dataSource DataView or DataTable object
836
+ * @param {string=} field="" When field is not provided, entire rowData is returned. If field is specified, field values will be returned. Use "ROW_ID" as the field for retrieving internal row ids.
837
+ * @return {!Array} Returns selected rows
838
+ */
839
+ CheckboxPlugin.prototype._getSelectedRowData = function (dataSource, field) {
840
+ var selRowIds = this._getSelectedRowIds(dataSource);
841
+ var i, rowCount = selRowIds.length;
842
+ if (field === "ROW_ID" || rowCount === 0) {
843
+ return selRowIds; // Row Ids
844
+ } else {
845
+ var selRows = new Array(rowCount);
846
+ for (i = 0; i < rowCount; ++i) {
847
+ selRows[i] = this._getRowFromId(dataSource, selRowIds[i]);
848
+ }
849
+ if (field) {
850
+ var values = new Array(rowCount);
851
+ for (i = 0; i < rowCount; ++i) {
852
+ values[i] = selRows[i][field];
853
+ }
854
+ return values; // Field values
855
+ } else {
856
+ return selRows; // Row objects
857
+ }
858
+ }
859
+ };
860
+
861
+ /** @private
862
+ * @function
863
+ * @param {Object} dv DataView
864
+ * @param {string} rowId
865
+ * @return {boolean} Check State
866
+ */
867
+ CheckboxPlugin.prototype._getRowFromId = function (dv, rowId) {
868
+ return this._rowGetter(dv.getRowData(rowId));
869
+ };
870
+ /** @private
871
+ * @param {Object} dv DataView
872
+ * @param {string} rowId
873
+ * @return {boolean} Check State
874
+ */
875
+ CheckboxPlugin.prototype._getCheckboxValue = function (dv, rowId) {
876
+ var row = this._getRowFromId(dv, rowId);
877
+ if(row) {
878
+ return row[this._checkboxField] ? true : false;
879
+ }
880
+ return false;
881
+ };
882
+ /** @private
883
+ * @param {Object} dv DataView
884
+ * @return {string} state
885
+ */
886
+ CheckboxPlugin.prototype._getGroupState = function (dv) {
887
+ if (!dv) return "unchecked";
888
+
889
+ var rowIds;
890
+ if (dv.getGroupLevel && 0 === dv.getGroupLevel()) {
891
+ // case root group we check state from member that visible in view
892
+ rowIds = this._getRowMemberIdsInView(dv);
893
+ } else {
894
+ // case dataTable or subGroup we check state from member in group
895
+ rowIds = dv.getAllRowIds(true); // Getting shallow copy and excluding header rows
896
+ }
897
+
898
+ var dataRows = dv.getMultipleRowData(rowIds);
899
+ var len = rowIds.length;
900
+ if (0 === len) return "unchecked";
901
+
902
+ var dataRow;
903
+ var states = [];
904
+ for(var i = 0; i < len; ++i) {
905
+ if (dv.getGroupByRowId(rowIds[i])) { continue; }
906
+ dataRow = dataRows[i];
907
+ if(dataRow && dataRow[this._disablingField]) {
908
+ continue;
909
+ }
910
+ states.push(CheckboxPlugin._toCheckState(this._getCheckboxValue(dv, rowIds[i])));
911
+ }
912
+ return CheckboxPlugin._mergeStates(states);
913
+ };
914
+ /** @private
915
+ * @param {Object} sectionSettings Grid sectionSettings object
916
+ * @return {string}
917
+ */
918
+ CheckboxPlugin.prototype._getSectionState = function (sectionSettings) {
919
+ if (this._isDataBound(sectionSettings)) {
920
+ return this._getGroupState(sectionSettings.getDataSource());
921
+ } else {
922
+ var checkboxes = this._getAllCheckboxes(sectionSettings);
923
+ var states = checkboxes.map(CheckboxPlugin._getCheckState);
924
+ return CheckboxPlugin._mergeStates(states);
925
+ }
926
+ };
927
+ /** @private
928
+ * @param {Object} sectionSettings Grid sectionSettings object
929
+ * @param {number} rowIndex
930
+ * @return {Element}
931
+ */
932
+ CheckboxPlugin.prototype._getCheckbox = function (sectionSettings, rowIndex) {
933
+ var section = sectionSettings.getSection();
934
+ var chkbox = /** @type{Element} */(section.getCellContent(this._displayColumn, rowIndex));
935
+ if (!chkbox) {
936
+ return null;
937
+ } else if (chkbox.tagName === "EF-CHECKBOX") {
938
+ return chkbox;
939
+ } else if(chkbox.type === "checkbox") {
940
+ return chkbox;
941
+ } else {
942
+ return null;
943
+ }
944
+ };
945
+ /** @private
946
+ * @param {Object} sectionSettings Grid sectionSettings object
947
+ * @param {Array.<Element>=} ary
948
+ * @return {!Array.<Element>}
949
+ */
950
+ CheckboxPlugin.prototype._getAllCheckboxes = function (sectionSettings, ary) {
951
+ ary = ary || [];
952
+
953
+ var section = sectionSettings.getSection();
954
+ var fi = section.getFirstIndexInView();
955
+ var li = section.getLastIndexInView();
956
+ for(var r = fi; r <= li; ++r) { // WARNING: Index could be shifted
957
+ var chkbox = this._getCheckbox(sectionSettings, r);
958
+ if(chkbox) { // WARNING: Index is shifted
959
+ ary.push(chkbox);
960
+ }
961
+ }
962
+ return ary;
963
+ };
964
+
965
+ /** @private
966
+ * @param {Object} sectionSettings Grid sectionSettings object
967
+ * @param {string} state
968
+ */
969
+ CheckboxPlugin.prototype._setDescendantCheckState = function (sectionSettings, state) {
970
+ var children = sectionSettings.getChildren();
971
+ if (children) {
972
+ for (var i = 0; i < children.length; ++i) {
973
+ var child = children[i];
974
+ this._setSectionState(child, state);
975
+ this._setDescendantCheckState(child, state);
976
+ }
977
+ }
978
+ };
979
+ /** @private
980
+ * @param {Object} sectionSettings Grid sectionSettings object
981
+ * @param {string=} callerState
982
+ */
983
+ CheckboxPlugin.prototype._syncAscendantCheckState = function (sectionSettings, callerState) {
984
+ var parent = sectionSettings.getParent();
985
+ if (!parent || !parent.getSection().isVisible()) { return; }
986
+
987
+ var state = callerState || "";
988
+ if (state !== "partial") {
989
+ if(!callerState) {
990
+ sectionSettings = null; // Force checking state of the caller
991
+ }
992
+
993
+ var children = parent.getChildren();
994
+ if(children) {
995
+ for (var i = children.length; --i >= 0; ) {
996
+ var child = children[i];
997
+ if (child !== sectionSettings) {
998
+ var childState = this._getSectionState(child);
999
+ state = CheckboxPlugin._mergeState(childState, state);
1000
+ if (state === "partial") {
1001
+ break;
1002
+ }
1003
+ }
1004
+ }
1005
+ }
1006
+ }
1007
+
1008
+ this._setSectionState(parent, state);
1009
+ this._syncAscendantCheckState(parent, state);
1010
+ };
1011
+
1012
+ /** @private
1013
+ * @param {Object} sectionSettings Grid sectionSettings object
1014
+ * @param {string} state
1015
+ */
1016
+ CheckboxPlugin.prototype._setSectionState = function (sectionSettings, state) {
1017
+ var i;
1018
+ if (!state) {
1019
+ return;
1020
+ }
1021
+
1022
+ if (this._isDataBound(sectionSettings)) {
1023
+ var dv = /** @type{DataView} */(sectionSettings.getDataSource());
1024
+
1025
+ // create row dict and mark unchecked
1026
+ var rowIdDict = {};
1027
+ // in state !== unchecked we will get filtered row in group
1028
+ // and set rowIdDict[checkID] = true
1029
+ var checkIDs = this._getRowMemberIdsInView(dv);
1030
+ for (i = 0; i < checkIDs.length; i++) {
1031
+ var checkID = checkIDs[i];
1032
+
1033
+ // there are header group rows in the case of paging and grouping
1034
+ if (dv.getGroupByRowId(checkID)) { continue; }
1035
+
1036
+ var dataRow = this._getRowFromId(dv, checkID);
1037
+ if (dataRow && dataRow[this._disablingField]) {
1038
+ continue;
1039
+ }
1040
+
1041
+ if (state === "unchecked") {
1042
+ // TODO: This will not work in RT grid
1043
+ rowIdDict[checkID] = false;
1044
+ } else {
1045
+ rowIdDict[checkID] = true;
1046
+ }
1047
+ }
1048
+
1049
+ // create data array and rowIds array
1050
+ var data = [];
1051
+ var allRowIDInGroup = [];
1052
+ for (var rowID in rowIdDict) {
1053
+ allRowIDInGroup.push(rowID);
1054
+ data.push(rowIdDict[rowID]);
1055
+ }
1056
+
1057
+ // finally set all data
1058
+ this._setColumnData(dv, this._checkboxField, data, allRowIDInGroup);
1059
+ } else {
1060
+ var checkboxes = this._getAllCheckboxes(sectionSettings);
1061
+ for (i = checkboxes.length; --i >= 0; ) {
1062
+ CheckboxPlugin._setCheckState(checkboxes[i], state);
1063
+ }
1064
+ }
1065
+ };
1066
+
1067
+ /** similar to check section type = content
1068
+ * @private
1069
+ * @param {Object} sectionSettings Grid sectionSettings object
1070
+ * @return {boolean}
1071
+ */
1072
+ CheckboxPlugin.prototype._isDataBound = function (sectionSettings) {
1073
+ if (this._checkboxField) {
1074
+ if (sectionSettings.getDataSource()) {
1075
+ if (sectionSettings.getType() === "content") {
1076
+ return true;
1077
+ }
1078
+ }
1079
+ }
1080
+ return false;
1081
+ };
1082
+
1083
+ /** @private
1084
+ * @param {Object=} e
1085
+ */
1086
+ CheckboxPlugin.prototype._onColumnIndexChanged = function (e) {
1087
+ this._displayColumn = -1;
1088
+ };
1089
+ /** @private
1090
+ * @param {Object=} e
1091
+ */
1092
+ CheckboxPlugin.prototype._onColumnAdded = function(e) {
1093
+ if(this._initializing) {
1094
+ return;
1095
+ }
1096
+
1097
+ var host = this._hosts[0];
1098
+ if(host) {
1099
+ var column = e.context;
1100
+ if(column) {
1101
+ if(column.checkboxColumn) { // Ignore this if we already have one
1102
+ var existingCheckbox = this.getCheckboxColumnIndex();
1103
+ if(existingCheckbox < 0) { // Only if there is no existing checkbox column
1104
+ this._displayColumn = e.colIndex;
1105
+ var colData = this._newColumnData(e.colIndex, host);
1106
+ colData.isCheckboxColumn = true; // Mark the column for later referencing
1107
+ // TODO: Extend or replace the column options with our checkbox column
1108
+ }
1109
+ }
1110
+ this._requestUIPopulation();
1111
+ }
1112
+ }
1113
+ };
1114
+ /** @private
1115
+ * @param {Object=} e
1116
+ */
1117
+ CheckboxPlugin.prototype._requestUIPopulation = function (e) {
1118
+ if(!this._updateTimer) {
1119
+ this._updateTimer = setTimeout(this._populateUIs, 50);
1120
+ }
1121
+ };
1122
+
1123
+ /** @private */
1124
+ CheckboxPlugin.prototype._populateUIs = function () {
1125
+ this._updateTimer = 0;
1126
+
1127
+ if (this._initializing) { return; }
1128
+
1129
+ var host = this._hosts[0];
1130
+ if (!host) { return; }
1131
+
1132
+ this._initializing = true;
1133
+
1134
+ if(this._userCheckboxIdx >= 0) {
1135
+ // TODO: Ensure that the index is valid with current grid UI
1136
+ this._displayColumn = this._userCheckboxIdx;
1137
+ this._userCheckboxIdx = -1;
1138
+ } else {
1139
+ this._displayColumn = -1; // Force updating to avoid duplication with existing checkbox column
1140
+ this.getCheckboxColumnIndex();
1141
+
1142
+ if(this._displayColumn < 0) {
1143
+ // In case checkbox extension doesn't load during grid beforeInit (eg. load checkbox extension at runtime)
1144
+ var chbxCol = this._genCheckboxColumn();
1145
+ if(this._compositeGrid) { // TODO: This could be unnecessary workaround
1146
+ var model = this._compositeGrid.getModel();
1147
+ var columns = model ? model.columns : null;
1148
+ if(columns) {
1149
+ columns.unshift(chbxCol); // TODO: Check if this is appropriate
1150
+ }
1151
+ host.insertColumn(0, chbxCol); // preSectionRender and columnAdded is fired
1152
+ } else if (this._realTimeGrid) { // TODO: Handle multiple grids
1153
+ this._realTimeGrid.insertColumn(chbxCol, 0);
1154
+ }
1155
+
1156
+ this._displayColumn = 0;
1157
+ }
1158
+ }
1159
+
1160
+ var colData = this._newColumnData(this._displayColumn, host);
1161
+ colData.isCheckboxColumn = true; // Mark the column for later referencing
1162
+
1163
+ // HACK: for filter-input extension
1164
+ var filterInput = colData.filterInputOption;
1165
+ if(!filterInput) {
1166
+ filterInput = colData.filterInputOption = {};
1167
+ }
1168
+ filterInput.disabled = true;
1169
+
1170
+ this._createCheckboxes(host.getSectionSettings("title")); // For title
1171
+ host.requestRowRefresh(); // For content
1172
+ this._initializing = false;
1173
+ };
1174
+ /** @private
1175
+ * @param {Event} e
1176
+ */
1177
+ CheckboxPlugin.prototype._onCheckboxClicked = function (e) {
1178
+ if(this._coralCheckboxVer === 1) {
1179
+ // Workaround for duplicate event from ef-checkbox
1180
+ if(e.target.tagName === "LABEL") {
1181
+ return;
1182
+ }
1183
+ }
1184
+
1185
+ var chkbox = /** @type{Element} */(e.currentTarget);
1186
+
1187
+ // after checkbox change by user clicked action
1188
+ // the checkbox state is change only 'unchecked' or 'checked' only
1189
+ // so we must remove 'square-shape' class that use in only 'partial' state
1190
+ chkbox.classList.remove('square-shape');
1191
+
1192
+ var newState = CheckboxPlugin._getCheckState(chkbox);
1193
+ if(this._coralCheckboxVer === 1) { // State of the ef-checkbox will not be reflected immediately after click
1194
+ newState = CheckboxPlugin._toggleState(newState);
1195
+ }
1196
+
1197
+ var host = this._hosts[0];
1198
+ var pos = host.getRelativePosition(e); // Getting row index
1199
+ var sectionSettings = pos["sectionSettings"];
1200
+ if(!sectionSettings) {
1201
+ return; // Unsuccessful hit testing
1202
+ }
1203
+
1204
+ if (this._isDataBound(sectionSettings)) {
1205
+ var rowIndex = pos["rowIndex"];
1206
+ var bool = newState !== "unchecked";
1207
+ var dv = sectionSettings.getDataSource();
1208
+ var rid = dv.getRowId(rowIndex);
1209
+ var dataRow = this._getRowFromId(dv, rid);
1210
+ if(dataRow) {
1211
+ if (dataRow[this._disablingField]) {
1212
+ return;
1213
+ }
1214
+ this._setData(dv, rowIndex, this._checkboxField, bool);
1215
+ } else { // Group header
1216
+ var subGroup = dv.getGroupByRowId(rid);
1217
+ if (subGroup) {
1218
+ // prepare data for _setColumnData fn.
1219
+ var rowMemberIds = this._getRowMemberIdsOfGroupInView(dv, subGroup);
1220
+ var len = rowMemberIds.length;
1221
+
1222
+ var dataRows = dv.getMultipleRowData(rowMemberIds);
1223
+ var rids = [];
1224
+ var data = [];
1225
+ for (var i = 0; i < len; i++) {
1226
+ dataRow = dataRows[i];
1227
+ if (dataRow && dataRow[this._disablingField]) {
1228
+ continue;
1229
+ }
1230
+ rids.push(rowMemberIds[i]);
1231
+ data.push(bool);
1232
+ }
1233
+
1234
+ this._setColumnData(dv, this._checkboxField, data, rids);
1235
+
1236
+ // WORKAROUND: to force group move to next state from partial state
1237
+ if (newState === 'checked' && chkbox._prevState === 'partial') {
1238
+ chkbox._forceNewState = newState;
1239
+ }
1240
+ }
1241
+ }
1242
+ }
1243
+
1244
+ this._setDescendantCheckState(sectionSettings, newState); // This only works with root section where root UI is linked with its children section.
1245
+ this._syncAscendantCheckState(sectionSettings); // The clicked row may be a member of row group and thus the state has to be calculated
1246
+
1247
+ if (this.hasListener("clicked")) {
1248
+ pos["checkbox"] = chkbox;
1249
+ pos["checkState"] = newState;
1250
+ pos["checked"] = chkbox.checked;
1251
+ this._dispatch("clicked", pos);
1252
+ }
1253
+
1254
+ e.stopPropagation();
1255
+ };
1256
+
1257
+ /** get member items in view. the items in view are items on current page and already filtered , include items in collapsed group
1258
+ * @private
1259
+ * @param {Object} view dataview object
1260
+ * @param {Object} targetGroup dataview object
1261
+ * @return {!Array.<string>} list of row member ids of group in view
1262
+ */
1263
+ CheckboxPlugin.prototype._getRowMemberIdsOfGroupInView = function (view, targetGroup) {
1264
+ var visibleRowIds = view.getVisibleRowIds(true);
1265
+ var beginPos = 0;
1266
+
1267
+ // if group header is in view and collapsed we can return all id in view immediately
1268
+ var pos = visibleRowIds.indexOf(targetGroup.getGroupRowId());
1269
+ if (pos >= 0) {
1270
+ if (targetGroup.isCollapsed()) return targetGroup.getAllRowIds(true);
1271
+ else beginPos = pos + 1;
1272
+ } else { // not support case group header not in view or inside group parent that collapsed
1273
+ return [];
1274
+ }
1275
+
1276
+ // loop to check which member is in view
1277
+ var groupVisibleRowIds = targetGroup.getVisibleRowIds(true);
1278
+ var result = [], id, childGroup, i;
1279
+ var len = groupVisibleRowIds.length;
1280
+ for (i = 0; i < len; i++) {
1281
+ id = groupVisibleRowIds[i];
1282
+ pos = visibleRowIds.indexOf(id, beginPos);
1283
+ if (pos >= 0) {
1284
+ beginPos = pos + 1;
1285
+ childGroup = view.getGroupByRowId(id);
1286
+ if (childGroup) {
1287
+ if (childGroup.isCollapsed()) {
1288
+ // child group collapsed then all rows in childGroup are in view
1289
+ result = result.concat(childGroup.getAllRowIds(true) || []);
1290
+ }
1291
+ } else {
1292
+ result.push(id);
1293
+ }
1294
+ }
1295
+ }
1296
+
1297
+ return result;
1298
+ };
1299
+
1300
+ /** @private
1301
+ * @param {Object} view dataview or datatable object
1302
+ * @return {!Array.<string>} list of row member ids in view
1303
+ */
1304
+ CheckboxPlugin.prototype._getRowMemberIdsInView = function (view) {
1305
+ // 1. get All member and group rowIds
1306
+ // 2. loop check whether rowIds is group or just row member
1307
+ // 3. if rowId is not group then it's just a row member
1308
+ // 4. in case rowId is group and collapsed we will get all member rowIds of group and add to memberRowIds
1309
+
1310
+ if (view.getDataSource()) { // check is dataView
1311
+ // TODO: support multi-level grouping
1312
+ // if view is DataView -> view.getVisibleRowIds(true) will get member and group rowIds in view
1313
+ var rids = view.getVisibleRowIds(true);
1314
+ var len = rids.length;
1315
+ var allRids = [];
1316
+ var rid, group, i;
1317
+ for (i = 0; i < len; i++) { // 2
1318
+ rid = rids[i];
1319
+ group = view.getGroupByRowId(rid);
1320
+ if (!group) {
1321
+ allRids.push(rid); // 3
1322
+ } else if (group.isCollapsed()) { // 4
1323
+ allRids = allRids.concat(group.getAllRowIds(true) || []);
1324
+ }
1325
+ }
1326
+
1327
+ // remove disabled row
1328
+ rids = [];
1329
+ var dataRows = view.getMultipleRowData(allRids);
1330
+ len = dataRows.length;
1331
+ var dataRow;
1332
+ for(i = 0; i < len; i++) {
1333
+ dataRow = dataRows[i];
1334
+ if(dataRow && dataRow[this._disablingField]) {
1335
+ continue;
1336
+ }
1337
+ rids.push(allRids[i]);
1338
+ }
1339
+ // if view is DataView, the intention is to get data with applied filter/hidden. row expansion should also filtered out.
1340
+ return rids.filter(this._isNotRowExpansion.bind(null, view));
1341
+ } else {
1342
+ // if view is DataTable -> view.getAllRowIds(true) will get all member in grid regardless of hidden/filtered state.
1343
+ return view.getAllRowIds(true);
1344
+ }
1345
+ };
1346
+
1347
+ /** @private
1348
+ * @param {Object} view DataView object
1349
+ * @param {string} rid
1350
+ * @return {boolean}
1351
+ */
1352
+ CheckboxPlugin.prototype._isNotRowExpansion = function (view, rid) {
1353
+ // NOTE: isRowExpansion() is only available in DataView.
1354
+ return !view.isRowExpansion(rid);
1355
+ };
1356
+
1357
+ /** @private
1358
+ * @param {Object} e
1359
+ */
1360
+ CheckboxPlugin.prototype._onPreSectionRender = function (e) {
1361
+ var displayCol = this.getCheckboxColumnIndex();
1362
+ if(displayCol < e["fromColIndex"] || displayCol >= e["toColIndex"]) {
1363
+ return;
1364
+ }
1365
+
1366
+ var sectionSettings = /** @type{SectionSettings} */(e["sectionSettings"]);
1367
+ if(sectionSettings.getType() !== "title") {
1368
+ return;
1369
+ }
1370
+ this._createCheckboxes(sectionSettings, e["fromRowIndex"], e["toRowIndex"]);
1371
+ };
1372
+
1373
+ /** @private
1374
+ * @param {Object} sectionSettings core grid sectionSettings
1375
+ * @param {number=} fromRow
1376
+ * @param {number=} toRow
1377
+ */
1378
+ CheckboxPlugin.prototype._createCheckboxes = function (sectionSettings, fromRow, toRow) {
1379
+ var displayCol = this.getCheckboxColumnIndex();
1380
+ if(displayCol < 0) {
1381
+ return;
1382
+ }
1383
+ if(!sectionSettings) {
1384
+ return;
1385
+ }
1386
+ if(CheckboxPlugin._exceptions[sectionSettings.getSectionName()]) {
1387
+ return;
1388
+ }
1389
+
1390
+ var section = sectionSettings.getSection();
1391
+ var fi = (fromRow != null) ? fromRow : section.getFirstIndexInView();
1392
+ var li = (toRow != null) ? toRow : section.getLastIndexInView() + 1;
1393
+
1394
+ for (var r = fi; r < li; ++r) {
1395
+ this._createCheckbox(sectionSettings, displayCol, r);
1396
+ }
1397
+ };
1398
+ /** @private
1399
+ * @param {Object} e
1400
+ */
1401
+ CheckboxPlugin.prototype._onPostSectionDataBinding = function (e) {
1402
+ if (!this._checkboxField) {
1403
+ return;
1404
+ }
1405
+ var displayCol = this.getCheckboxColumnIndex();
1406
+ if(displayCol < 0) { return; }
1407
+
1408
+ var section = /** @type{ILayoutGrid} */(e["section"]);
1409
+ var dv = /** @type{DataView} */(e["dataSource"]);
1410
+
1411
+ var fromR = /** @type{number} */(e["fromRowIndex"]);
1412
+ if(dv.hasGroup()) { // This is because we need to update group header when any group member is updated
1413
+ fromR = section.getFirstIndexInView();
1414
+ }
1415
+
1416
+ var toR = /** @type{number} */(e["toRowIndex"]);
1417
+ var bindingCount = toR - fromR;
1418
+ if(bindingCount <= 0) {
1419
+ return;
1420
+ }
1421
+
1422
+ var checkboxes = new Array(bindingCount);
1423
+
1424
+ var i, rowIndex, chkbox, rowData;
1425
+ var arg = null;
1426
+ var hasBinding = this.hasListener("checkboxBinding");
1427
+ if(hasBinding) {
1428
+ arg = {
1429
+ "colIndex": displayCol
1430
+ };
1431
+ }
1432
+
1433
+ var sectionSettings = /** @type{SectionSettings} */(e["sectionSettings"]);
1434
+ for(i = 0; i < bindingCount; ++i) {
1435
+ rowIndex = fromR + i;
1436
+ chkbox = checkboxes[i] = this._getCheckbox(sectionSettings, rowIndex);
1437
+ if (!chkbox) {
1438
+ chkbox = checkboxes[i] = this._createCheckbox(sectionSettings, this._displayColumn, rowIndex);
1439
+ }
1440
+ var rowId = dv.getRowId(rowIndex); // Slow
1441
+ rowData = this._rowGetter(dv.getRowData(rowId));
1442
+ if(hasBinding && chkbox) {
1443
+ arg["checkbox"] = chkbox;
1444
+ arg["rowIndex"] = rowIndex;
1445
+ arg["rowData"] = rowData;
1446
+ this._dispatch("checkboxBinding", arg);
1447
+ }
1448
+
1449
+ var disabled = false;
1450
+ var state = "";
1451
+ if(rowData) {
1452
+ state = CheckboxPlugin._toCheckState(rowData[this._checkboxField]);
1453
+ disabled = rowData[this._disablingField] === true;
1454
+ } else { // Group header row has no rowData
1455
+ state = this._getGroupState(dv.getGroupByRowId(rowId));
1456
+ }
1457
+ if (this._autoRowSelection) {
1458
+ section.setSelectedRow(rowIndex, (rowData || false) && state === "checked");
1459
+ }
1460
+
1461
+ if(chkbox) {
1462
+ if(disabled) {
1463
+ chkbox.setAttribute("disabled", "");
1464
+ } else {
1465
+ chkbox.removeAttribute("disabled");
1466
+ }
1467
+ CheckboxPlugin._setCheckState(chkbox, state);
1468
+ }
1469
+ }
1470
+
1471
+ this._syncAscendantCheckState(e["sectionSettings"]);
1472
+ };
1473
+
1474
+
1475
+ export default CheckboxPlugin;
1476
+ export { CheckboxPlugin, CheckboxPlugin as Checkbox, CheckboxPlugin as CheckboxExtension };