@refinitiv-ui/efx-grid 6.0.119 → 6.0.120

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 (33) hide show
  1. package/lib/core/dist/core.js +97 -6
  2. package/lib/core/dist/core.min.js +1 -1
  3. package/lib/core/es6/data/DataView.js +7 -5
  4. package/lib/core/es6/grid/Core.js +1 -1
  5. package/lib/core/es6/grid/components/Cell.d.ts +2 -0
  6. package/lib/core/es6/grid/components/Cell.js +89 -0
  7. package/lib/filter-dialog/themes/base-checkbox.less +1 -1
  8. package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
  9. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
  10. package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
  11. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +1 -1
  12. package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
  13. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  14. package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
  15. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +1 -1
  16. package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
  17. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
  18. package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
  19. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
  20. package/lib/grid/index.js +1 -1
  21. package/lib/rt-grid/dist/rt-grid.js +210 -87
  22. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  23. package/lib/rt-grid/es6/ColumnDefinition.js +7 -0
  24. package/lib/rt-grid/es6/Grid.js +106 -81
  25. package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.js +18 -15
  26. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +6 -1
  27. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +0 -2
  28. package/lib/tr-grid-row-dragging/es6/RowDragging.js +82 -77
  29. package/lib/tr-grid-row-selection/es6/RowSelection.js +155 -35
  30. package/lib/types/es6/Core/grid/components/Cell.d.ts +2 -0
  31. package/lib/types/es6/RowDragging.d.ts +0 -2
  32. package/lib/versions.json +5 -5
  33. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  import "./imports/native-elements.js";
2
2
 
3
3
 
4
- dispatchEvent(new CustomEvent('ef.customStyles.define', { detail: { name: 'checkbox-list', styles: ':host{display:block;scrollbar-face-color:#8a8a96;scrollbar-shadow-color:#8a8a96;scrollbar-highlight-color:#8a8a96;scrollbar-arrow-color:#8a8a96;scrollbar-track-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff;scrollbar-color:#8a8a96 #fff}:host .hidden{display:none}:host .select-btn{margin-top:0;margin-bottom:4px}:host #container{border:1px solid #a9afba;overflow-y:auto;min-height:48px;flex-grow:1}:host .item-container{display:flex;width:100%;align-items:center}:host .item-label{margin-left:7px;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .root{display:flex;flex-flow:column;overflow:hidden}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #fff;height:12px;width:12px;display:block}::-webkit-scrollbar-thumb{background:#8a8a96;border-radius:7px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{background:#a9afba}::-webkit-scrollbar-thumb:active{background:#ee7600}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-corner{background:#fff}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:horizontal:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}' }}));
4
+ dispatchEvent(new CustomEvent('ef.customStyles.define', { detail: { name: 'checkbox-list', styles: ':host{display:block;scrollbar-face-color:#8a8a96;scrollbar-shadow-color:#8a8a96;scrollbar-highlight-color:#8a8a96;scrollbar-arrow-color:#8a8a96;scrollbar-track-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff}:host .hidden{display:none}:host .select-btn{margin-top:0;margin-bottom:4px}@supports not selector(::-webkit-scrollbar){:host{scrollbar-color:#8a8a96 #fff}}:host #container{border:1px solid #a9afba;overflow-y:auto;min-height:48px;flex-grow:1}:host .item-container{display:flex;width:100%;align-items:center}:host .item-label{margin-left:7px;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .root{display:flex;flex-flow:column;overflow:hidden}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #fff;height:12px;width:12px;display:block}::-webkit-scrollbar-thumb{background:#8a8a96;border-radius:7px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{background:#a9afba}::-webkit-scrollbar-thumb:active{background:#ee7600}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-corner{background:#fff}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:horizontal:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}' }}));
@@ -1,4 +1,4 @@
1
1
  dispatchEvent(new CustomEvent('ef.customStyles.define', { detail: { name: 'filter-dialog', styles: ':host{display:block}:host *{margin-bottom:0;margin-top:0}:host .compact{padding-top:8px;padding-bottom:8px}:host .compact #filterAdvancedUI,:host .compact #filterValueUI{margin-top:5px}:host .compact #filterValueUI>*+*{margin-top:4px}:host .compact .input-group ef-combo-box+ef-combo-box,:host .compact .input-group ef-combo-box+ef-datetime-picker{margin-top:10px}:host .compact .input-group ef-combo-box+div.radio-group,:host .compact .input-group ef-datetime-picker+div.radio-group{margin-top:6px}:host .compact .input-group div.radio-group+ef-combo-box{margin-top:8px}:host .compact .cancel-ok{margin-top:4px}:host .compact #separator,:host .compact .group-label{display:none}:host ef-panel{box-shadow:0 0 10px rgba(0,0,0,.5);padding-top:17px;padding-bottom:31px;display:block}:host label{line-height:18px;font-size:12px}:host hr{border-top:1px solid;margin-top:9px;margin-bottom:6px;width:100%}:host ef-radio-button{height:18px}:host #filterCoralSplitBtn,:host ef-combo-box,:host ef-input,:host ef-search-field,:host ef-datetime-picker{width:100%}:host ef-radio-group{text-align:center}:host #root_panel{display:flex;flex-direction:column}:host #filterUI{display:flex;flex-direction:column;overflow-y:hidden;flex:1}:host #dataSelector{overflow:hidden;display:flex;flex-direction:column}:host #filterAdvancedUI,:host #filterValueUI{margin-top:19px;display:flex;flex-direction:column;flex:1;overflow:auto}:host #filterValueUI>*+*{margin-top:19px}:host #filterDialogContent{width:243px;display:flex;flex-direction:column;overflow:hidden;flex:1}:host #dataFilter{flex:0 0 auto}:host .group-block>*+*{margin-top:4px}:host .group-block label{display:block}:host .group-filter{overflow:hidden;display:flex;flex-direction:column;flex:1}:host .input-group ef-combo-box+ef-combo-box,:host .input-group ef-combo-box+ef-datetime-picker{margin-top:19px}:host .input-group ef-radio-button+ef-radio-button{margin-left:6px}:host .input-group ef-combo-box+div.radio-group,:host .input-group ef-datetime-picker+div.radio-group{margin-top:13px}:host .input-group div.radio-group+ef-combo-box{margin-top:16px}:host .cancel-ok{text-align:right;margin-top:31px}:host .cancel-ok #cancel_btn{margin-left:12px}:host .cancel-ok #clear_btn{float:left}:host .hide{display:none!important}#filterDialogContent.no-filter-ui{width:119px}' }}))
2
2
 
3
- dispatchEvent(new CustomEvent('ef.customStyles.define', { detail: { name: 'checkbox-list', styles: ':host{display:block;scrollbar-face-color:#8a8a96;scrollbar-shadow-color:#8a8a96;scrollbar-highlight-color:#8a8a96;scrollbar-arrow-color:#8a8a96;scrollbar-track-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff;scrollbar-color:#8a8a96 #fff}:host .hidden{display:none}:host .select-btn{margin-top:0;margin-bottom:4px}:host #container{border:1px solid #a9afba;overflow-y:auto;min-height:48px;flex-grow:1}:host .item-container{display:flex;width:100%;align-items:center}:host .item-label{margin-left:7px;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .root{display:flex;flex-flow:column;overflow:hidden}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #fff;height:12px;width:12px;display:block}::-webkit-scrollbar-thumb{background:#8a8a96;border-radius:7px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{background:#a9afba}::-webkit-scrollbar-thumb:active{background:#ee7600}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-corner{background:#fff}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:horizontal:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}' }}));
3
+ dispatchEvent(new CustomEvent('ef.customStyles.define', { detail: { name: 'checkbox-list', styles: ':host{display:block;scrollbar-face-color:#8a8a96;scrollbar-shadow-color:#8a8a96;scrollbar-highlight-color:#8a8a96;scrollbar-arrow-color:#8a8a96;scrollbar-track-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff}:host .hidden{display:none}:host .select-btn{margin-top:0;margin-bottom:4px}@supports not selector(::-webkit-scrollbar){:host{scrollbar-color:#8a8a96 #fff}}:host #container{border:1px solid #a9afba;overflow-y:auto;min-height:48px;flex-grow:1}:host .item-container{display:flex;width:100%;align-items:center}:host .item-label{margin-left:7px;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .root{display:flex;flex-flow:column;overflow:hidden}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #fff;height:12px;width:12px;display:block}::-webkit-scrollbar-thumb{background:#8a8a96;border-radius:7px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{background:#a9afba}::-webkit-scrollbar-thumb:active{background:#ee7600}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-corner{background:#fff}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:horizontal:start:decrement{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment{background-image:linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96),linear-gradient(#8a8a96,#8a8a96);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba),linear-gradient(#a9afba,#a9afba);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600),linear-gradient(#ee7600,#ee7600);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}' }}));
4
4
 
package/lib/grid/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import {Grid} from "./lib/efx-grid.js";
2
2
  export {Grid}
3
- window.EFX_GRID = { version: "6.0.119" };
3
+ window.EFX_GRID = { version: "6.0.120" };
@@ -15522,6 +15522,13 @@ ColumnDefinition.getDataType = function(field) {
15522
15522
  return "";
15523
15523
  };
15524
15524
  /** @public
15525
+ * @ignore
15526
+ * @return {boolean|string|null}
15527
+ */
15528
+ ColumnDefinition.prototype.getTooltipValue = function() {
15529
+ return this._tooltip;
15530
+ };
15531
+ /** @public
15525
15532
  * @return {string}
15526
15533
  */
15527
15534
  ColumnDefinition.prototype.getTooltip = function() {
@@ -18274,6 +18281,10 @@ Cell.prototype._floatingPanel = null;
18274
18281
  * @type {CellFloatingPanel}
18275
18282
  */
18276
18283
  Cell.prototype._frontIcon = null;
18284
+ /** @type {Object}
18285
+ * @private
18286
+ */
18287
+ Cell.prototype._tooltipInfo = null;
18277
18288
 
18278
18289
  //#region ElementWrapper
18279
18290
  /** {@link ElementWrapper#getContent}
@@ -18866,6 +18877,91 @@ Cell.prototype.getClientWidth = function () {
18866
18877
  Cell.prototype.getClientHeight = function () {
18867
18878
  return (this._element) ? this._element.clientHeight : this.getHeight();
18868
18879
  };
18880
+
18881
+ /** To remove the tooltip, pass str as an empty string. To allow cell calculation for the correct tooltip, set str to null.
18882
+ * @public
18883
+ * @param {string|null} str
18884
+ */
18885
+ Cell.prototype.setTooltip = function(str) {
18886
+ this.setTooltipInfo("userTooltip", str);
18887
+ this.updateTooltip();
18888
+ };
18889
+ /** @public
18890
+ * @ignore
18891
+ * @param {string} type
18892
+ * @param {*=} tooltip
18893
+ */
18894
+ Cell.prototype.setTooltipInfo = function(type, tooltip) {
18895
+ let tooltipInfo = this._tooltipInfo;
18896
+ if(!tooltipInfo) {
18897
+ tooltipInfo = this._tooltipInfo = {};
18898
+ }
18899
+
18900
+ tooltipInfo[type] = tooltip;
18901
+ };
18902
+ /** @public
18903
+ * @ignore
18904
+ */
18905
+ Cell.prototype.updateTooltip = function() {
18906
+ let tooltipInfo = this._tooltipInfo;
18907
+ if(!tooltipInfo) {
18908
+ return;
18909
+ }
18910
+
18911
+ let defaultTooltip = "";
18912
+ let customizedTooltip = null;
18913
+
18914
+ // Clipped text tooltip takes precedence over default group header and column tooltip
18915
+ if(tooltipInfo["clippedText"]) { // boolean
18916
+ defaultTooltip = customizedTooltip = tooltipInfo["clippedTextTooltip"];
18917
+ }
18918
+
18919
+ if(tooltipInfo["groupHeaderTooltip"] == null) {
18920
+ if(tooltipInfo["columnDefault"] !== false) {
18921
+ if(tooltipInfo["columnDefault"] != null) { // true, "", string
18922
+ customizedTooltip = tooltipInfo["columnTooltip"];
18923
+ } else { // null
18924
+ defaultTooltip = tooltipInfo["columnTooltip"];
18925
+ }
18926
+ }
18927
+ } else { // Group header tooltip takes precedence over column tooltip
18928
+ if(tooltipInfo["groupHeaderDefault"] !== false) {
18929
+ if(tooltipInfo["groupHeaderDefault"] != null) {
18930
+ customizedTooltip = tooltipInfo["groupHeaderTooltip"];
18931
+ } else {
18932
+ defaultTooltip = tooltipInfo["groupHeaderTooltip"];
18933
+ }
18934
+ }
18935
+ }
18936
+
18937
+ // User tooltip take the highest precedence
18938
+ if(tooltipInfo["userTooltip"] != null) { // "", string
18939
+ customizedTooltip = tooltipInfo["userTooltip"];
18940
+ }
18941
+
18942
+ if(customizedTooltip == null) {
18943
+ customizedTooltip = defaultTooltip;
18944
+ }
18945
+
18946
+ if(customizedTooltip) {
18947
+ if(this.getAttribute("title") !== customizedTooltip) {
18948
+ this.setAttribute("title", customizedTooltip);
18949
+ }
18950
+ } else if(this.getAttribute("title") != null) {
18951
+ this.removeAttribute("title");
18952
+ }
18953
+ };
18954
+ /** @public
18955
+ * @ignore
18956
+ * @param {string} type
18957
+ * @return {*}
18958
+ */
18959
+ Cell.prototype.getTooltipInfo = function(type) {
18960
+ if(this._tooltipInfo) {
18961
+ return this._tooltipInfo[type];
18962
+ }
18963
+ return null;
18964
+ };
18869
18965
  //#region Internal Public Methods
18870
18966
 
18871
18967
  //#region Private Methods
@@ -32017,7 +32113,7 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
32017
32113
 
32018
32114
  this._excludedRids = {};
32019
32115
  let exclusionCount = 0;
32020
- exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._hiddenRids);
32116
+ exclusionCount += DataView._copyValidObjectKeys(this._excludedRids, this._hiddenRids);
32021
32117
 
32022
32118
  // Segment separators should not be filtered out (hidden)
32023
32119
  let segments = this._dt._getSegmentSeparators();
@@ -32037,7 +32133,7 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
32037
32133
  }
32038
32134
  this._collapsedRids = segments.getCollapsedRows();
32039
32135
  // Children of collapsed segments must be filtered out (hidden)
32040
- exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._collapsedRids);
32136
+ exclusionCount += DataView._copyValidObjectKeys(this._excludedRids, this._collapsedRids);
32041
32137
  }
32042
32138
 
32043
32139
  if(this._groupLevel > 0 && !opt_rowIds) { // WARNING: The line below is quite slow
@@ -32567,13 +32663,15 @@ DataView._removeArrayItems = function(ary, items) {
32567
32663
  * @param {Object} masterObj
32568
32664
  * @returns {number}
32569
32665
  */
32570
- DataView._copyObjectKeys = function(baseObj, masterObj) {
32666
+ DataView._copyValidObjectKeys = function(baseObj, masterObj) {
32571
32667
  if(masterObj) {
32572
32668
  let count = 0;
32573
32669
 
32574
32670
  for(let key in masterObj) {
32575
- baseObj[key] = 1;
32576
- ++count; // WARNING: duplicated key can be counted more than once
32671
+ if(masterObj[key]) {
32672
+ baseObj[key] = 1;
32673
+ ++count; // WARNING: duplicated key can be counted more than once
32674
+ }
32577
32675
  }
32578
32676
  return count;
32579
32677
  }
@@ -36467,7 +36565,7 @@ Core.prototype._hasPendingRowChange = false;
36467
36565
  * @return {string}
36468
36566
  */
36469
36567
  Core.getVersion = function () {
36470
- return "5.1.117";
36568
+ return "5.1.121";
36471
36569
  };
36472
36570
  /** {@link ElementWrapper#dispose}
36473
36571
  * @override
@@ -45043,11 +45141,11 @@ let _hasFieldOrId = function(colDef, str) {
45043
45141
  };
45044
45142
 
45045
45143
  /** Compare the difference in the 'id' property.
45046
- * @private
45047
- * @param {Object} obj1
45048
- * @param {Object} obj2
45049
- * @returns {boolean} If the id property of two objects is equal, the return will be true, otherwise it will be false.
45050
- */
45144
+ * @private
45145
+ * @param {Object} obj1
45146
+ * @param {Object} obj2
45147
+ * @returns {boolean} If the id property of two objects is equal, the return will be true, otherwise it will be false.
45148
+ */
45051
45149
  let _hasMatchingId = function(obj1, obj2) {
45052
45150
  if(!obj1 || !obj2 || !obj1.id || !obj2.id) { // Handle nullable, if the object or id have null, it's means difference value
45053
45151
  return false;
@@ -45055,6 +45153,25 @@ let _hasMatchingId = function(obj1, obj2) {
45055
45153
  return obj1.id === obj2.id;
45056
45154
  };
45057
45155
 
45156
+ /** @private
45157
+ * @param {Object} e
45158
+ */
45159
+ let _preventDefault = function(e) {
45160
+ if(e) {
45161
+ e.preventDefault();
45162
+ }
45163
+ };
45164
+ /** @private
45165
+ * @param {number=} id
45166
+ * @returns {number} Always return 0
45167
+ */
45168
+ let _clearTimeout = function(id) {
45169
+ if(id) {
45170
+ clearTimeout(id);
45171
+ }
45172
+ return 0;
45173
+ };
45174
+
45058
45175
  /** @constructor
45059
45176
  * @extends {EventDispatcher}
45060
45177
  * @param {(Element|null)=} placeholder
@@ -45365,10 +45482,6 @@ Grid.prototype._topSection = true;
45365
45482
  * @private
45366
45483
  */
45367
45484
  Grid.prototype._focusingArgs = null;
45368
- /** @type {number}
45369
- * @private
45370
- */
45371
- Grid.prototype._scrolledRow = -1;
45372
45485
  /** @type {boolean}
45373
45486
  * @private
45374
45487
  */
@@ -45383,10 +45496,8 @@ Grid.prototype.dispose = function() {
45383
45496
  clearInterval(this._autoLayoutTimer);
45384
45497
  this._autoLayoutTimer = 0;
45385
45498
  }
45386
- if(this._pollingTimerId) {
45387
- clearTimeout(this._pollingTimerId);
45388
- this._pollingTimerId = 0;
45389
- }
45499
+ this._pollingTimerId = _clearTimeout(this._pollingTimerId);
45500
+
45390
45501
  this.removeAllColumns(); // Some conflators are reset
45391
45502
  this.removeAllRows(); // Some conflators are reset
45392
45503
  this._sorter.dispose();
@@ -45409,9 +45520,8 @@ Grid.prototype.dispose = function() {
45409
45520
  }
45410
45521
 
45411
45522
  if(this._focusingArgs) {
45412
- if(this._focusingArgs.id) {
45413
- clearTimeout(this._focusingArgs.id);
45414
- }
45523
+ _clearTimeout(this._focusingArgs.id);
45524
+ _clearTimeout(this._focusingArgs.timeoutId);
45415
45525
  this._focusingArgs = null;
45416
45526
  }
45417
45527
  };
@@ -45716,6 +45826,7 @@ Grid.prototype.initialize = function(gridOption) {
45716
45826
  this.addListener(gridOption, "beforeContentBinding");
45717
45827
  this.addListener(gridOption, "firstRendered");
45718
45828
  this.addListener(gridOption, "afterContentBinding");
45829
+ this.addListener(gridOption, "tabNavigation");
45719
45830
 
45720
45831
  if(gridOption["autoDateConversion"]) {
45721
45832
  t._autoDateConversion = true;
@@ -48232,12 +48343,15 @@ Grid.prototype._renderColumnHeader = function(colIndex, arg) {
48232
48343
  let colName = colDef.getName();
48233
48344
  let colTooltip = colDef.getTooltip();
48234
48345
  let headerAlignment = colDef.getHeaderAlignment();
48346
+ let tooltipValue = colDef.getTooltipValue();
48235
48347
 
48236
48348
  for(let r = 0; r < rowCount; ++r) {
48237
48349
  let tCell = tSection.getCell(colIndex, r, false);
48238
48350
  // Default behaviors
48239
48351
  tCell.setContent(colName);
48240
- tCell.setTooltip(colTooltip);
48352
+ tCell.setTooltipInfo("columnDefault", tooltipValue);
48353
+ tCell.setTooltipInfo("columnTooltip", colTooltip);
48354
+ tCell.updateTooltip();
48241
48355
  tCell.setStyle("textAlign", headerAlignment);
48242
48356
 
48243
48357
  if(customRenderer) {
@@ -48985,38 +49099,49 @@ Grid.prototype.getVScrollView = function () {
48985
49099
  return this._grid.getVScrollView();
48986
49100
  };
48987
49101
 
48988
- /** @private
48989
- * @param {Element} el
48990
- * @return {boolean}
48991
- */
48992
- function isFocusableContent(el) {
48993
- if(el) {
48994
- return (el.tagName !== "SPAN" && !el.disabled);
48995
- }
48996
- return false;
48997
- }
48998
49102
  /** @private
48999
49103
  * @param {Object} cell
49104
+ * @param {Object} args
49000
49105
  * @return {boolean}
49001
49106
  */
49002
- function focusCell(cell) {
49107
+ Grid.prototype._focusCell = function(cell, args) {
49003
49108
  if(cell) {
49004
49109
  let cellContent = cell.getContent();
49005
- if(cellContent && isFocusableContent(cellContent)) {
49006
- cellContent.focus();
49007
- return true;
49110
+ if(cellContent) {
49111
+ let nfe = null;
49112
+ if(this.hasListener("tabNavigation")) {
49113
+ let tabNavArg = {
49114
+ "shiftKey": args.shiftKey,
49115
+ "activeElement": args.activeElement,
49116
+ "cellContent": cellContent,
49117
+ "cell": cell,
49118
+ "colIndex": args.colIndex,
49119
+ "rowIndex": args.rowIndex,
49120
+ "field": args.fields ? args.fields[args.colIndex] : ""
49121
+ };
49122
+ this._dispatch("tabNavigation", tabNavArg);
49123
+ nfe = tabNavArg.nextFocusableElement;
49124
+ } else if(cellContent.tagName !== "SPAN") {
49125
+ nfe = cellContent;
49126
+ }
49127
+
49128
+ if(nfe && nfe !== args.activeElement && !nfe.disabled) {
49129
+ nfe.focus();
49130
+ return true;
49131
+ }
49008
49132
  }
49009
49133
  }
49010
49134
  return false;
49011
- }
49135
+ };
49012
49136
  /** @private
49013
49137
  */
49014
49138
  Grid.prototype._onVScroll = function() {
49015
49139
  let args = this._focusingArgs;
49016
49140
  if(args) {
49141
+ args.timeoutId = _clearTimeout(args.timeoutId);
49017
49142
  this._focusingArgs = null;
49018
49143
  let cell = this._grid.getCell("content", args.colIndex, args.rowIndex);
49019
- if(!focusCell(cell)) {
49144
+ if(!this._focusCell(cell, args)) {
49020
49145
  if(args.shiftKey) {
49021
49146
  this._focusPrevCellContent(args);
49022
49147
  } else {
@@ -49027,6 +49152,11 @@ Grid.prototype._onVScroll = function() {
49027
49152
  };
49028
49153
  /** @private
49029
49154
  */
49155
+ Grid.prototype._onScrollTimeout = function() {
49156
+ this._focusingArgs = null;
49157
+ };
49158
+ /** @private
49159
+ */
49030
49160
  Grid.prototype._selfScrollToRow = function() {
49031
49161
  let args = this._focusingArgs;
49032
49162
  if(args) {
@@ -49036,20 +49166,14 @@ Grid.prototype._selfScrollToRow = function() {
49036
49166
  };
49037
49167
  /** @private
49038
49168
  * @param {Object} args
49039
- * @param {number} colIndex
49040
- * @param {number} rowIndex
49041
49169
  */
49042
- Grid.prototype._requestScroll = function(args, colIndex, rowIndex) {
49043
- if(this._focusingArgs || this._scrolledRow === args.rowIndex) {
49044
- return; // Avoid infinite loop
49170
+ Grid.prototype._requestScroll = function(args) {
49171
+ if(!this._focusingArgs) {
49172
+ this._focusingArgs = args;
49173
+ args.event = null; // The event is invalid after the scroll
49174
+ args.id = setTimeout(this._selfScrollToRow, 0); // Avoid event loop protection
49175
+ args.timeoutId = setTimeout(this._onScrollTimeout, 100); // To avoid a fail case where scroll cannot be performed
49045
49176
  }
49046
-
49047
- this._scrolledRow = args.rowIndex;
49048
- this._focusingArgs = args;
49049
- args.colIndex = colIndex;
49050
- args.rowIndex = rowIndex;
49051
- args.event = null; // The event is invalid after the scroll
49052
- args.id = setTimeout(this._selfScrollToRow); // Avoid event loop protection
49053
49177
  };
49054
49178
  /** @private
49055
49179
  * @param {Object} args
@@ -49073,28 +49197,27 @@ Grid.prototype._focusNextCellContent = function(args) {
49073
49197
  startIdx = i;
49074
49198
  }
49075
49199
  }
49076
- // If the current focus is on a valid content, starts on the next cell
49077
- if(args.event && args.validContent) {
49078
- startIdx++;
49079
- }
49080
49200
 
49081
49201
  let grid = this._grid;
49082
49202
  let section = grid.getSection("content");
49083
49203
  let viewInfo = grid.getVerticalViewInfo();
49084
49204
  let lastFullRow = viewInfo.lastFullRow;
49085
49205
  let rowCount = this.getRowCount();
49206
+
49207
+ args.fields = grid.getColumnFields();
49086
49208
  for(let r = rowIndex; r < rowCount; r++) {
49209
+ args.rowIndex = r;
49087
49210
  for(i = startIdx; i < len; i++) {
49088
49211
  let c = focusableColIndices[i];
49212
+ args.colIndex = c;
49089
49213
  if(r > lastFullRow) {
49090
- this._requestScroll(args, c, r);
49214
+ _preventDefault(args.event);
49215
+ this._requestScroll(args);
49091
49216
  return;
49092
49217
  } else {
49093
49218
  let cell = section.getCell(c, r);
49094
- if(focusCell(cell)) {
49095
- if(args.event) {
49096
- args.event.preventDefault();
49097
- }
49219
+ if(this._focusCell(cell, args)) {
49220
+ _preventDefault(args.event);
49098
49221
  return;
49099
49222
  }
49100
49223
  }
@@ -49102,9 +49225,8 @@ Grid.prototype._focusNextCellContent = function(args) {
49102
49225
  startIdx = 0;
49103
49226
  }
49104
49227
 
49105
- if(args.validContent) { // The current focus on the last focusable content
49106
- this._grid.getHiddenInput().focus();
49107
- }
49228
+ // The current focus on the last focusable content
49229
+ this._grid.getHiddenInput().focus();
49108
49230
  };
49109
49231
  /** @private
49110
49232
  * @param {Object} args
@@ -49128,27 +49250,26 @@ Grid.prototype._focusPrevCellContent = function(args) {
49128
49250
  startIdx = i;
49129
49251
  }
49130
49252
  }
49131
- // If the current focus is on a valid content, starts on the next cell
49132
- if(args.event && args.validContent) {
49133
- --startIdx;
49134
- }
49135
49253
 
49136
49254
  let grid = this._grid;
49137
49255
  let section = grid.getSection("content");
49138
49256
  let viewInfo = grid.getVerticalViewInfo();
49139
49257
  let firstFullRow = viewInfo.firstFullRow;
49258
+
49259
+ args.fields = this.getColumnFields();
49140
49260
  for(let r = rowIndex; r >= 0; r--) {
49261
+ args.rowIndex = r;
49141
49262
  for(i = startIdx; i >= 0; i--) {
49142
49263
  let c = focusableColIndices[i];
49264
+ args.colIndex = c;
49143
49265
  if(r < firstFullRow) {
49144
- this._requestScroll(args, c, r);
49266
+ _preventDefault(args.event);
49267
+ this._requestScroll(args);
49145
49268
  return;
49146
49269
  } else {
49147
49270
  let cell = section.getCell(c, r);
49148
- if(focusCell(cell)) {
49149
- if(args.event) {
49150
- args.event.preventDefault();
49151
- }
49271
+ if(this._focusCell(cell, args)) {
49272
+ _preventDefault(args.event);
49152
49273
  return;
49153
49274
  }
49154
49275
  }
@@ -49156,15 +49277,18 @@ Grid.prototype._focusPrevCellContent = function(args) {
49156
49277
  startIdx = len - 1;
49157
49278
  }
49158
49279
 
49159
- if(args.validContent) { // The current focus on the last focusable content
49160
- this._grid.getHiddenInput(true).focus();
49161
- }
49280
+ // The current focus on the last focusable content
49281
+ this._grid.getHiddenInput(true).focus();
49162
49282
  };
49163
49283
 
49164
49284
  /** @private
49165
49285
  * @param {Object} e
49166
49286
  */
49167
49287
  Grid.prototype._onTabNavigation = function(e) {
49288
+ if(this._focusingArgs) {
49289
+ return; // Cannot do another tab navigation while waiting for scrolling
49290
+ }
49291
+
49168
49292
  let colDefs = this.getColumnDefinitions();
49169
49293
  let colCount = colDefs.length;
49170
49294
 
@@ -49179,19 +49303,8 @@ Grid.prototype._onTabNavigation = function(e) {
49179
49303
  return;
49180
49304
  }
49181
49305
 
49182
- this._scrolledRow = -1; // Reset the scroll loop protector
49183
49306
  let keyEvt = e.event;
49184
49307
  let pos = this.getRelativePosition(keyEvt);
49185
- let validContent = true;
49186
- let activeElement = e.activeElement;
49187
- if(activeElement) {
49188
- validContent = !activeElement.classList.contains("valigner");
49189
- }
49190
-
49191
- if(validContent) {
49192
- let content = pos["cell"] ? pos["cell"].getContent() : null;
49193
- validContent = isFocusableContent(content);
49194
- }
49195
49308
  let startingRowIndex = pos["rowIndex"];
49196
49309
  if(e.onTheEdge) {
49197
49310
  let viewInfo = this._grid.getVerticalViewInfo();
@@ -49203,7 +49316,7 @@ Grid.prototype._onTabNavigation = function(e) {
49203
49316
  colIndex: pos["colIndex"],
49204
49317
  rowIndex: startingRowIndex,
49205
49318
  focusableColIndices: focusableColIndices,
49206
- validContent: validContent
49319
+ activeElement: e.activeElement
49207
49320
  };
49208
49321
 
49209
49322
  if(keyEvt.shiftKey) {
@@ -49213,6 +49326,16 @@ Grid.prototype._onTabNavigation = function(e) {
49213
49326
  }
49214
49327
  };
49215
49328
 
49329
+ /** @public
49330
+ * @ignore
49331
+ * @return {!Object}
49332
+ */
49333
+ Grid.prototype._getEventHandlers = function() {
49334
+ return {
49335
+ "tabNavigation": this._onTabNavigation
49336
+ };
49337
+ };
49338
+
49216
49339
 
49217
49340
  /* harmony default export */ var js_Grid = (Grid);
49218
49341