@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.
- package/LICENSE +17 -0
- package/README.md +61 -0
- package/lib/column-format-dialog/index.d.ts +1 -0
- package/lib/column-format-dialog/index.js +1 -0
- package/lib/column-format-dialog/lib/column-format-dialog.d.ts +64 -0
- package/lib/column-format-dialog/lib/column-format-dialog.js +2713 -0
- package/lib/column-format-dialog/lib/locale/translation-de.d.ts +7 -0
- package/lib/column-format-dialog/lib/locale/translation-de.js +94 -0
- package/lib/column-format-dialog/lib/locale/translation-en.d.ts +7 -0
- package/lib/column-format-dialog/lib/locale/translation-en.js +94 -0
- package/lib/column-format-dialog/lib/locale/translation-ja.d.ts +7 -0
- package/lib/column-format-dialog/lib/locale/translation-ja.js +94 -0
- package/lib/column-format-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
- package/lib/column-format-dialog/lib/locale/translation-zh-hant.js +94 -0
- package/lib/column-format-dialog/lib/locale/translation-zh.d.ts +7 -0
- package/lib/column-format-dialog/lib/locale/translation-zh.js +94 -0
- package/lib/column-format-dialog/lib/locale/translation.d.ts +11 -0
- package/lib/column-format-dialog/lib/locale/translation.js +18 -0
- package/lib/column-format-dialog/lib/preview-table.d.ts +151 -0
- package/lib/column-format-dialog/lib/preview-table.js +995 -0
- package/lib/column-format-dialog/themes/base.less +429 -0
- package/lib/column-format-dialog/themes/elemental/column-format-dialog.less +1 -0
- package/lib/column-format-dialog/themes/elemental/dark/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/elemental/dark/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/elemental/dark.js +16 -0
- package/lib/column-format-dialog/themes/elemental/defaults.less +1 -0
- package/lib/column-format-dialog/themes/elemental/index.less +5 -0
- package/lib/column-format-dialog/themes/elemental/light/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/elemental/light/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/elemental/light/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/elemental/light/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/elemental/light/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/elemental/light.js +16 -0
- package/lib/column-format-dialog/themes/halo/column-format-dialog.less +6 -0
- package/lib/column-format-dialog/themes/halo/dark/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/halo/dark/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/halo/dark/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/halo/dark/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/halo/dark/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/halo/dark.js +16 -0
- package/lib/column-format-dialog/themes/halo/defaults.less +1 -0
- package/lib/column-format-dialog/themes/halo/index.less +5 -0
- package/lib/column-format-dialog/themes/halo/light/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/halo/light/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/halo/light/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/halo/light/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/halo/light/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/halo/light/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/halo/light.js +16 -0
- package/lib/column-format-dialog/themes/luna/column-format-dialog.less +1 -0
- package/lib/column-format-dialog/themes/luna/default/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/luna/default/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/luna/default/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/luna/default/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/luna/default/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/luna/default/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/luna/defaults.less +1 -0
- package/lib/column-format-dialog/themes/luna/index.less +5 -0
- package/lib/column-format-dialog/themes/solar/charcoal/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/solar/charcoal.js +16 -0
- package/lib/column-format-dialog/themes/solar/column-format-dialog.less +6 -0
- package/lib/column-format-dialog/themes/solar/defaults.less +1 -0
- package/lib/column-format-dialog/themes/solar/index.less +5 -0
- package/lib/column-format-dialog/themes/solar/pearl/column-format-dialog.js +4 -0
- package/lib/column-format-dialog/themes/solar/pearl/css/native-elements.css +0 -0
- package/lib/column-format-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
- package/lib/column-format-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
- package/lib/column-format-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
- package/lib/column-format-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
- package/lib/column-format-dialog/themes/solar/pearl.js +16 -0
- package/lib/column-selection-dialog/index.d.ts +1 -0
- package/lib/column-selection-dialog/index.js +1 -0
- package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +41 -0
- package/lib/column-selection-dialog/lib/column-selection-dialog.js +1410 -0
- package/lib/column-selection-dialog/lib/locale/translation-de.d.ts +7 -0
- package/lib/column-selection-dialog/lib/locale/translation-de.js +19 -0
- package/lib/column-selection-dialog/lib/locale/translation-en.d.ts +7 -0
- package/lib/column-selection-dialog/lib/locale/translation-en.js +19 -0
- package/lib/column-selection-dialog/lib/locale/translation-ja.d.ts +7 -0
- package/lib/column-selection-dialog/lib/locale/translation-ja.js +19 -0
- package/lib/column-selection-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
- package/lib/column-selection-dialog/lib/locale/translation-zh-hant.js +19 -0
- package/lib/column-selection-dialog/lib/locale/translation-zh.d.ts +7 -0
- package/lib/column-selection-dialog/lib/locale/translation-zh.js +19 -0
- package/lib/column-selection-dialog/lib/locale/translation.d.ts +11 -0
- package/lib/column-selection-dialog/lib/locale/translation.js +18 -0
- package/lib/column-selection-dialog/themes/base.less +189 -0
- package/lib/column-selection-dialog/themes/elemental/column-selection-dialog.less +1 -0
- package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/elemental/dark/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/elemental/dark/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/elemental/dark/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/elemental/dark.js +6 -0
- package/lib/column-selection-dialog/themes/elemental/defaults.less +1 -0
- package/lib/column-selection-dialog/themes/elemental/index.less +5 -0
- package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/elemental/light/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/elemental/light/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/elemental/light/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/elemental/light/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/elemental/light.js +6 -0
- package/lib/column-selection-dialog/themes/halo/column-selection-dialog.less +22 -0
- package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/halo/dark/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/halo/dark/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/halo/dark/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/halo/dark/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/halo/dark.js +6 -0
- package/lib/column-selection-dialog/themes/halo/defaults.less +1 -0
- package/lib/column-selection-dialog/themes/halo/index.less +6 -0
- package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/halo/light/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/halo/light/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/halo/light/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/halo/light/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/halo/light.js +6 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/solar/charcoal.js +6 -0
- package/lib/column-selection-dialog/themes/solar/column-selection-dialog.less +1 -0
- package/lib/column-selection-dialog/themes/solar/defaults.less +1 -0
- package/lib/column-selection-dialog/themes/solar/index.less +6 -0
- package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +4 -0
- package/lib/column-selection-dialog/themes/solar/pearl/css/native-elements.css +0 -0
- package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +2 -0
- package/lib/column-selection-dialog/themes/solar/pearl/imports/all-elements.js +1 -0
- package/lib/column-selection-dialog/themes/solar/pearl/imports/custom-elements.js +1 -0
- package/lib/column-selection-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
- package/lib/column-selection-dialog/themes/solar/pearl.js +6 -0
- package/lib/core/dist/core.css +1 -0
- package/lib/core/dist/core.js +28075 -0
- package/lib/core/dist/core.min.js +1 -0
- package/lib/core/es6/data/ColumnStats.d.ts +42 -0
- package/lib/core/es6/data/ColumnStats.js +428 -0
- package/lib/core/es6/data/DataCache.d.ts +81 -0
- package/lib/core/es6/data/DataCache.js +1317 -0
- package/lib/core/es6/data/DataTable.d.ts +125 -0
- package/lib/core/es6/data/DataTable.js +1655 -0
- package/lib/core/es6/data/DataView.d.ts +280 -0
- package/lib/core/es6/data/DataView.js +3654 -0
- package/lib/core/es6/data/Segment.d.ts +38 -0
- package/lib/core/es6/data/Segment.js +193 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +58 -0
- package/lib/core/es6/data/SegmentCollection.js +431 -0
- package/lib/core/es6/grid/Core.d.ts +387 -0
- package/lib/core/es6/grid/Core.js +4939 -0
- package/lib/core/es6/grid/ILayoutGrid.d.ts +204 -0
- package/lib/core/es6/grid/ILayoutGrid.js +658 -0
- package/lib/core/es6/grid/LayoutGrid.d.ts +23 -0
- package/lib/core/es6/grid/LayoutGrid.js +2602 -0
- package/lib/core/es6/grid/VirtualizedLayoutGrid.d.ts +18 -0
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +907 -0
- package/lib/core/es6/grid/components/Cell.d.ts +50 -0
- package/lib/core/es6/grid/components/Cell.js +740 -0
- package/lib/core/es6/grid/components/CellFloatingPanel.d.ts +19 -0
- package/lib/core/es6/grid/components/CellFloatingPanel.js +123 -0
- package/lib/core/es6/grid/components/CellSpan.d.ts +18 -0
- package/lib/core/es6/grid/components/CellSpan.js +99 -0
- package/lib/core/es6/grid/components/CellSpans.d.ts +38 -0
- package/lib/core/es6/grid/components/CellSpans.js +341 -0
- package/lib/core/es6/grid/components/Column.d.ts +22 -0
- package/lib/core/es6/grid/components/Column.js +612 -0
- package/lib/core/es6/grid/components/ElementWrapper.d.ts +125 -0
- package/lib/core/es6/grid/components/ElementWrapper.js +714 -0
- package/lib/core/es6/grid/components/HScrollbar.d.ts +24 -0
- package/lib/core/es6/grid/components/HScrollbar.js +222 -0
- package/lib/core/es6/grid/components/Scrollbar.d.ts +61 -0
- package/lib/core/es6/grid/components/Scrollbar.js +1374 -0
- package/lib/core/es6/grid/components/StretchedCells.d.ts +17 -0
- package/lib/core/es6/grid/components/StretchedCells.js +328 -0
- package/lib/core/es6/grid/components/VScrollbar.d.ts +18 -0
- package/lib/core/es6/grid/components/VScrollbar.js +139 -0
- package/lib/core/es6/grid/components/VirtualItems.d.ts +12 -0
- package/lib/core/es6/grid/components/VirtualItems.js +51 -0
- package/lib/core/es6/grid/event/EventDispatcher.d.ts +16 -0
- package/lib/core/es6/grid/event/EventDispatcher.js +138 -0
- package/lib/core/es6/grid/event/EventListeners.d.ts +34 -0
- package/lib/core/es6/grid/event/EventListeners.js +163 -0
- package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.d.ts +24 -0
- package/lib/core/es6/grid/plugins/DragAndDropTitlePlugin.js +615 -0
- package/lib/core/es6/grid/plugins/Plugin.d.ts +28 -0
- package/lib/core/es6/grid/plugins/Plugin.js +272 -0
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +127 -0
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +1707 -0
- package/lib/core/es6/grid/util/Conflator.d.ts +32 -0
- package/lib/core/es6/grid/util/Conflator.js +191 -0
- package/lib/core/es6/grid/util/ElementFrameWork.d.ts +18 -0
- package/lib/core/es6/grid/util/ElementFrameWork.js +227 -0
- package/lib/core/es6/grid/util/HttpRequest.d.ts +53 -0
- package/lib/core/es6/grid/util/HttpRequest.js +371 -0
- package/lib/core/es6/grid/util/PercentBar.d.ts +43 -0
- package/lib/core/es6/grid/util/PercentBar.js +390 -0
- package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +41 -0
- package/lib/core/es6/grid/util/PercentBarRenderer.js +316 -0
- package/lib/core/es6/grid/util/RangeBar.d.ts +25 -0
- package/lib/core/es6/grid/util/RangeBar.js +255 -0
- package/lib/core/es6/grid/util/Reverter.d.ts +14 -0
- package/lib/core/es6/grid/util/Reverter.js +79 -0
- package/lib/core/es6/grid/util/SectionSettings.d.ts +79 -0
- package/lib/core/es6/grid/util/SectionSettings.js +674 -0
- package/lib/core/es6/grid/util/SelectionList.d.ts +50 -0
- package/lib/core/es6/grid/util/SelectionList.js +422 -0
- package/lib/core/es6/grid/util/TrackLayout.d.ts +84 -0
- package/lib/core/es6/grid/util/TrackLayout.js +850 -0
- package/lib/core/es6/grid/util/Virtualizer.d.ts +40 -0
- package/lib/core/es6/grid/util/Virtualizer.js +340 -0
- package/lib/core/es6/grid/util/util.d.ts +18 -0
- package/lib/core/es6/grid/util/util.js +450 -0
- package/lib/core/es6/index.d.ts +84 -0
- package/lib/core/es6/index.js +132 -0
- package/lib/core/es6/tr-grid-theme.d.ts +5 -0
- package/lib/core/es6/tr-grid-theme.js +5 -0
- package/lib/filter-dialog/index.d.ts +1 -0
- package/lib/filter-dialog/index.js +1 -0
- package/lib/filter-dialog/lib/checkbox-list.d.ts +27 -0
- package/lib/filter-dialog/lib/checkbox-list.js +336 -0
- package/lib/filter-dialog/lib/filter-dialog.d.ts +53 -0
- package/lib/filter-dialog/lib/filter-dialog.js +860 -0
- package/lib/filter-dialog/lib/locale/translation-de.d.ts +7 -0
- package/lib/filter-dialog/lib/locale/translation-de.js +37 -0
- package/lib/filter-dialog/lib/locale/translation-en.d.ts +7 -0
- package/lib/filter-dialog/lib/locale/translation-en.js +37 -0
- package/lib/filter-dialog/lib/locale/translation-ja.d.ts +7 -0
- package/lib/filter-dialog/lib/locale/translation-ja.js +37 -0
- package/lib/filter-dialog/lib/locale/translation-zh-hant.d.ts +7 -0
- package/lib/filter-dialog/lib/locale/translation-zh-hant.js +37 -0
- package/lib/filter-dialog/lib/locale/translation-zh.d.ts +7 -0
- package/lib/filter-dialog/lib/locale/translation-zh.js +37 -0
- package/lib/filter-dialog/lib/locale/translation.d.ts +11 -0
- package/lib/filter-dialog/lib/locale/translation.js +18 -0
- package/lib/filter-dialog/themes/base-checkbox.less +37 -0
- package/lib/filter-dialog/themes/base.less +102 -0
- package/lib/filter-dialog/themes/elemental/checkbox-list.less +3 -0
- package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/elemental/dark/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/elemental/dark/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/elemental/dark/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/elemental/dark/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/elemental/dark.js +11 -0
- package/lib/filter-dialog/themes/elemental/defaults.less +3 -0
- package/lib/filter-dialog/themes/elemental/filter-dialog.less +1 -0
- package/lib/filter-dialog/themes/elemental/index.less +6 -0
- package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/elemental/light/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/elemental/light/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/elemental/light/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/elemental/light/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/elemental/light.js +11 -0
- package/lib/filter-dialog/themes/halo/checkbox-list.less +3 -0
- package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/halo/dark/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/halo/dark/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/halo/dark/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/halo/dark/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/halo/dark.js +11 -0
- package/lib/filter-dialog/themes/halo/defaults.less +3 -0
- package/lib/filter-dialog/themes/halo/filter-dialog.less +9 -0
- package/lib/filter-dialog/themes/halo/index.less +6 -0
- package/lib/filter-dialog/themes/halo/light/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/halo/light/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/halo/light/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/halo/light/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/halo/light/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/halo/light/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/halo/light.js +11 -0
- package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/solar/charcoal/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/solar/charcoal/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/solar/charcoal/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/solar/charcoal/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/solar/charcoal.js +11 -0
- package/lib/filter-dialog/themes/solar/checkbox-list.less +3 -0
- package/lib/filter-dialog/themes/solar/defaults.less +3 -0
- package/lib/filter-dialog/themes/solar/filter-dialog.less +5 -0
- package/lib/filter-dialog/themes/solar/index.less +6 -0
- package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +4 -0
- package/lib/filter-dialog/themes/solar/pearl/css/native-elements.css +0 -0
- package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +4 -0
- package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +5 -0
- package/lib/filter-dialog/themes/solar/pearl/imports/all-elements.js +2 -0
- package/lib/filter-dialog/themes/solar/pearl/imports/custom-elements.js +2 -0
- package/lib/filter-dialog/themes/solar/pearl/imports/native-elements.js +0 -0
- package/lib/filter-dialog/themes/solar/pearl.js +11 -0
- package/lib/formatters/es6/CoralButtonFormatter.d.ts +22 -0
- package/lib/formatters/es6/CoralButtonFormatter.js +40 -0
- package/lib/formatters/es6/CoralCheckboxFormatter.d.ts +12 -0
- package/lib/formatters/es6/CoralCheckboxFormatter.js +45 -0
- package/lib/formatters/es6/CoralComboBoxFormatter.d.ts +23 -0
- package/lib/formatters/es6/CoralComboBoxFormatter.js +102 -0
- package/lib/formatters/es6/CoralIconFormatter.d.ts +23 -0
- package/lib/formatters/es6/CoralIconFormatter.js +45 -0
- package/lib/formatters/es6/CoralInputFormatter.d.ts +12 -0
- package/lib/formatters/es6/CoralInputFormatter.js +40 -0
- package/lib/formatters/es6/CoralRadioButtonFormatter.d.ts +22 -0
- package/lib/formatters/es6/CoralRadioButtonFormatter.js +80 -0
- package/lib/formatters/es6/CoralSelectFormatter.d.ts +23 -0
- package/lib/formatters/es6/CoralSelectFormatter.js +66 -0
- package/lib/formatters/es6/CoralToggleFormatter.d.ts +12 -0
- package/lib/formatters/es6/CoralToggleFormatter.js +47 -0
- package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
- package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.js +119 -0
- package/lib/formatters/es6/EFButtonFormatter.d.ts +22 -0
- package/lib/formatters/es6/EFButtonFormatter.js +40 -0
- package/lib/formatters/es6/EFCheckboxFormatter.d.ts +12 -0
- package/lib/formatters/es6/EFCheckboxFormatter.js +45 -0
- package/lib/formatters/es6/EFComboBoxFormatter.d.ts +23 -0
- package/lib/formatters/es6/EFComboBoxFormatter.js +68 -0
- package/lib/formatters/es6/EFDateTimePickerFormatter.d.ts +13 -0
- package/lib/formatters/es6/EFDateTimePickerFormatter.js +55 -0
- package/lib/formatters/es6/EFIconFormatter.d.ts +23 -0
- package/lib/formatters/es6/EFIconFormatter.js +45 -0
- package/lib/formatters/es6/EFNumberFieldFormatter.d.ts +12 -0
- package/lib/formatters/es6/EFNumberFieldFormatter.js +40 -0
- package/lib/formatters/es6/EFRadioButtonFormatter.d.ts +22 -0
- package/lib/formatters/es6/EFRadioButtonFormatter.js +80 -0
- package/lib/formatters/es6/EFSelectFormatter.d.ts +23 -0
- package/lib/formatters/es6/EFSelectFormatter.js +66 -0
- package/lib/formatters/es6/EFTextFieldFormatter.d.ts +12 -0
- package/lib/formatters/es6/EFTextFieldFormatter.js +40 -0
- package/lib/formatters/es6/EFToggleFormatter.d.ts +12 -0
- package/lib/formatters/es6/EFToggleFormatter.js +47 -0
- package/lib/formatters/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
- package/lib/formatters/es6/EmeraldDateTimePickerFormatter.js +55 -0
- package/lib/formatters/es6/FormatterBuilder.d.ts +22 -0
- package/lib/formatters/es6/FormatterBuilder.js +334 -0
- package/lib/formatters/es6/NumericInputFormatter.d.ts +13 -0
- package/lib/formatters/es6/NumericInputFormatter.js +64 -0
- package/lib/formatters/es6/PercentBarFormatter.d.ts +25 -0
- package/lib/formatters/es6/PercentBarFormatter.js +62 -0
- package/lib/formatters/es6/SimpleImageFormatter.d.ts +21 -0
- package/lib/formatters/es6/SimpleImageFormatter.js +64 -0
- package/lib/formatters/es6/SimpleInputFormatter.d.ts +12 -0
- package/lib/formatters/es6/SimpleInputFormatter.js +40 -0
- package/lib/formatters/es6/SimpleLinkFormatter.d.ts +21 -0
- package/lib/formatters/es6/SimpleLinkFormatter.js +48 -0
- package/lib/formatters/es6/SimpleTickerFormatter.d.ts +25 -0
- package/lib/formatters/es6/SimpleTickerFormatter.js +65 -0
- package/lib/formatters/es6/SimpleToggleFormatter.d.ts +22 -0
- package/lib/formatters/es6/SimpleToggleFormatter.js +132 -0
- package/lib/formatters/es6/TextFormatter.d.ts +12 -0
- package/lib/formatters/es6/TextFormatter.js +30 -0
- package/lib/formatters/es6/index.d.ts +43 -0
- package/lib/formatters/es6/index.js +67 -0
- package/lib/grid/index.d.ts +1 -0
- package/lib/grid/index.js +2 -0
- package/lib/grid/lib/efx-grid.d.ts +32 -0
- package/lib/grid/lib/efx-grid.js +469 -0
- package/lib/grid/themes/base.less +134 -0
- package/lib/grid/themes/halo/dark/css/native-elements.css +0 -0
- package/lib/grid/themes/halo/dark/efx-grid.js +4 -0
- package/lib/grid/themes/halo/dark/es5/all-elements.js +2 -0
- package/lib/grid/themes/halo/dark/imports/all-elements.js +1 -0
- package/lib/grid/themes/halo/dark/imports/custom-elements.js +1 -0
- package/lib/grid/themes/halo/dark/imports/native-elements.js +0 -0
- package/lib/grid/themes/halo/dark.js +3 -0
- package/lib/grid/themes/halo/efx-grid.less +92 -0
- package/lib/grid/themes/halo/index.less +3 -0
- package/lib/grid/themes/halo/light/css/native-elements.css +0 -0
- package/lib/grid/themes/halo/light/efx-grid.js +4 -0
- package/lib/grid/themes/halo/light/es5/all-elements.js +2 -0
- package/lib/grid/themes/halo/light/imports/all-elements.js +1 -0
- package/lib/grid/themes/halo/light/imports/custom-elements.js +1 -0
- package/lib/grid/themes/halo/light/imports/native-elements.js +0 -0
- package/lib/grid/themes/halo/light.js +3 -0
- package/lib/grid/themes/solar/charcoal/css/native-elements.css +0 -0
- package/lib/grid/themes/solar/charcoal/efx-grid.js +4 -0
- package/lib/grid/themes/solar/charcoal/es5/all-elements.js +2 -0
- package/lib/grid/themes/solar/charcoal/imports/all-elements.js +1 -0
- package/lib/grid/themes/solar/charcoal/imports/custom-elements.js +1 -0
- package/lib/grid/themes/solar/charcoal/imports/native-elements.js +0 -0
- package/lib/grid/themes/solar/charcoal.js +3 -0
- package/lib/grid/themes/solar/efx-grid.less +27 -0
- package/lib/grid/themes/solar/index.less +3 -0
- package/lib/grid/themes/solar/pearl/css/native-elements.css +0 -0
- package/lib/grid/themes/solar/pearl/efx-grid.js +4 -0
- package/lib/grid/themes/solar/pearl/es5/all-elements.js +2 -0
- package/lib/grid/themes/solar/pearl/imports/all-elements.js +1 -0
- package/lib/grid/themes/solar/pearl/imports/custom-elements.js +1 -0
- package/lib/grid/themes/solar/pearl/imports/native-elements.js +0 -0
- package/lib/grid/themes/solar/pearl.js +3 -0
- package/lib/index.d.ts +102 -0
- package/lib/index.js +102 -0
- package/lib/row-segmenting/es6/RowSegmenting.d.ts +83 -0
- package/lib/row-segmenting/es6/RowSegmenting.js +592 -0
- package/lib/row-segmenting/es6/index.d.ts +1 -0
- package/lib/row-segmenting/es6/index.js +1 -0
- package/lib/rt-grid/dist/rt-grid.js +44672 -0
- package/lib/rt-grid/dist/rt-grid.min.js +1 -0
- package/lib/rt-grid/es6/ColumnDefinition.d.ts +141 -0
- package/lib/rt-grid/es6/ColumnDefinition.js +1074 -0
- package/lib/rt-grid/es6/DataConnector.d.ts +37 -0
- package/lib/rt-grid/es6/DataConnector.js +266 -0
- package/lib/rt-grid/es6/FieldDefinition.d.ts +20 -0
- package/lib/rt-grid/es6/FieldDefinition.js +418 -0
- package/lib/rt-grid/es6/Grid.d.ts +261 -0
- package/lib/rt-grid/es6/Grid.js +2893 -0
- package/lib/rt-grid/es6/PredefinedFormula.d.ts +16 -0
- package/lib/rt-grid/es6/PredefinedFormula.js +33 -0
- package/lib/rt-grid/es6/ReferenceCounter.d.ts +38 -0
- package/lib/rt-grid/es6/ReferenceCounter.js +230 -0
- package/lib/rt-grid/es6/RowDefinition.d.ts +120 -0
- package/lib/rt-grid/es6/RowDefinition.js +873 -0
- package/lib/rt-grid/es6/SnapshotFiller.d.ts +21 -0
- package/lib/rt-grid/es6/SnapshotFiller.js +252 -0
- package/lib/rt-grid/es6/StyleLoader.d.ts +17 -0
- package/lib/rt-grid/es6/StyleLoader.js +47 -0
- package/lib/rt-grid/es6/index.d.ts +8 -0
- package/lib/rt-grid/es6/index.js +43 -0
- package/lib/statistics-row/es6/StatisticsRow.d.ts +67 -0
- package/lib/statistics-row/es6/StatisticsRow.js +786 -0
- package/lib/statistics-row/es6/index.d.ts +1 -0
- package/lib/statistics-row/es6/index.js +1 -0
- package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.d.ts +45 -0
- package/lib/tr-grid-auto-tooltip/es6/AutoTooltip.js +431 -0
- package/lib/tr-grid-auto-tooltip/es6/index.d.ts +1 -0
- package/lib/tr-grid-auto-tooltip/es6/index.js +1 -0
- package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +67 -0
- package/lib/tr-grid-cell-selection/es6/CellSelection.js +1777 -0
- package/lib/tr-grid-cell-selection/es6/index.d.ts +1 -0
- package/lib/tr-grid-cell-selection/es6/index.js +1 -0
- package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +69 -0
- package/lib/tr-grid-checkbox/es6/Checkbox.js +1476 -0
- package/lib/tr-grid-checkbox/es6/index.d.ts +1 -0
- package/lib/tr-grid-checkbox/es6/index.js +1 -0
- package/lib/tr-grid-column-fitter/es6/ColumnFitter.d.ts +56 -0
- package/lib/tr-grid-column-fitter/es6/ColumnFitter.js +1000 -0
- package/lib/tr-grid-column-fitter/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-fitter/es6/index.js +1 -0
- package/lib/tr-grid-column-formatting/es6/ColumnFormatting.d.ts +89 -0
- package/lib/tr-grid-column-formatting/es6/ColumnFormatting.js +615 -0
- package/lib/tr-grid-column-formatting/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-formatting/es6/index.js +1 -0
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +60 -0
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +913 -0
- package/lib/tr-grid-column-grouping/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-grouping/es6/index.js +1 -0
- package/lib/tr-grid-column-resizing/es6/ColumnResizing.d.ts +68 -0
- package/lib/tr-grid-column-resizing/es6/ColumnResizing.js +1013 -0
- package/lib/tr-grid-column-resizing/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-resizing/es6/index.js +1 -0
- package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +70 -0
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +928 -0
- package/lib/tr-grid-column-selection/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-selection/es6/index.js +1 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +76 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +1227 -0
- package/lib/tr-grid-column-stack/es6/index.d.ts +1 -0
- package/lib/tr-grid-column-stack/es6/index.js +1 -0
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +70 -0
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +947 -0
- package/lib/tr-grid-conditional-coloring/es6/index.d.ts +1 -0
- package/lib/tr-grid-conditional-coloring/es6/index.js +1 -0
- package/lib/tr-grid-content-wrap/es6/ContentWrap.d.ts +43 -0
- package/lib/tr-grid-content-wrap/es6/ContentWrap.js +478 -0
- package/lib/tr-grid-content-wrap/es6/index.d.ts +1 -0
- package/lib/tr-grid-content-wrap/es6/index.js +1 -0
- package/lib/tr-grid-contextmenu/es6/ContextMenu.d.ts +83 -0
- package/lib/tr-grid-contextmenu/es6/ContextMenu.js +471 -0
- package/lib/tr-grid-contextmenu/es6/MenuEventAPI.d.ts +22 -0
- package/lib/tr-grid-contextmenu/es6/MenuEventAPI.js +133 -0
- package/lib/tr-grid-contextmenu/es6/MenuItem.d.ts +39 -0
- package/lib/tr-grid-contextmenu/es6/MenuItem.js +245 -0
- package/lib/tr-grid-contextmenu/es6/PopupMenu.d.ts +29 -0
- package/lib/tr-grid-contextmenu/es6/PopupMenu.js +292 -0
- package/lib/tr-grid-contextmenu/es6/index.d.ts +1 -0
- package/lib/tr-grid-contextmenu/es6/index.js +1 -0
- package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +57 -0
- package/lib/tr-grid-filter-input/es6/FilterInput.js +928 -0
- package/lib/tr-grid-filter-input/es6/index.d.ts +1 -0
- package/lib/tr-grid-filter-input/es6/index.js +1 -0
- package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +44 -0
- package/lib/tr-grid-heat-map/es6/HeatMap.js +394 -0
- package/lib/tr-grid-heat-map/es6/index.d.ts +1 -0
- package/lib/tr-grid-heat-map/es6/index.js +1 -0
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +129 -0
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +1977 -0
- package/lib/tr-grid-in-cell-editing/es6/index.d.ts +1 -0
- package/lib/tr-grid-in-cell-editing/es6/index.js +1 -0
- package/lib/tr-grid-pagination/es6/Pagination.d.ts +57 -0
- package/lib/tr-grid-pagination/es6/Pagination.js +427 -0
- package/lib/tr-grid-pagination/es6/index.d.ts +1 -0
- package/lib/tr-grid-pagination/es6/index.js +1 -0
- package/lib/tr-grid-percent-bar/es6/PercentBar.d.ts +60 -0
- package/lib/tr-grid-percent-bar/es6/PercentBar.js +801 -0
- package/lib/tr-grid-percent-bar/es6/index.d.ts +1 -0
- package/lib/tr-grid-percent-bar/es6/index.js +1 -0
- package/lib/tr-grid-printer/es6/CellWriter.d.ts +49 -0
- package/lib/tr-grid-printer/es6/CellWriter.js +226 -0
- package/lib/tr-grid-printer/es6/ColumnWriter.d.ts +12 -0
- package/lib/tr-grid-printer/es6/ColumnWriter.js +21 -0
- package/lib/tr-grid-printer/es6/GridPrinter.d.ts +32 -0
- package/lib/tr-grid-printer/es6/GridPrinter.js +761 -0
- package/lib/tr-grid-printer/es6/PrintTrait.d.ts +38 -0
- package/lib/tr-grid-printer/es6/PrintTrait.js +481 -0
- package/lib/tr-grid-printer/es6/SectionWriter.d.ts +54 -0
- package/lib/tr-grid-printer/es6/SectionWriter.js +205 -0
- package/lib/tr-grid-printer/es6/index.d.ts +1 -0
- package/lib/tr-grid-printer/es6/index.js +1 -0
- package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +39 -0
- package/lib/tr-grid-range-bar/es6/RangeBar.js +353 -0
- package/lib/tr-grid-range-bar/es6/index.d.ts +1 -0
- package/lib/tr-grid-range-bar/es6/index.js +1 -0
- package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +53 -0
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +794 -0
- package/lib/tr-grid-row-dragging/es6/index.d.ts +1 -0
- package/lib/tr-grid-row-dragging/es6/index.js +1 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +118 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +1884 -0
- package/lib/tr-grid-row-filtering/es6/index.d.ts +1 -0
- package/lib/tr-grid-row-filtering/es6/index.js +1 -0
- package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +109 -0
- package/lib/tr-grid-row-grouping/es6/RowGrouping.js +1541 -0
- package/lib/tr-grid-row-grouping/es6/index.d.ts +1 -0
- package/lib/tr-grid-row-grouping/es6/index.js +1 -0
- package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +74 -0
- package/lib/tr-grid-row-selection/es6/RowSelection.js +1202 -0
- package/lib/tr-grid-row-selection/es6/index.d.ts +1 -0
- package/lib/tr-grid-row-selection/es6/index.js +1 -0
- package/lib/tr-grid-rowcoloring/es6/RowColoring.d.ts +60 -0
- package/lib/tr-grid-rowcoloring/es6/RowColoring.js +611 -0
- package/lib/tr-grid-rowcoloring/es6/index.d.ts +1 -0
- package/lib/tr-grid-rowcoloring/es6/index.js +1 -0
- package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +77 -0
- package/lib/tr-grid-textformatting/es6/TextFormatting.js +574 -0
- package/lib/tr-grid-textformatting/es6/index.d.ts +1 -0
- package/lib/tr-grid-textformatting/es6/index.js +1 -0
- package/lib/tr-grid-titlewrap/es6/TitleWrap.d.ts +29 -0
- package/lib/tr-grid-titlewrap/es6/TitleWrap.js +431 -0
- package/lib/tr-grid-titlewrap/es6/index.d.ts +1 -0
- package/lib/tr-grid-titlewrap/es6/index.js +1 -0
- package/lib/tr-grid-util/es6/CellPainter.d.ts +136 -0
- package/lib/tr-grid-util/es6/CellPainter.js +1128 -0
- package/lib/tr-grid-util/es6/Conflator.d.ts +34 -0
- package/lib/tr-grid-util/es6/Conflator.js +193 -0
- package/lib/tr-grid-util/es6/CoralItems.d.ts +10 -0
- package/lib/tr-grid-util/es6/CoralItems.js +42 -0
- package/lib/tr-grid-util/es6/DateTime.d.ts +57 -0
- package/lib/tr-grid-util/es6/DateTime.js +508 -0
- package/lib/tr-grid-util/es6/Deferred.d.ts +14 -0
- package/lib/tr-grid-util/es6/Deferred.js +98 -0
- package/lib/tr-grid-util/es6/Delay.d.ts +20 -0
- package/lib/tr-grid-util/es6/Delay.js +85 -0
- package/lib/tr-grid-util/es6/Dom.d.ts +32 -0
- package/lib/tr-grid-util/es6/Dom.js +346 -0
- package/lib/tr-grid-util/es6/ElementObserver.d.ts +10 -0
- package/lib/tr-grid-util/es6/ElementObserver.js +101 -0
- package/lib/tr-grid-util/es6/ElementWrapper.d.ts +23 -0
- package/lib/tr-grid-util/es6/ElementWrapper.js +83 -0
- package/lib/tr-grid-util/es6/ElfDate.d.ts +26 -0
- package/lib/tr-grid-util/es6/ElfDate.js +163 -0
- package/lib/tr-grid-util/es6/ElfUtil.d.ts +33 -0
- package/lib/tr-grid-util/es6/ElfUtil.js +458 -0
- package/lib/tr-grid-util/es6/EventDispatcher.d.ts +26 -0
- package/lib/tr-grid-util/es6/EventDispatcher.js +161 -0
- package/lib/tr-grid-util/es6/ExpanderIcon.d.ts +27 -0
- package/lib/tr-grid-util/es6/ExpanderIcon.js +169 -0
- package/lib/tr-grid-util/es6/Ext.d.ts +10 -0
- package/lib/tr-grid-util/es6/Ext.js +52 -0
- package/lib/tr-grid-util/es6/FieldFormatter.d.ts +55 -0
- package/lib/tr-grid-util/es6/FieldFormatter.js +432 -0
- package/lib/tr-grid-util/es6/FilterBuilder.d.ts +48 -0
- package/lib/tr-grid-util/es6/FilterBuilder.js +521 -0
- package/lib/tr-grid-util/es6/FilterOperators.d.ts +41 -0
- package/lib/tr-grid-util/es6/FilterOperators.js +181 -0
- package/lib/tr-grid-util/es6/GridPlugin.d.ts +72 -0
- package/lib/tr-grid-util/es6/GridPlugin.js +747 -0
- package/lib/tr-grid-util/es6/Icon.d.ts +14 -0
- package/lib/tr-grid-util/es6/Icon.js +61 -0
- package/lib/tr-grid-util/es6/MouseDownTrait.d.ts +42 -0
- package/lib/tr-grid-util/es6/MouseDownTrait.js +237 -0
- package/lib/tr-grid-util/es6/MultiTableManager.d.ts +32 -0
- package/lib/tr-grid-util/es6/MultiTableManager.js +506 -0
- package/lib/tr-grid-util/es6/NumberFormatter.d.ts +83 -0
- package/lib/tr-grid-util/es6/NumberFormatter.js +471 -0
- package/lib/tr-grid-util/es6/PercentBar.d.ts +71 -0
- package/lib/tr-grid-util/es6/PercentBar.js +600 -0
- package/lib/tr-grid-util/es6/Perf.d.ts +32 -0
- package/lib/tr-grid-util/es6/Perf.js +162 -0
- package/lib/tr-grid-util/es6/Popup.d.ts +84 -0
- package/lib/tr-grid-util/es6/Popup.js +818 -0
- package/lib/tr-grid-util/es6/RangeBar.d.ts +33 -0
- package/lib/tr-grid-util/es6/RangeBar.js +259 -0
- package/lib/tr-grid-util/es6/RequestQueue.d.ts +30 -0
- package/lib/tr-grid-util/es6/RequestQueue.js +239 -0
- package/lib/tr-grid-util/es6/RowPainter.d.ts +23 -0
- package/lib/tr-grid-util/es6/RowPainter.js +188 -0
- package/lib/tr-grid-util/es6/SubTable.d.ts +74 -0
- package/lib/tr-grid-util/es6/SubTable.js +558 -0
- package/lib/tr-grid-util/es6/Table.d.ts +125 -0
- package/lib/tr-grid-util/es6/Table.js +790 -0
- package/lib/tr-grid-util/es6/TextHighlighter.d.ts +18 -0
- package/lib/tr-grid-util/es6/TextHighlighter.js +273 -0
- package/lib/tr-grid-util/es6/TickCodes.d.ts +8 -0
- package/lib/tr-grid-util/es6/TickCodes.js +33 -0
- package/lib/tr-grid-util/es6/Timer.d.ts +16 -0
- package/lib/tr-grid-util/es6/Timer.js +49 -0
- package/lib/tr-grid-util/es6/TouchProxy.d.ts +46 -0
- package/lib/tr-grid-util/es6/TouchProxy.js +212 -0
- package/lib/tr-grid-util/es6/Util.d.ts +65 -0
- package/lib/tr-grid-util/es6/Util.js +528 -0
- package/lib/tr-grid-util/es6/formula/ADCService.d.ts +11 -0
- package/lib/tr-grid-util/es6/formula/ADCService.js +72 -0
- package/lib/tr-grid-util/es6/formula/ADCSubscription.d.ts +17 -0
- package/lib/tr-grid-util/es6/formula/ADCSubscription.js +317 -0
- package/lib/tr-grid-util/es6/formula/AdFinService.d.ts +12 -0
- package/lib/tr-grid-util/es6/formula/AdFinService.js +61 -0
- package/lib/tr-grid-util/es6/formula/AdFinSubscription.d.ts +19 -0
- package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +310 -0
- package/lib/tr-grid-util/es6/formula/Engine.d.ts +56 -0
- package/lib/tr-grid-util/es6/formula/Engine.js +592 -0
- package/lib/tr-grid-util/es6/formula/Formula.d.ts +68 -0
- package/lib/tr-grid-util/es6/formula/Formula.js +882 -0
- package/lib/tr-grid-util/es6/formula/IntervalSubscription.d.ts +16 -0
- package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +165 -0
- package/lib/tr-grid-util/es6/formula/Realtime.d.ts +18 -0
- package/lib/tr-grid-util/es6/formula/Realtime.js +279 -0
- package/lib/tr-grid-util/es6/formula/RealtimeService.d.ts +18 -0
- package/lib/tr-grid-util/es6/formula/RealtimeService.js +203 -0
- package/lib/tr-grid-util/es6/formula/TSIService.d.ts +11 -0
- package/lib/tr-grid-util/es6/formula/TSIService.js +51 -0
- package/lib/tr-grid-util/es6/formula/TSISubscription.d.ts +18 -0
- package/lib/tr-grid-util/es6/formula/TSISubscription.js +1015 -0
- package/lib/tr-grid-util/es6/formula/VariableToken.d.ts +30 -0
- package/lib/tr-grid-util/es6/formula/VariableToken.js +314 -0
- package/lib/tr-grid-util/es6/formula/functions/AdFin.d.ts +9 -0
- package/lib/tr-grid-util/es6/formula/functions/AdFin.js +1778 -0
- package/lib/tr-grid-util/es6/formula/functions/Excel.d.ts +8 -0
- package/lib/tr-grid-util/es6/formula/functions/Excel.js +21 -0
- package/lib/tr-grid-util/es6/formula/functions/Info.d.ts +8 -0
- package/lib/tr-grid-util/es6/formula/functions/Info.js +192 -0
- package/lib/tr-grid-util/es6/formula/functions/Internal.d.ts +8 -0
- package/lib/tr-grid-util/es6/formula/functions/Internal.js +90 -0
- package/lib/tr-grid-util/es6/formula/functions/Logic.d.ts +12 -0
- package/lib/tr-grid-util/es6/formula/functions/Logic.js +176 -0
- package/lib/tr-grid-util/es6/formula/functions/Math.d.ts +18 -0
- package/lib/tr-grid-util/es6/formula/functions/Math.js +1624 -0
- package/lib/tr-grid-util/es6/formula/functions/Statistics.d.ts +18 -0
- package/lib/tr-grid-util/es6/formula/functions/Statistics.js +234 -0
- package/lib/tr-grid-util/es6/formula/functions/Text.d.ts +10 -0
- package/lib/tr-grid-util/es6/formula/functions/Text.js +676 -0
- package/lib/tr-grid-util/es6/index.d.ts +63 -0
- package/lib/tr-grid-util/es6/index.js +99 -0
- package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +28 -0
- package/lib/tr-grid-util/es6/jet/CollectionDict.js +141 -0
- package/lib/tr-grid-util/es6/jet/DataGenerator.d.ts +114 -0
- package/lib/tr-grid-util/es6/jet/DataGenerator.js +827 -0
- package/lib/tr-grid-util/es6/jet/DataSet.d.ts +8 -0
- package/lib/tr-grid-util/es6/jet/DataSet.js +392 -0
- package/lib/tr-grid-util/es6/jet/MockArchive.d.ts +21 -0
- package/lib/tr-grid-util/es6/jet/MockArchive.js +56 -0
- package/lib/tr-grid-util/es6/jet/MockJET.d.ts +25 -0
- package/lib/tr-grid-util/es6/jet/MockJET.js +63 -0
- package/lib/tr-grid-util/es6/jet/MockQuotes.d.ts +37 -0
- package/lib/tr-grid-util/es6/jet/MockQuotes.js +199 -0
- package/lib/tr-grid-util/es6/jet/MockQuotes2.d.ts +72 -0
- package/lib/tr-grid-util/es6/jet/MockQuotes2.js +564 -0
- package/lib/tr-grid-util/es6/jet/MockRTK.d.ts +8 -0
- package/lib/tr-grid-util/es6/jet/MockRTK.js +43 -0
- package/lib/tr-grid-util/es6/jet/index.d.ts +9 -0
- package/lib/tr-grid-util/es6/jet/index.js +18 -0
- package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +11 -0
- package/lib/tr-grid-util/es6/jet/mockDataAPI.js +131 -0
- package/lib/tr-grid-util/es6/locale/translation-de.d.ts +7 -0
- package/lib/tr-grid-util/es6/locale/translation-de.js +51 -0
- package/lib/tr-grid-util/es6/locale/translation-en.d.ts +7 -0
- package/lib/tr-grid-util/es6/locale/translation-en.js +51 -0
- package/lib/tr-grid-util/es6/locale/translation-ja.d.ts +7 -0
- package/lib/tr-grid-util/es6/locale/translation-ja.js +51 -0
- package/lib/tr-grid-util/es6/locale/translation-zh-hant.d.ts +7 -0
- package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +51 -0
- package/lib/tr-grid-util/es6/locale/translation-zh.d.ts +7 -0
- package/lib/tr-grid-util/es6/locale/translation-zh.js +51 -0
- package/lib/tr-grid-util/es6/locale/translation.d.ts +11 -0
- package/lib/tr-grid-util/es6/locale/translation.js +18 -0
- package/lib/types/es6/AutoTooltip.d.ts +45 -0
- package/lib/types/es6/CellSelection.d.ts +67 -0
- package/lib/types/es6/Checkbox.d.ts +69 -0
- package/lib/types/es6/ColumnFitter.d.ts +56 -0
- package/lib/types/es6/ColumnFormatting.d.ts +90 -0
- package/lib/types/es6/ColumnGrouping.d.ts +60 -0
- package/lib/types/es6/ColumnResizing.d.ts +68 -0
- package/lib/types/es6/ColumnSelection.d.ts +70 -0
- package/lib/types/es6/ColumnStack.d.ts +76 -0
- package/lib/types/es6/CompositeGrid/CollapsibleHeaderPlugin.d.ts +11 -0
- package/lib/types/es6/CompositeGrid/ColumnSelectionPlugin.d.ts +38 -0
- package/lib/types/es6/CompositeGrid/ColumnWidthAdjustingPlugin.d.ts +45 -0
- package/lib/types/es6/CompositeGrid/CompositeGrid.d.ts +287 -0
- package/lib/types/es6/CompositeGrid/DragAndDropTitlePlugin.d.ts +22 -0
- package/lib/types/es6/CompositeGrid/DraggableContentPlugin.d.ts +44 -0
- package/lib/types/es6/CompositeGrid/ResizableTitlePlugin.d.ts +30 -0
- package/lib/types/es6/CompositeGrid/RowSelectionPlugin.d.ts +42 -0
- package/lib/types/es6/CompositeGrid/TextWidthCalculator.d.ts +24 -0
- package/lib/types/es6/CompositeGrid/TreeIndentingPlugin.d.ts +46 -0
- package/lib/types/es6/CompositeGrid/index.d.ts +9 -0
- package/lib/types/es6/ConditionalColoring.d.ts +70 -0
- package/lib/types/es6/ContentWrap.d.ts +43 -0
- package/lib/types/es6/ContextMenu.d.ts +83 -0
- package/lib/types/es6/CoralButtonFormatter.d.ts +22 -0
- package/lib/types/es6/CoralCheckboxFormatter.d.ts +12 -0
- package/lib/types/es6/CoralComboBoxFormatter.d.ts +23 -0
- package/lib/types/es6/CoralIconFormatter.d.ts +23 -0
- package/lib/types/es6/CoralInputFormatter.d.ts +12 -0
- package/lib/types/es6/CoralRadioButtonFormatter.d.ts +22 -0
- package/lib/types/es6/CoralSelectFormatter.d.ts +23 -0
- package/lib/types/es6/CoralToggleFormatter.d.ts +12 -0
- package/lib/types/es6/Core/data/ColumnStats.d.ts +42 -0
- package/lib/types/es6/Core/data/DataCache.d.ts +81 -0
- package/lib/types/es6/Core/data/DataTable.d.ts +125 -0
- package/lib/types/es6/Core/data/DataView.d.ts +280 -0
- package/lib/types/es6/Core/data/Segment.d.ts +38 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +58 -0
- package/lib/types/es6/Core/grid/Core.d.ts +387 -0
- package/lib/types/es6/Core/grid/ILayoutGrid.d.ts +204 -0
- package/lib/types/es6/Core/grid/LayoutGrid.d.ts +23 -0
- package/lib/types/es6/Core/grid/VirtualizedLayoutGrid.d.ts +18 -0
- package/lib/types/es6/Core/grid/components/Cell.d.ts +50 -0
- package/lib/types/es6/Core/grid/components/CellFloatingPanel.d.ts +19 -0
- package/lib/types/es6/Core/grid/components/CellSpan.d.ts +18 -0
- package/lib/types/es6/Core/grid/components/CellSpans.d.ts +38 -0
- package/lib/types/es6/Core/grid/components/Column.d.ts +22 -0
- package/lib/types/es6/Core/grid/components/ElementWrapper.d.ts +125 -0
- package/lib/types/es6/Core/grid/components/HScrollbar.d.ts +24 -0
- package/lib/types/es6/Core/grid/components/Scrollbar.d.ts +61 -0
- package/lib/types/es6/Core/grid/components/StretchedCells.d.ts +17 -0
- package/lib/types/es6/Core/grid/components/VScrollbar.d.ts +18 -0
- package/lib/types/es6/Core/grid/components/VirtualItems.d.ts +12 -0
- package/lib/types/es6/Core/grid/event/EventDispatcher.d.ts +16 -0
- package/lib/types/es6/Core/grid/event/EventListeners.d.ts +34 -0
- package/lib/types/es6/Core/grid/plugins/DragAndDropTitlePlugin.d.ts +24 -0
- package/lib/types/es6/Core/grid/plugins/Plugin.d.ts +28 -0
- package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +127 -0
- package/lib/types/es6/Core/grid/util/Conflator.d.ts +32 -0
- package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +18 -0
- package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +53 -0
- package/lib/types/es6/Core/grid/util/PercentBar.d.ts +43 -0
- package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +41 -0
- package/lib/types/es6/Core/grid/util/RangeBar.d.ts +25 -0
- package/lib/types/es6/Core/grid/util/Reverter.d.ts +14 -0
- package/lib/types/es6/Core/grid/util/SectionSettings.d.ts +79 -0
- package/lib/types/es6/Core/grid/util/SelectionList.d.ts +50 -0
- package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +84 -0
- package/lib/types/es6/Core/grid/util/Virtualizer.d.ts +40 -0
- package/lib/types/es6/Core/grid/util/util.d.ts +18 -0
- package/lib/types/es6/Core/index.d.ts +84 -0
- package/lib/types/es6/Core/tr-grid-theme.d.ts +5 -0
- package/lib/types/es6/DuplexEmeraldDateTimePickerFormatter.d.ts +14 -0
- package/lib/types/es6/EFButtonFormatter.d.ts +22 -0
- package/lib/types/es6/EFCheckboxFormatter.d.ts +12 -0
- package/lib/types/es6/EFComboBoxFormatter.d.ts +23 -0
- package/lib/types/es6/EFDateTimePickerFormatter.d.ts +13 -0
- package/lib/types/es6/EFIconFormatter.d.ts +23 -0
- package/lib/types/es6/EFNumberFieldFormatter.d.ts +12 -0
- package/lib/types/es6/EFRadioButtonFormatter.d.ts +22 -0
- package/lib/types/es6/EFSelectFormatter.d.ts +23 -0
- package/lib/types/es6/EFTextFieldFormatter.d.ts +12 -0
- package/lib/types/es6/EFToggleFormatter.d.ts +12 -0
- package/lib/types/es6/EmeraldDateTimePickerFormatter.d.ts +13 -0
- package/lib/types/es6/ExtensionColumnOptions.d.ts +41 -0
- package/lib/types/es6/ExtensionOptions.d.ts +52 -0
- package/lib/types/es6/Extensions.d.ts +61 -0
- package/lib/types/es6/FilterInput.d.ts +57 -0
- package/lib/types/es6/FormatterBuilder.d.ts +22 -0
- package/lib/types/es6/GridFormatter.d.ts +63 -0
- package/lib/types/es6/HeatMap.d.ts +44 -0
- package/lib/types/es6/InCellEditing.d.ts +129 -0
- package/lib/types/es6/MenuEventAPI.d.ts +22 -0
- package/lib/types/es6/MenuItem.d.ts +39 -0
- package/lib/types/es6/NumericInputFormatter.d.ts +13 -0
- package/lib/types/es6/Pagination.d.ts +57 -0
- package/lib/types/es6/PercentBar.d.ts +60 -0
- package/lib/types/es6/PercentBarFormatter.d.ts +25 -0
- package/lib/types/es6/PopupMenu.d.ts +29 -0
- package/lib/types/es6/RangeBar.d.ts +39 -0
- package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +143 -0
- package/lib/types/es6/RealtimeGrid/DataConnector.d.ts +37 -0
- package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +20 -0
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +263 -0
- package/lib/types/es6/RealtimeGrid/PredefinedFormula.d.ts +16 -0
- package/lib/types/es6/RealtimeGrid/ReferenceCounter.d.ts +38 -0
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +120 -0
- package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +21 -0
- package/lib/types/es6/RealtimeGrid/StyleLoader.d.ts +17 -0
- package/lib/types/es6/RealtimeGrid/index.d.ts +8 -0
- package/lib/types/es6/RowColoring.d.ts +60 -0
- package/lib/types/es6/RowDragging.d.ts +53 -0
- package/lib/types/es6/RowFiltering.d.ts +118 -0
- package/lib/types/es6/RowGrouping.d.ts +109 -0
- package/lib/types/es6/RowSegmenting.d.ts +83 -0
- package/lib/types/es6/RowSelection.d.ts +74 -0
- package/lib/types/es6/SimpleImageFormatter.d.ts +21 -0
- package/lib/types/es6/SimpleInputFormatter.d.ts +12 -0
- package/lib/types/es6/SimpleLinkFormatter.d.ts +21 -0
- package/lib/types/es6/SimpleTickerFormatter.d.ts +25 -0
- package/lib/types/es6/SimpleToggleFormatter.d.ts +22 -0
- package/lib/types/es6/StatisticsRow.d.ts +67 -0
- package/lib/types/es6/TextFormatter.d.ts +12 -0
- package/lib/types/es6/TextFormatting.d.ts +77 -0
- package/lib/types/es6/TitleWrap.d.ts +29 -0
- package/lib/types/es6/Zoom.d.ts +51 -0
- package/lib/types/es6/index.d.ts +76 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/versions.json +36 -0
- package/lib/window-exporter.js +13 -0
- package/lib/zoom/es6/Zoom.d.ts +51 -0
- package/lib/zoom/es6/Zoom.js +419 -0
- package/lib/zoom/es6/index.d.ts +1 -0
- package/lib/zoom/es6/index.js +1 -0
- 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 };
|