jsl-ui 9.28.2 → 9.28.3
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/lib/components/IntervalComponent.d.ts +17 -17
- package/lib/components/IntervalComponent.js +65 -68
- package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +22 -22
- package/lib/components/auto-suggest/AutoSuggestComponent.js +47 -49
- package/lib/components/button/ButtonComponent.d.ts +18 -18
- package/lib/components/button/ButtonComponent.js +29 -46
- package/lib/components/checkbox/CheckBoxComponent.d.ts +28 -28
- package/lib/components/checkbox/CheckBoxComponent.js +81 -98
- package/lib/components/date/DateComponent.d.ts +32 -32
- package/lib/components/date/DateComponent.js +89 -106
- package/lib/components/date-range/DateRangeComponent.d.ts +35 -35
- package/lib/components/date-range/DateRangeComponent.js +123 -136
- package/lib/components/date-time/DateTimeComponent.d.ts +15 -15
- package/lib/components/date-time/DateTimeComponent.js +39 -53
- package/lib/components/dialog/DialogComponent.d.ts +67 -67
- package/lib/components/dialog/DialogComponent.js +198 -251
- package/lib/components/drop-down/DropDownComponent.d.ts +27 -27
- package/lib/components/drop-down/DropDownComponent.js +60 -74
- package/lib/components/expander/ExpanderComponent.d.ts +27 -27
- package/lib/components/expander/ExpanderComponent.js +89 -90
- package/lib/components/form-field/FormComponent.d.ts +12 -12
- package/lib/components/form-field/FormComponent.js +23 -26
- package/lib/components/form-field/FormFieldComponent.d.ts +39 -39
- package/lib/components/form-field/FormFieldComponent.js +138 -140
- package/lib/components/grid/GridComponent.d.ts +26 -26
- package/lib/components/grid/GridComponent.js +110 -116
- package/lib/components/input/InputComponent.d.ts +33 -33
- package/lib/components/input/InputComponent.js +126 -147
- package/lib/components/loading/LoadingComponent.d.ts +8 -8
- package/lib/components/loading/LoadingComponent.js +20 -22
- package/lib/components/navigation/NavigationComponent.d.ts +34 -34
- package/lib/components/navigation/NavigationComponent.js +45 -70
- package/lib/components/notification/Notification.d.ts +19 -19
- package/lib/components/notification/Notification.js +65 -69
- package/lib/components/number/NumberComponent.d.ts +26 -26
- package/lib/components/number/NumberComponent.js +80 -98
- package/lib/components/overlay/OverlayComponent.d.ts +27 -27
- package/lib/components/overlay/OverlayComponent.js +137 -149
- package/lib/components/progress/ProgressComponent.d.ts +18 -18
- package/lib/components/progress/ProgressComponent.js +40 -42
- package/lib/components/ribbon-menu/RibbonMenuComponent.d.ts +12 -12
- package/lib/components/ribbon-menu/RibbonMenuComponent.js +23 -34
- package/lib/components/select/SelectComponent.d.ts +79 -79
- package/lib/components/select/SelectComponent.js +356 -369
- package/lib/components/select/SelectDDAreaComponent.d.ts +32 -32
- package/lib/components/select/SelectDDAreaComponent.js +303 -317
- package/lib/components/slider/nouislider.d.ts +44 -44
- package/lib/components/slider/nouislider.js +2158 -2158
- package/lib/components/stack-panel/SplitterComponent.d.ts +21 -21
- package/lib/components/stack-panel/SplitterComponent.js +124 -126
- package/lib/components/stack-panel/StackPanelComponent.d.ts +20 -20
- package/lib/components/stack-panel/StackPanelComponent.js +50 -64
- package/lib/components/tabs/TabsComponent.d.ts +40 -40
- package/lib/components/tabs/TabsComponent.js +200 -204
- package/lib/components/time/TimeComponent.d.ts +29 -29
- package/lib/components/time/TimeComponent.js +104 -113
- package/lib/components/tree-view/TreeViewComponent.d.ts +23 -23
- package/lib/components/tree-view/TreeViewComponent.js +43 -45
- package/lib/components/virtual-render/VirtualRenderComponent.d.ts +30 -30
- package/lib/components/virtual-render/VirtualRenderComponent.js +92 -104
- package/lib/core/culture.d.ts +5 -5
- package/lib/core/culture.js +385 -385
- package/lib/core/date.d.ts +14 -14
- package/lib/core/date.js +346 -350
- package/lib/core/helper.d.ts +13 -13
- package/lib/core/helper.js +100 -104
- package/lib/core/jq.d.ts +37 -37
- package/lib/core/jq.js +362 -371
- package/lib/core/lang.d.ts +24 -24
- package/lib/core/lang.js +24 -28
- package/lib/core/numeric.d.ts +7 -7
- package/lib/core/numeric.js +139 -143
- package/lib/core/polyfills.js +22 -22
- package/lib/core.d.ts +6 -6
- package/lib/core.js +6 -6
- package/lib/grid/filterDialogs/dateRangeFilter.d.ts +7 -7
- package/lib/grid/filterDialogs/dateRangeFilter.js +106 -156
- package/lib/grid/filterDialogs/excelFilter.d.ts +9 -9
- package/lib/grid/filterDialogs/excelFilter.js +250 -316
- package/lib/grid/plugins/ext.overlay.d.ts +2 -2
- package/lib/grid/plugins/ext.overlay.js +295 -295
- package/lib/grid/plugins/slick.cellrangedecorator.d.ts +12 -12
- package/lib/grid/plugins/slick.cellrangedecorator.js +68 -68
- package/lib/grid/plugins/slick.cellrangeselector.d.ts +1 -1
- package/lib/grid/plugins/slick.cellrangeselector.js +144 -144
- package/lib/grid/plugins/slick.cellselectionmodel.d.ts +1 -1
- package/lib/grid/plugins/slick.cellselectionmodel.js +194 -194
- package/lib/grid/plugins/slick.headerbuttons.d.ts +55 -55
- package/lib/grid/plugins/slick.headerbuttons.js +156 -156
- package/lib/grid/plugins/slick.headermenu.d.ts +74 -74
- package/lib/grid/plugins/slick.headermenu.js +260 -260
- package/lib/grid/plugins/slick.rowmovemanager.d.ts +18 -18
- package/lib/grid/plugins/slick.rowmovemanager.js +249 -249
- package/lib/grid/plugins/slick.rowselectionmodel.d.ts +1 -1
- package/lib/grid/plugins/slick.rowselectionmodel.js +167 -167
- package/lib/grid/slick.core.d.ts +91 -91
- package/lib/grid/slick.core.js +574 -574
- package/lib/grid/slick.creator.d.ts +81 -81
- package/lib/grid/slick.creator.js +726 -726
- package/lib/grid/slick.dataview.d.ts +71 -71
- package/lib/grid/slick.dataview.js +1069 -1080
- package/lib/grid/slick.editors.core.d.ts +4 -4
- package/lib/grid/slick.editors.core.js +235 -235
- package/lib/grid/slick.editors.date.d.ts +2 -2
- package/lib/grid/slick.editors.date.js +125 -125
- package/lib/grid/slick.editors.lookup.d.ts +14 -14
- package/lib/grid/slick.editors.lookup.js +352 -353
- package/lib/grid/slick.editors.nav.d.ts +6 -6
- package/lib/grid/slick.editors.nav.js +22 -22
- package/lib/grid/slick.formatters.d.ts +17 -17
- package/lib/grid/slick.formatters.js +144 -144
- package/lib/grid/slick.grid.d.ts +285 -285
- package/lib/grid/slick.grid.js +5409 -5412
- package/lib/grid/slick.groupitemmetadataprovider.d.ts +39 -39
- package/lib/grid/slick.groupitemmetadataprovider.js +165 -165
- package/lib/grid/slick.tree.d.ts +33 -33
- package/lib/grid/slick.tree.js +208 -220
- package/lib/grid.css +1 -705
- package/lib/grid.d.ts +13 -13
- package/lib/grid.js +13 -13
- package/lib/index.css +8 -2195
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +56 -55
- package/lib/index.js +61 -61
- package/lib/index.js.map +1 -1
- package/lib/interaction/dataconverter.d.ts +4 -4
- package/lib/interaction/dataconverter.js +0 -1
- package/lib/interaction/eventhandler.d.ts +13 -13
- package/lib/interaction/eventhandler.js +39 -42
- package/lib/interaction/moveable.d.ts +39 -39
- package/lib/interaction/moveable.js +160 -174
- package/lib/interaction/resizable.d.ts +37 -37
- package/lib/interaction/resizable.js +109 -123
- package/lib/ui/auto.suggest.d.ts +18 -18
- package/lib/ui/auto.suggest.js +244 -259
- package/lib/ui/date.picker/date-picker-options.d.ts +11 -11
- package/lib/ui/date.picker/date-picker-options.js +76 -76
- package/lib/ui/date.picker/lib/date-manip.d.ts +74 -74
- package/lib/ui/date.picker/lib/date-manip.js +120 -120
- package/lib/ui/date.picker/lib/dom.d.ts +23 -23
- package/lib/ui/date.picker/lib/dom.js +28 -28
- package/lib/ui/date.picker/lib/emitter.d.ts +13 -13
- package/lib/ui/date.picker/lib/emitter.js +49 -49
- package/lib/ui/date.picker/lib/fns.d.ts +23 -23
- package/lib/ui/date.picker/lib/fns.js +39 -43
- package/lib/ui/date.picker/mode/base-mode.d.ts +26 -26
- package/lib/ui/date.picker/mode/base-mode.js +248 -248
- package/lib/ui/date.picker/mode/dropdown-mode.d.ts +28 -28
- package/lib/ui/date.picker/mode/dropdown-mode.js +50 -50
- package/lib/ui/date.picker/mode/index.d.ts +28 -28
- package/lib/ui/date.picker/mode/index.js +18 -18
- package/lib/ui/date.picker/mode/modal-mode.d.ts +25 -25
- package/lib/ui/date.picker/mode/modal-mode.js +17 -17
- package/lib/ui/date.picker/mode/permanent-mode.d.ts +29 -29
- package/lib/ui/date.picker/mode/permanent-mode.js +19 -19
- package/lib/ui/date.picker/views/day-picker.d.ts +40 -40
- package/lib/ui/date.picker/views/day-picker.js +155 -155
- package/lib/ui/date.picker/views/month-picker.d.ts +26 -26
- package/lib/ui/date.picker/views/month-picker.js +65 -65
- package/lib/ui/date.picker/views/year-picker.d.ts +20 -20
- package/lib/ui/date.picker/views/year-picker.js +66 -66
- package/lib/ui/date.picker.d.ts +66 -66
- package/lib/ui/date.picker.js +32 -32
- package/lib/ui/dialog.d.ts +22 -22
- package/lib/ui/dialog.js +98 -113
- package/lib/ui/drop.down.d.ts +52 -52
- package/lib/ui/drop.down.js +2112 -2112
- package/lib/ui/number.input.d.ts +13 -13
- package/lib/ui/number.input.js +56 -67
- package/package.json +1 -1
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/***
|
|
2
|
-
* Provides item metadata for group (Slick.Group) and totals (Slick.Totals) rows produced by the DataView.
|
|
3
|
-
* This metadata overrides the default behavior and formatting of those rows so that they appear and function
|
|
4
|
-
* correctly when processed by the grid.
|
|
5
|
-
*
|
|
6
|
-
* This class also acts as a grid plugin providing event handlers to expand & collapse groups.
|
|
7
|
-
* If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
|
|
8
|
-
*
|
|
9
|
-
* @class GroupItemMetadataProvider
|
|
10
|
-
* @module Data
|
|
11
|
-
* @namespace Slick.Data
|
|
12
|
-
* @constructor
|
|
13
|
-
* @param options
|
|
14
|
-
*/
|
|
15
|
-
export declare function GroupItemMetadataProvider(options?: any): {
|
|
16
|
-
init: (grid: any) => void;
|
|
17
|
-
destroy: () => void;
|
|
18
|
-
getGroupRowMetadata: (item: any) => {
|
|
19
|
-
selectable: boolean;
|
|
20
|
-
focusable: any;
|
|
21
|
-
cssClasses: any;
|
|
22
|
-
columns: {
|
|
23
|
-
0: {
|
|
24
|
-
colspan: string;
|
|
25
|
-
formatter: any;
|
|
26
|
-
editor: any;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
height: any;
|
|
30
|
-
};
|
|
31
|
-
getTotalsRowMetadata: (item: any) => {
|
|
32
|
-
selectable: boolean;
|
|
33
|
-
focusable: any;
|
|
34
|
-
cssClasses: any;
|
|
35
|
-
formatter: any;
|
|
36
|
-
editor: any;
|
|
37
|
-
height: any;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
1
|
+
/***
|
|
2
|
+
* Provides item metadata for group (Slick.Group) and totals (Slick.Totals) rows produced by the DataView.
|
|
3
|
+
* This metadata overrides the default behavior and formatting of those rows so that they appear and function
|
|
4
|
+
* correctly when processed by the grid.
|
|
5
|
+
*
|
|
6
|
+
* This class also acts as a grid plugin providing event handlers to expand & collapse groups.
|
|
7
|
+
* If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
|
|
8
|
+
*
|
|
9
|
+
* @class GroupItemMetadataProvider
|
|
10
|
+
* @module Data
|
|
11
|
+
* @namespace Slick.Data
|
|
12
|
+
* @constructor
|
|
13
|
+
* @param options
|
|
14
|
+
*/
|
|
15
|
+
export declare function GroupItemMetadataProvider(options?: any): {
|
|
16
|
+
init: (grid: any) => void;
|
|
17
|
+
destroy: () => void;
|
|
18
|
+
getGroupRowMetadata: (item: any) => {
|
|
19
|
+
selectable: boolean;
|
|
20
|
+
focusable: any;
|
|
21
|
+
cssClasses: any;
|
|
22
|
+
columns: {
|
|
23
|
+
0: {
|
|
24
|
+
colspan: string;
|
|
25
|
+
formatter: any;
|
|
26
|
+
editor: any;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
height: any;
|
|
30
|
+
};
|
|
31
|
+
getTotalsRowMetadata: (item: any) => {
|
|
32
|
+
selectable: boolean;
|
|
33
|
+
focusable: any;
|
|
34
|
+
cssClasses: any;
|
|
35
|
+
formatter: any;
|
|
36
|
+
editor: any;
|
|
37
|
+
height: any;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
@@ -1,165 +1,165 @@
|
|
|
1
|
-
import { jQueryReplacement } from "../core/jq";
|
|
2
|
-
import { Slick } from "./slick.core";
|
|
3
|
-
|
|
4
|
-
$.deepExtend(Slick, {
|
|
5
|
-
Data: {
|
|
6
|
-
GroupItemMetadataProvider: GroupItemMetadataProvider
|
|
7
|
-
}
|
|
8
|
-
});
|
|
9
|
-
/***
|
|
10
|
-
* Provides item metadata for group (Slick.Group) and totals (Slick.Totals) rows produced by the DataView.
|
|
11
|
-
* This metadata overrides the default behavior and formatting of those rows so that they appear and function
|
|
12
|
-
* correctly when processed by the grid.
|
|
13
|
-
*
|
|
14
|
-
* This class also acts as a grid plugin providing event handlers to expand & collapse groups.
|
|
15
|
-
* If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
|
|
16
|
-
*
|
|
17
|
-
* @class GroupItemMetadataProvider
|
|
18
|
-
* @module Data
|
|
19
|
-
* @namespace Slick.Data
|
|
20
|
-
* @constructor
|
|
21
|
-
* @param options
|
|
22
|
-
*/
|
|
23
|
-
export function GroupItemMetadataProvider(options) {
|
|
24
|
-
var _grid;
|
|
25
|
-
var _defaults = {
|
|
26
|
-
checkboxSelect: false,
|
|
27
|
-
checkboxSelectCssClass: "slick-group-select-checkbox",
|
|
28
|
-
checkboxSelectPlugin: null,
|
|
29
|
-
groupCssClass: "slick-group",
|
|
30
|
-
groupTitleCssClass: "slick-group-title",
|
|
31
|
-
totalsCssClass: "slick-group-totals",
|
|
32
|
-
groupFocusable: true,
|
|
33
|
-
totalsFocusable: false,
|
|
34
|
-
toggleCssClass: "slick-group-toggle",
|
|
35
|
-
toggleExpandedCssClass: "expanded",
|
|
36
|
-
toggleCollapsedCssClass: "collapsed",
|
|
37
|
-
enableExpandCollapse: true,
|
|
38
|
-
groupFormatter: defaultGroupCellFormatter,
|
|
39
|
-
totalsFormatter: defaultTotalsCellFormatter
|
|
40
|
-
};
|
|
41
|
-
options = $.deepExtend({}, _defaults, options);
|
|
42
|
-
function defaultGroupCellFormatter(row, cell, value, columnDef, item, grid) {
|
|
43
|
-
if (!options.enableExpandCollapse) {
|
|
44
|
-
return item.title;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return (options.checkboxSelect ? '<span class="' + options.checkboxSelectCssClass +
|
|
48
|
-
' ' + (item.selectChecked ? 'checked' : 'unchecked') + '"></span>' : '') +
|
|
49
|
-
"<span class='" + options.toggleCssClass + " " +
|
|
50
|
-
(item.collapsed ? options.toggleCollapsedCssClass : options.toggleExpandedCssClass) +
|
|
51
|
-
"' style='margin-left:" + indentation + "'>" +
|
|
52
|
-
"</span>" +
|
|
53
|
-
"<span class='" + options.groupTitleCssClass + "' level='" + item.level + "'>" +
|
|
54
|
-
item.title +
|
|
55
|
-
"</span>";
|
|
56
|
-
}
|
|
57
|
-
function defaultTotalsCellFormatter(row, cell, value, columnDef, item, grid) {
|
|
58
|
-
|
|
59
|
-
if (columnDef.groupTotalsFormatter) {
|
|
60
|
-
formatter_res = columnDef.groupTotalsFormatter(item, columnDef, grid) || "";
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
|
|
64
|
-
|| (item.sum && item.sum[columnDef.field])
|
|
65
|
-
|| (item.max && item.max[columnDef.field])
|
|
66
|
-
|| (item.min && item.min[columnDef.field]);
|
|
67
|
-
formatter_res = (columnDef.formatter ? columnDef.formatter(row, cell, res, columnDef, item) : "");
|
|
68
|
-
}
|
|
69
|
-
return formatter_res;
|
|
70
|
-
//return (Object.prototype.toString.call(formatter_res) !== '[object Object]' ? (<string>formatter_res) : (<ISlickFormatterResult>formatter_res).text);
|
|
71
|
-
}
|
|
72
|
-
function init(grid) {
|
|
73
|
-
_grid = grid;
|
|
74
|
-
_grid.onClick.subscribe(handleGridClick);
|
|
75
|
-
_grid.onKeyDown.subscribe(handleGridKeyDown);
|
|
76
|
-
}
|
|
77
|
-
function destroy() {
|
|
78
|
-
if (_grid) {
|
|
79
|
-
_grid.onClick.unsubscribe(handleGridClick);
|
|
80
|
-
_grid.onKeyDown.unsubscribe(handleGridKeyDown);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function handleGridClick(e, args) {
|
|
84
|
-
var $target = $(e.target);
|
|
85
|
-
var item = this.getDataItem(args.row);
|
|
86
|
-
if (item && item instanceof Slick.Group && $target.hasClass(options.toggleCssClass)) {
|
|
87
|
-
var range = _grid.getRenderedRange();
|
|
88
|
-
this.dataView.setRefreshHints({
|
|
89
|
-
ignoreDiffsBefore: range.top,
|
|
90
|
-
ignoreDiffsAfter: range.bottom + 1
|
|
91
|
-
});
|
|
92
|
-
if (item.collapsed) {
|
|
93
|
-
this.dataView.expandGroup(item.groupingKey);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.dataView.collapseGroup(item.groupingKey);
|
|
97
|
-
}
|
|
98
|
-
e.stopImmediatePropagation();
|
|
99
|
-
e.preventDefault();
|
|
100
|
-
}
|
|
101
|
-
if (item && item instanceof Slick.Group && $target.hasClass(options.checkboxSelectCssClass)) {
|
|
102
|
-
item.selectChecked = !item.selectChecked;
|
|
103
|
-
$target.removeClass((item.selectChecked ? "unchecked" : "checked"));
|
|
104
|
-
$target.addClass((item.selectChecked ? "checked" : "unchecked"));
|
|
105
|
-
// get rowIndexes array
|
|
106
|
-
var rowIndexes = _grid.dataView.mapItemsToRows(item.rows);
|
|
107
|
-
(item.selectChecked ? options.checkboxSelectPlugin.selectRows : options.checkboxSelectPlugin.deSelectRows)(rowIndexes);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// TODO: add -/+ handling
|
|
111
|
-
function handleGridKeyDown(e, args) {
|
|
112
|
-
if (options.enableExpandCollapse && (e.which == Slick.keyCode.SPACE)) {
|
|
113
|
-
var activeCell = this.getActiveCell();
|
|
114
|
-
if (activeCell) {
|
|
115
|
-
var item = this.getDataItem(activeCell.row);
|
|
116
|
-
if (item && item instanceof Slick.Group) {
|
|
117
|
-
var range = _grid.getRenderedRange();
|
|
118
|
-
this.dataView.setRefreshHints({
|
|
119
|
-
ignoreDiffsBefore: range.top,
|
|
120
|
-
ignoreDiffsAfter: range.bottom + 1
|
|
121
|
-
});
|
|
122
|
-
if (item.collapsed) {
|
|
123
|
-
this.dataView.expandGroup(item.groupingKey);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
this.dataView.collapseGroup(item.groupingKey);
|
|
127
|
-
}
|
|
128
|
-
e.stopImmediatePropagation();
|
|
129
|
-
e.preventDefault();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function getGroupRowMetadata(item) {
|
|
135
|
-
return {
|
|
136
|
-
selectable: false,
|
|
137
|
-
focusable: options.groupFocusable,
|
|
138
|
-
cssClasses: options.groupCssClass,
|
|
139
|
-
columns: {
|
|
140
|
-
0: {
|
|
141
|
-
colspan: "*",
|
|
142
|
-
formatter: options.groupFormatter,
|
|
143
|
-
editor: null
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
height: options.calcGroupHeight ? options.calcGroupHeight(item) : undefined
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
function getTotalsRowMetadata(item) {
|
|
150
|
-
return {
|
|
151
|
-
selectable: false,
|
|
152
|
-
focusable: options.totalsFocusable,
|
|
153
|
-
cssClasses: options.totalsCssClass,
|
|
154
|
-
formatter: options.totalsFormatter,
|
|
155
|
-
editor: null,
|
|
156
|
-
height: options.calcTotalsHeight ? options.calcTotalsHeight(item) : undefined
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
return {
|
|
160
|
-
"init": init,
|
|
161
|
-
"destroy": destroy,
|
|
162
|
-
"getGroupRowMetadata": getGroupRowMetadata,
|
|
163
|
-
"getTotalsRowMetadata": getTotalsRowMetadata
|
|
164
|
-
};
|
|
165
|
-
}
|
|
1
|
+
import { jQueryReplacement } from "../core/jq";
|
|
2
|
+
import { Slick } from "./slick.core";
|
|
3
|
+
let $ = jQueryReplacement;
|
|
4
|
+
$.deepExtend(Slick, {
|
|
5
|
+
Data: {
|
|
6
|
+
GroupItemMetadataProvider: GroupItemMetadataProvider
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
/***
|
|
10
|
+
* Provides item metadata for group (Slick.Group) and totals (Slick.Totals) rows produced by the DataView.
|
|
11
|
+
* This metadata overrides the default behavior and formatting of those rows so that they appear and function
|
|
12
|
+
* correctly when processed by the grid.
|
|
13
|
+
*
|
|
14
|
+
* This class also acts as a grid plugin providing event handlers to expand & collapse groups.
|
|
15
|
+
* If "grid.registerPlugin(...)" is not called, expand & collapse will not work.
|
|
16
|
+
*
|
|
17
|
+
* @class GroupItemMetadataProvider
|
|
18
|
+
* @module Data
|
|
19
|
+
* @namespace Slick.Data
|
|
20
|
+
* @constructor
|
|
21
|
+
* @param options
|
|
22
|
+
*/
|
|
23
|
+
export function GroupItemMetadataProvider(options) {
|
|
24
|
+
var _grid;
|
|
25
|
+
var _defaults = {
|
|
26
|
+
checkboxSelect: false,
|
|
27
|
+
checkboxSelectCssClass: "slick-group-select-checkbox",
|
|
28
|
+
checkboxSelectPlugin: null,
|
|
29
|
+
groupCssClass: "slick-group",
|
|
30
|
+
groupTitleCssClass: "slick-group-title",
|
|
31
|
+
totalsCssClass: "slick-group-totals",
|
|
32
|
+
groupFocusable: true,
|
|
33
|
+
totalsFocusable: false,
|
|
34
|
+
toggleCssClass: "slick-group-toggle",
|
|
35
|
+
toggleExpandedCssClass: "expanded",
|
|
36
|
+
toggleCollapsedCssClass: "collapsed",
|
|
37
|
+
enableExpandCollapse: true,
|
|
38
|
+
groupFormatter: defaultGroupCellFormatter,
|
|
39
|
+
totalsFormatter: defaultTotalsCellFormatter
|
|
40
|
+
};
|
|
41
|
+
options = $.deepExtend({}, _defaults, options);
|
|
42
|
+
function defaultGroupCellFormatter(row, cell, value, columnDef, item, grid) {
|
|
43
|
+
if (!options.enableExpandCollapse) {
|
|
44
|
+
return item.title;
|
|
45
|
+
}
|
|
46
|
+
let indentation = item.level * 15 + "px";
|
|
47
|
+
return (options.checkboxSelect ? '<span class="' + options.checkboxSelectCssClass +
|
|
48
|
+
' ' + (item.selectChecked ? 'checked' : 'unchecked') + '"></span>' : '') +
|
|
49
|
+
"<span class='" + options.toggleCssClass + " " +
|
|
50
|
+
(item.collapsed ? options.toggleCollapsedCssClass : options.toggleExpandedCssClass) +
|
|
51
|
+
"' style='margin-left:" + indentation + "'>" +
|
|
52
|
+
"</span>" +
|
|
53
|
+
"<span class='" + options.groupTitleCssClass + "' level='" + item.level + "'>" +
|
|
54
|
+
item.title +
|
|
55
|
+
"</span>";
|
|
56
|
+
}
|
|
57
|
+
function defaultTotalsCellFormatter(row, cell, value, columnDef, item, grid) {
|
|
58
|
+
let formatter_res;
|
|
59
|
+
if (columnDef.groupTotalsFormatter) {
|
|
60
|
+
formatter_res = columnDef.groupTotalsFormatter(item, columnDef, grid) || "";
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
let res = (item.avg && item.avg[columnDef.field])
|
|
64
|
+
|| (item.sum && item.sum[columnDef.field])
|
|
65
|
+
|| (item.max && item.max[columnDef.field])
|
|
66
|
+
|| (item.min && item.min[columnDef.field]);
|
|
67
|
+
formatter_res = (columnDef.formatter ? columnDef.formatter(row, cell, res, columnDef, item) : "");
|
|
68
|
+
}
|
|
69
|
+
return formatter_res;
|
|
70
|
+
//return (Object.prototype.toString.call(formatter_res) !== '[object Object]' ? (<string>formatter_res) : (<ISlickFormatterResult>formatter_res).text);
|
|
71
|
+
}
|
|
72
|
+
function init(grid) {
|
|
73
|
+
_grid = grid;
|
|
74
|
+
_grid.onClick.subscribe(handleGridClick);
|
|
75
|
+
_grid.onKeyDown.subscribe(handleGridKeyDown);
|
|
76
|
+
}
|
|
77
|
+
function destroy() {
|
|
78
|
+
if (_grid) {
|
|
79
|
+
_grid.onClick.unsubscribe(handleGridClick);
|
|
80
|
+
_grid.onKeyDown.unsubscribe(handleGridKeyDown);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function handleGridClick(e, args) {
|
|
84
|
+
var $target = $(e.target);
|
|
85
|
+
var item = this.getDataItem(args.row);
|
|
86
|
+
if (item && item instanceof Slick.Group && $target.hasClass(options.toggleCssClass)) {
|
|
87
|
+
var range = _grid.getRenderedRange();
|
|
88
|
+
this.dataView.setRefreshHints({
|
|
89
|
+
ignoreDiffsBefore: range.top,
|
|
90
|
+
ignoreDiffsAfter: range.bottom + 1
|
|
91
|
+
});
|
|
92
|
+
if (item.collapsed) {
|
|
93
|
+
this.dataView.expandGroup(item.groupingKey);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.dataView.collapseGroup(item.groupingKey);
|
|
97
|
+
}
|
|
98
|
+
e.stopImmediatePropagation();
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
}
|
|
101
|
+
if (item && item instanceof Slick.Group && $target.hasClass(options.checkboxSelectCssClass)) {
|
|
102
|
+
item.selectChecked = !item.selectChecked;
|
|
103
|
+
$target.removeClass((item.selectChecked ? "unchecked" : "checked"));
|
|
104
|
+
$target.addClass((item.selectChecked ? "checked" : "unchecked"));
|
|
105
|
+
// get rowIndexes array
|
|
106
|
+
var rowIndexes = _grid.dataView.mapItemsToRows(item.rows);
|
|
107
|
+
(item.selectChecked ? options.checkboxSelectPlugin.selectRows : options.checkboxSelectPlugin.deSelectRows)(rowIndexes);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// TODO: add -/+ handling
|
|
111
|
+
function handleGridKeyDown(e, args) {
|
|
112
|
+
if (options.enableExpandCollapse && (e.which == Slick.keyCode.SPACE)) {
|
|
113
|
+
var activeCell = this.getActiveCell();
|
|
114
|
+
if (activeCell) {
|
|
115
|
+
var item = this.getDataItem(activeCell.row);
|
|
116
|
+
if (item && item instanceof Slick.Group) {
|
|
117
|
+
var range = _grid.getRenderedRange();
|
|
118
|
+
this.dataView.setRefreshHints({
|
|
119
|
+
ignoreDiffsBefore: range.top,
|
|
120
|
+
ignoreDiffsAfter: range.bottom + 1
|
|
121
|
+
});
|
|
122
|
+
if (item.collapsed) {
|
|
123
|
+
this.dataView.expandGroup(item.groupingKey);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.dataView.collapseGroup(item.groupingKey);
|
|
127
|
+
}
|
|
128
|
+
e.stopImmediatePropagation();
|
|
129
|
+
e.preventDefault();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function getGroupRowMetadata(item) {
|
|
135
|
+
return {
|
|
136
|
+
selectable: false,
|
|
137
|
+
focusable: options.groupFocusable,
|
|
138
|
+
cssClasses: options.groupCssClass,
|
|
139
|
+
columns: {
|
|
140
|
+
0: {
|
|
141
|
+
colspan: "*",
|
|
142
|
+
formatter: options.groupFormatter,
|
|
143
|
+
editor: null
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
height: options.calcGroupHeight ? options.calcGroupHeight(item) : undefined
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function getTotalsRowMetadata(item) {
|
|
150
|
+
return {
|
|
151
|
+
selectable: false,
|
|
152
|
+
focusable: options.totalsFocusable,
|
|
153
|
+
cssClasses: options.totalsCssClass,
|
|
154
|
+
formatter: options.totalsFormatter,
|
|
155
|
+
editor: null,
|
|
156
|
+
height: options.calcTotalsHeight ? options.calcTotalsHeight(item) : undefined
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
"init": init,
|
|
161
|
+
"destroy": destroy,
|
|
162
|
+
"getGroupRowMetadata": getGroupRowMetadata,
|
|
163
|
+
"getTotalsRowMetadata": getTotalsRowMetadata
|
|
164
|
+
};
|
|
165
|
+
}
|
package/lib/grid/slick.tree.d.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import "./slick.tree.css";
|
|
2
|
-
import { IJSLGrid } from "./slick.creator";
|
|
3
|
-
import { ISlickFormatter } from "./slick.core";
|
|
4
|
-
export interface IGridTreeOptions {
|
|
5
|
-
parentColumn: string;
|
|
6
|
-
indentInRem?: number;
|
|
7
|
-
enableCollapsing?: boolean;
|
|
8
|
-
hiddenStateField?: string;
|
|
9
|
-
collapsedStateField?: string;
|
|
10
|
-
expandIconHTML?: string;
|
|
11
|
-
collapseIconHTML?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare let IndentFormatter: ISlickFormatter;
|
|
14
|
-
export declare class GridTree<T> {
|
|
15
|
-
private grid;
|
|
16
|
-
private primaryKey;
|
|
17
|
-
private options;
|
|
18
|
-
constructor(grid: IJSLGrid<T>, o: IGridTreeOptions);
|
|
19
|
-
getOptions(): IGridTreeOptions;
|
|
20
|
-
getLevel(item: T): number;
|
|
21
|
-
getParent(item: T): T;
|
|
22
|
-
hasChildren(item: T): boolean;
|
|
23
|
-
getDirectChildren(item: T): T[];
|
|
24
|
-
getAllChildren(item: T): T[];
|
|
25
|
-
rowHasChildren(row: number): boolean;
|
|
26
|
-
toggleExpand(item: T): void;
|
|
27
|
-
expand(item: T): void;
|
|
28
|
-
indent(rows: T[]): void;
|
|
29
|
-
outdent(rows: T[]): void;
|
|
30
|
-
filterChildren(rows: T[]): T[];
|
|
31
|
-
collapse(item: T): void;
|
|
32
|
-
private initEvents;
|
|
33
|
-
}
|
|
1
|
+
import "./slick.tree.css";
|
|
2
|
+
import { IJSLGrid } from "./slick.creator";
|
|
3
|
+
import { ISlickFormatter } from "./slick.core";
|
|
4
|
+
export interface IGridTreeOptions {
|
|
5
|
+
parentColumn: string;
|
|
6
|
+
indentInRem?: number;
|
|
7
|
+
enableCollapsing?: boolean;
|
|
8
|
+
hiddenStateField?: string;
|
|
9
|
+
collapsedStateField?: string;
|
|
10
|
+
expandIconHTML?: string;
|
|
11
|
+
collapseIconHTML?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare let IndentFormatter: ISlickFormatter;
|
|
14
|
+
export declare class GridTree<T> {
|
|
15
|
+
private grid;
|
|
16
|
+
private primaryKey;
|
|
17
|
+
private options;
|
|
18
|
+
constructor(grid: IJSLGrid<T>, o: IGridTreeOptions);
|
|
19
|
+
getOptions(): IGridTreeOptions;
|
|
20
|
+
getLevel(item: T): number;
|
|
21
|
+
getParent(item: T): T;
|
|
22
|
+
hasChildren(item: T): boolean;
|
|
23
|
+
getDirectChildren(item: T): T[];
|
|
24
|
+
getAllChildren(item: T): T[];
|
|
25
|
+
rowHasChildren(row: number): boolean;
|
|
26
|
+
toggleExpand(item: T): void;
|
|
27
|
+
expand(item: T): void;
|
|
28
|
+
indent(rows: T[]): void;
|
|
29
|
+
outdent(rows: T[]): void;
|
|
30
|
+
filterChildren(rows: T[]): T[];
|
|
31
|
+
collapse(item: T): void;
|
|
32
|
+
private initEvents;
|
|
33
|
+
}
|