@refinitiv-ui/efx-grid 6.0.2 → 6.0.5

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 (203) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +49 -0
  2. package/lib/column-dragging/es6/ColumnDragging.js +764 -0
  3. package/lib/column-dragging/es6/index.d.ts +1 -0
  4. package/lib/column-dragging/es6/index.js +1 -0
  5. package/lib/column-format-dialog/lib/column-format-dialog.d.ts +13 -1
  6. package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +15 -2
  7. package/lib/column-selection-dialog/lib/column-selection-dialog.js +146 -5
  8. package/lib/core/dist/core.css +1 -1
  9. package/lib/core/dist/core.js +468 -1092
  10. package/lib/core/dist/core.min.js +1 -1
  11. package/lib/core/es6/data/ColumnStats.d.ts +2 -2
  12. package/lib/core/es6/data/DataCache.d.ts +4 -4
  13. package/lib/core/es6/data/DataTable.d.ts +5 -5
  14. package/lib/core/es6/data/DataTable.js +33 -11
  15. package/lib/core/es6/data/DataView.d.ts +12 -18
  16. package/lib/core/es6/data/DataView.js +0 -4
  17. package/lib/core/es6/data/Segment.d.ts +2 -0
  18. package/lib/core/es6/data/Segment.js +7 -0
  19. package/lib/core/es6/data/SegmentCollection.d.ts +3 -3
  20. package/lib/core/es6/data/WrappedView.d.ts +13 -13
  21. package/lib/core/es6/data/WrappedView.js +6 -6
  22. package/lib/core/es6/grid/Core.d.ts +31 -27
  23. package/lib/core/es6/grid/Core.js +47 -11
  24. package/lib/core/es6/grid/ILayoutGrid.d.ts +15 -15
  25. package/lib/core/es6/grid/LayoutGrid.js +54 -26
  26. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +71 -0
  27. package/lib/core/es6/grid/components/Cell.d.ts +4 -4
  28. package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +1 -1
  29. package/lib/core/es6/grid/components/CellSpans.d.ts +8 -8
  30. package/lib/core/es6/grid/components/Column.d.ts +1 -1
  31. package/lib/core/es6/grid/components/ElementWrapper.d.ts +6 -6
  32. package/lib/core/es6/grid/components/Scrollbar.d.ts +3 -1
  33. package/lib/core/es6/grid/components/Scrollbar.js +13 -0
  34. package/lib/core/es6/grid/components/StretchedCells.js +2 -2
  35. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +14 -6
  36. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +147 -81
  37. package/lib/core/es6/grid/util/Conflator.d.ts +2 -2
  38. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +3 -3
  39. package/lib/core/es6/grid/util/HttpRequest.d.ts +2 -2
  40. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +1 -1
  41. package/lib/core/es6/grid/util/RangeBar.d.ts +1 -1
  42. package/lib/core/es6/grid/util/SectionSettings.d.ts +5 -5
  43. package/lib/core/es6/grid/util/SectionSettings.js +5 -0
  44. package/lib/core/es6/grid/util/SelectionList.d.ts +2 -2
  45. package/lib/core/es6/grid/util/TrackLayout.d.ts +7 -3
  46. package/lib/core/es6/grid/util/TrackLayout.js +27 -0
  47. package/lib/core/es6/grid/util/util.d.ts +2 -2
  48. package/lib/core/es6/index.d.ts +1 -5
  49. package/lib/core/es6/index.js +1 -7
  50. package/lib/core/es6/tr-grid-theme.js +1 -1
  51. package/lib/filter-dialog/lib/checkbox-list.d.ts +13 -1
  52. package/lib/filter-dialog/lib/filter-dialog.d.ts +14 -1
  53. package/lib/filter-dialog/lib/filter-dialog.js +86 -26
  54. package/lib/filter-dialog/themes/base-checkbox.less +8 -1
  55. package/lib/filter-dialog/themes/base.less +69 -1
  56. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  57. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +2 -2
  58. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  59. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  60. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +2 -2
  61. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  62. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  63. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +2 -2
  64. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  65. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  66. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +2 -2
  67. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  68. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  69. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +2 -2
  70. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  71. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  72. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +2 -2
  73. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  74. package/lib/grid/lib/efx-grid.d.ts +25 -10
  75. package/lib/grid/lib/efx-grid.js +22 -56
  76. package/lib/grid/themes/base.less +1 -1
  77. package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
  78. package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
  79. package/lib/grid/themes/halo/efx-grid.less +33 -39
  80. package/lib/grid/themes/halo/light/efx-grid.js +1 -1
  81. package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
  82. package/lib/grid/themes/solar/charcoal/efx-grid.js +1 -1
  83. package/lib/grid/themes/solar/charcoal/es5/all-elements.js +1 -1
  84. package/lib/grid/themes/solar/pearl/efx-grid.js +1 -1
  85. package/lib/grid/themes/solar/pearl/es5/all-elements.js +1 -1
  86. package/lib/index.d.ts +2 -0
  87. package/lib/index.js +2 -0
  88. package/lib/row-segmenting/es6/RowSegmenting.d.ts +7 -2
  89. package/lib/row-segmenting/es6/RowSegmenting.js +98 -11
  90. package/lib/rt-grid/dist/rt-grid.js +1244 -1249
  91. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  92. package/lib/rt-grid/es6/ColumnDefinition.d.ts +5 -3
  93. package/lib/rt-grid/es6/ColumnDefinition.js +17 -108
  94. package/lib/rt-grid/es6/DataConnector.d.ts +3 -3
  95. package/lib/rt-grid/es6/Grid.d.ts +24 -9
  96. package/lib/rt-grid/es6/Grid.js +285 -103
  97. package/lib/rt-grid/es6/RowDefSorter.d.ts +19 -0
  98. package/lib/rt-grid/es6/RowDefSorter.js +137 -0
  99. package/lib/rt-grid/es6/RowDefinition.d.ts +9 -7
  100. package/lib/rt-grid/es6/RowDefinition.js +6 -0
  101. package/lib/rt-grid/es6/SnapshotFiller.d.ts +6 -1
  102. package/lib/rt-grid/es6/SnapshotFiller.js +144 -15
  103. package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +4 -3
  104. package/lib/tr-grid-checkbox/es6/Checkbox.js +51 -21
  105. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +46 -9
  106. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +8 -4
  107. package/lib/tr-grid-column-stack/es6/ColumnStack.js +240 -125
  108. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +4 -3
  109. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +28 -13
  110. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +8 -5
  111. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +106 -3
  112. package/lib/tr-grid-percent-bar/es6/PercentBar.js +1 -1
  113. package/lib/tr-grid-printer/es6/CellWriter.d.ts +3 -3
  114. package/lib/tr-grid-printer/es6/GridPrinter.d.ts +1 -1
  115. package/lib/tr-grid-printer/es6/GridPrinter.js +26 -13
  116. package/lib/tr-grid-printer/es6/PrintTrait.d.ts +2 -2
  117. package/lib/tr-grid-printer/es6/SectionWriter.d.ts +3 -3
  118. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +3 -4
  119. package/lib/tr-grid-row-dragging/es6/RowDragging.js +86 -195
  120. package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +7 -2
  121. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +97 -7
  122. package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +8 -8
  123. package/lib/tr-grid-row-selection/es6/RowSelection.js +55 -31
  124. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +1 -1
  125. package/lib/tr-grid-textformatting/es6/TextFormatting.js +12 -0
  126. package/lib/tr-grid-util/es6/CellPainter.js +1 -1
  127. package/lib/tr-grid-util/es6/DragUI.d.ts +16 -0
  128. package/lib/tr-grid-util/es6/DragUI.js +214 -0
  129. package/lib/tr-grid-util/es6/ElementObserver.d.ts +2 -0
  130. package/lib/tr-grid-util/es6/ElementObserver.js +32 -2
  131. package/lib/tr-grid-util/es6/ElfUtil.d.ts +4 -1
  132. package/lib/tr-grid-util/es6/ElfUtil.js +131 -28
  133. package/lib/tr-grid-util/es6/ExpanderIcon.js +2 -2
  134. package/lib/tr-grid-util/es6/FieldFormatter.js +7 -5
  135. package/lib/tr-grid-util/es6/GridPlugin.js +8 -4
  136. package/lib/tr-grid-util/es6/MultiTableManager.d.ts +8 -0
  137. package/lib/tr-grid-util/es6/MultiTableManager.js +164 -57
  138. package/lib/tr-grid-util/es6/NumberFormatter.d.ts +2 -0
  139. package/lib/tr-grid-util/es6/NumberFormatter.js +64 -19
  140. package/lib/tr-grid-util/es6/RowPainter.js +57 -19
  141. package/lib/tr-grid-util/es6/formula/Formula.js +9 -1
  142. package/lib/tr-grid-util/es6/jsx.d.ts +223 -0
  143. package/lib/types/es6/Checkbox.d.ts +4 -3
  144. package/lib/types/es6/ColumnStack.d.ts +8 -4
  145. package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +3 -2
  146. package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +2 -1
  147. package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +20 -18
  148. package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +2 -1
  149. package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +3 -2
  150. package/lib/types/es6/CompositeGrid/Plugin.d.ts +28 -0
  151. package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +2 -1
  152. package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +5 -4
  153. package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +2 -1
  154. package/lib/types/es6/CompositeGrid/index.d.ts +9 -9
  155. package/lib/types/es6/ConditionalColoring.d.ts +4 -3
  156. package/lib/types/es6/Core/data/ColumnStats.d.ts +2 -2
  157. package/lib/types/es6/Core/data/DataCache.d.ts +4 -4
  158. package/lib/types/es6/Core/data/DataTable.d.ts +5 -5
  159. package/lib/types/es6/Core/data/DataView.d.ts +12 -18
  160. package/lib/types/es6/Core/data/Segment.d.ts +2 -0
  161. package/lib/types/es6/Core/data/SegmentCollection.d.ts +3 -3
  162. package/lib/types/es6/Core/data/WrappedView.d.ts +13 -13
  163. package/lib/types/es6/Core/grid/Core.d.ts +31 -27
  164. package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +15 -15
  165. package/lib/types/es6/Core/grid/components/Cell.d.ts +4 -4
  166. package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +1 -1
  167. package/lib/types/es6/Core/grid/components/CellSpans.d.ts +8 -8
  168. package/lib/types/es6/Core/grid/components/Column.d.ts +1 -1
  169. package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +6 -6
  170. package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +3 -1
  171. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +14 -6
  172. package/lib/types/es6/Core/grid/util/Conflator.d.ts +2 -2
  173. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +3 -3
  174. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +2 -2
  175. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +1 -1
  176. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +1 -1
  177. package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +5 -5
  178. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +2 -2
  179. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +7 -3
  180. package/lib/types/es6/Core/grid/util/util.d.ts +2 -2
  181. package/lib/types/es6/Core/index.d.ts +1 -5
  182. package/lib/types/es6/ExtensionOptions.d.ts +2 -0
  183. package/lib/types/es6/InCellEditing.d.ts +8 -5
  184. package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +5 -3
  185. package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +3 -3
  186. package/lib/types/es6/RealtimeGrid/Grid.d.ts +24 -9
  187. package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +19 -0
  188. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +9 -7
  189. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +6 -1
  190. package/lib/types/es6/RowDragging.d.ts +3 -4
  191. package/lib/types/es6/RowGrouping.d.ts +7 -2
  192. package/lib/types/es6/RowSegmenting.d.ts +7 -2
  193. package/lib/types/es6/RowSelection.d.ts +8 -8
  194. package/lib/types/es6/TextFormatting.d.ts +1 -1
  195. package/lib/types/es6/index.d.ts +1 -0
  196. package/lib/versions.json +17 -16
  197. package/package.json +1 -1
  198. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.d.ts +0 -24
  199. package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.js +0 -615
  200. package/lib/core/es6/grid/plugins/Plugin.d.ts +0 -28
  201. package/lib/core/es6/grid/plugins/Plugin.js +0 -272
  202. package/lib/types/es6/Core/grid/plugins/DragAndDropTitlePlugin.d.ts +0 -24
  203. package/lib/types/es6/Core/grid/plugins/Plugin.d.ts +0 -28
@@ -0,0 +1 @@
1
+ export * from "./ColumnDragging";
@@ -0,0 +1 @@
1
+ export * from "./ColumnDragging";
@@ -1,4 +1,5 @@
1
1
  import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
2
+ import { JSXInterface } from "../../tr-grid-util/es6/jsx";
2
3
  import {
3
4
  BasicElement,
4
5
  html
@@ -60,5 +61,16 @@ declare class ColumnFormatDialog extends BasicElement {
60
61
 
61
62
  }
62
63
 
64
+ declare global {
65
+ interface HTMLElementTagNameMap {
66
+ "column-format-dialog": ColumnFormatDialog;
67
+ }
68
+ namespace JSX {
69
+ interface IntrinsicElements {
70
+ "column-format-dialog": ColumnFormatDialog | JSXInterface.HTMLAttributes;
71
+ }
72
+ }
73
+ }
74
+
63
75
  export { ColumnFormatDialog };
64
- export default ColumnFormatDialog;
76
+ export default ColumnFormatDialog;
@@ -1,12 +1,14 @@
1
1
  import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
2
+ import { JSXInterface } from "../../tr-grid-util/es6/jsx";
2
3
  import { BasicElement, html } from "@refinitiv-ui/core";
3
4
  import "@refinitiv-ui/elements/button";
4
- import "@refinitiv-ui/elements/tree";
5
+ import { TreeRenderer } from "@refinitiv-ui/elements/tree";
5
6
  import "@refinitiv-ui/elements/dialog";
6
7
  import "@refinitiv-ui/elements/search-field";
7
8
  import translation from "./locale/translation.js";
8
9
  import ElementObserver from "../../tr-grid-util/es6/ElementObserver.js";
9
10
  import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
11
+ import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
10
12
 
11
13
  declare namespace ColumnSelectionDialog {
12
14
 
@@ -37,5 +39,16 @@ declare class ColumnSelectionDialog extends BasicElement {
37
39
 
38
40
  }
39
41
 
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ "column-selection-dialog": ColumnSelectionDialog;
45
+ }
46
+ namespace JSX {
47
+ interface IntrinsicElements {
48
+ "column-selection-dialog": ColumnSelectionDialog | JSXInterface.HTMLAttributes;
49
+ }
50
+ }
51
+ }
52
+
40
53
  export { ColumnSelectionDialog };
41
- export default ColumnSelectionDialog;
54
+ export default ColumnSelectionDialog;
@@ -1,12 +1,13 @@
1
1
  import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
2
2
  import { BasicElement, html } from "@refinitiv-ui/core";
3
3
  import "@refinitiv-ui/elements/button";
4
- import "@refinitiv-ui/elements/tree";
4
+ import { TreeRenderer } from "@refinitiv-ui/elements/tree";
5
5
  import "@refinitiv-ui/elements/dialog";
6
6
  import "@refinitiv-ui/elements/search-field";
7
7
  import translation from "./locale/translation.js";
8
8
  import ElementObserver from "../../tr-grid-util/es6/ElementObserver.js";
9
9
  import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
10
+ import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
10
11
 
11
12
  /**
12
13
  * @typedef {Object} ColumnSelectionDialog~Config
@@ -499,6 +500,7 @@ class ColumnSelectionDialog extends BasicElement {
499
500
  this._excludedLeftVisibleColumnList = []; // Visible left columns that is currently excluded from UI (eg. auto-generated column)
500
501
  this._excludedRightVisibleColumnList = []; // Visible right columns that is currently excluded from UI
501
502
  this._selectAllStatus = "";
503
+ this._treeDefualtRenderer = {};
502
504
 
503
505
  this._isMovable = this._isMovable.bind(this);
504
506
  this._treeValueChanged = this._treeValueChanged.bind(this);
@@ -515,7 +517,11 @@ class ColumnSelectionDialog extends BasicElement {
515
517
  this._handleMouseover = this._handleMouseover.bind(this);
516
518
  this._handleMouseout = this._handleMouseout.bind(this);
517
519
  this._handleSelectAllHeaderClick = this._handleSelectAllHeaderClick.bind(this);
520
+ this._handleInfoIconClicked = this._handleInfoIconClicked.bind(this);
521
+ this._handleInfoIconMouseover = this._handleInfoIconMouseover.bind(this);
522
+ this._handleInfoIconMouseout = this._handleInfoIconMouseout.bind(this);
518
523
  this._handleClick = this._handleClick.bind(this);
524
+ this._createTreeCustomRender = this._createTreeCustomRender.bind(this);
519
525
  this._selectAllCheckedChanged = this._selectAllCheckedChanged.bind(this);
520
526
  ElementObserver.addLanguageListener(this);
521
527
  }
@@ -683,6 +689,52 @@ class ColumnSelectionDialog extends BasicElement {
683
689
  this._visibleColumnsContainer.addEventListener('mouseout', this._handleMouseout);
684
690
  this._visibleColumnsContainer.addEventListener('click', this._handleClick);
685
691
  this._visibleColumnsContainer.addEventListener('dblclick', this._removeBtnClicked);
692
+
693
+ // icon custom renderer
694
+ if(this._descriptionBox) {
695
+ this._treeDefualtRenderer = new DefaultRenderer(this._tree);
696
+ this._tree.renderer = this._createTreeCustomRender;
697
+ }
698
+
699
+ // apply style for info icon
700
+ if(!this._styles) {
701
+ var styles = [
702
+ "ef-tree-item", [
703
+ "position: relative;"
704
+ ],
705
+ ".item", [
706
+ "display: flex;",
707
+ "justify-content: space-between;"
708
+ ],
709
+ ".div-icon", [
710
+ "position: absolute;",
711
+ "right: 0;",
712
+ "top: 0;",
713
+ "width: 24px;",
714
+ "height: 100%;",
715
+ "text-align: center;"
716
+ ],
717
+ ".info-icon", [
718
+ "display: block;",
719
+ "font-size: 18px;",
720
+ "height: 100%;",
721
+ "display: none"
722
+ ],
723
+ "ef-tree-item:hover .item .info-icon", [ // hover item will show icon
724
+ "display: inline-block;",
725
+ "color: #ffffff;" // icon-color white both dark and light theme
726
+ ],
727
+ "ef-tree-item .item .div-icon:hover", [ // hover icon will change icon background
728
+ "background-color: var(--color-scheme-primary);"
729
+ ],
730
+ ".bg-highligted", [ // effect ef-tree-item, when _handleInfoIconMouseover icon (disable highlighted background color)
731
+ "background-color: var(--color-scheme-tertiary);",
732
+ "color: var(--color-scheme-complementary);" // font text
733
+ ]
734
+ ];
735
+ this._styles = prettifyCss(styles);
736
+ injectCss(this._styles, this); // inject in column selection dialog dialog
737
+ }
686
738
  }
687
739
 
688
740
  /**
@@ -1188,10 +1240,7 @@ class ColumnSelectionDialog extends BasicElement {
1188
1240
  _handleClick(e) {
1189
1241
  var selectedElement = e.target; // Target should be ef-item
1190
1242
 
1191
- // click to display description
1192
- if (this._descriptionBox && this._initialColumnMap[selectedElement.value]) {
1193
- this._descriptionContainer.textContent = this._initialColumnMap[selectedElement.value].description;
1194
- }
1243
+ this._showDescription(selectedElement.value);
1195
1244
 
1196
1245
  if (!selectedElement.highlightable) {
1197
1246
  return;
@@ -1219,6 +1268,98 @@ class ColumnSelectionDialog extends BasicElement {
1219
1268
  this.requestUpdate();
1220
1269
  }
1221
1270
 
1271
+ /**
1272
+ * @private
1273
+ * @param {object} e - event object
1274
+ */
1275
+ _handleInfoIconClicked(e) {
1276
+ var targetElem = e.currentTarget;
1277
+ var divItem = targetElem.parentNode;
1278
+ var treeItem = divItem.parentNode;
1279
+ var value = treeItem.item.value;
1280
+ this._showDescription(value);
1281
+ e.stopPropagation();
1282
+ }
1283
+
1284
+ /**
1285
+ * @private
1286
+ * @param {object} e - event object
1287
+ */
1288
+ _handleInfoIconMouseover(e) {
1289
+ var targetElem = e.currentTarget;
1290
+ var divItem = targetElem.parentNode;
1291
+ var treeItem = divItem.parentNode;
1292
+ if(treeItem.highlighted) {
1293
+ treeItem.classList.add("bg-highligted");
1294
+ }
1295
+ }
1296
+
1297
+ /**
1298
+ * @private
1299
+ * @param {object} e - event object
1300
+ */
1301
+ _handleInfoIconMouseout(e) {
1302
+ var targetElem = e.currentTarget;
1303
+ var divItem = targetElem.parentNode;
1304
+ var treeItem = divItem.parentNode;
1305
+ if(treeItem.highlighted) {
1306
+ treeItem.classList.remove("bg-highligted");
1307
+ }
1308
+ }
1309
+
1310
+ /**
1311
+ * @private
1312
+ * @param {string} value of mapping item for show description
1313
+ */
1314
+ _showDescription(value) {
1315
+ if(!value) {
1316
+ return;
1317
+ }
1318
+ var rawValue = this._allItemMapping[value].rawValue; // restore rawValue for access initial value
1319
+ if (this._descriptionBox && this._initialColumnMap[rawValue]) {
1320
+ this._descriptionContainer.textContent = this._initialColumnMap[rawValue].description;
1321
+ }
1322
+ }
1323
+
1324
+ /**
1325
+ * @private
1326
+ * @param {object} item ef-tree-item element
1327
+ * @param {object} composer data collection composer for elf API wrapper
1328
+ * @param {object} element
1329
+ * @return {Object} custom renderer element
1330
+ */
1331
+ _createTreeCustomRender(item, composer, element) {
1332
+ // Use default renderer to create/recycle element
1333
+ element = this._treeDefualtRenderer(item, composer, element);
1334
+ var isParent = composer.isItemParent(item);
1335
+ var rawValue = item.rawValue;
1336
+ if (!isParent && this._initialColumnMap[rawValue].description) {
1337
+ var treeLabel = element._treeLabel;
1338
+ if (!treeLabel) {
1339
+ var div = document.createElement("div");
1340
+ treeLabel = document.createElement("div");
1341
+ element._treeLabel = treeLabel;
1342
+ var iconEl = document.createElement("ef-icon");
1343
+ var divIcon = document.createElement("div");
1344
+ div.classList.add("item");
1345
+ treeLabel.classList.add("tree-label");
1346
+ iconEl.classList.add("info-icon");
1347
+ iconEl.icon = "info";
1348
+ divIcon.classList.add("div-icon");
1349
+ divIcon.appendChild(iconEl);
1350
+ divIcon.addEventListener("tap", this._handleInfoIconClicked );
1351
+ divIcon.addEventListener("mouseover", this._handleInfoIconMouseover);
1352
+ divIcon.addEventListener("mouseout", this._handleInfoIconMouseout);
1353
+ div.appendChild(treeLabel);
1354
+ div.appendChild(divIcon);
1355
+ element.appendChild(div);
1356
+ } else {
1357
+ treeLabel = element.querySelector(".tree-label");
1358
+ }
1359
+ treeLabel.textContent = item.label;
1360
+ }
1361
+ return element;
1362
+ }
1222
1363
 
1223
1364
  /**
1224
1365
  * update up and down button